@spinnaker/google 2026.2.2 → 2026.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (548) hide show
  1. package/dist/autoHealingPolicy/GceAutoHealingPolicyEditor.d.ts +24 -0
  2. package/dist/autoHealingPolicy/index.d.ts +1 -0
  3. package/dist/autoscalingPolicy/GceAutoscalingPolicyEditor.d.ts +8 -0
  4. package/dist/autoscalingPolicy/GceAutoscalingPolicyWriter.d.ts +25 -0
  5. package/dist/autoscalingPolicy/IGceAutoscalingPolicy.d.ts +33 -2
  6. package/dist/autoscalingPolicy/index.d.ts +2 -0
  7. package/dist/cache/cacheConfigurer.service.d.ts +2 -2
  8. package/dist/certificate/certificate.reader.d.ts +1 -2
  9. package/dist/common/xpnNaming.gce.service.d.ts +4 -2
  10. package/dist/domain/autoHealingPolicy.d.ts +0 -5
  11. package/dist/domain/serverGroup.d.ts +24 -0
  12. package/dist/gce.module.d.ts +3 -1
  13. package/dist/healthCheck/healthCheck.read.service.d.ts +1 -2
  14. package/dist/image/ImageSelect.d.ts +0 -1
  15. package/dist/image/image.reader.d.ts +2 -2
  16. package/dist/index.d.ts +1 -1
  17. package/dist/index.js +1 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/instance/custom/customInstanceBuilder.gce.service.d.ts +17 -2
  20. package/dist/instance/details/GceInstanceDetails.d.ts +24 -0
  21. package/dist/instance/gceInstanceType.service.d.ts +3 -2
  22. package/dist/instance/gceMultiInstanceTask.transformer.d.ts +3 -2
  23. package/dist/loadBalancer/configure/choice/GceLoadBalancerChoiceModal.d.ts +34 -0
  24. package/dist/loadBalancer/configure/common/GceProxyLoadBalancerEditor.d.ts +36 -0
  25. package/dist/loadBalancer/configure/common/GceProxyLoadBalancerModal.d.ts +36 -0
  26. package/dist/loadBalancer/configure/common/gceLoadBalancerData.d.ts +47 -0
  27. package/dist/loadBalancer/configure/common/gceLoadBalancerModels.d.ts +106 -0
  28. package/dist/loadBalancer/configure/common/gceLoadBalancerSubmission.d.ts +10 -0
  29. package/dist/loadBalancer/configure/common/index.d.ts +4 -0
  30. package/dist/loadBalancer/configure/common/useGceLoadBalancerData.d.ts +5 -0
  31. package/dist/loadBalancer/configure/http/GceHttpLoadBalancerEditor.d.ts +33 -0
  32. package/dist/loadBalancer/configure/http/GceHttpLoadBalancerListenerEditor.d.ts +12 -0
  33. package/dist/loadBalancer/configure/http/GceHttpLoadBalancerModal.d.ts +37 -0
  34. package/dist/loadBalancer/configure/http/GceHttpLoadBalancerResourceEditors.d.ts +18 -0
  35. package/dist/loadBalancer/configure/http/GceHttpLoadBalancerRoutingEditor.d.ts +16 -0
  36. package/dist/loadBalancer/configure/network/GceNetworkLoadBalancerEditor.d.ts +30 -0
  37. package/dist/loadBalancer/configure/network/GceNetworkLoadBalancerModal.d.ts +58 -0
  38. package/dist/loadBalancer/details/gceLoadBalancerDetails.d.ts +36 -0
  39. package/dist/loadBalancer/httpLoadBalancerUtils.service.d.ts +0 -1
  40. package/dist/loadBalancer/loadBalancer.setTransformer.d.ts +1 -5
  41. package/dist/loadBalancer/loadBalancer.transformer.d.ts +3 -2
  42. package/dist/pipeline/stages/bake/gceBakeStage.d.ts +2 -2
  43. package/dist/pipeline/stages/cloneServerGroup/gceCloneServerGroupStage.d.ts +1 -2
  44. package/dist/pipeline/stages/destroyAsg/gceDestroyAsgStage.d.ts +1 -2
  45. package/dist/pipeline/stages/disableAsg/gceDisableAsgStage.d.ts +1 -2
  46. package/dist/pipeline/stages/disableCluster/gceDisableClusterStage.d.ts +1 -2
  47. package/dist/pipeline/stages/enableAsg/gceEnableAsgStage.d.ts +1 -2
  48. package/dist/pipeline/stages/findAmi/gceFindAmiStage.d.ts +1 -2
  49. package/dist/pipeline/stages/findImageFromTags/gceFindImageFromTagsStage.d.ts +1 -2
  50. package/dist/pipeline/stages/googleStageConfig.d.ts +40 -0
  51. package/dist/pipeline/stages/resizeAsg/gceResizeAsgStage.d.ts +1 -2
  52. package/dist/pipeline/stages/scaleDownCluster/gceScaleDownClusterStage.d.ts +1 -2
  53. package/dist/pipeline/stages/shrinkCluster/gceShrinkClusterStage.d.ts +1 -2
  54. package/dist/pipeline/stages/tagImage/gceTagImageStage.d.ts +1 -2
  55. package/dist/securityGroup/configure/GceSecurityGroupModal.d.ts +50 -0
  56. package/dist/securityGroup/details/GceSecurityGroupDetails.d.ts +12 -0
  57. package/dist/securityGroup/securityGroup.reader.d.ts +3 -2
  58. package/dist/securityGroup/securityGroup.transformer.d.ts +5 -2
  59. package/dist/serverGroup/configure/serverGroupCommandBuilder.service.d.ts +6 -2
  60. package/dist/serverGroup/configure/serverGroupConfiguration.service.d.ts +8 -0
  61. package/dist/serverGroup/configure/wizard/GceCloneServerGroupModal.d.ts +49 -0
  62. package/dist/serverGroup/configure/wizard/GceServerGroupWizard.helpers.d.ts +4 -0
  63. package/dist/serverGroup/configure/wizard/GceServerGroupWizard.types.d.ts +113 -0
  64. package/dist/serverGroup/configure/wizard/GceServerGroupWizardAdapter.d.ts +16 -0
  65. package/dist/serverGroup/configure/wizard/GceServerGroupWizardPage.d.ts +20 -0
  66. package/dist/serverGroup/configure/wizard/customInstance/GceCustomInstanceBuilder.d.ts +3 -0
  67. package/dist/serverGroup/configure/wizard/hiddenMetadataKeys.value.d.ts +1 -2
  68. package/dist/serverGroup/configure/wizard/index.d.ts +5 -0
  69. package/dist/serverGroup/configure/wizard/pages/AdvancedSettings.d.ts +20 -0
  70. package/dist/serverGroup/configure/wizard/pages/GceServerGroupFirewalls.d.ts +10 -0
  71. package/dist/serverGroup/configure/wizard/pages/GceServerGroupLoadBalancers.d.ts +21 -0
  72. package/dist/serverGroup/configure/wizard/pages/Policies.d.ts +14 -0
  73. package/dist/serverGroup/configure/wizard/pages/ServerGroupBasicSettings.d.ts +13 -0
  74. package/dist/serverGroup/configure/wizard/pages/ServerGroupCapacity.d.ts +35 -0
  75. package/dist/serverGroup/configure/wizard/pages/ServerGroupImageSettings.d.ts +11 -0
  76. package/dist/serverGroup/configure/wizard/pages/ServerGroupInstanceType.d.ts +29 -0
  77. package/dist/serverGroup/configure/wizard/pages/index.d.ts +8 -0
  78. package/dist/serverGroup/configure/wizard/securityGroups/tagManager.service.d.ts +17 -2
  79. package/dist/serverGroup/configure/wizard/zones/GceInstanceFlexibilityConfigurer.d.ts +19 -0
  80. package/dist/serverGroup/details/GceInstanceFlexibilityPolicyDetails.d.ts +6 -0
  81. package/dist/serverGroup/details/autoHealingPolicy/GceAutoHealingPolicyDetails.d.ts +11 -0
  82. package/dist/serverGroup/details/autoHealingPolicy/index.d.ts +2 -0
  83. package/dist/serverGroup/details/autoHealingPolicy/modal/GceUpsertAutoHealingPolicyModal.d.ts +21 -0
  84. package/dist/serverGroup/details/autoscalingPolicy/GceAutoscalingPolicyDetails.d.ts +12 -0
  85. package/dist/serverGroup/details/autoscalingPolicy/index.d.ts +2 -0
  86. package/dist/serverGroup/details/autoscalingPolicy/modal/GceUpsertAutoscalingPolicyModal.d.ts +26 -0
  87. package/dist/serverGroup/details/gceServerGroupDetails.d.ts +32 -0
  88. package/dist/serverGroup/details/resize/GceResizeServerGroupModal.d.ts +60 -0
  89. package/dist/serverGroup/details/rollback/GceRollbackServerGroupModal.d.ts +44 -0
  90. package/dist/serverGroup/details/stateful/StatefulMIGService.d.ts +2 -2
  91. package/dist/serverGroup/serverGroup.transformer.d.ts +2 -2
  92. package/dist/subnet/subnet.renderer.d.ts +4 -2
  93. package/dist/validation/ApplicationNameValidator.d.ts +6 -0
  94. package/package.json +3 -12
  95. package/src/autoHealingPolicy/GceAutoHealingPolicyEditor.spec.tsx +133 -0
  96. package/src/autoHealingPolicy/GceAutoHealingPolicyEditor.tsx +143 -0
  97. package/src/autoHealingPolicy/index.ts +1 -0
  98. package/src/autoscalingPolicy/GceAutoscalingPolicyEditor.spec.tsx +241 -0
  99. package/src/autoscalingPolicy/GceAutoscalingPolicyEditor.tsx +479 -0
  100. package/src/autoscalingPolicy/GceAutoscalingPolicyWriter.spec.ts +135 -0
  101. package/src/autoscalingPolicy/GceAutoscalingPolicyWriter.ts +101 -0
  102. package/src/autoscalingPolicy/IGceAutoscalingPolicy.ts +37 -2
  103. package/src/autoscalingPolicy/index.ts +2 -0
  104. package/src/cache/cacheConfigurer.service.js +30 -22
  105. package/src/certificate/certificate.reader.ts +1 -6
  106. package/src/common/xpnNaming.gce.service.js +4 -12
  107. package/src/domain/autoHealingPolicy.ts +0 -6
  108. package/src/domain/serverGroup.ts +25 -0
  109. package/src/gce.module.spec.ts +638 -0
  110. package/src/gce.module.ts +106 -126
  111. package/src/healthCheck/healthCheck.read.service.ts +1 -5
  112. package/src/help/gce.help.ts +3 -7
  113. package/src/image/ImageSelect.tsx +0 -15
  114. package/src/image/image.reader.spec.ts +10 -0
  115. package/src/image/image.reader.ts +3 -3
  116. package/src/index.ts +1 -1
  117. package/src/instance/custom/customInstanceBuilder.gce.service.js +123 -141
  118. package/src/instance/details/GceInstanceDetails.spec.tsx +354 -0
  119. package/src/instance/details/GceInstanceDetails.tsx +419 -0
  120. package/src/instance/gceInstanceType.service.js +6 -11
  121. package/src/instance/gceMultiInstanceTask.transformer.js +11 -23
  122. package/src/loadBalancer/configure/choice/GceLoadBalancerChoiceModal.less +17 -0
  123. package/src/loadBalancer/configure/choice/GceLoadBalancerChoiceModal.spec.tsx +279 -0
  124. package/src/loadBalancer/configure/choice/GceLoadBalancerChoiceModal.tsx +169 -0
  125. package/src/loadBalancer/configure/common/GceProxyLoadBalancerEditor.spec.tsx +353 -0
  126. package/src/loadBalancer/configure/common/GceProxyLoadBalancerEditor.tsx +503 -0
  127. package/src/loadBalancer/configure/common/GceProxyLoadBalancerModal.spec.tsx +313 -0
  128. package/src/loadBalancer/configure/common/GceProxyLoadBalancerModal.tsx +241 -0
  129. package/src/loadBalancer/configure/common/gceLoadBalancerData.spec.ts +117 -0
  130. package/src/loadBalancer/configure/common/gceLoadBalancerData.ts +191 -0
  131. package/src/loadBalancer/configure/common/gceLoadBalancerModels.spec.ts +409 -0
  132. package/src/loadBalancer/configure/common/gceLoadBalancerModels.ts +534 -0
  133. package/src/loadBalancer/configure/common/gceLoadBalancerSubmission.spec.ts +297 -0
  134. package/src/loadBalancer/configure/common/gceLoadBalancerSubmission.ts +127 -0
  135. package/src/loadBalancer/configure/common/index.spec.ts +17 -0
  136. package/src/loadBalancer/configure/common/index.ts +4 -0
  137. package/src/loadBalancer/configure/common/useGceLoadBalancerData.spec.tsx +78 -0
  138. package/src/loadBalancer/configure/common/useGceLoadBalancerData.ts +34 -0
  139. package/src/loadBalancer/configure/http/GceHttpLoadBalancerEditor.spec.tsx +472 -0
  140. package/src/loadBalancer/configure/http/GceHttpLoadBalancerEditor.tsx +586 -0
  141. package/src/loadBalancer/configure/http/GceHttpLoadBalancerListenerEditor.spec.tsx +94 -0
  142. package/src/loadBalancer/configure/http/GceHttpLoadBalancerListenerEditor.tsx +153 -0
  143. package/src/loadBalancer/configure/http/GceHttpLoadBalancerModal.spec.tsx +326 -0
  144. package/src/loadBalancer/configure/http/GceHttpLoadBalancerModal.tsx +217 -0
  145. package/src/loadBalancer/configure/http/GceHttpLoadBalancerResourceEditors.spec.tsx +86 -0
  146. package/src/loadBalancer/configure/http/GceHttpLoadBalancerResourceEditors.tsx +284 -0
  147. package/src/loadBalancer/configure/http/GceHttpLoadBalancerRoutingEditor.spec.tsx +82 -0
  148. package/src/loadBalancer/configure/http/GceHttpLoadBalancerRoutingEditor.tsx +174 -0
  149. package/src/loadBalancer/configure/http/httpLoadBalancerWizard.component.less +31 -12
  150. package/src/loadBalancer/configure/network/GceNetworkLoadBalancerEditor.spec.tsx +175 -0
  151. package/src/loadBalancer/configure/network/GceNetworkLoadBalancerEditor.tsx +315 -0
  152. package/src/loadBalancer/configure/network/GceNetworkLoadBalancerModal.spec.tsx +303 -0
  153. package/src/loadBalancer/configure/network/GceNetworkLoadBalancerModal.tsx +368 -0
  154. package/src/loadBalancer/details/gceLoadBalancerDetails.spec.tsx +65 -0
  155. package/src/loadBalancer/details/gceLoadBalancerDetails.tsx +456 -0
  156. package/src/loadBalancer/httpLoadBalancerUtils.service.ts +3 -6
  157. package/src/loadBalancer/loadBalancer.setTransformer.ts +3 -12
  158. package/src/loadBalancer/loadBalancer.transformer.js +5 -9
  159. package/src/pipeline/stages/bake/gceBakeStage.js +362 -155
  160. package/src/pipeline/stages/cloneServerGroup/gceCloneServerGroupStage.js +17 -83
  161. package/src/pipeline/stages/destroyAsg/gceDestroyAsgStage.js +24 -62
  162. package/src/pipeline/stages/disableAsg/gceDisableAsgStage.js +22 -68
  163. package/src/pipeline/stages/disableCluster/gceDisableClusterStage.js +21 -79
  164. package/src/pipeline/stages/enableAsg/gceEnableAsgStage.js +17 -65
  165. package/src/pipeline/stages/findAmi/gceFindAmiStage.js +17 -79
  166. package/src/pipeline/stages/findImageFromTags/gceFindImageFromTagsStage.js +121 -35
  167. package/src/pipeline/stages/googleStageConfig.js +580 -0
  168. package/src/pipeline/stages/googleStageConfig.spec.js +44 -0
  169. package/src/pipeline/stages/resizeAsg/gceResizeAsgStage.js +26 -125
  170. package/src/pipeline/stages/scaleDownCluster/gceScaleDownClusterStage.js +24 -78
  171. package/src/pipeline/stages/shrinkCluster/gceShrinkClusterStage.js +19 -73
  172. package/src/pipeline/stages/tagImage/gceTagImageStage.js +165 -36
  173. package/src/securityGroup/configure/GceSecurityGroupModal.spec.tsx +381 -0
  174. package/src/securityGroup/configure/GceSecurityGroupModal.tsx +543 -0
  175. package/src/securityGroup/details/GceSecurityGroupDetails.spec.tsx +232 -0
  176. package/src/securityGroup/details/GceSecurityGroupDetails.tsx +261 -0
  177. package/src/securityGroup/securityGroup.reader.js +3 -11
  178. package/src/securityGroup/securityGroup.transformer.js +8 -15
  179. package/src/serverGroup/configure/serverGroupCommandBuilder.service.js +563 -556
  180. package/src/serverGroup/configure/serverGroupCommandBuilder.service.spec.js +238 -0
  181. package/src/serverGroup/configure/serverGroupConfiguration.service.js +621 -653
  182. package/src/serverGroup/configure/serverGroupConfiguration.service.spec.js +9 -0
  183. package/src/serverGroup/configure/wizard/GceCloneServerGroupModal.spec.tsx +1228 -0
  184. package/src/serverGroup/configure/wizard/GceCloneServerGroupModal.tsx +824 -0
  185. package/src/serverGroup/configure/wizard/GceServerGroupWizard.helpers.ts +51 -0
  186. package/src/serverGroup/configure/wizard/GceServerGroupWizard.types.ts +176 -0
  187. package/src/serverGroup/configure/wizard/GceServerGroupWizardAdapter.ts +115 -0
  188. package/src/serverGroup/configure/wizard/GceServerGroupWizardPage.spec.tsx +460 -0
  189. package/src/serverGroup/configure/wizard/GceServerGroupWizardPage.tsx +285 -0
  190. package/src/serverGroup/configure/wizard/customInstance/GceCustomInstanceBuilder.spec.tsx +125 -0
  191. package/src/serverGroup/configure/wizard/customInstance/GceCustomInstanceBuilder.tsx +127 -0
  192. package/src/serverGroup/configure/wizard/hiddenMetadataKeys.value.js +2 -7
  193. package/src/serverGroup/configure/wizard/index.ts +5 -0
  194. package/src/serverGroup/configure/wizard/pages/AdvancedSettings.spec.tsx +339 -0
  195. package/src/serverGroup/configure/wizard/pages/AdvancedSettings.tsx +871 -0
  196. package/src/serverGroup/configure/wizard/pages/GceServerGroupFirewalls.spec.tsx +196 -0
  197. package/src/serverGroup/configure/wizard/pages/GceServerGroupFirewalls.tsx +278 -0
  198. package/src/serverGroup/configure/wizard/pages/GceServerGroupLoadBalancers.spec.tsx +643 -0
  199. package/src/serverGroup/configure/wizard/pages/GceServerGroupLoadBalancers.tsx +851 -0
  200. package/src/serverGroup/configure/wizard/pages/Policies.spec.tsx +317 -0
  201. package/src/serverGroup/configure/wizard/pages/Policies.tsx +293 -0
  202. package/src/serverGroup/configure/wizard/pages/ServerGroupBasicSettings.spec.tsx +418 -0
  203. package/src/serverGroup/configure/wizard/pages/ServerGroupBasicSettings.tsx +247 -0
  204. package/src/serverGroup/configure/wizard/pages/ServerGroupCapacity.spec.tsx +659 -0
  205. package/src/serverGroup/configure/wizard/pages/ServerGroupCapacity.tsx +470 -0
  206. package/src/serverGroup/configure/wizard/pages/ServerGroupImageSettings.spec.tsx +146 -0
  207. package/src/serverGroup/configure/wizard/pages/ServerGroupImageSettings.tsx +163 -0
  208. package/src/serverGroup/configure/wizard/pages/ServerGroupInstanceType.spec.tsx +536 -0
  209. package/src/serverGroup/configure/wizard/pages/ServerGroupInstanceType.tsx +728 -0
  210. package/src/serverGroup/configure/wizard/pages/index.ts +8 -0
  211. package/src/serverGroup/configure/wizard/securityGroups/tagManager.service.js +186 -182
  212. package/src/serverGroup/configure/wizard/zones/GceInstanceFlexibilityConfigurer.spec.tsx +390 -0
  213. package/src/serverGroup/configure/wizard/zones/GceInstanceFlexibilityConfigurer.tsx +310 -0
  214. package/src/serverGroup/details/GceInstanceFlexibilityPolicyDetails.spec.tsx +32 -0
  215. package/src/serverGroup/details/GceInstanceFlexibilityPolicyDetails.tsx +36 -0
  216. package/src/serverGroup/details/autoHealingPolicy/GceAutoHealingPolicyDetails.spec.tsx +192 -0
  217. package/src/serverGroup/details/autoHealingPolicy/GceAutoHealingPolicyDetails.tsx +83 -0
  218. package/src/serverGroup/details/autoHealingPolicy/index.ts +2 -0
  219. package/src/serverGroup/details/autoHealingPolicy/modal/GceUpsertAutoHealingPolicyModal.spec.tsx +94 -0
  220. package/src/serverGroup/details/autoHealingPolicy/modal/GceUpsertAutoHealingPolicyModal.tsx +102 -0
  221. package/src/serverGroup/details/autoscalingPolicy/GceAutoscalingPolicyDetails.spec.tsx +200 -0
  222. package/src/serverGroup/details/autoscalingPolicy/GceAutoscalingPolicyDetails.tsx +153 -0
  223. package/src/serverGroup/details/autoscalingPolicy/index.ts +2 -0
  224. package/src/serverGroup/details/autoscalingPolicy/modal/GceUpsertAutoscalingPolicyModal.spec.tsx +227 -0
  225. package/src/serverGroup/details/autoscalingPolicy/modal/GceUpsertAutoscalingPolicyModal.tsx +196 -0
  226. package/src/serverGroup/details/gceServerGroupDetails.spec.tsx +290 -0
  227. package/src/serverGroup/details/gceServerGroupDetails.tsx +372 -0
  228. package/src/serverGroup/details/resize/GceResizeServerGroupModal.spec.tsx +390 -0
  229. package/src/serverGroup/details/resize/GceResizeServerGroupModal.tsx +346 -0
  230. package/src/serverGroup/details/rollback/GceRollbackServerGroupModal.spec.tsx +168 -0
  231. package/src/serverGroup/details/rollback/GceRollbackServerGroupModal.tsx +196 -0
  232. package/src/serverGroup/details/stateful/UpdateBootImageButton.tsx +1 -1
  233. package/src/serverGroup/serverGroup.transformer.js +73 -54
  234. package/src/serverGroup/serverGroup.transformer.spec.js +90 -15
  235. package/src/subnet/subnet.renderer.js +10 -15
  236. package/src/validation/ApplicationNameValidator.spec.ts +47 -0
  237. package/src/validation/ApplicationNameValidator.ts +89 -0
  238. package/dist/address/address.reader.d.ts +0 -15
  239. package/dist/autoscalingPolicy/autoscalingPolicy.write.service.d.ts +0 -2
  240. package/dist/autoscalingPolicy/components/basicSettings/basicSettings.component.d.ts +0 -2
  241. package/dist/autoscalingPolicy/components/metricSettings/GcePredictiveAutoscaling.d.ts +0 -1
  242. package/dist/autoscalingPolicy/components/metricSettings/metricSettings.component.d.ts +0 -2
  243. package/dist/autoscalingPolicy/components/scalingSchedules/scalingSchedules.component.d.ts +0 -2
  244. package/dist/autoscalingPolicy/components/scalingSchedules/timeZoneSelect.d.ts +0 -13
  245. package/dist/backendService/backendService.reader.d.ts +0 -2
  246. package/dist/cache/cacheRefresh.component.d.ts +0 -1
  247. package/dist/common/footer.directive.d.ts +0 -2
  248. package/dist/gceNetworkSelectField.directive.d.ts +0 -2
  249. package/dist/gceRegionSelectField.directive.d.ts +0 -2
  250. package/dist/instance/custom/customInstance.filter.d.ts +0 -2
  251. package/dist/instance/details/instance.details.controller.d.ts +0 -2
  252. package/dist/interceptors/iap.interceptor.d.ts +0 -8
  253. package/dist/loadBalancer/configure/choice/gceLoadBalancerChoice.modal.d.ts +0 -1
  254. package/dist/loadBalancer/configure/choice/gceLoadBalancerPipelineModal.d.ts +0 -9
  255. package/dist/loadBalancer/configure/choice/loadBalancerTypeToWizardMap.constant.d.ts +0 -10
  256. package/dist/loadBalancer/configure/common/addressSelector.component.d.ts +0 -1
  257. package/dist/loadBalancer/configure/common/commonLoadBalancer.controller.d.ts +0 -17
  258. package/dist/loadBalancer/configure/common/commonLoadBalancerCommandBuilder.service.d.ts +0 -23
  259. package/dist/loadBalancer/configure/common/healthCheck.component.d.ts +0 -1
  260. package/dist/loadBalancer/configure/http/backendService/backendService.component.d.ts +0 -2
  261. package/dist/loadBalancer/configure/http/basicSettings/basicSettings.component.d.ts +0 -2
  262. package/dist/loadBalancer/configure/http/commandBuilder.service.d.ts +0 -2
  263. package/dist/loadBalancer/configure/http/createHttpLoadBalancer.controller.d.ts +0 -2
  264. package/dist/loadBalancer/configure/http/healthCheck/healthCheck.component.d.ts +0 -2
  265. package/dist/loadBalancer/configure/http/hostRule/hostRule.component.d.ts +0 -2
  266. package/dist/loadBalancer/configure/http/httpLoadBalancer.write.service.d.ts +0 -2
  267. package/dist/loadBalancer/configure/http/listeners/listener.component.d.ts +0 -2
  268. package/dist/loadBalancer/configure/http/pathRule/pathRule.component.d.ts +0 -2
  269. package/dist/loadBalancer/configure/http/transformer.service.d.ts +0 -2
  270. package/dist/loadBalancer/configure/internal/gceCreateInternalLoadBalancer.controller.d.ts +0 -1
  271. package/dist/loadBalancer/configure/internalhttp/createInternalHttpLoadBalancer.controller.d.ts +0 -3
  272. package/dist/loadBalancer/configure/network/createLoadBalancer.controller.d.ts +0 -2
  273. package/dist/loadBalancer/configure/ssl/gceCreateSslLoadBalancer.controller.d.ts +0 -1
  274. package/dist/loadBalancer/configure/tcp/gceCreateTcpLoadBalancer.controller.d.ts +0 -1
  275. package/dist/loadBalancer/details/backendService/backendService.component.d.ts +0 -1
  276. package/dist/loadBalancer/details/backendService/sessionAffinity.filter.d.ts +0 -1
  277. package/dist/loadBalancer/details/deleteModal/deleteModal.controller.d.ts +0 -1
  278. package/dist/loadBalancer/details/healthCheck/healthCheck.component.d.ts +0 -2
  279. package/dist/loadBalancer/details/hostAndPathRules/hostAndPathRules.controller.d.ts +0 -2
  280. package/dist/loadBalancer/details/hostAndPathRules/hostAndPathRules.service.d.ts +0 -2
  281. package/dist/loadBalancer/details/hostAndPathRules/hostAndPathRulesButton.component.d.ts +0 -2
  282. package/dist/loadBalancer/details/loadBalancerDetail.controller.d.ts +0 -2
  283. package/dist/loadBalancer/details/loadBalancerType/loadBalancerType.component.d.ts +0 -2
  284. package/dist/pipeline/stages/bake/bakeExecutionDetails.controller.d.ts +0 -2
  285. package/dist/securityGroup/clone/cloneSecurityGroup.controller.d.ts +0 -2
  286. package/dist/securityGroup/configure/ConfigSecurityGroupMixin.controller.d.ts +0 -2
  287. package/dist/securityGroup/configure/createSecurityGroup.controller.d.ts +0 -2
  288. package/dist/securityGroup/configure/editSecurityGroup.controller.d.ts +0 -2
  289. package/dist/securityGroup/details/securityGroupDetail.controller.d.ts +0 -2
  290. package/dist/securityGroup/securityGroupHelpText.service.d.ts +0 -13
  291. package/dist/serverGroup/configure/serverGroup.configure.gce.module.d.ts +0 -2
  292. package/dist/serverGroup/configure/wizard/advancedSettings/GceAcceleratorConfigurer.d.ts +0 -16
  293. package/dist/serverGroup/configure/wizard/advancedSettings/advancedSettingsSelector.directive.d.ts +0 -2
  294. package/dist/serverGroup/configure/wizard/advancedSettings/diskConfigurer.component.d.ts +0 -1
  295. package/dist/serverGroup/configure/wizard/autoHealingPolicy/autoHealingPolicySelector.component.d.ts +0 -1
  296. package/dist/serverGroup/configure/wizard/autoScalingPolicy/autoScalingPolicySelector.component.d.ts +0 -1
  297. package/dist/serverGroup/configure/wizard/capacity/advancedCapacitySelector.component.d.ts +0 -2
  298. package/dist/serverGroup/configure/wizard/capacity/simpleCapacitySelector.component.d.ts +0 -2
  299. package/dist/serverGroup/configure/wizard/cloneServerGroup.gce.controller.d.ts +0 -2
  300. package/dist/serverGroup/configure/wizard/customInstance/customInstanceConfigurer.component.d.ts +0 -1
  301. package/dist/serverGroup/configure/wizard/loadBalancers/elSevenOptions/backendServiceSelector.component.d.ts +0 -2
  302. package/dist/serverGroup/configure/wizard/loadBalancers/elSevenOptions/elSevenOptionsGenerator.component.d.ts +0 -2
  303. package/dist/serverGroup/configure/wizard/loadBalancers/loadBalancerSelector.directive.d.ts +0 -2
  304. package/dist/serverGroup/configure/wizard/loadBalancingPolicy/loadBalancingPolicySelector.component.d.ts +0 -2
  305. package/dist/serverGroup/configure/wizard/location/basicSettings.controller.d.ts +0 -2
  306. package/dist/serverGroup/configure/wizard/securityGroups/securityGroupSelector.directive.d.ts +0 -2
  307. package/dist/serverGroup/configure/wizard/securityGroups/securityGroupsRemoved.directive.d.ts +0 -2
  308. package/dist/serverGroup/configure/wizard/securityGroups/tagSelector.component.d.ts +0 -2
  309. package/dist/serverGroup/configure/wizard/securityGroups/tagSelectorGenerator.component.d.ts +0 -2
  310. package/dist/serverGroup/configure/wizard/zones/regionalSelector.directive.d.ts +0 -2
  311. package/dist/serverGroup/configure/wizard/zones/targetShapeSelector.directive.d.ts +0 -1
  312. package/dist/serverGroup/configure/wizard/zones/zoneSelector.directive.d.ts +0 -2
  313. package/dist/serverGroup/details/ServerGroupDiskDescriptions.d.ts +0 -1
  314. package/dist/serverGroup/details/autoHealingPolicy/addAutoHealingPolicyButton.component.d.ts +0 -1
  315. package/dist/serverGroup/details/autoHealingPolicy/autoHealingPolicy.component.d.ts +0 -1
  316. package/dist/serverGroup/details/autoHealingPolicy/modal/upsertAutoHealingPolicy.modal.controller.d.ts +0 -2
  317. package/dist/serverGroup/details/autoscalingPolicy/addAutoscalingPolicyButton.component.d.ts +0 -2
  318. package/dist/serverGroup/details/autoscalingPolicy/autoscalingPolicy.directive.d.ts +0 -2
  319. package/dist/serverGroup/details/autoscalingPolicy/modal/GceScaleInControls.d.ts +0 -1
  320. package/dist/serverGroup/details/autoscalingPolicy/modal/upsertAutoscalingPolicy.modal.controller.d.ts +0 -2
  321. package/dist/serverGroup/details/resize/resizeAutoscalingPolicy.component.d.ts +0 -2
  322. package/dist/serverGroup/details/resize/resizeCapacity.component.d.ts +0 -2
  323. package/dist/serverGroup/details/resize/resizeServerGroup.controller.d.ts +0 -2
  324. package/dist/serverGroup/details/rollback/rollbackServerGroup.controller.d.ts +0 -2
  325. package/dist/serverGroup/details/serverGroup.details.gce.module.d.ts +0 -2
  326. package/dist/serverGroup/details/serverGroupDetails.gce.controller.d.ts +0 -2
  327. package/dist/subnet/subnetSelectField.directive.d.ts +0 -2
  328. package/dist/validation/applicationName.validator.d.ts +0 -2
  329. package/src/address/address.reader.ts +0 -61
  330. package/src/applicationProviderFields/gceFields.html +0 -13
  331. package/src/autoscalingPolicy/autoscalingPolicy.write.service.js +0 -83
  332. package/src/autoscalingPolicy/components/basicSettings/basicSettings.component.html +0 -71
  333. package/src/autoscalingPolicy/components/basicSettings/basicSettings.component.js +0 -20
  334. package/src/autoscalingPolicy/components/metricSettings/GcePredictiveAutoscaling.tsx +0 -54
  335. package/src/autoscalingPolicy/components/metricSettings/metricSettings.component.html +0 -208
  336. package/src/autoscalingPolicy/components/metricSettings/metricSettings.component.js +0 -108
  337. package/src/autoscalingPolicy/components/scalingSchedules/scalingSchedules.component.html +0 -84
  338. package/src/autoscalingPolicy/components/scalingSchedules/scalingSchedules.component.js +0 -61
  339. package/src/autoscalingPolicy/components/scalingSchedules/timeZoneSelect.tsx +0 -63
  340. package/src/backendService/backendService.reader.js +0 -28
  341. package/src/cache/cacheRefresh.component.html +0 -17
  342. package/src/cache/cacheRefresh.component.ts +0 -53
  343. package/src/cache/cacheRefreshTooltip.html +0 -3
  344. package/src/common/footer.directive.html +0 -7
  345. package/src/common/footer.directive.js +0 -22
  346. package/src/gceNetworkSelectField.directive.js +0 -22
  347. package/src/gceRegionSelectField.directive.js +0 -22
  348. package/src/instance/custom/customInstance.filter.js +0 -26
  349. package/src/instance/details/instance.details.controller.js +0 -518
  350. package/src/instance/details/instance.details.controller.spec.js +0 -27
  351. package/src/instance/details/instanceDetails.html +0 -248
  352. package/src/instance/gceInstanceType.service.spec.js +0 -19
  353. package/src/interceptors/iap.interceptor.ts +0 -36
  354. package/src/loadBalancer/configure/choice/gceLoadBalancerChoice.modal.html +0 -33
  355. package/src/loadBalancer/configure/choice/gceLoadBalancerChoice.modal.spec.js +0 -66
  356. package/src/loadBalancer/configure/choice/gceLoadBalancerChoice.modal.ts +0 -64
  357. package/src/loadBalancer/configure/choice/gceLoadBalancerPipelineModal.ts +0 -47
  358. package/src/loadBalancer/configure/choice/loadBalancerTypeToWizardMap.constant.ts +0 -58
  359. package/src/loadBalancer/configure/common/addressSelector.component.ts +0 -47
  360. package/src/loadBalancer/configure/common/commonAdvancedSettingsPage.html +0 -32
  361. package/src/loadBalancer/configure/common/commonCreateLoadBalancer.html +0 -41
  362. package/src/loadBalancer/configure/common/commonEditLoadBalancer.html +0 -38
  363. package/src/loadBalancer/configure/common/commonHealthCheckPage.html +0 -16
  364. package/src/loadBalancer/configure/common/commonLoadBalancer.controller.ts +0 -56
  365. package/src/loadBalancer/configure/common/commonLoadBalancerCommandBuilder.service.ts +0 -87
  366. package/src/loadBalancer/configure/common/healthCheck.component.html +0 -179
  367. package/src/loadBalancer/configure/common/healthCheck.component.ts +0 -82
  368. package/src/loadBalancer/configure/gceL4LoadBalancerPipeline.spec.js +0 -143
  369. package/src/loadBalancer/configure/http/backendService/backendService.component.html +0 -157
  370. package/src/loadBalancer/configure/http/backendService/backendService.component.js +0 -80
  371. package/src/loadBalancer/configure/http/backendService/backendServices.html +0 -57
  372. package/src/loadBalancer/configure/http/basicSettings/basicSettings.component.html +0 -105
  373. package/src/loadBalancer/configure/http/basicSettings/basicSettings.component.js +0 -46
  374. package/src/loadBalancer/configure/http/basicSettings/basicSettings.html +0 -6
  375. package/src/loadBalancer/configure/http/commandBuilder.service.js +0 -404
  376. package/src/loadBalancer/configure/http/createHttpLoadBalancer.controller.js +0 -184
  377. package/src/loadBalancer/configure/http/createHttpLoadBalancer.controller.spec.js +0 -96
  378. package/src/loadBalancer/configure/http/createHttpLoadBalancer.html +0 -39
  379. package/src/loadBalancer/configure/http/defaultService/defaultService.html +0 -24
  380. package/src/loadBalancer/configure/http/editHttpLoadBalancer.html +0 -36
  381. package/src/loadBalancer/configure/http/healthCheck/healthCheck.component.html +0 -180
  382. package/src/loadBalancer/configure/http/healthCheck/healthCheck.component.js +0 -69
  383. package/src/loadBalancer/configure/http/healthCheck/healthChecks.html +0 -55
  384. package/src/loadBalancer/configure/http/hostRule/hostRule.component.html +0 -60
  385. package/src/loadBalancer/configure/http/hostRule/hostRule.component.js +0 -35
  386. package/src/loadBalancer/configure/http/hostRule/hostRules.html +0 -16
  387. package/src/loadBalancer/configure/http/httpLoadBalancer.write.service.js +0 -56
  388. package/src/loadBalancer/configure/http/listeners/listener.component.html +0 -245
  389. package/src/loadBalancer/configure/http/listeners/listener.component.js +0 -164
  390. package/src/loadBalancer/configure/http/listeners/listener.component.spec.js +0 -125
  391. package/src/loadBalancer/configure/http/listeners/listeners.html +0 -17
  392. package/src/loadBalancer/configure/http/pathRule/pathRule.component.html +0 -51
  393. package/src/loadBalancer/configure/http/pathRule/pathRule.component.js +0 -16
  394. package/src/loadBalancer/configure/http/transformer.service.js +0 -191
  395. package/src/loadBalancer/configure/http/transformer.service.spec.js +0 -182
  396. package/src/loadBalancer/configure/internal/createLoadBalancerProperties.html +0 -98
  397. package/src/loadBalancer/configure/internal/gceCreateInternalLoadBalancer.controller.ts +0 -284
  398. package/src/loadBalancer/configure/internal/listener.html +0 -41
  399. package/src/loadBalancer/configure/internalhttp/createInternalHttpLoadBalancer.controller.spec.js +0 -89
  400. package/src/loadBalancer/configure/internalhttp/createInternalHttpLoadBalancer.controller.ts +0 -196
  401. package/src/loadBalancer/configure/network/advancedSettings.html +0 -54
  402. package/src/loadBalancer/configure/network/createLoadBalancer.controller.js +0 -240
  403. package/src/loadBalancer/configure/network/createLoadBalancer.controller.spec.js +0 -118
  404. package/src/loadBalancer/configure/network/createLoadBalancer.html +0 -25
  405. package/src/loadBalancer/configure/network/createLoadBalancerProperties.html +0 -86
  406. package/src/loadBalancer/configure/network/editLoadBalancer.html +0 -29
  407. package/src/loadBalancer/configure/network/healthCheck.html +0 -36
  408. package/src/loadBalancer/configure/network/listeners.html +0 -55
  409. package/src/loadBalancer/configure/ssl/backendService.html +0 -31
  410. package/src/loadBalancer/configure/ssl/createLoadBalancerProperties.html +0 -86
  411. package/src/loadBalancer/configure/ssl/gceCreateSslLoadBalancer.controller.ts +0 -244
  412. package/src/loadBalancer/configure/ssl/listener.html +0 -43
  413. package/src/loadBalancer/configure/tcp/backendService.html +0 -31
  414. package/src/loadBalancer/configure/tcp/createLoadBalancerProperties.html +0 -86
  415. package/src/loadBalancer/configure/tcp/gceCreateTcpLoadBalancer.controller.ts +0 -234
  416. package/src/loadBalancer/configure/tcp/listener.html +0 -15
  417. package/src/loadBalancer/details/backendService/backendService.component.ts +0 -23
  418. package/src/loadBalancer/details/backendService/sessionAffinity.filter.ts +0 -11
  419. package/src/loadBalancer/details/deleteModal/deleteModal.controller.ts +0 -105
  420. package/src/loadBalancer/details/deleteModal/deleteModal.html +0 -31
  421. package/src/loadBalancer/details/healthCheck/healthCheck.component.html +0 -14
  422. package/src/loadBalancer/details/healthCheck/healthCheck.component.js +0 -13
  423. package/src/loadBalancer/details/hostAndPathRules/hostAndPathRules.controller.js +0 -23
  424. package/src/loadBalancer/details/hostAndPathRules/hostAndPathRules.modal.html +0 -40
  425. package/src/loadBalancer/details/hostAndPathRules/hostAndPathRules.service.js +0 -41
  426. package/src/loadBalancer/details/hostAndPathRules/hostAndPathRulesButton.component.js +0 -39
  427. package/src/loadBalancer/details/loadBalancerDetail.controller.js +0 -260
  428. package/src/loadBalancer/details/loadBalancerDetail.controller.spec.js +0 -41
  429. package/src/loadBalancer/details/loadBalancerDetails.html +0 -202
  430. package/src/loadBalancer/details/loadBalancerType/loadBalancerType.component.js +0 -31
  431. package/src/loadBalancer/details/loadBalancerType/loadBalancerType.component.spec.js +0 -85
  432. package/src/networkSelectField.directive.html +0 -14
  433. package/src/pipeline/stages/bake/bakeExecutionDetails.controller.js +0 -40
  434. package/src/pipeline/stages/bake/bakeExecutionDetails.html +0 -60
  435. package/src/pipeline/stages/bake/bakeStage.html +0 -117
  436. package/src/pipeline/stages/cloneServerGroup/cloneServerGroupStage.html +0 -99
  437. package/src/pipeline/stages/cloneServerGroup/cloneServerGroupStepLabel.html +0 -1
  438. package/src/pipeline/stages/destroyAsg/destroyAsgStage.html +0 -9
  439. package/src/pipeline/stages/destroyAsg/destroyAsgStepLabel.html +0 -1
  440. package/src/pipeline/stages/disableAsg/disableAsgStage.html +0 -11
  441. package/src/pipeline/stages/disableAsg/disableAsgStepLabel.html +0 -1
  442. package/src/pipeline/stages/disableCluster/disableClusterStage.html +0 -26
  443. package/src/pipeline/stages/enableAsg/enableAsgStage.html +0 -11
  444. package/src/pipeline/stages/enableAsg/enableAsgStepLabel.html +0 -1
  445. package/src/pipeline/stages/findAmi/findAmiStage.html +0 -20
  446. package/src/pipeline/stages/findImageFromTags/findImageFromTagsExecutionDetails.html +0 -40
  447. package/src/pipeline/stages/findImageFromTags/findImageFromTagsStage.html +0 -8
  448. package/src/pipeline/stages/resizeAsg/resizeAsgStage.html +0 -97
  449. package/src/pipeline/stages/resizeAsg/resizeAsgStepLabel.html +0 -1
  450. package/src/pipeline/stages/scaleDownCluster/scaleDownClusterStage.html +0 -35
  451. package/src/pipeline/stages/shrinkCluster/shrinkClusterStage.html +0 -34
  452. package/src/pipeline/stages/tagImage/tagImageExecutionDetails.html +0 -39
  453. package/src/pipeline/stages/tagImage/tagImageStage.html +0 -14
  454. package/src/regionSelectField.directive.html +0 -18
  455. package/src/securityGroup/clone/cloneSecurityGroup.controller.js +0 -85
  456. package/src/securityGroup/clone/cloneSecurityGroup.html +0 -25
  457. package/src/securityGroup/configure/ConfigSecurityGroupMixin.controller.js +0 -318
  458. package/src/securityGroup/configure/createSecurityGroup.controller.js +0 -62
  459. package/src/securityGroup/configure/createSecurityGroup.html +0 -25
  460. package/src/securityGroup/configure/createSecurityGroupIngress.html +0 -81
  461. package/src/securityGroup/configure/createSecurityGroupProperties.html +0 -70
  462. package/src/securityGroup/configure/createSecurityGroupSourceFilters.html +0 -56
  463. package/src/securityGroup/configure/createSecurityGroupTargets.html +0 -43
  464. package/src/securityGroup/configure/editSecurityGroup.controller.js +0 -132
  465. package/src/securityGroup/configure/editSecurityGroup.html +0 -26
  466. package/src/securityGroup/details/securityGroupDetail.controller.js +0 -258
  467. package/src/securityGroup/details/securityGroupDetail.html +0 -171
  468. package/src/securityGroup/securityGroupHelpText.service.spec.ts +0 -102
  469. package/src/securityGroup/securityGroupHelpText.service.ts +0 -83
  470. package/src/serverGroup/configure/serverGroup.configure.gce.module.js +0 -59
  471. package/src/serverGroup/configure/wizard/advancedSettings/GceAcceleratorConfigurer.tsx +0 -222
  472. package/src/serverGroup/configure/wizard/advancedSettings/advancedSettings.directive.html +0 -277
  473. package/src/serverGroup/configure/wizard/advancedSettings/advancedSettings.html +0 -9
  474. package/src/serverGroup/configure/wizard/advancedSettings/advancedSettingsSelector.directive.js +0 -71
  475. package/src/serverGroup/configure/wizard/advancedSettings/advancedSettingsSelector.directive.spec.js +0 -58
  476. package/src/serverGroup/configure/wizard/advancedSettings/diskConfigurer.component.ts +0 -199
  477. package/src/serverGroup/configure/wizard/autoHealingPolicy/autoHealingPolicy.html +0 -20
  478. package/src/serverGroup/configure/wizard/autoHealingPolicy/autoHealingPolicySelector.component.html +0 -90
  479. package/src/serverGroup/configure/wizard/autoHealingPolicy/autoHealingPolicySelector.component.ts +0 -70
  480. package/src/serverGroup/configure/wizard/autoScalingPolicy/autoScalingPolicy.html +0 -20
  481. package/src/serverGroup/configure/wizard/autoScalingPolicy/autoScalingPolicySelector.component.html +0 -21
  482. package/src/serverGroup/configure/wizard/autoScalingPolicy/autoScalingPolicySelector.component.js +0 -44
  483. package/src/serverGroup/configure/wizard/capacity/advancedCapacitySelector.component.html +0 -42
  484. package/src/serverGroup/configure/wizard/capacity/advancedCapacitySelector.component.js +0 -16
  485. package/src/serverGroup/configure/wizard/capacity/capacity.html +0 -16
  486. package/src/serverGroup/configure/wizard/capacity/simpleCapacitySelector.component.html +0 -14
  487. package/src/serverGroup/configure/wizard/capacity/simpleCapacitySelector.component.js +0 -22
  488. package/src/serverGroup/configure/wizard/capacity/simpleCapacitySelector.component.spec.js +0 -31
  489. package/src/serverGroup/configure/wizard/capacity/zones.html +0 -7
  490. package/src/serverGroup/configure/wizard/cloneServerGroup.gce.controller.js +0 -476
  491. package/src/serverGroup/configure/wizard/customInstance/customInstanceBuilder.html +0 -13
  492. package/src/serverGroup/configure/wizard/customInstance/customInstanceConfigurer.component.ts +0 -21
  493. package/src/serverGroup/configure/wizard/instanceType/instanceType.html +0 -11
  494. package/src/serverGroup/configure/wizard/loadBalancers/elSevenOptions/backendServiceSelector.component.html +0 -21
  495. package/src/serverGroup/configure/wizard/loadBalancers/elSevenOptions/backendServiceSelector.component.js +0 -33
  496. package/src/serverGroup/configure/wizard/loadBalancers/elSevenOptions/elSevenOptionsGenerator.component.js +0 -42
  497. package/src/serverGroup/configure/wizard/loadBalancers/loadBalancerSelector.directive.html +0 -53
  498. package/src/serverGroup/configure/wizard/loadBalancers/loadBalancerSelector.directive.js +0 -55
  499. package/src/serverGroup/configure/wizard/loadBalancers/loadBalancers.html +0 -5
  500. package/src/serverGroup/configure/wizard/loadBalancingPolicy/loadBalancingPolicySelector.component.html +0 -182
  501. package/src/serverGroup/configure/wizard/loadBalancingPolicy/loadBalancingPolicySelector.component.less +0 -11
  502. package/src/serverGroup/configure/wizard/loadBalancingPolicy/loadBalancingPolicySelector.component.ts +0 -153
  503. package/src/serverGroup/configure/wizard/location/basicSettings.controller.js +0 -139
  504. package/src/serverGroup/configure/wizard/location/basicSettings.html +0 -167
  505. package/src/serverGroup/configure/wizard/securityGroups/securityGroupSelector.directive.html +0 -66
  506. package/src/serverGroup/configure/wizard/securityGroups/securityGroupSelector.directive.js +0 -48
  507. package/src/serverGroup/configure/wizard/securityGroups/securityGroups.html +0 -4
  508. package/src/serverGroup/configure/wizard/securityGroups/securityGroupsRemoved.directive.html +0 -14
  509. package/src/serverGroup/configure/wizard/securityGroups/securityGroupsRemoved.directive.js +0 -25
  510. package/src/serverGroup/configure/wizard/securityGroups/tagSelector.component.html +0 -26
  511. package/src/serverGroup/configure/wizard/securityGroups/tagSelector.component.js +0 -31
  512. package/src/serverGroup/configure/wizard/securityGroups/tagSelectorGenerator.component.js +0 -44
  513. package/src/serverGroup/configure/wizard/serverGroupWizard.html +0 -52
  514. package/src/serverGroup/configure/wizard/templateSelection/templateSelection.html +0 -9
  515. package/src/serverGroup/configure/wizard/zones/regionalSelector.directive.html +0 -13
  516. package/src/serverGroup/configure/wizard/zones/regionalSelector.directive.js +0 -21
  517. package/src/serverGroup/configure/wizard/zones/targetShapeSelector.directive.html +0 -13
  518. package/src/serverGroup/configure/wizard/zones/targetShapeSelector.directive.ts +0 -20
  519. package/src/serverGroup/configure/wizard/zones/zoneSelector.directive.html +0 -24
  520. package/src/serverGroup/configure/wizard/zones/zoneSelector.directive.js +0 -21
  521. package/src/serverGroup/details/ServerGroupDiskDescriptions.tsx +0 -97
  522. package/src/serverGroup/details/autoHealingPolicy/addAutoHealingPolicyButton.component.ts +0 -38
  523. package/src/serverGroup/details/autoHealingPolicy/autoHealingPolicy.component.ts +0 -73
  524. package/src/serverGroup/details/autoHealingPolicy/modal/upsertAutoHealingPolicy.modal.controller.ts +0 -88
  525. package/src/serverGroup/details/autoHealingPolicy/modal/upsertAutoHealingPolicy.modal.html +0 -29
  526. package/src/serverGroup/details/autoscalingPolicy/addAutoscalingPolicyButton.component.js +0 -38
  527. package/src/serverGroup/details/autoscalingPolicy/autoscalingPolicy.directive.html +0 -49
  528. package/src/serverGroup/details/autoscalingPolicy/autoscalingPolicy.directive.js +0 -138
  529. package/src/serverGroup/details/autoscalingPolicy/modal/GceScaleInControls.tsx +0 -137
  530. package/src/serverGroup/details/autoscalingPolicy/modal/upsertAutoscalingPolicy.modal.controller.js +0 -56
  531. package/src/serverGroup/details/autoscalingPolicy/modal/upsertAutoscalingPolicy.modal.html +0 -38
  532. package/src/serverGroup/details/resize/resizeAutoscalingPolicy.component.html +0 -55
  533. package/src/serverGroup/details/resize/resizeAutoscalingPolicy.component.js +0 -60
  534. package/src/serverGroup/details/resize/resizeCapacity.component.html +0 -36
  535. package/src/serverGroup/details/resize/resizeCapacity.component.js +0 -46
  536. package/src/serverGroup/details/resize/resizeServerGroup.controller.js +0 -64
  537. package/src/serverGroup/details/resize/resizeServerGroup.controller.spec.js +0 -119
  538. package/src/serverGroup/details/resize/resizeServerGroup.html +0 -41
  539. package/src/serverGroup/details/rollback/rollbackServerGroup.controller.js +0 -73
  540. package/src/serverGroup/details/rollback/rollbackServerGroup.html +0 -43
  541. package/src/serverGroup/details/serverGroup.details.gce.module.js +0 -17
  542. package/src/serverGroup/details/serverGroupDetails.gce.controller.js +0 -511
  543. package/src/serverGroup/details/serverGroupDetails.gce.controller.spec.js +0 -26
  544. package/src/serverGroup/details/serverGroupDetails.html +0 -359
  545. package/src/serverGroup/details/serverGroupDetails.less +0 -3
  546. package/src/subnet/subnetSelectField.directive.html +0 -21
  547. package/src/subnet/subnetSelectField.directive.js +0 -24
  548. package/src/validation/applicationName.validator.js +0 -114
@@ -0,0 +1,824 @@
1
+ import { cloneDeep } from 'lodash';
2
+ import React from 'react';
3
+
4
+ import type {
5
+ Application,
6
+ DeckRuntimeServices,
7
+ IModalComponentProps,
8
+ IRouterInjectedProps,
9
+ IStage,
10
+ IWizardPageInjectedProps,
11
+ } from '@spinnaker/core';
12
+ import {
13
+ DeckRuntimeContext,
14
+ noop,
15
+ ReactModal,
16
+ TaskMonitor,
17
+ withRouter,
18
+ WizardModal,
19
+ WizardPage,
20
+ } from '@spinnaker/core';
21
+
22
+ import { validateGceServerGroupCommand } from './GceServerGroupWizard.helpers';
23
+ import type {
24
+ IGceServerGroupCommand,
25
+ IGceServerGroupCommandBuilderAdapter,
26
+ IGceServerGroupConfigurationAdapter,
27
+ IGceServerGroupWizardAdapter,
28
+ IGceServerGroupWizardCommandState,
29
+ } from './GceServerGroupWizard.types';
30
+ import { GceServerGroupWizardAdapter } from './GceServerGroupWizardAdapter';
31
+ import { createGceServerGroupWizardCommandState } from './GceServerGroupWizardPage';
32
+ import {
33
+ AdvancedSettings,
34
+ GceServerGroupFirewalls,
35
+ GceServerGroupLoadBalancers,
36
+ Policies,
37
+ ServerGroupBasicSettings,
38
+ ServerGroupCapacity,
39
+ ServerGroupImageSettings,
40
+ ServerGroupInstanceType,
41
+ } from './pages';
42
+
43
+ interface IGceCloneServerGroupModalProps extends IModalComponentProps {
44
+ adapter?: IGceServerGroupWizardAdapter;
45
+ application: Application;
46
+ command: IGceServerGroupCommand;
47
+ forPipelineConfig?: boolean;
48
+ isNew?: boolean;
49
+ title?: string;
50
+ }
51
+
52
+ interface IGceCloneServerGroupModalState {
53
+ command: IGceServerGroupCommand;
54
+ initializationError: boolean;
55
+ loaded: boolean;
56
+ taskMonitor: TaskMonitor;
57
+ }
58
+
59
+ const GLOBAL_LOAD_BALANCER_NAMES = 'global-load-balancer-names';
60
+ const REGIONAL_LOAD_BALANCER_NAMES = 'load-balancer-names';
61
+ const BACKEND_SERVICE_NAMES = 'backend-service-names';
62
+
63
+ interface ILoadBalancerMetadataReference {
64
+ key: typeof GLOBAL_LOAD_BALANCER_NAMES | typeof REGIONAL_LOAD_BALANCER_NAMES;
65
+ names: string[];
66
+ }
67
+
68
+ interface IPersistedSelectionSnapshot {
69
+ autoHealingHealthCheck: any;
70
+ backendServiceMetadata: string[];
71
+ backendServices?: Record<string, string[]>;
72
+ credentials: string;
73
+ distributionZones: string[];
74
+ image: any;
75
+ implicitSecurityGroups: any[];
76
+ instanceType: any;
77
+ loadBalancerMetadata: Record<string, string[]>;
78
+ loadBalancerReferences: Record<string, ILoadBalancerMetadataReference>;
79
+ loadBalancers: any[];
80
+ minCpuPlatform: any;
81
+ network: any;
82
+ region: string;
83
+ regional: boolean;
84
+ securityGroups: string[];
85
+ subnet: any;
86
+ zone: any;
87
+ }
88
+
89
+ function compactMetadata(metadata: Record<string, string[]>): Record<string, string> {
90
+ return Object.keys(metadata).reduce((result: Record<string, string>, key: string) => {
91
+ const values = Array.from(new Set(metadata[key].filter(Boolean)));
92
+ if (values.length) {
93
+ result[key] = values.join(',');
94
+ }
95
+ return result;
96
+ }, {});
97
+ }
98
+
99
+ function loadBalancerName(loadBalancer: any): string {
100
+ return loadBalancer.name || loadBalancer;
101
+ }
102
+
103
+ function metadataValues(value: any): string[] {
104
+ if (Array.isArray(value)) {
105
+ return value;
106
+ }
107
+ return typeof value === 'string' ? value.split(',').map((item) => item.trim()) : [];
108
+ }
109
+
110
+ function metadataSource(command: IGceServerGroupCommand): Record<string, string[]> {
111
+ const loadBalancerMetadata = command.loadBalancerMetadata || {};
112
+ const instanceMetadata = command.instanceMetadata || {};
113
+ return {
114
+ [GLOBAL_LOAD_BALANCER_NAMES]: metadataValues(
115
+ loadBalancerMetadata[GLOBAL_LOAD_BALANCER_NAMES] || instanceMetadata[GLOBAL_LOAD_BALANCER_NAMES],
116
+ ),
117
+ [REGIONAL_LOAD_BALANCER_NAMES]: metadataValues(
118
+ loadBalancerMetadata[REGIONAL_LOAD_BALANCER_NAMES] || instanceMetadata[REGIONAL_LOAD_BALANCER_NAMES],
119
+ ),
120
+ };
121
+ }
122
+
123
+ function loadBalancerMetadataReference(name: string, loadBalancer: any): ILoadBalancerMetadataReference | undefined {
124
+ if (!loadBalancer) {
125
+ return undefined;
126
+ }
127
+ if (loadBalancer.loadBalancerType === 'HTTP' || loadBalancer.loadBalancerType === 'INTERNAL_MANAGED') {
128
+ const names = (loadBalancer.listeners || []).map((listener: any) => listener.name).filter(Boolean);
129
+ return names.length
130
+ ? {
131
+ key: loadBalancer.loadBalancerType === 'HTTP' ? GLOBAL_LOAD_BALANCER_NAMES : REGIONAL_LOAD_BALANCER_NAMES,
132
+ names,
133
+ }
134
+ : undefined;
135
+ }
136
+ return {
137
+ key:
138
+ loadBalancer.loadBalancerType === 'SSL' || loadBalancer.loadBalancerType === 'TCP'
139
+ ? GLOBAL_LOAD_BALANCER_NAMES
140
+ : REGIONAL_LOAD_BALANCER_NAMES,
141
+ names: [name],
142
+ };
143
+ }
144
+
145
+ function buildLoadBalancerMetadata(command: IGceServerGroupCommand): Record<string, string> {
146
+ const loadBalancerIndex = command.backingData?.filtered?.loadBalancerIndex || {};
147
+ const unavailableLoadBalancers = (command.loadBalancers || []).filter(
148
+ (loadBalancer: any) => !loadBalancer.loadBalancerType && !loadBalancerIndex[loadBalancerName(loadBalancer)],
149
+ );
150
+ const persistedMetadata = metadataSource(command);
151
+ const metadata: Record<string, string[]> = {
152
+ [GLOBAL_LOAD_BALANCER_NAMES]: unavailableLoadBalancers.length
153
+ ? [...persistedMetadata[GLOBAL_LOAD_BALANCER_NAMES]]
154
+ : [],
155
+ [REGIONAL_LOAD_BALANCER_NAMES]: unavailableLoadBalancers.length
156
+ ? [...persistedMetadata[REGIONAL_LOAD_BALANCER_NAMES]]
157
+ : [],
158
+ };
159
+
160
+ (command.loadBalancers || []).forEach((loadBalancer: any) => {
161
+ const name = loadBalancerName(loadBalancer);
162
+ const loadBalancerDetails = loadBalancer.loadBalancerType ? loadBalancer : loadBalancerIndex[name];
163
+ const reference = loadBalancerMetadataReference(name, loadBalancerDetails);
164
+ if (reference) {
165
+ metadata[reference.key].push(...reference.names);
166
+ }
167
+ });
168
+
169
+ const selectedLoadBalancers = new Set((command.loadBalancers || []).map(loadBalancerName));
170
+ if (command.backendServices && Object.keys(command.backendServices).length) {
171
+ metadata[BACKEND_SERVICE_NAMES] = Object.keys(command.backendServices)
172
+ .filter((loadBalancer) => selectedLoadBalancers.has(loadBalancer))
173
+ .flatMap((loadBalancer) => command.backendServices[loadBalancer]);
174
+ } else if (unavailableLoadBalancers.length) {
175
+ metadata[BACKEND_SERVICE_NAMES] = metadataValues(
176
+ command.backendServiceMetadata || command.instanceMetadata?.[BACKEND_SERVICE_NAMES],
177
+ );
178
+ }
179
+
180
+ return compactMetadata(metadata);
181
+ }
182
+
183
+ export function transformGceServerGroupCommand(command: IGceServerGroupCommand): IGceServerGroupCommand {
184
+ const transformed = cloneDeep(command);
185
+ const instanceMetadata = { ...(command.instanceMetadata || {}) };
186
+ delete instanceMetadata[GLOBAL_LOAD_BALANCER_NAMES];
187
+ delete instanceMetadata[REGIONAL_LOAD_BALANCER_NAMES];
188
+ delete instanceMetadata[BACKEND_SERVICE_NAMES];
189
+
190
+ transformed.instanceMetadata = {
191
+ ...instanceMetadata,
192
+ ...buildLoadBalancerMetadata(command),
193
+ };
194
+ transformed.tags = (command.tags || []).map((tag: any) => tag.value || tag);
195
+ transformed.targetSize = command.capacity?.desired;
196
+ if (command.autoscalingPolicy) {
197
+ transformed.capacity = {
198
+ ...command.capacity,
199
+ max: command.autoscalingPolicy.maxNumReplicas,
200
+ min: command.autoscalingPolicy.minNumReplicas,
201
+ };
202
+ } else if (command.capacity) {
203
+ transformed.capacity = {
204
+ ...command.capacity,
205
+ max: command.capacity.desired,
206
+ min: command.capacity.desired,
207
+ };
208
+ }
209
+ if (transformed.minCpuPlatform === '(Automatic)') {
210
+ transformed.minCpuPlatform = '';
211
+ }
212
+ delete transformed.loadBalancerMetadata;
213
+ delete transformed.securityGroups;
214
+ return transformed;
215
+ }
216
+
217
+ export class GceCloneServerGroupModalComponent extends React.Component<
218
+ IGceCloneServerGroupModalProps & IRouterInjectedProps,
219
+ IGceCloneServerGroupModalState
220
+ > {
221
+ public static contextType = DeckRuntimeContext;
222
+ public declare context: React.ContextType<typeof DeckRuntimeContext>;
223
+
224
+ public static defaultProps: Partial<IGceCloneServerGroupModalProps & IRouterInjectedProps> = {
225
+ closeModal: noop,
226
+ dismissModal: noop,
227
+ };
228
+
229
+ private adapter?: IGceServerGroupWizardAdapter;
230
+ private command: IGceServerGroupCommand;
231
+ private commandState: IGceServerGroupWizardCommandState;
232
+ private configureRequest = 0;
233
+ private applicationRefreshUnsubscribe?: () => void;
234
+ private formik: IWizardPageInjectedProps<IGceServerGroupCommand>['formik'] = null;
235
+ private unmounted = false;
236
+
237
+ public static show(props: IGceCloneServerGroupModalProps, runtimeServices: DeckRuntimeServices): Promise<any> {
238
+ return ReactModal.show(
239
+ GceCloneServerGroupModal,
240
+ props,
241
+ { dialogClassName: 'wizard-modal modal-lg' },
242
+ runtimeServices,
243
+ );
244
+ }
245
+
246
+ public constructor(
247
+ props: IGceCloneServerGroupModalProps & IRouterInjectedProps,
248
+ context: React.ContextType<typeof DeckRuntimeContext>,
249
+ ) {
250
+ super(props, context);
251
+ this.adapter = props.adapter;
252
+ this.command = cloneDeep(props.command);
253
+ this.commandState = createGceServerGroupWizardCommandState(this.command);
254
+ this.state = {
255
+ command: this.command,
256
+ initializationError: false,
257
+ loaded: Boolean(this.command.backingData?.filtered),
258
+ taskMonitor: new TaskMonitor({
259
+ application: props.application,
260
+ title: props.title || 'Creating your server group',
261
+ onDismiss: () => this.props.dismissModal(),
262
+ onTaskComplete: this.onTaskComplete,
263
+ }),
264
+ };
265
+ }
266
+
267
+ public componentDidMount(): void {
268
+ void this.configureCommand();
269
+ }
270
+
271
+ public componentWillUnmount(): void {
272
+ this.unmounted = true;
273
+ this.configureRequest++;
274
+ this.clearApplicationRefreshSubscription();
275
+ }
276
+
277
+ private configureCommand = async (): Promise<void> => {
278
+ const request = ++this.configureRequest;
279
+ const adapter = this.getAdapter();
280
+ try {
281
+ let command = this.formik?.values || this.command;
282
+ if (command.viewState?.requiresTemplateSelection) {
283
+ const baseCommand = await adapter.buildNewServerGroupCommand(this.props.application, {
284
+ mode: 'createPipeline',
285
+ });
286
+ command = initializePipelineCreateCommand(baseCommand, command);
287
+ }
288
+ if (this.unmounted || request !== this.configureRequest) {
289
+ return;
290
+ }
291
+
292
+ const configured = await adapter.configureCommand(this.props.application, command);
293
+ if (this.unmounted || request !== this.configureRequest) {
294
+ return;
295
+ }
296
+
297
+ const latestCommand = this.formik?.values || command;
298
+ const persistedSelections = snapshotPersistedSelections(latestCommand);
299
+ const refreshedCommand = mergeRefreshedCommand(latestCommand, configured);
300
+ initializeCommand(refreshedCommand, persistedSelections);
301
+ restoreUnavailableSelections(refreshedCommand, persistedSelections);
302
+ this.command = refreshedCommand;
303
+ this.commandState.command = refreshedCommand;
304
+ this.commandState.formikValues = refreshedCommand;
305
+ this.formik?.setValues(refreshedCommand);
306
+ this.setState({ command: refreshedCommand, initializationError: false, loaded: true });
307
+ } catch (_error) {
308
+ if (!this.unmounted && request === this.configureRequest) {
309
+ this.setState({ initializationError: true, loaded: false });
310
+ }
311
+ }
312
+ };
313
+
314
+ private retryConfiguration = (): Promise<void> => {
315
+ this.setState({ initializationError: false, loaded: false });
316
+ return this.configureCommand();
317
+ };
318
+
319
+ private getAdapter(): IGceServerGroupWizardAdapter {
320
+ if (!this.adapter) {
321
+ if (!this.context?.services) {
322
+ throw new Error('GCE server group wizard requires Deck runtime services');
323
+ }
324
+ const delegate = this.context.services.providerServiceDelegate;
325
+ this.adapter = new GceServerGroupWizardAdapter(
326
+ delegate.getDelegate<IGceServerGroupCommandBuilderAdapter>('gce', 'serverGroup.commandBuilder'),
327
+ delegate.getDelegate<IGceServerGroupConfigurationAdapter>('gce', 'serverGroup.configurationService'),
328
+ );
329
+ }
330
+ return this.adapter;
331
+ }
332
+
333
+ private submit = (command: IGceServerGroupCommand = this.formik?.values || this.command): any => {
334
+ const transformed = transformGceServerGroupCommand(command);
335
+ const mode = transformed.viewState?.mode;
336
+ if (this.props.forPipelineConfig || mode === 'createPipeline' || mode === 'editPipeline') {
337
+ return this.props.closeModal(transformed);
338
+ }
339
+ return this.state.taskMonitor.submit(() =>
340
+ this.context.services.serverGroupWriter.cloneServerGroup(transformed as any, this.props.application),
341
+ );
342
+ };
343
+
344
+ private onTaskComplete = (): void => {
345
+ this.clearApplicationRefreshSubscription();
346
+ this.applicationRefreshUnsubscribe = this.props.application.serverGroups.onNextRefresh(this.onApplicationRefresh);
347
+ this.props.application.serverGroups.refresh();
348
+ };
349
+
350
+ private onApplicationRefresh = (): void => {
351
+ this.clearApplicationRefreshSubscription();
352
+ if (this.unmounted) {
353
+ return;
354
+ }
355
+
356
+ const command = this.formik?.values || this.command;
357
+ const cloneStage = this.state.taskMonitor.task?.execution?.stages?.find(
358
+ (stage: IStage) => stage.type === 'cloneServerGroup',
359
+ );
360
+ const newServerGroupName = cloneStage?.context?.['deploy.server.groups']?.[command.region];
361
+ if (!newServerGroupName) {
362
+ return;
363
+ }
364
+
365
+ let transitionTo = '^.^.^.clusters.serverGroup';
366
+ if (this.props.stateService.includes('**.clusters.serverGroup')) {
367
+ transitionTo = '^.serverGroup';
368
+ }
369
+ if (this.props.stateService.includes('**.clusters.cluster.serverGroup')) {
370
+ transitionTo = '^.^.serverGroup';
371
+ }
372
+ if (this.props.stateService.includes('**.clusters')) {
373
+ transitionTo = '.serverGroup';
374
+ }
375
+ this.props.stateService.go(transitionTo, {
376
+ accountId: command.credentials,
377
+ provider: 'gce',
378
+ region: command.region,
379
+ serverGroup: newServerGroupName,
380
+ });
381
+ };
382
+
383
+ private clearApplicationRefreshSubscription = (): void => {
384
+ this.applicationRefreshUnsubscribe?.();
385
+ this.applicationRefreshUnsubscribe = undefined;
386
+ };
387
+
388
+ public render(): JSX.Element {
389
+ const { application, dismissModal, title } = this.props;
390
+ const { command, initializationError, loaded, taskMonitor } = this.state;
391
+
392
+ if (initializationError) {
393
+ return (
394
+ <div className="modal-content gce-server-group-initialization-error">
395
+ <div className="modal-header">
396
+ <button aria-label="Close" className="close" onClick={dismissModal} type="button">
397
+ <span aria-hidden="true">&times;</span>
398
+ </button>
399
+ <h3>{title || 'Create Server Group'}</h3>
400
+ </div>
401
+ <div className="modal-body">
402
+ <div className="alert alert-danger" role="alert">
403
+ Unable to load the resources required to configure this server group. Check your connection and try again.
404
+ </div>
405
+ </div>
406
+ <div className="modal-footer">
407
+ <button
408
+ className="btn btn-default gce-server-group-initialization-close"
409
+ onClick={dismissModal}
410
+ type="button"
411
+ >
412
+ Close
413
+ </button>
414
+ <button className="btn btn-primary" onClick={this.retryConfiguration} type="button">
415
+ Retry
416
+ </button>
417
+ </div>
418
+ </div>
419
+ );
420
+ }
421
+
422
+ const adapter = this.getAdapter();
423
+
424
+ return (
425
+ <WizardModal<IGceServerGroupCommand>
426
+ key={loaded ? 'loaded' : 'loading'}
427
+ closeModal={this.submit}
428
+ dismissModal={dismissModal}
429
+ heading={title || 'Create Server Group'}
430
+ initialValues={command}
431
+ loading={!loaded}
432
+ submitButtonLabel={command.viewState?.submitButtonLabel || 'Done'}
433
+ taskMonitor={taskMonitor}
434
+ validate={validateGceServerGroupCommand}
435
+ render={({ formik, nextIdx, wizard }) => {
436
+ this.formik = formik;
437
+ this.command = formik.values;
438
+ const pageProps = { adapter, app: application, commandState: this.commandState, formik };
439
+ return (
440
+ <>
441
+ <WizardPage
442
+ label="Basic Settings"
443
+ order={nextIdx()}
444
+ render={({ innerRef, onLoadingChanged }) => (
445
+ <ServerGroupBasicSettings ref={innerRef} {...pageProps} onLoadingChanged={onLoadingChanged} />
446
+ )}
447
+ wizard={wizard}
448
+ />
449
+ <WizardPage
450
+ label="Image"
451
+ order={nextIdx()}
452
+ render={({ innerRef, onLoadingChanged }) => (
453
+ <ServerGroupImageSettings ref={innerRef} {...pageProps} onLoadingChanged={onLoadingChanged} />
454
+ )}
455
+ wizard={wizard}
456
+ />
457
+ <WizardPage
458
+ label="Instance Type"
459
+ order={nextIdx()}
460
+ render={({ innerRef, onLoadingChanged }) => (
461
+ <ServerGroupInstanceType ref={innerRef} {...pageProps} onLoadingChanged={onLoadingChanged} />
462
+ )}
463
+ wizard={wizard}
464
+ />
465
+ <WizardPage
466
+ label="Capacity/Distribution"
467
+ order={nextIdx()}
468
+ render={({ innerRef, onLoadingChanged }) => (
469
+ <ServerGroupCapacity ref={innerRef} {...pageProps} onLoadingChanged={onLoadingChanged} />
470
+ )}
471
+ wizard={wizard}
472
+ />
473
+ <WizardPage
474
+ label="Load Balancers"
475
+ order={nextIdx()}
476
+ render={({ innerRef, onLoadingChanged }) => (
477
+ <GceServerGroupLoadBalancers ref={innerRef} {...pageProps} onLoadingChanged={onLoadingChanged} />
478
+ )}
479
+ wizard={wizard}
480
+ />
481
+ <WizardPage
482
+ label="Firewalls"
483
+ order={nextIdx()}
484
+ render={({ innerRef, onLoadingChanged }) => (
485
+ <GceServerGroupFirewalls ref={innerRef} {...pageProps} onLoadingChanged={onLoadingChanged} />
486
+ )}
487
+ wizard={wizard}
488
+ />
489
+ <WizardPage
490
+ label="Policies"
491
+ order={nextIdx()}
492
+ render={({ innerRef, onLoadingChanged }) => (
493
+ <Policies ref={innerRef} {...pageProps} onLoadingChanged={onLoadingChanged} />
494
+ )}
495
+ wizard={wizard}
496
+ />
497
+ <WizardPage
498
+ label="Advanced Settings"
499
+ order={nextIdx()}
500
+ render={({ innerRef, onLoadingChanged }) => (
501
+ <AdvancedSettings ref={innerRef} {...pageProps} onLoadingChanged={onLoadingChanged} />
502
+ )}
503
+ wizard={wizard}
504
+ />
505
+ </>
506
+ );
507
+ }}
508
+ />
509
+ );
510
+ }
511
+ }
512
+
513
+ export const GceCloneServerGroupModal = Object.assign(withRouter(GceCloneServerGroupModalComponent), {
514
+ show: GceCloneServerGroupModalComponent.show,
515
+ });
516
+
517
+ function initializeCommand(command: IGceServerGroupCommand, snapshot: IPersistedSelectionSnapshot): void {
518
+ const accountAvailable =
519
+ !snapshot.credentials || referenceValues(command.backingData?.accounts, ['name']).includes(snapshot.credentials);
520
+ if (!accountAvailable) {
521
+ return;
522
+ }
523
+
524
+ command.credentialsChanged?.(command);
525
+ const regionAvailable =
526
+ !snapshot.region || referenceValues(command.backingData?.filtered?.regions, ['name']).includes(snapshot.region);
527
+ if (!regionAvailable) {
528
+ return;
529
+ }
530
+
531
+ ['regionalChanged', 'regionChanged', 'networkChanged', 'zoneChanged', 'customInstanceChanged'].forEach((handler) =>
532
+ command[handler]?.(command),
533
+ );
534
+ }
535
+
536
+ function snapshotPersistedSelections(command: IGceServerGroupCommand): IPersistedSelectionSnapshot {
537
+ const loadBalancers = cloneDeep(command.loadBalancers || []);
538
+ const loadBalancerIndex = command.backingData?.filtered?.loadBalancerIndex || {};
539
+ return {
540
+ autoHealingHealthCheck: command.autoHealingPolicy
541
+ ? cloneDeep({
542
+ healthCheck: command.autoHealingPolicy.healthCheck,
543
+ healthCheckKind: command.autoHealingPolicy.healthCheckKind,
544
+ healthCheckUrl: command.autoHealingPolicy.healthCheckUrl,
545
+ })
546
+ : undefined,
547
+ backendServiceMetadata: metadataValues(command.backendServiceMetadata),
548
+ backendServices: command.backendServices ? cloneDeep(command.backendServices) : undefined,
549
+ credentials: command.credentials,
550
+ distributionZones: cloneDeep(command.distributionPolicy?.zones || []),
551
+ image: command.viewState?.imageId || command.image,
552
+ implicitSecurityGroups: cloneDeep(command.implicitSecurityGroups || []),
553
+ instanceType: command.instanceType,
554
+ loadBalancerMetadata: cloneDeep(metadataSource(command)),
555
+ loadBalancerReferences: loadBalancers.reduce(
556
+ (references: Record<string, ILoadBalancerMetadataReference>, loadBalancer: any) => {
557
+ const name = loadBalancerName(loadBalancer);
558
+ const reference = loadBalancerMetadataReference(
559
+ name,
560
+ loadBalancer.loadBalancerType ? loadBalancer : indexedLoadBalancer(loadBalancerIndex, name),
561
+ );
562
+ if (reference) {
563
+ references[name] = reference;
564
+ }
565
+ return references;
566
+ },
567
+ {},
568
+ ),
569
+ loadBalancers,
570
+ minCpuPlatform: command.minCpuPlatform,
571
+ network: command.network,
572
+ region: command.region,
573
+ regional: command.regional,
574
+ securityGroups: cloneDeep(command.securityGroups || []),
575
+ subnet: command.subnet,
576
+ zone: command.zone,
577
+ };
578
+ }
579
+
580
+ function restoreUnavailableSelections(command: IGceServerGroupCommand, snapshot: IPersistedSelectionSnapshot): void {
581
+ const filtered = command.backingData?.filtered || {};
582
+ if (!referenceValues(command.backingData?.accounts, ['name']).includes(snapshot.credentials)) {
583
+ command.credentials = snapshot.credentials;
584
+ }
585
+ if (!referenceValues(filtered.regions, ['name']).includes(snapshot.region)) {
586
+ command.region = snapshot.region;
587
+ }
588
+ if (snapshot.instanceType && !metadataValues(filtered.instanceTypes).includes(snapshot.instanceType)) {
589
+ command.instanceType = snapshot.instanceType;
590
+ }
591
+ if (snapshot.minCpuPlatform && !metadataValues(filtered.cpuPlatforms).includes(snapshot.minCpuPlatform)) {
592
+ command.minCpuPlatform = snapshot.minCpuPlatform;
593
+ }
594
+ if (
595
+ snapshot.image &&
596
+ !referenceValues(command.backingData?.allImages, ['imageName', 'name', 'id']).includes(snapshot.image)
597
+ ) {
598
+ command.image = snapshot.image;
599
+ command.viewState.imageId = snapshot.image;
600
+ }
601
+ if (snapshot.network && !referenceValues(filtered.networks, ['id', 'name']).includes(snapshot.network)) {
602
+ command.network = snapshot.network;
603
+ }
604
+ if (snapshot.subnet && !referenceValues(filtered.subnets, ['id', 'name']).includes(snapshot.subnet)) {
605
+ command.subnet = snapshot.subnet;
606
+ }
607
+ if (!snapshot.regional && snapshot.zone && !metadataValues(filtered.zones).includes(snapshot.zone)) {
608
+ command.zone = snapshot.zone;
609
+ }
610
+ if (snapshot.regional) {
611
+ const unavailableZones = snapshot.distributionZones.filter(
612
+ (zone) => !metadataValues(filtered.zones).includes(zone),
613
+ );
614
+ command.distributionPolicy = {
615
+ ...command.distributionPolicy,
616
+ zones: unique([...(command.distributionPolicy?.zones || []), ...unavailableZones]),
617
+ };
618
+ }
619
+
620
+ const firewallProperties = ['id', 'name'];
621
+ const availableFirewalls = new Set([
622
+ ...referenceValues(filtered.securityGroups, firewallProperties),
623
+ ...referenceValues(command.implicitSecurityGroups, firewallProperties),
624
+ ]);
625
+ command.securityGroups = unique([
626
+ ...(command.securityGroups || []),
627
+ ...snapshot.securityGroups.filter((firewall) => !availableFirewalls.has(firewall)),
628
+ ]);
629
+ command.implicitSecurityGroups = uniqueByReference(
630
+ [
631
+ ...(command.implicitSecurityGroups || []),
632
+ ...snapshot.implicitSecurityGroups.filter(
633
+ (firewall) => !availableFirewalls.has(referenceValue(firewall, firewallProperties)),
634
+ ),
635
+ ],
636
+ firewallProperties,
637
+ );
638
+
639
+ const healthCheck = snapshot.autoHealingHealthCheck;
640
+ const healthCheckAvailable = (filtered.healthChecks || []).some(
641
+ (option: any) => option.name === healthCheck?.healthCheck && option.kind === healthCheck?.healthCheckKind,
642
+ );
643
+ if (healthCheck?.healthCheck && !healthCheckAvailable) {
644
+ command.autoHealingPolicy = {
645
+ ...(command.autoHealingPolicy || {}),
646
+ ...healthCheck,
647
+ };
648
+ }
649
+
650
+ const loadBalancerIndex = filtered.loadBalancerIndex || {};
651
+ const unavailableLoadBalancers = snapshot.loadBalancers.filter(
652
+ (loadBalancer) => !indexedLoadBalancer(loadBalancerIndex, loadBalancerName(loadBalancer)),
653
+ );
654
+ const unavailableNames = new Set(unavailableLoadBalancers.map(loadBalancerName));
655
+ command.loadBalancers = uniqueByName([...(command.loadBalancers || []), ...unavailableLoadBalancers]);
656
+
657
+ const backendServices = cloneDeep(command.backendServices || {});
658
+ unavailableNames.forEach((name) => {
659
+ if (snapshot.backendServices?.[name]) {
660
+ backendServices[name] = snapshot.backendServices[name];
661
+ }
662
+ });
663
+ if (Object.keys(backendServices).length) {
664
+ command.backendServices = backendServices;
665
+ } else {
666
+ delete command.backendServices;
667
+ }
668
+ const knownBackendServices = Object.keys(snapshot.backendServices || {})
669
+ .filter((name) => !unavailableNames.has(name))
670
+ .flatMap((name) => snapshot.backendServices?.[name] || []);
671
+ const unavailableBackendMetadata = unavailableNames.size
672
+ ? snapshot.backendServiceMetadata.filter((backendService) => !knownBackendServices.includes(backendService))
673
+ : [];
674
+ command.backendServiceMetadata = unique([
675
+ ...metadataValues(command.backendServiceMetadata),
676
+ ...Object.keys(backendServices)
677
+ .filter((name) => unavailableNames.has(name))
678
+ .flatMap((name) => backendServices[name]),
679
+ ...unavailableBackendMetadata,
680
+ ]);
681
+
682
+ const metadata = metadataSource(command);
683
+ Object.keys(loadBalancerIndex).forEach((name) => {
684
+ const oldReference = snapshot.loadBalancerReferences[name];
685
+ if (oldReference) {
686
+ metadata[oldReference.key] = metadata[oldReference.key].filter((value) => !oldReference.names.includes(value));
687
+ }
688
+ });
689
+ (command.loadBalancers || []).forEach((loadBalancer: any) => {
690
+ const name = loadBalancerName(loadBalancer);
691
+ const refreshedReference = loadBalancerMetadataReference(name, loadBalancerIndex[name]);
692
+ if (refreshedReference) {
693
+ metadata[refreshedReference.key].push(...refreshedReference.names);
694
+ }
695
+ });
696
+ unavailableNames.forEach((name) => {
697
+ const reference = snapshot.loadBalancerReferences[name];
698
+ if (reference) {
699
+ metadata[reference.key].push(...reference.names);
700
+ }
701
+ });
702
+ const attributedMetadata = Object.values(snapshot.loadBalancerReferences).reduce(
703
+ (attributed, reference) => ({
704
+ ...attributed,
705
+ [reference.key]: unique([...(attributed[reference.key] || []), ...reference.names]),
706
+ }),
707
+ {} as Record<string, string[]>,
708
+ );
709
+ if (unavailableNames.size) {
710
+ [GLOBAL_LOAD_BALANCER_NAMES, REGIONAL_LOAD_BALANCER_NAMES].forEach((key) => {
711
+ metadata[key].push(
712
+ ...snapshot.loadBalancerMetadata[key].filter((value) => !(attributedMetadata[key] || []).includes(value)),
713
+ );
714
+ });
715
+ }
716
+ command.loadBalancerMetadata = {
717
+ [GLOBAL_LOAD_BALANCER_NAMES]: unique(metadata[GLOBAL_LOAD_BALANCER_NAMES]),
718
+ [REGIONAL_LOAD_BALANCER_NAMES]: unique(metadata[REGIONAL_LOAD_BALANCER_NAMES]),
719
+ };
720
+ Object.keys(command.loadBalancerMetadata).forEach((key) => {
721
+ if (!command.loadBalancerMetadata[key].length) {
722
+ delete command.loadBalancerMetadata[key];
723
+ }
724
+ });
725
+ }
726
+
727
+ function indexedLoadBalancer(loadBalancerIndex: Record<string, any>, name: string): any {
728
+ return (
729
+ loadBalancerIndex[name] ||
730
+ Object.values(loadBalancerIndex).find((loadBalancer: any) =>
731
+ (loadBalancer.listeners || []).some((listener: any) => listener.name === name),
732
+ )
733
+ );
734
+ }
735
+
736
+ function unique(values: string[]): string[] {
737
+ return Array.from(new Set(values.filter(Boolean)));
738
+ }
739
+
740
+ function referenceValue(value: any, properties: string[]): string {
741
+ if (typeof value === 'string') {
742
+ return value;
743
+ }
744
+ return properties.map((property) => value?.[property]).find((property) => typeof property === 'string');
745
+ }
746
+
747
+ function referenceValues(values: any[], properties: string[]): string[] {
748
+ return (values || []).map((value) => referenceValue(value, properties)).filter(Boolean);
749
+ }
750
+
751
+ function uniqueByReference(values: any[], properties: string[]): any[] {
752
+ const seen = new Set<string>();
753
+ return values.filter((value) => {
754
+ const reference = referenceValue(value, properties);
755
+ if (!reference || seen.has(reference)) {
756
+ return false;
757
+ }
758
+ seen.add(reference);
759
+ return true;
760
+ });
761
+ }
762
+
763
+ function uniqueByName(values: any[]): any[] {
764
+ const seen = new Set<string>();
765
+ return values.filter((value) => {
766
+ const name = loadBalancerName(value);
767
+ if (!name || seen.has(name)) {
768
+ return false;
769
+ }
770
+ seen.add(name);
771
+ return true;
772
+ });
773
+ }
774
+
775
+ function mergeRefreshedCommand(
776
+ current: IGceServerGroupCommand,
777
+ configured: IGceServerGroupCommand,
778
+ ): IGceServerGroupCommand {
779
+ const handlers = Object.keys(configured).reduce((result: Partial<IGceServerGroupCommand>, key) => {
780
+ if (typeof configured[key] === 'function') {
781
+ result[key] = configured[key];
782
+ }
783
+ return result;
784
+ }, {});
785
+
786
+ return {
787
+ ...configured,
788
+ ...current,
789
+ ...handlers,
790
+ backingData: configured.backingData,
791
+ viewState: {
792
+ ...configured.viewState,
793
+ ...current.viewState,
794
+ dirty: { ...configured.viewState?.dirty, ...current.viewState?.dirty },
795
+ },
796
+ };
797
+ }
798
+
799
+ function initializePipelineCreateCommand(
800
+ baseCommand: IGceServerGroupCommand,
801
+ placeholder: IGceServerGroupCommand,
802
+ ): IGceServerGroupCommand {
803
+ const placeholderViewState = placeholder.viewState || ({} as IGceServerGroupCommand['viewState']);
804
+ return {
805
+ ...baseCommand,
806
+ ...(placeholderViewState.overrides || {}),
807
+ viewState: {
808
+ ...baseCommand.viewState,
809
+ disableImageSelection: true,
810
+ disableStrategySelection: placeholderViewState.disableStrategySelection || false,
811
+ expectedArtifacts: placeholderViewState.expectedArtifacts || [],
812
+ hideClusterNamePreview: placeholderViewState.hideClusterNamePreview || false,
813
+ imageId: null,
814
+ imageSourceText: placeholderViewState.imageSourceText,
815
+ mode: 'createPipeline',
816
+ pipeline: placeholderViewState.pipeline,
817
+ readOnlyFields: placeholderViewState.readOnlyFields || {},
818
+ showImageSourceSelector: true,
819
+ stage: placeholderViewState.stage,
820
+ submitButtonLabel: 'Add',
821
+ templatingEnabled: true,
822
+ },
823
+ };
824
+ }