@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
@@ -1,109 +1,96 @@
1
1
  'use strict';
2
2
 
3
- import * as angular from 'angular';
4
3
  import _ from 'lodash';
5
4
 
6
- import {
7
- AccountService,
8
- CACHE_INITIALIZER_SERVICE,
9
- LOAD_BALANCER_READ_SERVICE,
10
- NetworkReader,
11
- SECURITY_GROUP_READER,
12
- SubnetReader,
13
- } from '@spinnaker/core';
5
+ import { AccountService, InfrastructureCaches, NetworkReader, SubnetReader } from '@spinnaker/core';
14
6
 
15
7
  import { GCEProviderSettings } from '../../gce.settings';
16
- import { GCE_HEALTH_CHECK_READER } from '../../healthCheck/healthCheck.read.service';
8
+ import { GceHealthCheckReader } from '../../healthCheck/healthCheck.read.service';
17
9
  import { getHealthCheckOptions } from '../../healthCheck/healthCheckUtils';
18
10
  import { GceImageReader } from '../../image';
19
- import { GOOGLE_INSTANCE_CUSTOM_CUSTOMINSTANCEBUILDER_GCE_SERVICE } from './../../instance/custom/customInstanceBuilder.gce.service';
20
- import { GOOGLE_INSTANCE_GCEINSTANCETYPE_SERVICE } from '../../instance/gceInstanceType.service';
21
- import { GCE_HTTP_LOAD_BALANCER_UTILS } from '../../loadBalancer/httpLoadBalancerUtils.service';
22
- import { LOAD_BALANCER_SET_TRANSFORMER } from '../../loadBalancer/loadBalancer.setTransformer';
11
+ import { GceCustomInstanceBuilderService } from './../../instance/custom/customInstanceBuilder.gce.service';
12
+ import { GceInstanceTypeService } from '../../instance/gceInstanceType.service';
13
+ import { GceHttpLoadBalancerUtils } from '../../loadBalancer/httpLoadBalancerUtils.service';
14
+ import { GceLoadBalancerSetTransformer } from '../../loadBalancer/loadBalancer.setTransformer';
23
15
  import { GceAcceleratorService } from './wizard/advancedSettings/gceAccelerator.service';
24
- import { GOOGLE_SERVERGROUP_CONFIGURE_WIZARD_SECURITYGROUPS_TAGMANAGER_SERVICE } from './wizard/securityGroups/tagManager.service';
16
+ import { GceTagManager } from './wizard/securityGroups/tagManager.service';
25
17
 
26
18
  export const GOOGLE_SERVERGROUP_CONFIGURE_SERVERGROUPCONFIGURATION_SERVICE =
27
19
  'spinnaker.serverGroup.configure.gce.configuration.service';
28
20
  export const name = GOOGLE_SERVERGROUP_CONFIGURE_SERVERGROUPCONFIGURATION_SERVICE; // for backwards compatibility
29
- angular
30
- .module(GOOGLE_SERVERGROUP_CONFIGURE_SERVERGROUPCONFIGURATION_SERVICE, [
31
- LOAD_BALANCER_SET_TRANSFORMER,
32
- SECURITY_GROUP_READER,
33
- CACHE_INITIALIZER_SERVICE,
34
- LOAD_BALANCER_READ_SERVICE,
35
- GOOGLE_INSTANCE_GCEINSTANCETYPE_SERVICE,
36
- GOOGLE_INSTANCE_CUSTOM_CUSTOMINSTANCEBUILDER_GCE_SERVICE,
37
- GCE_HTTP_LOAD_BALANCER_UTILS,
38
- GCE_HEALTH_CHECK_READER,
39
- GOOGLE_SERVERGROUP_CONFIGURE_WIZARD_SECURITYGROUPS_TAGMANAGER_SERVICE,
40
- ])
41
- .factory('gceServerGroupConfigurationService', [
42
- 'securityGroupReader',
43
- 'gceInstanceTypeService',
44
- 'cacheInitializer',
45
- '$q',
46
- 'loadBalancerReader',
47
- 'gceCustomInstanceBuilderService',
48
- 'gceHttpLoadBalancerUtils',
49
- 'gceHealthCheckReader',
50
- 'gceTagManager',
51
- 'gceLoadBalancerSetTransformer',
52
- function (
53
- securityGroupReader,
54
- gceInstanceTypeService,
55
- cacheInitializer,
56
- $q,
57
- loadBalancerReader,
58
- gceCustomInstanceBuilderService,
59
- gceHttpLoadBalancerUtils,
60
- gceHealthCheckReader,
61
- gceTagManager,
62
- gceLoadBalancerSetTransformer,
63
- ) {
64
- const persistentDiskTypes = ['pd-standard', 'pd-ssd', 'hyperdisk-balanced'];
65
- const authScopes = [
66
- 'cloud-platform',
67
- 'userinfo.email',
68
- 'compute.readonly',
69
- 'compute',
70
- 'cloud.useraccounts.readonly',
71
- 'cloud.useraccounts',
72
- 'devstorage.read_only',
73
- 'devstorage.write_only',
74
- 'devstorage.full_control',
75
- 'taskqueue',
76
- 'bigquery',
77
- 'sqlservice.admin',
78
- 'datastore',
79
- 'logging.write',
80
- 'logging.read',
81
- 'logging.admin',
82
- 'monitoring.write',
83
- 'monitoring.read',
84
- 'monitoring',
85
- 'bigtable.data.readonly',
86
- 'bigtable.data',
87
- 'bigtable.admin',
88
- 'bigtable.admin.table',
89
- ];
90
-
91
- function configureCommand(application, command) {
92
- return $q
93
- .all([
94
- AccountService.getCredentialsKeyedByAccount('gce'),
95
- securityGroupReader.getAllSecurityGroups(),
96
- NetworkReader.listNetworksByProvider('gce'),
97
- SubnetReader.listSubnetsByProvider('gce'),
98
- loadBalancerReader.listLoadBalancers('gce'),
99
- loadAllImages(command.credentials),
100
- gceInstanceTypeService.getAllTypesByRegion(),
101
- $q.when(angular.copy(persistentDiskTypes)),
102
- $q.when(angular.copy(authScopes)),
103
- gceHealthCheckReader.listHealthChecks(),
104
- AccountService.listAccounts('gce'),
105
- ])
106
- .then(function ([
21
+ // EVEN remains for non-flex regional MIGs. Flexibility requires BALANCED, ANY, or ANY_SINGLE_ZONE.
22
+ export const GCE_DISTRIBUTION_POLICY_TARGET_SHAPES = ['ANY', 'EVEN', 'BALANCED', 'ANY_SINGLE_ZONE'];
23
+ export class GceServerGroupConfigurationService {
24
+ static requiresDeckRuntimeServices = true;
25
+
26
+ constructor(
27
+ promiseService = { all: (values) => Promise.all(values), resolve: (value) => Promise.resolve(value) },
28
+ runtimeServices,
29
+ ) {
30
+ const securityGroupReader = runtimeServices.securityGroupReader;
31
+ const loadBalancerReader = runtimeServices.loadBalancerReader;
32
+ const gceInstanceTypeService = new GceInstanceTypeService(promiseService);
33
+ const gceCustomInstanceBuilderService = new GceCustomInstanceBuilderService();
34
+ const gceHttpLoadBalancerUtils = new GceHttpLoadBalancerUtils();
35
+ const gceHealthCheckReader = new GceHealthCheckReader();
36
+ const gceTagManager = new GceTagManager();
37
+ const gceLoadBalancerSetTransformer = new GceLoadBalancerSetTransformer();
38
+ const persistentDiskTypes = ['pd-standard', 'pd-ssd', 'hyperdisk-balanced'];
39
+ const authScopes = [
40
+ 'cloud-platform',
41
+ 'userinfo.email',
42
+ 'compute.readonly',
43
+ 'compute',
44
+ 'cloud.useraccounts.readonly',
45
+ 'cloud.useraccounts',
46
+ 'devstorage.read_only',
47
+ 'devstorage.write_only',
48
+ 'devstorage.full_control',
49
+ 'taskqueue',
50
+ 'bigquery',
51
+ 'sqlservice.admin',
52
+ 'datastore',
53
+ 'logging.write',
54
+ 'logging.read',
55
+ 'logging.admin',
56
+ 'monitoring.write',
57
+ 'monitoring.read',
58
+ 'monitoring',
59
+ 'bigtable.data.readonly',
60
+ 'bigtable.data',
61
+ 'bigtable.admin',
62
+ 'bigtable.admin.table',
63
+ ];
64
+
65
+ function configureCommand(application, command) {
66
+ return promiseService
67
+ .all([
68
+ AccountService.getCredentialsKeyedByAccount('gce'),
69
+ securityGroupReader.getAllSecurityGroups(),
70
+ NetworkReader.listNetworksByProvider('gce'),
71
+ SubnetReader.listSubnetsByProvider('gce'),
72
+ loadBalancerReader.listLoadBalancers('gce'),
73
+ loadAllImages(command.credentials),
74
+ gceInstanceTypeService.getAllTypesByRegion(),
75
+ promiseService.resolve(_.cloneDeep(persistentDiskTypes)),
76
+ promiseService.resolve(_.cloneDeep(authScopes)),
77
+ gceHealthCheckReader.listHealthChecks(),
78
+ AccountService.listAccounts('gce'),
79
+ ])
80
+ .then(function ([
81
+ credentialsKeyedByAccount,
82
+ securityGroups,
83
+ networks,
84
+ subnets,
85
+ loadBalancers,
86
+ allImages,
87
+ instanceTypes,
88
+ persistentDiskTypes,
89
+ authScopes,
90
+ healthChecks,
91
+ accounts,
92
+ ]) {
93
+ const backingData = {
107
94
  credentialsKeyedByAccount,
108
95
  securityGroups,
109
96
  networks,
@@ -115,666 +102,647 @@ angular
115
102
  authScopes,
116
103
  healthChecks,
117
104
  accounts,
118
- ]) {
119
- const backingData = {
120
- credentialsKeyedByAccount,
121
- securityGroups,
122
- networks,
123
- subnets,
124
- loadBalancers,
125
- allImages,
126
- instanceTypes,
127
- persistentDiskTypes,
128
- authScopes,
129
- healthChecks,
130
- accounts,
131
- };
132
- let securityGroupReloader = $q.when(null);
133
- let networkReloader = $q.when(null);
134
- let healthCheckReloader = $q.when(null);
135
- backingData.filtered = {};
136
- backingData.distributionPolicyTargetShapes = getDistributionPolicyTargetShapes();
137
- command.backingData = backingData;
138
- configureImages(command);
139
-
140
- if (command.securityGroups && command.securityGroups.length) {
141
- // Verify all firewalls are accounted for; otherwise, try refreshing firewalls cache.
142
- const securityGroupIds = _.map(getSecurityGroups(command), 'id');
143
- if (_.intersection(command.securityGroups, securityGroupIds).length < command.securityGroups.length) {
144
- securityGroupReloader = refreshSecurityGroups(command, true);
145
- }
105
+ };
106
+ let securityGroupReloader = promiseService.resolve(null);
107
+ let networkReloader = promiseService.resolve(null);
108
+ let healthCheckReloader = promiseService.resolve(null);
109
+ backingData.filtered = {};
110
+ backingData.distributionPolicyTargetShapes = getDistributionPolicyTargetShapes();
111
+ command.backingData = backingData;
112
+ configureImages(command);
113
+
114
+ if (command.securityGroups && command.securityGroups.length) {
115
+ // Verify all firewalls are accounted for; otherwise, try refreshing firewalls cache.
116
+ const securityGroupIds = _.map(getSecurityGroups(command), 'id');
117
+ if (_.intersection(command.securityGroups, securityGroupIds).length < command.securityGroups.length) {
118
+ securityGroupReloader = refreshSecurityGroups(command, true);
146
119
  }
147
- if (command.network) {
148
- // Verify network is accounted for; otherwise, try refreshing networks cache.
149
- const networkNames = getNetworkNames(command);
150
- if (!networkNames.includes(command.network)) {
151
- networkReloader = refreshNetworks(command);
152
- }
120
+ }
121
+ if (command.network) {
122
+ // Verify network is accounted for; otherwise, try refreshing networks cache.
123
+ const networkNames = getNetworkNames(command);
124
+ if (!networkNames.includes(command.network)) {
125
+ networkReloader = refreshNetworks(command);
153
126
  }
127
+ }
154
128
 
155
- if (command.autoScalingPolicy) {
156
- command.enableAutoScaling = true;
157
- }
129
+ if (command.autoScalingPolicy) {
130
+ command.enableAutoScaling = true;
131
+ }
158
132
 
159
- if (command.autoHealingPolicy) {
160
- command.enableAutoHealing = true;
161
- }
162
- if (_.has(command, 'autoHealingPolicy.healthCheck')) {
163
- // Verify health check is accounted for; otherwise, try refreshing health checks cache.
164
- const healthChecks = getHealthChecks(command);
165
- if (!_.chain(healthChecks).map('selfLink').includes(command.autoHealingPolicy.healthCheckUrl).value()) {
166
- healthCheckReloader = refreshHealthChecks(command, true);
167
- }
133
+ if (command.autoHealingPolicy) {
134
+ command.enableAutoHealing = true;
135
+ }
136
+ if (_.has(command, 'autoHealingPolicy.healthCheck')) {
137
+ // Verify health check is accounted for; otherwise, try refreshing health checks cache.
138
+ const healthChecks = getHealthChecks(command);
139
+ if (!_.chain(healthChecks).map('selfLink').includes(command.autoHealingPolicy.healthCheckUrl).value()) {
140
+ healthCheckReloader = refreshHealthChecks(command, true);
168
141
  }
142
+ }
169
143
 
170
- return $q.all([securityGroupReloader, networkReloader, healthCheckReloader]).then(() => {
171
- gceTagManager.register(command);
172
- attachEventHandlers(command);
173
- });
144
+ return promiseService.all([securityGroupReloader, networkReloader, healthCheckReloader]).then(() => {
145
+ gceTagManager.register(command);
146
+ attachEventHandlers(command);
174
147
  });
148
+ });
149
+ }
150
+
151
+ function getDistributionPolicyTargetShapes() {
152
+ // EVEN remains for non-flex regional MIGs. Flexibility requires BALANCED, ANY, or
153
+ // ANY_SINGLE_ZONE (enforced in the configurer and clone validation).
154
+ return GCE_DISTRIBUTION_POLICY_TARGET_SHAPES.slice();
155
+ }
156
+
157
+ function configureDistributionPolicyTargetShape(command) {
158
+ const accountDetails = command.backingData.credentialsKeyedByAccount[command.credentials];
159
+ if (!command.distributionPolicy.targetShape) {
160
+ command.distributionPolicy.targetShape = 'EVEN';
175
161
  }
176
-
177
- function getDistributionPolicyTargetShapes() {
178
- return ['ANY', 'EVEN'];
162
+ }
163
+
164
+ function loadAllImages(account) {
165
+ return GceImageReader.findImages({
166
+ account: account,
167
+ provider: 'gce',
168
+ q: '*',
169
+ });
170
+ }
171
+
172
+ function configureInstanceTypes(command) {
173
+ const result = { dirty: {} };
174
+ if (command.region) {
175
+ const results = [result.dirty];
176
+
177
+ results.push(configureCustomInstanceTypes(command).dirty);
178
+ results.push(configureStandardInstanceTypes(command).dirty);
179
+
180
+ Object.assign(...results);
181
+ } else {
182
+ command.backingData.filtered.instanceTypes = [];
179
183
  }
184
+ return result;
185
+ }
180
186
 
181
- function configureDistributionPolicyTargetShape(command) {
182
- const accountDetails = command.backingData.credentialsKeyedByAccount[command.credentials];
183
- if (!command.distributionPolicy.targetShape) {
184
- command.distributionPolicy.targetShape = 'EVEN';
185
- }
186
- }
187
+ function configureCpuPlatforms(command) {
188
+ const result = { dirty: {} };
189
+ const filteredData = command.backingData.filtered;
190
+ const locationToCpuPlatformsMap =
191
+ command.backingData.credentialsKeyedByAccount[command.credentials].locationToCpuPlatformsMap;
187
192
 
188
- function loadAllImages(account) {
189
- return GceImageReader.findImages({
190
- account: account,
191
- provider: 'gce',
192
- q: '*',
193
- });
194
- }
195
-
196
- function configureInstanceTypes(command) {
197
- const result = { dirty: {} };
198
- if (command.region) {
199
- const results = [result.dirty];
193
+ filteredData.cpuPlatforms = ['(Automatic)'];
200
194
 
201
- results.push(configureCustomInstanceTypes(command).dirty);
202
- results.push(configureStandardInstanceTypes(command).dirty);
195
+ const location = command.regional ? command.region : command.zone;
203
196
 
204
- angular.extend(...results);
205
- } else {
206
- command.backingData.filtered.instanceTypes = [];
207
- }
208
- return result;
197
+ if (_.has(locationToCpuPlatformsMap, location)) {
198
+ filteredData.cpuPlatforms = _.concat(filteredData.cpuPlatforms, locationToCpuPlatformsMap[location]);
209
199
  }
210
200
 
211
- function configureCpuPlatforms(command) {
212
- const result = { dirty: {} };
213
- const filteredData = command.backingData.filtered;
214
- const locationToCpuPlatformsMap =
215
- command.backingData.credentialsKeyedByAccount[command.credentials].locationToCpuPlatformsMap;
216
-
217
- filteredData.cpuPlatforms = ['(Automatic)'];
201
+ if (!_.includes(filteredData.cpuPlatforms, command.minCpuPlatform)) {
202
+ delete command.minCpuPlatform;
203
+ result.dirty.minCpuPlatform = true;
204
+ }
205
+ return result;
206
+ }
218
207
 
219
- const location = command.regional ? command.region : command.zone;
208
+ function configureStandardInstanceTypes(command) {
209
+ const c = command;
210
+ const result = { dirty: {} };
220
211
 
221
- if (_.has(locationToCpuPlatformsMap, location)) {
222
- filteredData.cpuPlatforms = _.concat(filteredData.cpuPlatforms, locationToCpuPlatformsMap[location]);
223
- }
212
+ const locations = c.regional ? c.distributionPolicy.zones : [c.zone];
213
+ const { credentialsKeyedByAccount } = c.backingData;
214
+ const { locationToInstanceTypesMap } = credentialsKeyedByAccount[c.credentials];
224
215
 
225
- if (!_.includes(filteredData.cpuPlatforms, command.minCpuPlatform)) {
226
- delete command.minCpuPlatform;
227
- result.dirty.minCpuPlatform = true;
228
- }
216
+ if (locations.every((l) => !l)) {
229
217
  return result;
230
218
  }
231
219
 
232
- function configureStandardInstanceTypes(command) {
233
- const c = command;
234
- const result = { dirty: {} };
235
-
236
- const locations = c.regional ? c.distributionPolicy.zones : [c.zone];
237
- const { credentialsKeyedByAccount } = c.backingData;
238
- const { locationToInstanceTypesMap } = credentialsKeyedByAccount[c.credentials];
239
-
240
- if (locations.every((l) => !l)) {
241
- return result;
242
- }
243
-
244
- let filtered = gceInstanceTypeService.getAvailableTypesForLocations(locationToInstanceTypesMap, locations);
220
+ let filtered = gceInstanceTypeService.getAvailableTypesForLocations(locationToInstanceTypesMap, locations);
245
221
 
246
- filtered = sortInstanceTypes(filtered);
247
- const instanceType = c.instanceType;
248
- if (_.every([instanceType, !_.includes(instanceType, 'custom-'), !_.includes(filtered, instanceType)])) {
249
- result.dirty.instanceType = c.instanceType;
250
- c.instanceType = null;
251
- }
252
- c.backingData.filtered.instanceTypes = filtered;
222
+ filtered = sortInstanceTypes(filtered);
223
+ const instanceType = c.instanceType;
224
+ if (_.every([instanceType, !_.includes(instanceType, 'custom-'), !_.includes(filtered, instanceType)])) {
225
+ result.dirty.instanceType = c.instanceType;
226
+ c.instanceType = null;
227
+ }
228
+ c.backingData.filtered.instanceTypes = filtered;
229
+ return result;
230
+ }
231
+
232
+ function configureCustomInstanceTypes(command) {
233
+ const c = command;
234
+ const result = { dirty: {} };
235
+ let vCpuCount = _.get(c, 'viewState.customInstance.vCpuCount');
236
+ const instanceFamily = _.get(c, 'viewState.customInstance.instanceFamily');
237
+ const memory = _.get(c, 'viewState.customInstance.memory');
238
+ const extendedMemory = _.get(c, 'viewState.customInstance.extendedMemory');
239
+ const { zone, regional, region } = c;
240
+ const { locationToInstanceTypesMap } = c.backingData.credentialsKeyedByAccount[c.credentials];
241
+ const location = regional ? region : zone;
242
+
243
+ if (!location) {
253
244
  return result;
254
245
  }
255
246
 
256
- function configureCustomInstanceTypes(command) {
257
- const c = command;
258
- const result = { dirty: {} };
259
- let vCpuCount = _.get(c, 'viewState.customInstance.vCpuCount');
260
- const instanceFamily = _.get(c, 'viewState.customInstance.instanceFamily');
261
- const memory = _.get(c, 'viewState.customInstance.memory');
262
- const extendedMemory = _.get(c, 'viewState.customInstance.extendedMemory');
263
- const { zone, regional, region } = c;
264
- const { locationToInstanceTypesMap } = c.backingData.credentialsKeyedByAccount[c.credentials];
265
- const location = regional ? region : zone;
266
-
267
- if (!location) {
268
- return result;
269
- }
270
-
271
- if (zone || regional) {
272
- _.set(
273
- c,
274
- 'backingData.customInstanceTypes.vCpuList',
275
- gceCustomInstanceBuilderService.generateValidVCpuListForLocation(location, locationToInstanceTypesMap),
276
- );
277
- }
278
-
279
- // initializes vCpuCount so that memory selector will be populated.
280
- if (
281
- !vCpuCount ||
282
- !gceCustomInstanceBuilderService.vCpuCountForLocationIsValid(
283
- instanceFamily,
284
- vCpuCount,
285
- location,
286
- locationToInstanceTypesMap,
287
- )
288
- ) {
289
- vCpuCount = _.get(c, 'backingData.customInstanceTypes.vCpuList[0]');
290
- _.set(c, 'viewState.customInstance.vCpuCount', vCpuCount);
291
- }
292
-
247
+ if (zone || regional) {
293
248
  _.set(
294
249
  c,
295
- 'backingData.customInstanceTypes.memoryList',
296
- gceCustomInstanceBuilderService.generateValidMemoryListForVCpuCount(instanceFamily, vCpuCount),
250
+ 'backingData.customInstanceTypes.vCpuList',
251
+ gceCustomInstanceBuilderService.generateValidVCpuListForLocation(location, locationToInstanceTypesMap),
297
252
  );
253
+ }
298
254
 
299
- if (
300
- _.every([
301
- memory,
302
- vCpuCount,
303
- !gceCustomInstanceBuilderService.memoryIsValid(instanceFamily, memory, vCpuCount, extendedMemory),
304
- ])
305
- ) {
306
- _.set(c, 'viewState.customInstance.memory', undefined);
307
- result.dirty.instanceType = c.instanceType;
308
- c.instanceType = null;
309
- }
310
-
311
- _.set(
312
- c,
313
- 'backingData.customInstanceTypes.instanceFamilyList',
314
- gceCustomInstanceBuilderService.generateValidInstanceFamilyList(),
315
- );
255
+ // initializes vCpuCount so that memory selector will be populated.
256
+ if (
257
+ !vCpuCount ||
258
+ !gceCustomInstanceBuilderService.vCpuCountForLocationIsValid(
259
+ instanceFamily,
260
+ vCpuCount,
261
+ location,
262
+ locationToInstanceTypesMap,
263
+ )
264
+ ) {
265
+ vCpuCount = _.get(c, 'backingData.customInstanceTypes.vCpuList[0]');
266
+ _.set(c, 'viewState.customInstance.vCpuCount', vCpuCount);
267
+ }
316
268
 
317
- return result;
269
+ _.set(
270
+ c,
271
+ 'backingData.customInstanceTypes.memoryList',
272
+ gceCustomInstanceBuilderService.generateValidMemoryListForVCpuCount(instanceFamily, vCpuCount),
273
+ );
274
+
275
+ if (
276
+ _.every([
277
+ memory,
278
+ vCpuCount,
279
+ !gceCustomInstanceBuilderService.memoryIsValid(instanceFamily, memory, vCpuCount, extendedMemory),
280
+ ])
281
+ ) {
282
+ _.set(c, 'viewState.customInstance.memory', undefined);
283
+ result.dirty.instanceType = c.instanceType;
284
+ c.instanceType = null;
318
285
  }
319
286
 
320
- function configureAccelerators(command) {
321
- const result = { dirty: {} };
322
- const acceleratorTypes = GceAcceleratorService.getAvailableAccelerators(command);
323
- _.set(command, ['viewState', 'acceleratorTypes'], acceleratorTypes);
324
- result.dirty.acceleratorTypes = true;
325
- const chosenAccelerators = _.get(command, 'acceleratorConfigs', []);
326
- if (chosenAccelerators.length > 0) {
327
- command.acceleratorConfigs = chosenAccelerators.filter(
328
- (chosen) => !!acceleratorTypes.find((a) => a.name === chosen.acceleratorType),
329
- );
330
- if (command.acceleratorConfigs.length === 0) {
331
- delete command.acceleratorConfigs;
332
- }
287
+ _.set(
288
+ c,
289
+ 'backingData.customInstanceTypes.instanceFamilyList',
290
+ gceCustomInstanceBuilderService.generateValidInstanceFamilyList(),
291
+ );
292
+
293
+ return result;
294
+ }
295
+
296
+ function configureAccelerators(command) {
297
+ const result = { dirty: {} };
298
+ const acceleratorTypes = GceAcceleratorService.getAvailableAccelerators(command);
299
+ _.set(command, ['viewState', 'acceleratorTypes'], acceleratorTypes);
300
+ result.dirty.acceleratorTypes = true;
301
+ const chosenAccelerators = _.get(command, 'acceleratorConfigs', []);
302
+ if (chosenAccelerators.length > 0) {
303
+ command.acceleratorConfigs = chosenAccelerators.filter(
304
+ (chosen) => !!acceleratorTypes.find((a) => a.name === chosen.acceleratorType),
305
+ );
306
+ if (command.acceleratorConfigs.length === 0) {
307
+ delete command.acceleratorConfigs;
333
308
  }
334
- return result;
335
309
  }
310
+ return result;
311
+ }
312
+
313
+ // n1-standard-8 should come before n1-standard-16, so we must sort by the individual segments of the names.
314
+ function sortInstanceTypes(instanceTypes) {
315
+ const tokenizedInstanceTypes = _.map(instanceTypes, (instanceType) => {
316
+ const tokens = instanceType.split('-');
317
+
318
+ return {
319
+ class: tokens[0],
320
+ group: tokens[1],
321
+ index: Number(tokens[2]) || 0,
322
+ };
323
+ });
336
324
 
337
- // n1-standard-8 should come before n1-standard-16, so we must sort by the individual segments of the names.
338
- function sortInstanceTypes(instanceTypes) {
339
- const tokenizedInstanceTypes = _.map(instanceTypes, (instanceType) => {
340
- const tokens = instanceType.split('-');
341
-
342
- return {
343
- class: tokens[0],
344
- group: tokens[1],
345
- index: Number(tokens[2]) || 0,
346
- };
347
- });
348
-
349
- const sortedTokenizedInstanceTypes = _.sortBy(tokenizedInstanceTypes, ['class', 'group', 'index']);
325
+ const sortedTokenizedInstanceTypes = _.sortBy(tokenizedInstanceTypes, ['class', 'group', 'index']);
350
326
 
351
- return _.map(sortedTokenizedInstanceTypes, (sortedTokenizedInstanceType) => {
352
- return (
353
- sortedTokenizedInstanceType.class +
354
- '-' +
355
- sortedTokenizedInstanceType.group +
356
- (sortedTokenizedInstanceType.index ? '-' + sortedTokenizedInstanceType.index : '')
357
- );
358
- });
359
- }
360
-
361
- function configureImages(command) {
362
- command.image = command.viewState.imageId;
363
- const result = { dirty: {} };
364
- if (command.credentials !== command.viewState.lastImageAccount) {
365
- command.viewState.lastImageAccount = command.credentials;
366
- if (!_.chain(command.backingData.allImages).find({ imageName: command.image }).value()) {
367
- command.image = null;
368
- result.dirty.imageName = true;
369
- }
327
+ return _.map(sortedTokenizedInstanceTypes, (sortedTokenizedInstanceType) => {
328
+ return (
329
+ sortedTokenizedInstanceType.class +
330
+ '-' +
331
+ sortedTokenizedInstanceType.group +
332
+ (sortedTokenizedInstanceType.index ? '-' + sortedTokenizedInstanceType.index : '')
333
+ );
334
+ });
335
+ }
336
+
337
+ function configureImages(command) {
338
+ command.image = command.viewState.imageId;
339
+ const result = { dirty: {} };
340
+ if (command.credentials !== command.viewState.lastImageAccount) {
341
+ command.viewState.lastImageAccount = command.credentials;
342
+ if (!_.chain(command.backingData.allImages).find({ imageName: command.image }).value()) {
343
+ command.image = null;
344
+ result.dirty.imageName = true;
370
345
  }
371
- return result;
372
346
  }
347
+ return result;
348
+ }
373
349
 
374
- function configureZones(command) {
375
- const result = { dirty: {} };
376
- const filteredData = command.backingData.filtered;
377
- if (command.region === null) {
378
- return result;
379
- }
380
- const regions = command.backingData.credentialsKeyedByAccount[command.credentials].regions;
381
- if (_.isArray(regions)) {
382
- filteredData.zones = _.find(regions, { name: command.region }).zones;
383
- filteredData.truncatedZones = _.takeRight(filteredData.zones.sort(), 3);
384
- } else {
385
- // TODO(duftler): Remove this once we finish deprecating the old style regions/zones in clouddriver GCE credentials.
386
- filteredData.zones = regions[command.region];
387
- }
388
- if (!_.chain(filteredData.zones).includes(command.zone).value()) {
389
- delete command.zone;
390
- if (!command.regional) {
391
- result.dirty.zone = true;
392
- }
393
- }
350
+ function configureZones(command) {
351
+ const result = { dirty: {} };
352
+ const filteredData = command.backingData.filtered;
353
+ if (command.region === null) {
394
354
  return result;
395
355
  }
396
-
397
- function getHealthChecks(command) {
398
- const matchingHealthChecks = _.filter(command.backingData.healthChecks, { account: command.credentials });
399
- return getHealthCheckOptions(matchingHealthChecks);
356
+ const regions = command.backingData.credentialsKeyedByAccount[command.credentials].regions;
357
+ if (_.isArray(regions)) {
358
+ filteredData.zones = _.find(regions, { name: command.region }).zones;
359
+ filteredData.truncatedZones = _.takeRight(filteredData.zones.sort(), 3);
360
+ } else {
361
+ // TODO(duftler): Remove this once we finish deprecating the old style regions/zones in clouddriver GCE credentials.
362
+ filteredData.zones = regions[command.region];
400
363
  }
401
-
402
- function configureHealthChecks(command) {
403
- const result = { dirty: {} };
404
- const filteredData = command.backingData.filtered;
405
-
406
- if (command.credentials === null) {
407
- return result;
364
+ if (!_.chain(filteredData.zones).includes(command.zone).value()) {
365
+ delete command.zone;
366
+ if (!command.regional) {
367
+ result.dirty.zone = true;
408
368
  }
369
+ }
370
+ return result;
371
+ }
409
372
 
410
- filteredData.healthChecks = getHealthChecks(command);
373
+ function getHealthChecks(command) {
374
+ const matchingHealthChecks = _.filter(command.backingData.healthChecks, { account: command.credentials });
375
+ return getHealthCheckOptions(matchingHealthChecks);
376
+ }
411
377
 
412
- if (
413
- _.has(command, 'autoHealingPolicy.healthCheck') &&
414
- !_.chain(filteredData.healthChecks).map('selfLink').includes(command.autoHealingPolicy.healthCheckUrl).value()
415
- ) {
416
- delete command.autoHealingPolicy.healthCheck;
417
- result.dirty.autoHealingPolicy = true;
418
- } else {
419
- result.dirty.autoHealingPolicy = null;
420
- }
378
+ function configureHealthChecks(command) {
379
+ const result = { dirty: {} };
380
+ const filteredData = command.backingData.filtered;
421
381
 
382
+ if (command.credentials === null) {
422
383
  return result;
423
384
  }
424
385
 
425
- function getLoadBalancers(command) {
426
- return _.chain(command.backingData.loadBalancers)
427
- .map('accounts')
428
- .flattenDeep()
429
- .filter({ name: command.credentials })
430
- .map('regions')
431
- .flattenDeep()
432
- .map('loadBalancers')
433
- .flattenDeep()
434
- .filter(_.curry(isRelevantLoadBalancer)(command))
435
- .uniq()
436
- .value();
437
- }
386
+ filteredData.healthChecks = getHealthChecks(command);
438
387
 
439
- function isRelevantLoadBalancer(command, loadBalancer) {
440
- return loadBalancer.region === command.region || loadBalancer.region === 'global';
388
+ if (
389
+ _.has(command, 'autoHealingPolicy.healthCheck') &&
390
+ !_.chain(filteredData.healthChecks).map('selfLink').includes(command.autoHealingPolicy.healthCheckUrl).value()
391
+ ) {
392
+ delete command.autoHealingPolicy.healthCheck;
393
+ result.dirty.autoHealingPolicy = true;
394
+ } else {
395
+ result.dirty.autoHealingPolicy = null;
441
396
  }
442
397
 
443
- function configureLoadBalancerOptions(command) {
444
- const results = { dirty: {} };
445
- const current = command.loadBalancers;
446
- const newLoadBalancerObjects = gceLoadBalancerSetTransformer.normalizeLoadBalancerSet(
447
- getLoadBalancers(command),
398
+ return result;
399
+ }
400
+
401
+ function getLoadBalancers(command) {
402
+ return _.chain(command.backingData.loadBalancers)
403
+ .map('accounts')
404
+ .flattenDeep()
405
+ .filter({ name: command.credentials })
406
+ .map('regions')
407
+ .flattenDeep()
408
+ .map('loadBalancers')
409
+ .flattenDeep()
410
+ .filter(_.curry(isRelevantLoadBalancer)(command))
411
+ .uniq()
412
+ .value();
413
+ }
414
+
415
+ function isRelevantLoadBalancer(command, loadBalancer) {
416
+ return loadBalancer.region === command.region || loadBalancer.region === 'global';
417
+ }
418
+
419
+ function configureLoadBalancerOptions(command) {
420
+ const results = { dirty: {} };
421
+ const current = command.loadBalancers;
422
+ const newLoadBalancerObjects = gceLoadBalancerSetTransformer.normalizeLoadBalancerSet(getLoadBalancers(command));
423
+ command.backingData.filtered.loadBalancerIndex = _.keyBy(newLoadBalancerObjects, 'name');
424
+ command.backingData.filtered.loadBalancers = _.map(newLoadBalancerObjects, 'name');
425
+
426
+ if (current && command.loadBalancers) {
427
+ command.loadBalancers = gceHttpLoadBalancerUtils.normalizeLoadBalancerNamesForAccount(
428
+ command.loadBalancers,
429
+ command.credentials,
430
+ newLoadBalancerObjects,
448
431
  );
449
- command.backingData.filtered.loadBalancerIndex = _.keyBy(newLoadBalancerObjects, 'name');
450
- command.backingData.filtered.loadBalancers = _.map(newLoadBalancerObjects, 'name');
451
-
452
- if (current && command.loadBalancers) {
453
- command.loadBalancers = gceHttpLoadBalancerUtils.normalizeLoadBalancerNamesForAccount(
454
- command.loadBalancers,
455
- command.credentials,
456
- newLoadBalancerObjects,
457
- );
458
- const matched = _.intersection(command.backingData.filtered.loadBalancers, command.loadBalancers);
459
- const removed = _.xor(matched, command.loadBalancers);
460
- command.loadBalancers = matched;
461
- configureBackendServiceOptions(command);
462
-
463
- if (removed.length) {
464
- results.dirty.loadBalancers = removed;
465
- }
432
+ const matched = _.intersection(command.backingData.filtered.loadBalancers, command.loadBalancers);
433
+ const removed = _.xor(matched, command.loadBalancers);
434
+ command.loadBalancers = matched;
435
+ configureBackendServiceOptions(command);
436
+
437
+ if (removed.length) {
438
+ results.dirty.loadBalancers = removed;
466
439
  }
467
- return results;
468
440
  }
441
+ return results;
442
+ }
469
443
 
470
- function configureBackendServiceOptions(command) {
471
- /*
444
+ function configureBackendServiceOptions(command) {
445
+ /*
472
446
  a server group has a list of backend services, but there's no mapping from l7 -> backend service
473
447
  for the server group. this will not populate the wizard perfectly,
474
448
  but it is the best we can do with the given data.
475
449
  */
476
450
 
477
- const backendsFromMetadata = command.backendServiceMetadata;
478
- const lbIndex = command.backingData.filtered.loadBalancerIndex;
479
-
480
- const backendServices = command.loadBalancers.reduce((backendServices, lbName) => {
481
- if (gceHttpLoadBalancerUtils.isHttpLoadBalancer(lbIndex[lbName])) {
482
- backendServices[lbName] = _.intersection(lbIndex[lbName].backendServices, backendsFromMetadata);
483
- }
484
- return backendServices;
485
- }, {});
451
+ const backendsFromMetadata = command.backendServiceMetadata;
452
+ const lbIndex = command.backingData.filtered.loadBalancerIndex;
486
453
 
487
- if (Object.keys(backendServices).length > 0) {
488
- command.backendServices = backendServices;
454
+ const backendServices = command.loadBalancers.reduce((backendServices, lbName) => {
455
+ if (gceHttpLoadBalancerUtils.isHttpLoadBalancer(lbIndex[lbName])) {
456
+ backendServices[lbName] = _.intersection(lbIndex[lbName].backendServices, backendsFromMetadata);
489
457
  }
490
- }
458
+ return backendServices;
459
+ }, {});
491
460
 
492
- function refreshLoadBalancers(command, skipCommandReconfiguration) {
493
- return loadBalancerReader.listLoadBalancers('gce').then(function (loadBalancers) {
494
- command.backingData.loadBalancers = loadBalancers;
495
- if (!skipCommandReconfiguration) {
496
- configureLoadBalancerOptions(command);
497
- }
498
- });
499
- }
500
-
501
- function refreshHealthChecks(command, skipCommandReconfiguration) {
502
- return cacheInitializer
503
- .refreshCache('healthChecks')
504
- .then(function () {
505
- return gceHealthCheckReader.listHealthChecks();
506
- })
507
- .then(function (healthChecks) {
508
- command.backingData.healthChecks = healthChecks;
509
- if (!skipCommandReconfiguration) {
510
- configureHealthChecks(command);
511
- }
512
- });
461
+ if (Object.keys(backendServices).length > 0) {
462
+ command.backendServices = backendServices;
513
463
  }
464
+ }
514
465
 
515
- function configureSubnets(command) {
516
- const result = { dirty: {} };
517
- const filteredData = command.backingData.filtered;
518
- if (command.region === null) {
519
- return result;
466
+ function refreshLoadBalancers(command, skipCommandReconfiguration) {
467
+ return loadBalancerReader.listLoadBalancers('gce').then(function (loadBalancers) {
468
+ command.backingData.loadBalancers = loadBalancers;
469
+ if (!skipCommandReconfiguration) {
470
+ configureLoadBalancerOptions(command);
520
471
  }
521
- filteredData.subnets = _.chain(command.backingData.subnets)
522
- .filter({ account: command.credentials, network: command.network, region: command.region })
523
- .map('id')
524
- .value();
525
-
526
- if (!_.chain(filteredData.subnets).includes(command.subnet).value()) {
527
- command.subnet = '';
528
- result.dirty.subnet = true;
472
+ });
473
+ }
474
+
475
+ function refreshHealthChecks(command, skipCommandReconfiguration) {
476
+ InfrastructureCaches.clearCache('healthChecks');
477
+ return gceHealthCheckReader.listHealthChecks().then(function (healthChecks) {
478
+ command.backingData.healthChecks = healthChecks;
479
+ if (!skipCommandReconfiguration) {
480
+ configureHealthChecks(command);
529
481
  }
482
+ });
483
+ }
484
+
485
+ function configureSubnets(command) {
486
+ const result = { dirty: {} };
487
+ const filteredData = command.backingData.filtered;
488
+ if (command.region === null) {
530
489
  return result;
531
490
  }
532
-
533
- function getSecurityGroups(command) {
534
- let newSecurityGroups = command.backingData.securityGroups[command.credentials] || { gce: {} };
535
- newSecurityGroups = _.filter(newSecurityGroups.gce.global, function (securityGroup) {
536
- return securityGroup.network === command.network;
537
- });
538
- return _.chain(newSecurityGroups).sortBy('name').value();
491
+ filteredData.subnets = _.chain(command.backingData.subnets)
492
+ .filter({ account: command.credentials, network: command.network, region: command.region })
493
+ .map('id')
494
+ .value();
495
+
496
+ if (!_.chain(filteredData.subnets).includes(command.subnet).value()) {
497
+ command.subnet = '';
498
+ result.dirty.subnet = true;
539
499
  }
540
-
541
- function getXpnHostProjectIfAny(network) {
542
- if (network && network.includes('/')) {
543
- return network.split('/')[0] + '/';
544
- } else {
545
- return '';
546
- }
500
+ return result;
501
+ }
502
+
503
+ function getSecurityGroups(command) {
504
+ let newSecurityGroups = command.backingData.securityGroups[command.credentials] || { gce: {} };
505
+ newSecurityGroups = _.filter(newSecurityGroups.gce.global, function (securityGroup) {
506
+ return securityGroup.network === command.network;
507
+ });
508
+ return _.chain(newSecurityGroups).sortBy('name').value();
509
+ }
510
+
511
+ function getXpnHostProjectIfAny(network) {
512
+ if (network && network.includes('/')) {
513
+ return network.split('/')[0] + '/';
514
+ } else {
515
+ return '';
547
516
  }
548
-
549
- function configureSecurityGroupOptions(command) {
550
- const results = { dirty: {} };
551
- const currentOptions = command.backingData.filtered.securityGroups;
552
- const newSecurityGroups = getSecurityGroups(command);
553
- if (currentOptions && command.securityGroups) {
554
- // not initializing - we are actually changing groups
555
- const currentGroupNames = command.securityGroups.map(function (groupId) {
556
- const match = _.chain(currentOptions).find({ id: groupId }).value();
557
- return match ? match.id : groupId;
517
+ }
518
+
519
+ function configureSecurityGroupOptions(command) {
520
+ const results = { dirty: {} };
521
+ const currentOptions = command.backingData.filtered.securityGroups;
522
+ const newSecurityGroups = getSecurityGroups(command);
523
+ if (currentOptions && command.securityGroups) {
524
+ // not initializing - we are actually changing groups
525
+ const currentGroupNames = command.securityGroups.map(function (groupId) {
526
+ const match = _.chain(currentOptions).find({ id: groupId }).value();
527
+ return match ? match.id : groupId;
528
+ });
529
+ const matchedGroups = command.securityGroups
530
+ .map(function (groupId) {
531
+ const securityGroup = _.chain(currentOptions).find({ id: groupId }).value();
532
+ return securityGroup ? securityGroup.id : null;
533
+ })
534
+ .map(function (groupName) {
535
+ return _.chain(newSecurityGroups).find({ id: groupName }).value();
536
+ })
537
+ .filter(function (group) {
538
+ return group;
558
539
  });
559
- const matchedGroups = command.securityGroups
560
- .map(function (groupId) {
561
- const securityGroup = _.chain(currentOptions).find({ id: groupId }).value();
562
- return securityGroup ? securityGroup.id : null;
563
- })
564
- .map(function (groupName) {
565
- return _.chain(newSecurityGroups).find({ id: groupName }).value();
566
- })
567
- .filter(function (group) {
568
- return group;
569
- });
570
- command.securityGroups = _.map(matchedGroups, 'id');
571
- const removed = _.xor(currentGroupNames, command.securityGroups);
572
- if (removed.length) {
573
- results.dirty.securityGroups = removed;
574
- }
540
+ command.securityGroups = _.map(matchedGroups, 'id');
541
+ const removed = _.xor(currentGroupNames, command.securityGroups);
542
+ if (removed.length) {
543
+ results.dirty.securityGroups = removed;
575
544
  }
576
-
577
- // Only include explicit firewall options in the pulldown list.
578
- command.backingData.filtered.securityGroups = _.filter(newSecurityGroups, function (securityGroup) {
579
- return !_.isEmpty(securityGroup.targetTags);
580
- });
581
-
582
- // Identify implicit firewalls so they can be optionally listed in a read-only state.
583
- command.implicitSecurityGroups = _.filter(newSecurityGroups, function (securityGroup) {
584
- return _.isEmpty(securityGroup.targetTags);
585
- });
586
-
587
- // Only include explicitly-selected firewalls in the body of the command.
588
- const xpnHostProject = getXpnHostProjectIfAny(command.network);
589
- const decoratedSecurityGroups = _.map(command.securityGroups, (sg) =>
590
- !sg.startsWith(xpnHostProject) ? xpnHostProject + sg : sg,
591
- );
592
- command.securityGroups = _.difference(decoratedSecurityGroups, _.map(command.implicitSecurityGroups, 'id'));
593
-
594
- return results;
595
545
  }
596
546
 
597
- function refreshSecurityGroups(command, skipCommandReconfiguration) {
598
- return cacheInitializer.refreshCache('securityGroups').then(function () {
599
- return securityGroupReader.getAllSecurityGroups().then(function (securityGroups) {
600
- command.backingData.securityGroups = securityGroups;
601
- if (!skipCommandReconfiguration) {
602
- configureSecurityGroupOptions(command);
603
- }
604
- });
605
- });
606
- }
547
+ // Only include explicit firewall options in the pulldown list.
548
+ command.backingData.filtered.securityGroups = _.filter(newSecurityGroups, function (securityGroup) {
549
+ return !_.isEmpty(securityGroup.targetTags);
550
+ });
551
+
552
+ // Identify implicit firewalls so they can be optionally listed in a read-only state.
553
+ command.implicitSecurityGroups = _.filter(newSecurityGroups, function (securityGroup) {
554
+ return _.isEmpty(securityGroup.targetTags);
555
+ });
556
+
557
+ // Only include explicitly-selected firewalls in the body of the command.
558
+ const xpnHostProject = getXpnHostProjectIfAny(command.network);
559
+ const decoratedSecurityGroups = _.map(command.securityGroups, (sg) =>
560
+ !sg.startsWith(xpnHostProject) ? xpnHostProject + sg : sg,
561
+ );
562
+ command.securityGroups = _.difference(decoratedSecurityGroups, _.map(command.implicitSecurityGroups, 'id'));
563
+
564
+ return results;
565
+ }
566
+
567
+ function refreshSecurityGroups(command, skipCommandReconfiguration) {
568
+ InfrastructureCaches.clearCache('securityGroups');
569
+ return securityGroupReader.getAllSecurityGroups().then(function (securityGroups) {
570
+ command.backingData.securityGroups = securityGroups;
571
+ if (!skipCommandReconfiguration) {
572
+ configureSecurityGroupOptions(command);
573
+ }
574
+ });
575
+ }
576
+
577
+ function getNetworkNames(command) {
578
+ return _.map(_.filter(command.backingData.networks, { account: command.credentials }), 'id');
579
+ }
580
+
581
+ function refreshNetworks(command) {
582
+ NetworkReader.listNetworksByProvider('gce').then(function (gceNetworks) {
583
+ command.backingData.networks = gceNetworks;
584
+ });
585
+ }
586
+
587
+ function refreshInstanceTypes(command) {
588
+ InfrastructureCaches.clearCache('instanceTypes');
589
+ return gceInstanceTypeService.getAllTypesByRegion().then(function (instanceTypes) {
590
+ command.backingData.instanceTypes = instanceTypes;
591
+ configureInstanceTypes(command);
592
+ });
593
+ }
594
+
595
+ function attachEventHandlers(cmd) {
596
+ cmd.regionalChanged = function regionalChanged(command) {
597
+ const result = { dirty: {} };
598
+ const filteredData = command.backingData.filtered;
599
+ const defaults = GCEProviderSettings.defaults;
600
+ if (command.regional) {
601
+ command.zone = null;
602
+ configureDistributionPolicyTargetShape(command);
603
+ } else if (!command.zone) {
604
+ if (command.region === defaults.region) {
605
+ command.zone = defaults.zone;
606
+ } else {
607
+ command.zone = filteredData.zones[0];
608
+ }
607
609
 
608
- function getNetworkNames(command) {
609
- return _.map(_.filter(command.backingData.networks, { account: command.credentials }), 'id');
610
- }
610
+ Object.assign(result.dirty, configureZones(command).dirty);
611
+ }
611
612
 
612
- function refreshNetworks(command) {
613
- NetworkReader.listNetworksByProvider('gce').then(function (gceNetworks) {
614
- command.backingData.networks = gceNetworks;
615
- });
616
- }
613
+ command.viewState.dirty = command.viewState.dirty || {};
614
+ Object.assign(command.viewState.dirty, result.dirty);
615
+ return result;
616
+ };
617
617
 
618
- function refreshInstanceTypes(command) {
619
- return cacheInitializer.refreshCache('instanceTypes').then(function () {
620
- return gceInstanceTypeService.getAllTypesByRegion().then(function (instanceTypes) {
621
- command.backingData.instanceTypes = instanceTypes;
622
- configureInstanceTypes(command);
623
- });
624
- });
625
- }
618
+ cmd.regionChanged = function regionChanged(command) {
619
+ const result = { dirty: {} };
620
+ const filteredData = command.backingData.filtered;
621
+ Object.assign(result.dirty, configureSubnets(command).dirty);
622
+ if (command.region) {
623
+ Object.assign(result.dirty, configureInstanceTypes(command).dirty);
624
+ Object.assign(result.dirty, configureZones(command).dirty);
625
+ Object.assign(result.dirty, configureCpuPlatforms(command).dirty);
626
+ // TODO: Internal Load Balancers also need to be filtered by network.
627
+ Object.assign(result.dirty, configureLoadBalancerOptions(command).dirty);
628
+ Object.assign(result.dirty, configureImages(command).dirty);
629
+ } else {
630
+ filteredData.zones = null;
631
+ }
626
632
 
627
- function attachEventHandlers(cmd) {
628
- cmd.regionalChanged = function regionalChanged(command) {
629
- const result = { dirty: {} };
630
- const filteredData = command.backingData.filtered;
631
- const defaults = GCEProviderSettings.defaults;
632
- if (command.regional) {
633
- command.zone = null;
634
- configureDistributionPolicyTargetShape(command);
635
- } else if (!command.zone) {
636
- if (command.region === defaults.region) {
637
- command.zone = defaults.zone;
638
- } else {
639
- command.zone = filteredData.zones[0];
640
- }
633
+ command.viewState.dirty = command.viewState.dirty || {};
634
+ Object.assign(command.viewState.dirty, result.dirty);
635
+ return result;
636
+ };
641
637
 
642
- angular.extend(result.dirty, configureZones(command).dirty);
638
+ cmd.credentialsChanged = function credentialsChanged(command) {
639
+ const result = { dirty: {} };
640
+ const backingData = command.backingData;
641
+ if (command.credentials) {
642
+ const regions = backingData.credentialsKeyedByAccount[command.credentials].regions;
643
+ if (_.isArray(regions)) {
644
+ backingData.filtered.regions = _.map(regions, 'name');
645
+ } else {
646
+ // TODO(duftler): Remove this once we finish deprecating the old style regions/zones in clouddriver GCE credentials.
647
+ backingData.filtered.regions = _.keys(regions);
643
648
  }
644
-
645
- command.viewState.dirty = command.viewState.dirty || {};
646
- angular.extend(command.viewState.dirty, result.dirty);
647
- return result;
648
- };
649
-
650
- cmd.regionChanged = function regionChanged(command) {
651
- const result = { dirty: {} };
652
- const filteredData = command.backingData.filtered;
653
- angular.extend(result.dirty, configureSubnets(command).dirty);
654
- if (command.region) {
655
- angular.extend(result.dirty, configureInstanceTypes(command).dirty);
656
- angular.extend(result.dirty, configureZones(command).dirty);
657
- angular.extend(result.dirty, configureCpuPlatforms(command).dirty);
658
- // TODO: Internal Load Balancers also need to be filtered by network.
659
- angular.extend(result.dirty, configureLoadBalancerOptions(command).dirty);
660
- angular.extend(result.dirty, configureImages(command).dirty);
649
+ if (!backingData.filtered.regions.includes(command.region)) {
650
+ command.region = null;
651
+ result.dirty.region = true;
661
652
  } else {
662
- filteredData.zones = null;
653
+ Object.assign(result.dirty, command.regionChanged(command).dirty);
663
654
  }
664
655
 
665
- command.viewState.dirty = command.viewState.dirty || {};
666
- angular.extend(command.viewState.dirty, result.dirty);
667
- return result;
668
- };
669
-
670
- cmd.credentialsChanged = function credentialsChanged(command) {
671
- const result = { dirty: {} };
672
- const backingData = command.backingData;
673
- if (command.credentials) {
674
- const regions = backingData.credentialsKeyedByAccount[command.credentials].regions;
675
- if (_.isArray(regions)) {
676
- backingData.filtered.regions = _.map(regions, 'name');
677
- } else {
678
- // TODO(duftler): Remove this once we finish deprecating the old style regions/zones in clouddriver GCE credentials.
679
- backingData.filtered.regions = _.keys(regions);
680
- }
681
- if (!backingData.filtered.regions.includes(command.region)) {
682
- command.region = null;
683
- result.dirty.region = true;
684
- } else {
685
- angular.extend(result.dirty, command.regionChanged(command).dirty);
686
- }
687
-
688
- backingData.filtered.networks = getNetworkNames(command);
689
- if (!backingData.filtered.networks.includes(command.network)) {
690
- command.network = null;
691
- result.dirty.network = true;
692
- } else {
693
- angular.extend(result.dirty, command.networkChanged(command).dirty);
694
- }
695
-
696
- angular.extend(result.dirty, configureHealthChecks(command).dirty);
697
- angular.extend(result.dirty, configureInstanceTypes(command).dirty);
698
-
699
- configureDistributionPolicyTargetShape(command);
656
+ backingData.filtered.networks = getNetworkNames(command);
657
+ if (!backingData.filtered.networks.includes(command.network)) {
658
+ command.network = null;
659
+ result.dirty.network = true;
700
660
  } else {
701
- command.region = null;
661
+ Object.assign(result.dirty, command.networkChanged(command).dirty);
702
662
  }
703
663
 
704
- command.viewState.dirty = command.viewState.dirty || {};
705
- angular.extend(command.viewState.dirty, result.dirty);
664
+ Object.assign(result.dirty, configureHealthChecks(command).dirty);
665
+ Object.assign(result.dirty, configureInstanceTypes(command).dirty);
706
666
 
707
- return result;
708
- };
667
+ configureDistributionPolicyTargetShape(command);
668
+ } else {
669
+ command.region = null;
670
+ }
671
+
672
+ command.viewState.dirty = command.viewState.dirty || {};
673
+ Object.assign(command.viewState.dirty, result.dirty);
709
674
 
710
- cmd.networkChanged = function networkChanged(command) {
711
- const result = { dirty: {} };
675
+ return result;
676
+ };
712
677
 
713
- command.viewState.autoCreateSubnets = _.chain(command.backingData.networks)
714
- .filter({ account: command.credentials, id: command.network })
715
- .map('autoCreateSubnets')
716
- .head()
717
- .value();
678
+ cmd.networkChanged = function networkChanged(command) {
679
+ const result = { dirty: {} };
718
680
 
719
- command.viewState.subnets = _.chain(command.backingData.networks)
720
- .filter({ account: command.credentials, id: command.network })
721
- .map('subnets')
722
- .head()
723
- .value();
681
+ command.viewState.autoCreateSubnets = _.chain(command.backingData.networks)
682
+ .filter({ account: command.credentials, id: command.network })
683
+ .map('autoCreateSubnets')
684
+ .head()
685
+ .value();
724
686
 
725
- angular.extend(result.dirty, configureSubnets(command).dirty);
726
- angular.extend(result.dirty, configureSecurityGroupOptions(command).dirty);
687
+ command.viewState.subnets = _.chain(command.backingData.networks)
688
+ .filter({ account: command.credentials, id: command.network })
689
+ .map('subnets')
690
+ .head()
691
+ .value();
727
692
 
728
- // TODO: Internal Load Balancers also need to be filtered by network.
693
+ Object.assign(result.dirty, configureSubnets(command).dirty);
694
+ Object.assign(result.dirty, configureSecurityGroupOptions(command).dirty);
729
695
 
730
- command.viewState.dirty = command.viewState.dirty || {};
731
- angular.extend(command.viewState.dirty, result.dirty);
696
+ // TODO: Internal Load Balancers also need to be filtered by network.
732
697
 
733
- return result;
734
- };
698
+ command.viewState.dirty = command.viewState.dirty || {};
699
+ Object.assign(command.viewState.dirty, result.dirty);
735
700
 
736
- cmd.zoneChanged = function zoneChanged(command) {
737
- const result = { dirty: {} };
738
- if (command.zone === undefined && !command.regional) {
739
- result.dirty.zone = true;
740
- }
741
- command.viewState.dirty = command.viewState.dirty || {};
742
- angular.extend(command.viewState.dirty, result.dirty);
743
- angular.extend(command.viewState.dirty, configureInstanceTypes(command).dirty);
744
- angular.extend(command.viewState.dirty, configureCpuPlatforms(command).dirty);
745
- angular.extend(command.viewState.dirty, configureAccelerators(command).dirty);
746
- return result;
747
- };
701
+ return result;
702
+ };
748
703
 
749
- cmd.selectZonesChanged = function selectZonesChanged(command) {
750
- const result = { dirty: {} };
751
- command.viewState.dirty = command.viewState.dirty || {};
752
- angular.extend(command.viewState.dirty, result.dirty);
753
- angular.extend(command.viewState.dirty, configureAccelerators(command).dirty);
754
- return result;
755
- };
704
+ cmd.zoneChanged = function zoneChanged(command) {
705
+ const result = { dirty: {} };
706
+ if (command.zone === undefined && !command.regional) {
707
+ result.dirty.zone = true;
708
+ }
709
+ command.viewState.dirty = command.viewState.dirty || {};
710
+ Object.assign(command.viewState.dirty, result.dirty);
711
+ Object.assign(command.viewState.dirty, configureInstanceTypes(command).dirty);
712
+ Object.assign(command.viewState.dirty, configureCpuPlatforms(command).dirty);
713
+ Object.assign(command.viewState.dirty, configureAccelerators(command).dirty);
714
+ return result;
715
+ };
756
716
 
757
- cmd.customInstanceChanged = function customInstanceChanged(command) {
758
- const result = { dirty: {} };
717
+ cmd.selectZonesChanged = function selectZonesChanged(command) {
718
+ const result = { dirty: {} };
719
+ command.viewState.dirty = command.viewState.dirty || {};
720
+ Object.assign(command.viewState.dirty, result.dirty);
721
+ Object.assign(command.viewState.dirty, configureAccelerators(command).dirty);
722
+ return result;
723
+ };
759
724
 
760
- command.viewState.dirty = command.viewState.dirty || {};
761
- angular.extend(result, command.viewState.dirty, configureCustomInstanceTypes(command).dirty);
725
+ cmd.customInstanceChanged = function customInstanceChanged(command) {
726
+ const result = { dirty: {} };
762
727
 
763
- return result;
764
- };
765
- }
728
+ command.viewState.dirty = command.viewState.dirty || {};
729
+ Object.assign(result, command.viewState.dirty, configureCustomInstanceTypes(command).dirty);
766
730
 
767
- return {
768
- configureCommand,
769
- configureInstanceTypes,
770
- configureImages,
771
- configureZones,
772
- configureSubnets,
773
- configureLoadBalancerOptions,
774
- refreshLoadBalancers,
775
- refreshSecurityGroups,
776
- refreshInstanceTypes,
777
- refreshHealthChecks,
731
+ return result;
778
732
  };
779
- },
780
- ]);
733
+ }
734
+
735
+ return {
736
+ configureCommand,
737
+ configureInstanceTypes,
738
+ configureImages,
739
+ configureZones,
740
+ configureSubnets,
741
+ configureLoadBalancerOptions,
742
+ refreshLoadBalancers,
743
+ refreshSecurityGroups,
744
+ refreshInstanceTypes,
745
+ refreshHealthChecks,
746
+ };
747
+ }
748
+ }