Files
csharp/src/KubernetesClient/Models/ModelExtensions.cs

623 lines
27 KiB
C#
Raw Normal View History

2020-04-20 09:37:39 -07:00
namespace k8s.Models
{
Squashed commit of the following: (#492) commit dc93612024202e651a9cbe4194c1495c823bff12 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 16:24:33 2020 -0700 fix SA1505 commit dc9fdbc4a4fbce7f4362a24e1ff98be4d27e16a8 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 16:24:02 2020 -0700 add () commit 16fb7357fcd7e288a4b8fb201fda2b0aae92e5bc Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 16:21:37 2020 -0700 disable SA1117 commit 544a7e5891e853e2e222f855e5446f3fd79ce2ba Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 16:21:16 2020 -0700 fix SA1508 commit 4e998adf440dda4f13512d1e10f8cb5d5fbc6bd9 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 16:08:28 2020 -0700 allow sa1623 commit baf787255c657a00a6074598c6875e0ab4c9d065 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 16:07:23 2020 -0700 fix SA1413 commit 5ef2ca65de62e6c3cbe513902e3954d78f6dc315 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 16:05:45 2020 -0700 fix SA1413 commit 6cb71f08060b8252a18b01a5788eb2ddcee67c3e Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:44:55 2020 -0700 fix throw stack commit e6ada0b1cb3aa72df5fcaa0b4690aadcbd4bda5a Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:44:35 2020 -0700 allow CA2225 commit 2e79edec5843c20b7e8f8e9ec5b61cf95284466a Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:35:50 2020 -0700 allow SA1507 commit 108f5a6361f4faa211a8e01f783803295fac0453 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:35:31 2020 -0700 force SA1413 commit 20f33b64972bfafeada513ae1a46a030934673fd Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:30:58 2020 -0700 force SA1413 commit 6b0de102d68a116e149868731e155bc374f56cc8 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:28:33 2020 -0700 fix encoding commit 4bd8892c2f0e0fa3666e59b0b77f5b23a2e4ca50 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:26:00 2020 -0700 fix xunit order commit e28556b37ecd782df2d740321e782622ecd277ca Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:10:20 2020 -0700 fix spacing SA1012 SA1004 commit e8cf4b1e0be951babe04cc3674e17718319b8476 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:04:44 2020 -0700 fix SA1211 commit b4164446f7f9d82fb872243e59e3f5c46fbb1f3c Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:02:34 2020 -0700 fix attribute related warning commit 2f17ef45947f6ade36593ede6ba4d27bd1991508 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 05:56:53 2020 -0700 allow ca1801 ca1052 ca1054 commit 49b857f3f1b4a44a809c9186108caab0412c101e Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 05:50:07 2020 -0700 fix SA1001 commit 3389662a32cfc481a3fdf50b6fd651e23aadd9dd Author: Boshi LIAN <bolian@microsoft.com> Date: Fri Oct 9 06:24:32 2020 -0700 fix dotnet format commit f9d55fc925e8a7d2f2b403bd3ae35673068134da Merge: 8e81532 0d68823 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 05:44:30 2020 -0700 Merge branch 'master' into style_fix0 commit 8e815324040837714efb323580cc5dcd79e58310 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 05:33:02 2020 -0700 fix remaing build err commit ecf0152f9e989c4c68274b488d4b3ed6ee88daf9 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 05:24:00 2020 -0700 fix SA1707 commit 462d94794848ebfcd102b56a4344ffc33b50f591 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 05:19:38 2020 -0700 fix underscore naming commit 5271b113603e469021348523f19555e6be22aebc Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 05:19:12 2020 -0700 allow CA1822 commit 602713ce631026e88d8ff7e8803bb12c2addc3c2 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:37:16 2020 -0700 fix CA1822 commit bd4fee4d31c1054eadf6d03aa10f443eee9654c0 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:36:36 2020 -0700 fix CA1822 commit 257d461f21ef7df65fbc787d5c42c59a89d0eced Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:34:25 2020 -0700 introduce dispose pattern commit 1d668c7926f877ea196edb67acbfe9bfeddb9e15 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:23:09 2020 -0700 allow CA2008 commit e4fa6acaf36b84298c8c2ab125ff8aa9efc097b7 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:20:28 2020 -0700 allow CA1827 commit dd931d99fa3a95f936ed566320fffa85efb22838 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:14:35 2020 -0700 allow SA1314 CA1825 commit 13b6cf11df439be8020e17bc5d30addc62f90c39 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:13:51 2020 -0700 Revert "fix CA1825" This reverts commit 17e03bcd4e0f129a64e57d54fbe72acb7d1d226b. commit 368664139c75d61ab5a0c432a7fbbdad956c54cf Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:09:52 2020 -0700 move class to single files commit 0015631805d6bc31e4695881989058bb3955766f Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:09:27 2020 -0700 disable CA2000 / TODO commit 0a1241e84ba1247c8ab4ab8d32bd5d800114420b Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:07:23 2020 -0700 allow SA1715 commit 17e03bcd4e0f129a64e57d54fbe72acb7d1d226b Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:06:57 2020 -0700 fix CA1825 commit 7baf350ca93cb45e2587d86fb6ab6e4cf665b6da Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 03:42:04 2020 -0700 fix SA1312 SA1306 commit 44ad5934182adfc871215637e9612295bc26e6f2 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 03:30:35 2020 -0700 fix CA2007 commit 325fa2c2d16d541db6e21b791c5170f39f832d43 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 03:25:11 2020 -0700 fix SA1131 commit 8f1f46b065dd7e9b316491676bb0b93ef91d0595 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 03:17:08 2020 -0700 allow SA1119 commit 57c0fe7cc26932cc30b4d7cc75a809746d74d5aa Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 03:14:14 2020 -0700 fix SA1400 commit 0afcbbc09d5ef66fbbd4b291d14e7804a8e5a1d3 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 03:12:18 2020 -0700 fix SA1513 commit 45f2424531d35a2a106e10e788aff1a18d745078 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 03:09:17 2020 -0700 allow ca1720 ca1716 sa1405 commit 3403814130a1bf730c4e275f74e9cf5d03bedb41 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:16:37 2020 -0700 fix model oper not contains generated header commit 11377d916cf8cd3ad9109388aff6cf989ff4b7b0 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:14:05 2020 -0700 fix SA1649 commit 92b00051a8c80542a63e1dddbb6eed4e98ad26f9 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:11:16 2020 -0700 fix SA1124 commit 901a9dd2426fa316bcc5a3c2fc411e583f0e07df Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:09:27 2020 -0700 save 1122 commit a8f17b6bac1f1c115b7ed9ebb70d16697a3e81b7 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:09:07 2020 -0700 1507 followup commit a143184921abb38a09e28a7ef07379003fb19563 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:07:38 2020 -0700 fix sa1507 commit 54b56026265cbbbfa6e5b8b4dcfab281ffbfa272 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:06:44 2020 -0700 fix sa1513 commit 53a009205c88a1d63d8daf32599bbc6428619638 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:05:36 2020 -0700 fix SA1649 commit 26d3e78f61ffc381887baaf5c8b56d92aa0ec563 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:01:01 2020 -0700 fix ca1816 commit 1ce5a04ce7a32d901cbece3e18d59e3c068cfd27 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 01:56:43 2020 -0700 readable ruleset commit dafc55f1c2cdc8466919276291333ba46176161a Author: Boshi Lian <farmer1992@gmail.com> Date: Wed May 27 19:13:56 2020 -0700 sync none from guideline
2020-10-23 08:31:57 -07:00
/// <summary>Adds convenient extensions for Kubernetes objects.</summary>
public static class ModelExtensions
{
Squashed commit of the following: (#492) commit dc93612024202e651a9cbe4194c1495c823bff12 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 16:24:33 2020 -0700 fix SA1505 commit dc9fdbc4a4fbce7f4362a24e1ff98be4d27e16a8 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 16:24:02 2020 -0700 add () commit 16fb7357fcd7e288a4b8fb201fda2b0aae92e5bc Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 16:21:37 2020 -0700 disable SA1117 commit 544a7e5891e853e2e222f855e5446f3fd79ce2ba Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 16:21:16 2020 -0700 fix SA1508 commit 4e998adf440dda4f13512d1e10f8cb5d5fbc6bd9 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 16:08:28 2020 -0700 allow sa1623 commit baf787255c657a00a6074598c6875e0ab4c9d065 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 16:07:23 2020 -0700 fix SA1413 commit 5ef2ca65de62e6c3cbe513902e3954d78f6dc315 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 16:05:45 2020 -0700 fix SA1413 commit 6cb71f08060b8252a18b01a5788eb2ddcee67c3e Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:44:55 2020 -0700 fix throw stack commit e6ada0b1cb3aa72df5fcaa0b4690aadcbd4bda5a Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:44:35 2020 -0700 allow CA2225 commit 2e79edec5843c20b7e8f8e9ec5b61cf95284466a Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:35:50 2020 -0700 allow SA1507 commit 108f5a6361f4faa211a8e01f783803295fac0453 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:35:31 2020 -0700 force SA1413 commit 20f33b64972bfafeada513ae1a46a030934673fd Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:30:58 2020 -0700 force SA1413 commit 6b0de102d68a116e149868731e155bc374f56cc8 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:28:33 2020 -0700 fix encoding commit 4bd8892c2f0e0fa3666e59b0b77f5b23a2e4ca50 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:26:00 2020 -0700 fix xunit order commit e28556b37ecd782df2d740321e782622ecd277ca Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:10:20 2020 -0700 fix spacing SA1012 SA1004 commit e8cf4b1e0be951babe04cc3674e17718319b8476 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:04:44 2020 -0700 fix SA1211 commit b4164446f7f9d82fb872243e59e3f5c46fbb1f3c Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:02:34 2020 -0700 fix attribute related warning commit 2f17ef45947f6ade36593ede6ba4d27bd1991508 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 05:56:53 2020 -0700 allow ca1801 ca1052 ca1054 commit 49b857f3f1b4a44a809c9186108caab0412c101e Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 05:50:07 2020 -0700 fix SA1001 commit 3389662a32cfc481a3fdf50b6fd651e23aadd9dd Author: Boshi LIAN <bolian@microsoft.com> Date: Fri Oct 9 06:24:32 2020 -0700 fix dotnet format commit f9d55fc925e8a7d2f2b403bd3ae35673068134da Merge: 8e81532 0d68823 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 05:44:30 2020 -0700 Merge branch 'master' into style_fix0 commit 8e815324040837714efb323580cc5dcd79e58310 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 05:33:02 2020 -0700 fix remaing build err commit ecf0152f9e989c4c68274b488d4b3ed6ee88daf9 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 05:24:00 2020 -0700 fix SA1707 commit 462d94794848ebfcd102b56a4344ffc33b50f591 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 05:19:38 2020 -0700 fix underscore naming commit 5271b113603e469021348523f19555e6be22aebc Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 05:19:12 2020 -0700 allow CA1822 commit 602713ce631026e88d8ff7e8803bb12c2addc3c2 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:37:16 2020 -0700 fix CA1822 commit bd4fee4d31c1054eadf6d03aa10f443eee9654c0 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:36:36 2020 -0700 fix CA1822 commit 257d461f21ef7df65fbc787d5c42c59a89d0eced Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:34:25 2020 -0700 introduce dispose pattern commit 1d668c7926f877ea196edb67acbfe9bfeddb9e15 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:23:09 2020 -0700 allow CA2008 commit e4fa6acaf36b84298c8c2ab125ff8aa9efc097b7 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:20:28 2020 -0700 allow CA1827 commit dd931d99fa3a95f936ed566320fffa85efb22838 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:14:35 2020 -0700 allow SA1314 CA1825 commit 13b6cf11df439be8020e17bc5d30addc62f90c39 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:13:51 2020 -0700 Revert "fix CA1825" This reverts commit 17e03bcd4e0f129a64e57d54fbe72acb7d1d226b. commit 368664139c75d61ab5a0c432a7fbbdad956c54cf Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:09:52 2020 -0700 move class to single files commit 0015631805d6bc31e4695881989058bb3955766f Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:09:27 2020 -0700 disable CA2000 / TODO commit 0a1241e84ba1247c8ab4ab8d32bd5d800114420b Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:07:23 2020 -0700 allow SA1715 commit 17e03bcd4e0f129a64e57d54fbe72acb7d1d226b Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:06:57 2020 -0700 fix CA1825 commit 7baf350ca93cb45e2587d86fb6ab6e4cf665b6da Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 03:42:04 2020 -0700 fix SA1312 SA1306 commit 44ad5934182adfc871215637e9612295bc26e6f2 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 03:30:35 2020 -0700 fix CA2007 commit 325fa2c2d16d541db6e21b791c5170f39f832d43 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 03:25:11 2020 -0700 fix SA1131 commit 8f1f46b065dd7e9b316491676bb0b93ef91d0595 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 03:17:08 2020 -0700 allow SA1119 commit 57c0fe7cc26932cc30b4d7cc75a809746d74d5aa Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 03:14:14 2020 -0700 fix SA1400 commit 0afcbbc09d5ef66fbbd4b291d14e7804a8e5a1d3 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 03:12:18 2020 -0700 fix SA1513 commit 45f2424531d35a2a106e10e788aff1a18d745078 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 03:09:17 2020 -0700 allow ca1720 ca1716 sa1405 commit 3403814130a1bf730c4e275f74e9cf5d03bedb41 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:16:37 2020 -0700 fix model oper not contains generated header commit 11377d916cf8cd3ad9109388aff6cf989ff4b7b0 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:14:05 2020 -0700 fix SA1649 commit 92b00051a8c80542a63e1dddbb6eed4e98ad26f9 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:11:16 2020 -0700 fix SA1124 commit 901a9dd2426fa316bcc5a3c2fc411e583f0e07df Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:09:27 2020 -0700 save 1122 commit a8f17b6bac1f1c115b7ed9ebb70d16697a3e81b7 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:09:07 2020 -0700 1507 followup commit a143184921abb38a09e28a7ef07379003fb19563 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:07:38 2020 -0700 fix sa1507 commit 54b56026265cbbbfa6e5b8b4dcfab281ffbfa272 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:06:44 2020 -0700 fix sa1513 commit 53a009205c88a1d63d8daf32599bbc6428619638 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:05:36 2020 -0700 fix SA1649 commit 26d3e78f61ffc381887baaf5c8b56d92aa0ec563 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:01:01 2020 -0700 fix ca1816 commit 1ce5a04ce7a32d901cbece3e18d59e3c068cfd27 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 01:56:43 2020 -0700 readable ruleset commit dafc55f1c2cdc8466919276291333ba46176161a Author: Boshi Lian <farmer1992@gmail.com> Date: Wed May 27 19:13:56 2020 -0700 sync none from guideline
2020-10-23 08:31:57 -07:00
/// <summary>Adds the given finalizer to a Kubernetes object if it doesn't already exist.</summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <param name="finalizer">the finalizer</param>
Squashed commit of the following: (#492) commit dc93612024202e651a9cbe4194c1495c823bff12 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 16:24:33 2020 -0700 fix SA1505 commit dc9fdbc4a4fbce7f4362a24e1ff98be4d27e16a8 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 16:24:02 2020 -0700 add () commit 16fb7357fcd7e288a4b8fb201fda2b0aae92e5bc Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 16:21:37 2020 -0700 disable SA1117 commit 544a7e5891e853e2e222f855e5446f3fd79ce2ba Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 16:21:16 2020 -0700 fix SA1508 commit 4e998adf440dda4f13512d1e10f8cb5d5fbc6bd9 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 16:08:28 2020 -0700 allow sa1623 commit baf787255c657a00a6074598c6875e0ab4c9d065 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 16:07:23 2020 -0700 fix SA1413 commit 5ef2ca65de62e6c3cbe513902e3954d78f6dc315 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 16:05:45 2020 -0700 fix SA1413 commit 6cb71f08060b8252a18b01a5788eb2ddcee67c3e Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:44:55 2020 -0700 fix throw stack commit e6ada0b1cb3aa72df5fcaa0b4690aadcbd4bda5a Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:44:35 2020 -0700 allow CA2225 commit 2e79edec5843c20b7e8f8e9ec5b61cf95284466a Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:35:50 2020 -0700 allow SA1507 commit 108f5a6361f4faa211a8e01f783803295fac0453 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:35:31 2020 -0700 force SA1413 commit 20f33b64972bfafeada513ae1a46a030934673fd Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:30:58 2020 -0700 force SA1413 commit 6b0de102d68a116e149868731e155bc374f56cc8 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:28:33 2020 -0700 fix encoding commit 4bd8892c2f0e0fa3666e59b0b77f5b23a2e4ca50 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:26:00 2020 -0700 fix xunit order commit e28556b37ecd782df2d740321e782622ecd277ca Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:10:20 2020 -0700 fix spacing SA1012 SA1004 commit e8cf4b1e0be951babe04cc3674e17718319b8476 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:04:44 2020 -0700 fix SA1211 commit b4164446f7f9d82fb872243e59e3f5c46fbb1f3c Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 06:02:34 2020 -0700 fix attribute related warning commit 2f17ef45947f6ade36593ede6ba4d27bd1991508 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 05:56:53 2020 -0700 allow ca1801 ca1052 ca1054 commit 49b857f3f1b4a44a809c9186108caab0412c101e Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 05:50:07 2020 -0700 fix SA1001 commit 3389662a32cfc481a3fdf50b6fd651e23aadd9dd Author: Boshi LIAN <bolian@microsoft.com> Date: Fri Oct 9 06:24:32 2020 -0700 fix dotnet format commit f9d55fc925e8a7d2f2b403bd3ae35673068134da Merge: 8e81532 0d68823 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 05:44:30 2020 -0700 Merge branch 'master' into style_fix0 commit 8e815324040837714efb323580cc5dcd79e58310 Author: Boshi Lian <farmer1992@gmail.com> Date: Fri Oct 9 05:33:02 2020 -0700 fix remaing build err commit ecf0152f9e989c4c68274b488d4b3ed6ee88daf9 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 05:24:00 2020 -0700 fix SA1707 commit 462d94794848ebfcd102b56a4344ffc33b50f591 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 05:19:38 2020 -0700 fix underscore naming commit 5271b113603e469021348523f19555e6be22aebc Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 05:19:12 2020 -0700 allow CA1822 commit 602713ce631026e88d8ff7e8803bb12c2addc3c2 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:37:16 2020 -0700 fix CA1822 commit bd4fee4d31c1054eadf6d03aa10f443eee9654c0 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:36:36 2020 -0700 fix CA1822 commit 257d461f21ef7df65fbc787d5c42c59a89d0eced Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:34:25 2020 -0700 introduce dispose pattern commit 1d668c7926f877ea196edb67acbfe9bfeddb9e15 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:23:09 2020 -0700 allow CA2008 commit e4fa6acaf36b84298c8c2ab125ff8aa9efc097b7 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:20:28 2020 -0700 allow CA1827 commit dd931d99fa3a95f936ed566320fffa85efb22838 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:14:35 2020 -0700 allow SA1314 CA1825 commit 13b6cf11df439be8020e17bc5d30addc62f90c39 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:13:51 2020 -0700 Revert "fix CA1825" This reverts commit 17e03bcd4e0f129a64e57d54fbe72acb7d1d226b. commit 368664139c75d61ab5a0c432a7fbbdad956c54cf Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:09:52 2020 -0700 move class to single files commit 0015631805d6bc31e4695881989058bb3955766f Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:09:27 2020 -0700 disable CA2000 / TODO commit 0a1241e84ba1247c8ab4ab8d32bd5d800114420b Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:07:23 2020 -0700 allow SA1715 commit 17e03bcd4e0f129a64e57d54fbe72acb7d1d226b Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 04:06:57 2020 -0700 fix CA1825 commit 7baf350ca93cb45e2587d86fb6ab6e4cf665b6da Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 03:42:04 2020 -0700 fix SA1312 SA1306 commit 44ad5934182adfc871215637e9612295bc26e6f2 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 03:30:35 2020 -0700 fix CA2007 commit 325fa2c2d16d541db6e21b791c5170f39f832d43 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 03:25:11 2020 -0700 fix SA1131 commit 8f1f46b065dd7e9b316491676bb0b93ef91d0595 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 03:17:08 2020 -0700 allow SA1119 commit 57c0fe7cc26932cc30b4d7cc75a809746d74d5aa Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 03:14:14 2020 -0700 fix SA1400 commit 0afcbbc09d5ef66fbbd4b291d14e7804a8e5a1d3 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 03:12:18 2020 -0700 fix SA1513 commit 45f2424531d35a2a106e10e788aff1a18d745078 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 03:09:17 2020 -0700 allow ca1720 ca1716 sa1405 commit 3403814130a1bf730c4e275f74e9cf5d03bedb41 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:16:37 2020 -0700 fix model oper not contains generated header commit 11377d916cf8cd3ad9109388aff6cf989ff4b7b0 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:14:05 2020 -0700 fix SA1649 commit 92b00051a8c80542a63e1dddbb6eed4e98ad26f9 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:11:16 2020 -0700 fix SA1124 commit 901a9dd2426fa316bcc5a3c2fc411e583f0e07df Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:09:27 2020 -0700 save 1122 commit a8f17b6bac1f1c115b7ed9ebb70d16697a3e81b7 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:09:07 2020 -0700 1507 followup commit a143184921abb38a09e28a7ef07379003fb19563 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:07:38 2020 -0700 fix sa1507 commit 54b56026265cbbbfa6e5b8b4dcfab281ffbfa272 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:06:44 2020 -0700 fix sa1513 commit 53a009205c88a1d63d8daf32599bbc6428619638 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:05:36 2020 -0700 fix SA1649 commit 26d3e78f61ffc381887baaf5c8b56d92aa0ec563 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 02:01:01 2020 -0700 fix ca1816 commit 1ce5a04ce7a32d901cbece3e18d59e3c068cfd27 Author: Boshi Lian <farmer1992@gmail.com> Date: Wed Oct 7 01:56:43 2020 -0700 readable ruleset commit dafc55f1c2cdc8466919276291333ba46176161a Author: Boshi Lian <farmer1992@gmail.com> Date: Wed May 27 19:13:56 2020 -0700 sync none from guideline
2020-10-23 08:31:57 -07:00
/// <returns>Returns true if the finalizer was added and false if it already existed.</returns>
public static bool AddFinalizer(this IMetadata<V1ObjectMeta> obj, string finalizer)
{
if (string.IsNullOrEmpty(finalizer))
{
throw new ArgumentNullException(nameof(finalizer));
}
if (EnsureMetadata(obj).Finalizers == null)
{
obj.Metadata.Finalizers = new List<string>();
}
if (!obj.Metadata.Finalizers.Contains(finalizer))
{
obj.Metadata.Finalizers.Add(finalizer);
return true;
}
return false;
}
/// <summary>Extracts the Kubernetes API group from the <see cref="IKubernetesObject.ApiVersion"/>.</summary>
/// <param name="obj">the kubernetes client <see cref="IKubernetesObject"/></param>
/// <returns>api group from server</returns>
public static string ApiGroup(this IKubernetesObject obj)
{
if (obj == null)
{
throw new ArgumentNullException(nameof(obj));
}
if (obj.ApiVersion != null)
{
var slash = obj.ApiVersion.IndexOf('/');
return slash < 0 ? string.Empty : obj.ApiVersion.Substring(0, slash);
}
return null;
}
/// <summary>Extracts the Kubernetes API version (excluding the group) from the <see cref="IKubernetesObject.ApiVersion"/>.</summary>
/// <param name="obj">the kubernetes client <see cref="IKubernetesObject"/></param>
/// <returns>api group version from server</returns>
public static string ApiGroupVersion(this IKubernetesObject obj)
{
if (obj == null)
{
throw new ArgumentNullException(nameof(obj));
}
if (obj.ApiVersion != null)
{
var slash = obj.ApiVersion.IndexOf('/');
return slash < 0 ? obj.ApiVersion : obj.ApiVersion.Substring(slash + 1);
}
return null;
}
/// <summary>Splits the Kubernetes API version into the group and version.</summary>
/// <param name="obj">the kubernetes client <see cref="IKubernetesObject"/></param>
/// <returns>api group and version from server</returns>
public static (string, string) ApiGroupAndVersion(this IKubernetesObject obj)
{
string group, version;
GetApiGroupAndVersion(obj, out group, out version);
return (group, version);
}
/// <summary>Splits the Kubernetes API version into the group and version.</summary>
/// <param name="obj">the kubernetes client <see cref="IKubernetesObject"/></param>
/// <param name="group">api group output var</param>
/// <param name="version">api group version output var</param>
public static void GetApiGroupAndVersion(this IKubernetesObject obj, out string group, out string version)
{
if (obj == null)
{
throw new ArgumentNullException(nameof(obj));
}
if (obj.ApiVersion == null)
{
group = version = null;
}
else
{
var slash = obj.ApiVersion.IndexOf('/');
if (slash < 0)
{
(group, version) = (string.Empty, obj.ApiVersion);
}
else
{
(group, version) = (obj.ApiVersion.Substring(0, slash), obj.ApiVersion.Substring(slash + 1));
}
}
}
/// <summary>
/// Gets the continuation token version of a Kubernetes list.
/// </summary>
/// <param name="list">Kubernetes list</param>
/// <returns>continuation token </returns>
public static string Continue(this IMetadata<V1ListMeta> list) => list?.Metadata?.ContinueProperty;
/// <summary>Ensures that the <see cref="V1ListMeta"/> metadata field is set, and returns it.</summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <returns>the metadata <see cref="V1ListMeta"/> </returns>
public static V1ListMeta EnsureMetadata(this IMetadata<V1ListMeta> obj)
{
if (obj == null)
{
throw new ArgumentNullException(nameof(obj));
}
if (obj.Metadata == null)
{
obj.Metadata = new V1ListMeta();
}
return obj.Metadata;
}
/// <summary>Gets the resource version of a Kubernetes list.</summary>
/// <param name="list">the object meta list<see cref="V1ListMeta"/></param>
/// <returns>resource version</returns>
public static string ResourceVersion(this IMetadata<V1ListMeta> list) => list?.Metadata?.ResourceVersion;
/// <summary>Adds an owner reference to the object. No attempt is made to ensure the reference is correct or fits with the
/// other references.
/// </summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <param name="ownerRef">the owner reference to the object</param>
public static void AddOwnerReference(this IMetadata<V1ObjectMeta> obj, V1OwnerReference ownerRef)
{
if (ownerRef == null)
{
throw new ArgumentNullException(nameof(ownerRef));
}
if (EnsureMetadata(obj).OwnerReferences == null)
{
obj.Metadata.OwnerReferences = new List<V1OwnerReference>();
}
obj.Metadata.OwnerReferences.Add(ownerRef);
}
/// <summary>Gets the annotations of a Kubernetes object.</summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <returns>a dictionary of the annotations</returns>
public static IDictionary<string, string> Annotations(this IMetadata<V1ObjectMeta> obj) =>
obj?.Metadata?.Annotations;
/// <summary>Gets the creation time of a Kubernetes object, or null if it hasn't been created yet.</summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <returns>creation time of a Kubernetes object, null if it hasn't been created yet.</returns>
public static DateTime? CreationTimestamp(this IMetadata<V1ObjectMeta> obj) => obj?.Metadata?.CreationTimestamp;
/// <summary>Gets the deletion time of a Kubernetes object, or null if it hasn't been scheduled for deletion.</summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <returns>the deletion time of a Kubernetes object, or null if it hasn't been scheduled for deletion.</returns>
public static DateTime? DeletionTimestamp(this IMetadata<V1ObjectMeta> obj) => obj?.Metadata?.DeletionTimestamp;
/// <summary>Ensures that the <see cref="V1ObjectMeta"/> metadata field is set, and returns it.</summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <returns>the metadata field <see cref="V1ObjectMeta"/></returns>
public static V1ObjectMeta EnsureMetadata(this IMetadata<V1ObjectMeta> obj)
{
if (obj == null)
{
throw new ArgumentNullException(nameof(obj));
}
if (obj.Metadata == null)
{
obj.Metadata = new V1ObjectMeta();
}
return obj.Metadata;
}
/// <summary>Gets the <see cref="V1ObjectMeta.Finalizers"/> of a Kubernetes object.</summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <returns>Metadata.Finalizers of <see cref="V1ObjectMeta"/></returns>
public static IList<string> Finalizers(this IMetadata<V1ObjectMeta> obj) => obj?.Metadata?.Finalizers;
/// <summary>Gets the index of the <see cref="V1OwnerReference"/> that matches the given object, or -1 if no such
/// reference could be found.
/// </summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <param name="owner">the owner of the object<see cref="V1ObjectMeta"/></param>
/// <returns>the index of the <see cref="V1OwnerReference"/> that matches the given object, or -1 if no such
/// reference could be found.</returns>
public static int FindOwnerReference(this IMetadata<V1ObjectMeta> obj, IKubernetesObject<V1ObjectMeta> owner) =>
FindOwnerReference(obj, r => r.Matches(owner));
/// <summary>Gets the index of the <see cref="V1OwnerReference"/> that matches the given predicate, or -1 if no such
/// reference could be found.
/// </summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <param name="predicate">a <see cref="System.Predicate{V1OwnerReference}"/> to test owner reference</param>
/// <returns>the index of the <see cref="V1OwnerReference"/> that matches the given object, or -1 if no such
/// reference could be found.</returns>
public static int FindOwnerReference(this IMetadata<V1ObjectMeta> obj, Predicate<V1OwnerReference> predicate)
{
if (obj == null)
{
throw new ArgumentNullException(nameof(obj));
}
if (predicate == null)
{
throw new ArgumentNullException(nameof(predicate));
}
var ownerRefs = obj.OwnerReferences();
if (ownerRefs != null)
{
for (var i = 0; i < ownerRefs.Count; i++)
{
if (predicate(ownerRefs[i]))
{
return i;
}
}
}
return -1;
}
/// <summary>Gets the generation a Kubernetes object.</summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <returns>the Metadata.Generation of object meta<see cref="V1ObjectMeta"/></returns>
public static long? Generation(this IMetadata<V1ObjectMeta> obj) => obj?.Metadata?.Generation;
/// <summary>Returns the given annotation from a Kubernetes object or null if the annotation was not found.</summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <param name="key">the key of the annotation</param>
/// <returns>the content of the annotation</returns>
public static string GetAnnotation(this IMetadata<V1ObjectMeta> obj, string key)
{
if (obj == null)
{
throw new ArgumentNullException(nameof(obj));
}
if (key == null)
{
throw new ArgumentNullException(nameof(key));
}
var annotations = obj.Annotations();
return annotations != null && annotations.TryGetValue(key, out var value) ? value : null;
}
/// <summary>Gets the <see cref="V1OwnerReference"/> for the controller of this object, or null if it couldn't be found.</summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <returns>the <see cref="V1OwnerReference"/> for the controller of this object, or null if it couldn't be found.</returns>
public static V1OwnerReference GetController(this IMetadata<V1ObjectMeta> obj) =>
obj.OwnerReferences()?.FirstOrDefault(r => r.Controller.GetValueOrDefault());
/// <summary>Returns the given label from a Kubernetes object or null if the label was not found.</summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <param name="key">the key of the label</param>
/// <returns>content of the label</returns>
public static string GetLabel(this IMetadata<V1ObjectMeta> obj, string key)
{
if (obj == null)
{
throw new ArgumentNullException(nameof(obj));
}
if (key == null)
{
throw new ArgumentNullException(nameof(key));
}
var labels = obj.Labels();
return labels != null && labels.TryGetValue(key, out var value) ? value : null;
}
/// <summary>Gets <see cref="V1OwnerReference"/> that matches the given object, or null if no matching reference exists.</summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <param name="owner">the owner of the object<see cref="V1ObjectMeta"/></param>
/// <returns>the <see cref="V1OwnerReference"/> that matches the given object, or null if no matching reference exists.</returns>
public static V1OwnerReference GetOwnerReference(
this IMetadata<V1ObjectMeta> obj,
IKubernetesObject<V1ObjectMeta> owner) =>
GetOwnerReference(obj, r => r.Matches(owner));
/// <summary>Gets the <see cref="V1OwnerReference"/> that matches the given predicate, or null if no matching reference exists.</summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <param name="predicate">a <see cref="System.Predicate{V1OwnerReference}"/> to test owner reference</param>
/// <returns>the <see cref="V1OwnerReference"/> that matches the given object, or null if no matching reference exists.</returns>
public static V1OwnerReference GetOwnerReference(
this IMetadata<V1ObjectMeta> obj,
Predicate<V1OwnerReference> predicate)
{
var index = FindOwnerReference(obj, predicate);
return index >= 0 ? obj.Metadata.OwnerReferences[index] : null;
}
/// <summary>Determines whether the Kubernetes object has the given finalizer.</summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <param name="finalizer">the finalizer</param>
/// <returns>true if object has the finalizer</returns>
public static bool HasFinalizer(this IMetadata<V1ObjectMeta> obj, string finalizer)
{
if (obj == null)
{
throw new ArgumentNullException(nameof(obj));
}
if (string.IsNullOrEmpty(finalizer))
{
throw new ArgumentNullException(nameof(finalizer));
}
return obj.Finalizers() != null && obj.Metadata.Finalizers.Contains(finalizer);
}
/// <summary>Determines whether one object is owned by another.</summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <param name="owner">the owner of the object<see cref="V1ObjectMeta"/></param>
/// <returns>true if owned by obj</returns>
public static bool IsOwnedBy(this IMetadata<V1ObjectMeta> obj, IKubernetesObject<V1ObjectMeta> owner) =>
FindOwnerReference(obj, owner) >= 0;
/// <summary>Gets the labels of a Kubernetes object.</summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <returns>labels of the object in a Dictionary</returns>
public static IDictionary<string, string> Labels(this IMetadata<V1ObjectMeta> obj) => obj?.Metadata?.Labels;
/// <summary>Gets the name of a Kubernetes object.</summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <returns>the name of the Kubernetes object</returns>
public static string Name(this IMetadata<V1ObjectMeta> obj) => obj?.Metadata?.Name;
/// <summary>Gets the namespace of a Kubernetes object.</summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <returns>the namespace of the Kubernetes object</returns>
public static string Namespace(this IMetadata<V1ObjectMeta> obj) => obj?.Metadata?.NamespaceProperty;
/// <summary>Gets the owner references of a Kubernetes object.</summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <returns>all owner reference in a list of the Kubernetes object</returns>
public static IList<V1OwnerReference> OwnerReferences(this IMetadata<V1ObjectMeta> obj) =>
obj?.Metadata?.OwnerReferences;
/// <summary>Removes the given finalizer from a Kubernetes object if it exists.</summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <param name="finalizer">the finalizer</param>
/// <returns>Returns true if the finalizer was removed and false if it didn't exist.</returns>
public static bool RemoveFinalizer(this IMetadata<V1ObjectMeta> obj, string finalizer)
{
if (obj == null)
{
throw new ArgumentNullException(nameof(obj));
}
if (string.IsNullOrEmpty(finalizer))
{
throw new ArgumentNullException(nameof(finalizer));
}
return obj.Finalizers() != null && obj.Metadata.Finalizers.Remove(finalizer);
}
/// <summary>Removes the first <see cref="V1OwnerReference"/> that matches the given object and returns it, or returns null if no
/// matching reference could be found.
/// </summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <param name="owner">the owner of the object<see cref="V1ObjectMeta"/></param>
/// <returns>the first <see cref="V1OwnerReference"/> that matches the given object</returns>
public static V1OwnerReference RemoveOwnerReference(
this IMetadata<V1ObjectMeta> obj,
IKubernetesObject<V1ObjectMeta> owner)
{
var index = FindOwnerReference(obj, owner);
var ownerRef = index >= 0 ? obj?.Metadata.OwnerReferences[index] : null;
if (index >= 0)
{
obj?.Metadata.OwnerReferences.RemoveAt(index);
}
return ownerRef;
}
/// <summary>Removes all <see cref="V1OwnerReference">owner references</see> that match the given predicate, and returns true if
/// any were removed.
/// </summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <param name="predicate">a <see cref="System.Predicate{V1OwnerReference}"/> to test owner reference</param>
/// <returns>true if any were removed</returns>
public static bool RemoveOwnerReferences(
this IMetadata<V1ObjectMeta> obj,
Predicate<V1OwnerReference> predicate)
{
if (obj == null)
{
throw new ArgumentNullException(nameof(obj));
}
if (predicate == null)
{
throw new ArgumentNullException(nameof(predicate));
}
var removed = false;
var refs = obj.Metadata?.OwnerReferences;
if (refs != null)
{
for (var i = refs.Count - 1; i >= 0; i--)
{
if (predicate(refs[i]))
{
refs.RemoveAt(i);
removed = true;
}
}
}
return removed;
}
/// <summary>Removes all <see cref="V1OwnerReference">owner references</see> that match the given object, and returns true if
/// any were removed.
/// </summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <param name="owner">the owner of the object<see cref="V1ObjectMeta"/></param>
/// <returns>true if any were removed</returns>
public static bool RemoveOwnerReferences(
this IMetadata<V1ObjectMeta> obj,
IKubernetesObject<V1ObjectMeta> owner) =>
RemoveOwnerReferences(obj, r => r.Matches(owner));
/// <summary>Gets the resource version of a Kubernetes object.</summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <returns>the resource version of a Kubernetes object</returns>
public static string ResourceVersion(this IMetadata<V1ObjectMeta> obj) => obj?.Metadata?.ResourceVersion;
/// <summary>Sets or removes an annotation on a Kubernetes object.</summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <param name="key">the key of the annotation<see cref="V1ObjectMeta"/></param>
/// <param name="value">the value of the annotation, null to remove it<see cref="V1ObjectMeta"/></param>
public static void SetAnnotation(this IMetadata<V1ObjectMeta> obj, string key, string value)
{
if (obj == null)
{
throw new ArgumentNullException(nameof(obj));
}
if (key == null)
{
throw new ArgumentNullException(nameof(key));
}
if (value != null)
{
obj.EnsureMetadata().EnsureAnnotations()[key] = value;
}
else
{
obj.Metadata?.Annotations?.Remove(key);
}
}
/// <summary>Sets or removes a label on a Kubernetes object.</summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <param name="key">the key of the label<see cref="V1ObjectMeta"/></param>
/// <param name="value">the value of the label, null to remove it<see cref="V1ObjectMeta"/></param>
public static void SetLabel(this IMetadata<V1ObjectMeta> obj, string key, string value)
{
if (obj == null)
{
throw new ArgumentNullException(nameof(obj));
}
if (key == null)
{
throw new ArgumentNullException(nameof(key));
}
if (value != null)
{
obj.EnsureMetadata().EnsureLabels()[key] = value;
}
else
{
obj.Metadata?.Labels?.Remove(key);
}
}
/// <summary>Gets the unique ID of a Kubernetes object.</summary>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <returns> the unique ID of a Kubernetes object</returns>
public static string Uid(this IMetadata<V1ObjectMeta> obj) => obj?.Metadata?.Uid;
/// <summary>Ensures that the <see cref="V1ObjectMeta.Annotations"/> field is not null, and returns it.</summary>
/// <param name="meta">the object meta<see cref="V1ObjectMeta"/></param>
/// <returns>the annotations in a Dictionary</returns>
public static IDictionary<string, string> EnsureAnnotations(this V1ObjectMeta meta)
{
if (meta == null)
{
throw new ArgumentNullException(nameof(meta));
}
if (meta.Annotations == null)
{
meta.Annotations = new Dictionary<string, string>();
}
return meta.Annotations;
}
/// <summary>Ensures that the <see cref="V1ObjectMeta.Finalizers"/> field is not null, and returns it.</summary>
/// <param name="meta">the object meta<see cref="V1ObjectMeta"/></param>
/// <returns>the list of finalizers</returns>
public static IList<string> EnsureFinalizers(this V1ObjectMeta meta)
{
if (meta == null)
{
throw new ArgumentNullException(nameof(meta));
}
if (meta.Finalizers == null)
{
meta.Finalizers = new List<string>();
}
return meta.Finalizers;
}
/// <summary>Ensures that the <see cref="V1ObjectMeta.Labels"/> field is not null, and returns it.</summary>
/// <param name="meta">the object meta<see cref="V1ObjectMeta"/></param>
/// <returns>the dictionary of labels</returns>
public static IDictionary<string, string> EnsureLabels(this V1ObjectMeta meta)
{
if (meta == null)
{
throw new ArgumentNullException(nameof(meta));
}
if (meta.Labels == null)
{
meta.Labels = new Dictionary<string, string>();
}
return meta.Labels;
}
/// <summary>Gets the namespace from Kubernetes metadata.</summary>
/// <param name="meta">the object meta<see cref="V1ObjectMeta"/></param>
/// <returns>the namespace from Kubernetes metadata</returns>
public static string Namespace(this V1ObjectMeta meta) => meta?.NamespaceProperty;
/// <summary>Sets the namespace from Kubernetes metadata.</summary>
/// <param name="meta">the object meta<see cref="V1ObjectMeta"/></param>
/// <param name="ns">the namespace</param>
public static void SetNamespace(this V1ObjectMeta meta, string ns)
{
if (meta == null)
{
throw new ArgumentNullException(nameof(meta));
}
meta.NamespaceProperty = ns;
}
/// <summary>Determines whether an object reference references the given object.</summary>
/// <param name="objref">the object reference<see cref="V1ObjectReference"/></param>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <returns>true if the object reference references the given object.</returns>
public static bool Matches(this V1ObjectReference objref, IKubernetesObject<V1ObjectMeta> obj)
{
if (objref == null)
{
throw new ArgumentNullException(nameof(objref));
}
if (obj == null)
{
throw new ArgumentNullException(nameof(obj));
}
return objref.ApiVersion == obj.ApiVersion && objref.Kind == obj.Kind && objref.Name == obj.Name() &&
objref.Uid == obj.Uid() &&
objref.NamespaceProperty == obj.Namespace();
}
/// <summary>Determines whether an owner reference references the given object.</summary>
/// <param name="owner">the object reference<see cref="V1ObjectReference"/></param>
/// <param name="obj">the object meta<see cref="V1ObjectMeta"/></param>
/// <returns>true if the owner reference references the given object</returns>
public static bool Matches(this V1OwnerReference owner, IKubernetesObject<V1ObjectMeta> obj)
{
if (owner == null)
{
throw new ArgumentNullException(nameof(owner));
}
if (obj == null)
{
throw new ArgumentNullException(nameof(obj));
}
return owner.ApiVersion == obj.ApiVersion && owner.Kind == obj.Kind && owner.Name == obj.Name() &&
owner.Uid == obj.Uid();
}
}
2020-04-20 09:37:39 -07:00
}