@spinnaker/ecs 2026.2.3 → 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 (209) hide show
  1. package/dist/ecs.module.d.ts +3 -1
  2. package/dist/ecsCluster/ecsCluster.read.service.d.ts +2 -3
  3. package/dist/iamRoles/iamRole.read.service.d.ts +1 -2
  4. package/dist/index.d.ts +5 -0
  5. package/dist/index.js +1 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/instance/details/EcsInstanceDetails.d.ts +50 -0
  8. package/dist/loadBalancer/loadBalancer.transformer.d.ts +1 -5
  9. package/dist/loadBalancer/targetGroup.states.d.ts +2 -1
  10. package/dist/metricAlarm/metricAlarm.read.service.d.ts +1 -2
  11. package/dist/pipeline/stages/cloneServerGroup/ecsCloneServerGroupStage.d.ts +1 -0
  12. package/dist/pipeline/stages/common/EcsServerGroupStepLabel.d.ts +7 -0
  13. package/dist/pipeline/stages/common/EcsStageConfigs.d.ts +11 -0
  14. package/dist/pipeline/stages/destroyAsg/ecsDestroyAsgStage.d.ts +1 -2
  15. package/dist/pipeline/stages/disableAsg/ecsDisableAsgStage.d.ts +1 -2
  16. package/dist/pipeline/stages/disableCluster/ecsDisableClusterStage.d.ts +1 -2
  17. package/dist/pipeline/stages/enableAsg/ecsEnableAsgStage.d.ts +1 -2
  18. package/dist/pipeline/stages/findImageFromTags/EcsFindImageFromTagsExecutionDetails.d.ts +5 -0
  19. package/dist/pipeline/stages/findImageFromTags/ecsFindImageFromTagStage.d.ts +1 -2
  20. package/dist/pipeline/stages/resizeAsg/ecsResizeAsgStage.d.ts +1 -2
  21. package/dist/pipeline/stages/scaleDownCluster/ecsScaleDownClusterStage.d.ts +1 -2
  22. package/dist/pipeline/stages/shrinkCluster/ecsShrinkClusterStage.d.ts +1 -2
  23. package/dist/placementStrategy/placementStrategy.service.d.ts +0 -1
  24. package/dist/secrets/secret.read.service.d.ts +1 -2
  25. package/dist/securityGroup/details/EcsSecurityGroupDetails.d.ts +45 -0
  26. package/dist/securityGroup/securityGroup.reader.d.ts +0 -1
  27. package/dist/securityGroup/securityGroup.transformer.d.ts +3 -2
  28. package/dist/serverGroup/configure/dockerImage.util.d.ts +3 -0
  29. package/dist/serverGroup/configure/serverGroupCommandBuilder.service.d.ts +111 -2
  30. package/dist/serverGroup/configure/serverGroupConfiguration.service.d.ts +13 -63
  31. package/dist/serverGroup/configure/wizard/EcsCloneServerGroupModal.d.ts +64 -0
  32. package/dist/serverGroup/configure/wizard/capacityProvider/CapacityProvider.d.ts +29 -4
  33. package/dist/serverGroup/configure/wizard/container/Container.d.ts +3 -3
  34. package/dist/serverGroup/configure/wizard/networking/Networking.d.ts +3 -3
  35. package/dist/serverGroup/configure/wizard/pages/AdvancedSettings.d.ts +3 -0
  36. package/dist/serverGroup/configure/wizard/pages/BasicSettings.d.ts +3 -0
  37. package/dist/serverGroup/configure/wizard/pages/ContainerSettings.d.ts +3 -0
  38. package/dist/serverGroup/configure/wizard/pages/HorizontalScalingSettings.d.ts +3 -0
  39. package/dist/serverGroup/configure/wizard/pages/LoggingSettings.d.ts +3 -0
  40. package/dist/serverGroup/configure/wizard/pages/NetworkingSettings.d.ts +3 -0
  41. package/dist/serverGroup/configure/wizard/pages/ServiceDiscoverySettings.d.ts +3 -0
  42. package/dist/serverGroup/configure/wizard/pages/TaskDefinitionSettings.d.ts +3 -0
  43. package/dist/serverGroup/configure/wizard/pages/common.d.ts +8 -0
  44. package/dist/serverGroup/configure/wizard/pages/validation.d.ts +22 -0
  45. package/dist/serverGroup/configure/wizard/serviceDiscovery/ServiceDiscovery.d.ts +5 -3
  46. package/dist/serverGroup/configure/wizard/taskDefinition/TaskDefinition.d.ts +3 -3
  47. package/dist/serverGroup/details/EcsServerGroupActions.d.ts +6 -0
  48. package/dist/serverGroup/details/ecsServerGroupDetailsGetter.d.ts +3 -0
  49. package/dist/serverGroup/details/resize/EcsResizeServerGroupModal.d.ts +43 -0
  50. package/dist/serverGroup/details/resize/index.d.ts +1 -0
  51. package/dist/serverGroup/details/rollback/EcsRollbackServerGroupModal.d.ts +46 -0
  52. package/dist/serverGroup/details/rollback/index.d.ts +1 -0
  53. package/dist/serverGroup/details/sections/EcsServerGroupDetailsSections.d.ts +9 -0
  54. package/dist/serverGroup/details/sections/EcsServerGroupEventsSection.d.ts +3 -0
  55. package/dist/serverGroup/details/sections/EcsServerGroupInformationSection.d.ts +3 -0
  56. package/dist/serverGroup/events/EcsServerGroupEventsModal.d.ts +22 -0
  57. package/dist/serverGroup/events/EventsLink.d.ts +2 -0
  58. package/dist/serverGroup/events/serverGroupEventsReader.service.d.ts +1 -1
  59. package/dist/serverGroup/serverGroup.transformer.d.ts +1 -2
  60. package/dist/serviceDiscovery/serviceDiscovery.read.service.d.ts +1 -1
  61. package/package.json +3 -9
  62. package/src/ecs.module.spec.ts +86 -0
  63. package/src/ecs.module.ts +68 -84
  64. package/src/ecsCluster/ecsCluster.read.service.ts +3 -9
  65. package/src/iamRoles/iamRole.read.service.ts +1 -7
  66. package/src/index.ts +6 -0
  67. package/src/instance/details/EcsInstanceDetails.spec.tsx +426 -0
  68. package/src/instance/details/EcsInstanceDetails.tsx +474 -0
  69. package/src/loadBalancer/details/loadBalancerDetails.tsx +1 -1
  70. package/src/loadBalancer/details/targetGroupDetails.tsx +1 -1
  71. package/src/loadBalancer/loadBalancer.transformer.ts +2 -7
  72. package/src/loadBalancer/targetGroup.states.ts +55 -53
  73. package/src/metricAlarm/metricAlarm.read.service.ts +1 -7
  74. package/src/pipeline/stages/cloneServerGroup/ecsCloneServerGroupStage.js +22 -94
  75. package/src/pipeline/stages/common/EcsServerGroupStepLabel.tsx +16 -0
  76. package/src/pipeline/stages/common/EcsStageConfigs.tsx +587 -0
  77. package/src/pipeline/stages/destroyAsg/ecsDestroyAsgStage.js +29 -65
  78. package/src/pipeline/stages/disableAsg/ecsDisableAsgStage.js +27 -70
  79. package/src/pipeline/stages/disableCluster/ecsDisableClusterStage.js +21 -84
  80. package/src/pipeline/stages/enableAsg/ecsEnableAsgStage.js +22 -73
  81. package/src/pipeline/stages/findImageFromTags/EcsFindImageFromTagsExecutionDetails.tsx +40 -0
  82. package/src/pipeline/stages/findImageFromTags/ecsFindImageFromTagStage.js +12 -24
  83. package/src/pipeline/stages/resizeAsg/ecsResizeAsgStage.js +30 -128
  84. package/src/pipeline/stages/scaleDownCluster/ecsScaleDownClusterStage.js +24 -78
  85. package/src/pipeline/stages/shrinkCluster/ecsShrinkClusterStage.js +19 -73
  86. package/src/placementStrategy/placementStrategy.service.ts +0 -6
  87. package/src/secrets/secret.read.service.ts +1 -7
  88. package/src/securityGroup/details/EcsSecurityGroupDetails.spec.tsx +245 -0
  89. package/src/securityGroup/details/EcsSecurityGroupDetails.tsx +285 -0
  90. package/src/securityGroup/securityGroup.reader.ts +0 -5
  91. package/src/securityGroup/securityGroup.transformer.js +5 -13
  92. package/src/serverGroup/configure/dockerImage.util.ts +29 -0
  93. package/src/serverGroup/configure/serverGroupCommandBuilder.service.js +215 -278
  94. package/src/serverGroup/configure/serverGroupCommandBuilder.service.spec.ts +83 -0
  95. package/src/serverGroup/configure/serverGroupConfiguration.service.ts +16 -633
  96. package/src/serverGroup/configure/wizard/EcsCloneServerGroupModal.spec.tsx +2078 -0
  97. package/src/serverGroup/configure/wizard/EcsCloneServerGroupModal.tsx +712 -0
  98. package/src/serverGroup/configure/wizard/capacityProvider/CapacityProvider.tsx +98 -49
  99. package/src/serverGroup/configure/wizard/container/Container.spec.tsx +20 -8
  100. package/src/serverGroup/configure/wizard/container/Container.tsx +53 -24
  101. package/src/serverGroup/configure/wizard/networking/Networking.tsx +60 -38
  102. package/src/serverGroup/configure/wizard/pages/AdvancedSettings.tsx +290 -0
  103. package/src/serverGroup/configure/wizard/pages/BasicSettings.tsx +101 -0
  104. package/src/serverGroup/configure/wizard/pages/ContainerSettings.tsx +10 -0
  105. package/src/serverGroup/configure/wizard/pages/HorizontalScalingSettings.tsx +137 -0
  106. package/src/serverGroup/configure/wizard/pages/LoggingSettings.tsx +60 -0
  107. package/src/serverGroup/configure/wizard/pages/NetworkingSettings.tsx +10 -0
  108. package/src/serverGroup/configure/wizard/pages/ServiceDiscoverySettings.tsx +10 -0
  109. package/src/serverGroup/configure/wizard/pages/TaskDefinitionSettings.tsx +59 -0
  110. package/src/serverGroup/configure/wizard/pages/common.ts +10 -0
  111. package/src/serverGroup/configure/wizard/pages/validation.tsx +190 -0
  112. package/src/serverGroup/configure/wizard/serviceDiscovery/ServiceDiscovery.tsx +83 -34
  113. package/src/serverGroup/configure/wizard/taskDefinition/TaskDefinition.spec.tsx +21 -8
  114. package/src/serverGroup/configure/wizard/taskDefinition/TaskDefinition.tsx +63 -33
  115. package/src/serverGroup/details/EcsServerGroupActions.spec.tsx +244 -0
  116. package/src/serverGroup/details/EcsServerGroupActions.tsx +152 -0
  117. package/src/serverGroup/details/ecsServerGroupDetailsGetter.spec.ts +110 -0
  118. package/src/serverGroup/details/ecsServerGroupDetailsGetter.ts +73 -0
  119. package/src/serverGroup/details/resize/EcsResizeServerGroupModal.spec.tsx +130 -0
  120. package/src/serverGroup/details/resize/EcsResizeServerGroupModal.tsx +263 -0
  121. package/src/serverGroup/details/resize/index.ts +1 -0
  122. package/src/serverGroup/details/rollback/EcsRollbackServerGroupModal.spec.tsx +173 -0
  123. package/src/serverGroup/details/rollback/EcsRollbackServerGroupModal.tsx +285 -0
  124. package/src/serverGroup/details/rollback/index.ts +1 -0
  125. package/src/serverGroup/details/sections/EcsServerGroupDetailsSections.spec.tsx +130 -0
  126. package/src/serverGroup/details/sections/EcsServerGroupDetailsSections.tsx +172 -0
  127. package/src/serverGroup/details/sections/EcsServerGroupEventsSection.tsx +14 -0
  128. package/src/serverGroup/details/sections/EcsServerGroupInformationSection.tsx +25 -0
  129. package/src/serverGroup/events/EcsServerGroupEventsModal.spec.tsx +109 -0
  130. package/src/serverGroup/events/EcsServerGroupEventsModal.tsx +112 -0
  131. package/src/serverGroup/events/EventsLink.tsx +18 -0
  132. package/src/serverGroup/events/serverGroupEventsReader.service.spec.ts +41 -0
  133. package/src/serverGroup/events/serverGroupEventsReader.service.ts +2 -8
  134. package/src/serverGroup/serverGroup.transformer.spec.ts +10 -24
  135. package/src/serverGroup/serverGroup.transformer.ts +1 -5
  136. package/src/serviceDiscovery/serviceDiscovery.read.service.ts +1 -1
  137. package/dist/common/common.module.d.ts +0 -1
  138. package/dist/common/footer.component.d.ts +0 -1
  139. package/dist/instance/details/instance.details.controller.d.ts +0 -2
  140. package/dist/securityGroup/details/securityGroupDetail.controller.d.ts +0 -2
  141. package/dist/securityGroup/securityGroup.module.d.ts +0 -1
  142. package/dist/serverGroup/configure/wizard/CloneServerGroup.ecs.controller.d.ts +0 -2
  143. package/dist/serverGroup/configure/wizard/advancedSettings/advancedSettings.component.d.ts +0 -2
  144. package/dist/serverGroup/configure/wizard/horizontalScaling/horizontalScaling.component.d.ts +0 -2
  145. package/dist/serverGroup/configure/wizard/location/ServerGroupBasicSettings.controller.d.ts +0 -2
  146. package/dist/serverGroup/configure/wizard/logging/logging.component.d.ts +0 -1
  147. package/dist/serverGroup/details/resize/resizeCapacity.component.d.ts +0 -1
  148. package/dist/serverGroup/details/resize/resizeServerGroup.controller.d.ts +0 -2
  149. package/dist/serverGroup/details/rollback/rollbackServerGroup.controller.d.ts +0 -2
  150. package/dist/serverGroup/details/serverGroupDetails.ecs.controller.d.ts +0 -2
  151. package/dist/serverGroup/details/serverGroupDetails.module.d.ts +0 -1
  152. package/dist/serverGroup/events/events.component.d.ts +0 -3
  153. package/dist/serverGroup/events/events.controller.d.ts +0 -19
  154. package/dist/serverGroup/serverGroup.module.d.ts +0 -1
  155. package/src/common/common.module.ts +0 -6
  156. package/src/common/footer.component.ts +0 -29
  157. package/src/instance/details/instance.details.controller.js +0 -356
  158. package/src/instance/details/instanceDetails.html +0 -204
  159. package/src/pipeline/stages/cloneServerGroup/cloneServerGroupStage.html +0 -101
  160. package/src/pipeline/stages/cloneServerGroup/cloneServerGroupStepLabel.html +0 -1
  161. package/src/pipeline/stages/destroyAsg/destroyAsgStage.html +0 -9
  162. package/src/pipeline/stages/destroyAsg/destroyAsgStepLabel.html +0 -1
  163. package/src/pipeline/stages/disableAsg/disableAsgStage.html +0 -11
  164. package/src/pipeline/stages/disableAsg/disableAsgStepLabel.html +0 -1
  165. package/src/pipeline/stages/disableCluster/disableClusterStage.html +0 -26
  166. package/src/pipeline/stages/enableAsg/enableAsgStage.html +0 -11
  167. package/src/pipeline/stages/enableAsg/enableAsgStepLabel.html +0 -1
  168. package/src/pipeline/stages/findImageFromTags/findImageFromTagsExecutionDetails.html +0 -36
  169. package/src/pipeline/stages/findImageFromTags/findImageFromTagsStage.html +0 -9
  170. package/src/pipeline/stages/resizeAsg/resizeAsgStage.html +0 -87
  171. package/src/pipeline/stages/resizeAsg/resizeAsgStepLabel.html +0 -1
  172. package/src/pipeline/stages/scaleDownCluster/scaleDownClusterStage.html +0 -35
  173. package/src/pipeline/stages/shrinkCluster/shrinkClusterStage.html +0 -34
  174. package/src/securityGroup/details/securityGroupDetail.controller.js +0 -147
  175. package/src/securityGroup/details/securityGroupDetail.html +0 -104
  176. package/src/securityGroup/securityGroup.module.ts +0 -12
  177. package/src/serverGroup/configure/wizard/CloneServerGroup.ecs.controller.js +0 -259
  178. package/src/serverGroup/configure/wizard/advancedSettings/advancedSettings.component.html +0 -194
  179. package/src/serverGroup/configure/wizard/advancedSettings/advancedSettings.component.js +0 -17
  180. package/src/serverGroup/configure/wizard/advancedSettings/advancedSettings.html +0 -10
  181. package/src/serverGroup/configure/wizard/capacityProvider/capacityProvider.html +0 -11
  182. package/src/serverGroup/configure/wizard/container/container.html +0 -9
  183. package/src/serverGroup/configure/wizard/horizontalScaling/horizontalScaling.component.html +0 -118
  184. package/src/serverGroup/configure/wizard/horizontalScaling/horizontalScaling.component.js +0 -20
  185. package/src/serverGroup/configure/wizard/horizontalScaling/horizontalScaling.html +0 -13
  186. package/src/serverGroup/configure/wizard/location/ServerGroupBasicSettings.controller.js +0 -41
  187. package/src/serverGroup/configure/wizard/location/basicSettings.html +0 -137
  188. package/src/serverGroup/configure/wizard/logging/logging.component.html +0 -29
  189. package/src/serverGroup/configure/wizard/logging/logging.component.ts +0 -12
  190. package/src/serverGroup/configure/wizard/logging/logging.html +0 -7
  191. package/src/serverGroup/configure/wizard/networking/networking.html +0 -9
  192. package/src/serverGroup/configure/wizard/serverGroupWizard.html +0 -55
  193. package/src/serverGroup/configure/wizard/serviceDiscovery/serviceDiscovery.html +0 -11
  194. package/src/serverGroup/configure/wizard/taskDefinition/taskDefinition.html +0 -51
  195. package/src/serverGroup/configure/wizard/templateSelection/templateSelection.html +0 -9
  196. package/src/serverGroup/configure/wizard/verticalScaling/verticalScaling.html +0 -10
  197. package/src/serverGroup/details/resize/resizeCapacity.component.html +0 -94
  198. package/src/serverGroup/details/resize/resizeCapacity.component.ts +0 -14
  199. package/src/serverGroup/details/resize/resizeServerGroup.controller.js +0 -85
  200. package/src/serverGroup/details/resize/resizeServerGroup.html +0 -28
  201. package/src/serverGroup/details/rollback/rollbackServerGroup.controller.js +0 -97
  202. package/src/serverGroup/details/rollback/rollbackServerGroup.html +0 -67
  203. package/src/serverGroup/details/serverGroupDetails.ecs.controller.js +0 -366
  204. package/src/serverGroup/details/serverGroupDetails.html +0 -216
  205. package/src/serverGroup/details/serverGroupDetails.module.ts +0 -5
  206. package/src/serverGroup/events/events.component.ts +0 -35
  207. package/src/serverGroup/events/events.controller.ts +0 -45
  208. package/src/serverGroup/events/events.html +0 -36
  209. package/src/serverGroup/serverGroup.module.ts +0 -6
@@ -1,97 +0,0 @@
1
- 'use strict';
2
-
3
- import { module } from 'angular';
4
-
5
- import { SERVER_GROUP_WRITER, TaskMonitor } from '@spinnaker/core';
6
-
7
- export const ECS_SERVERGROUP_DETAILS_ROLLBACK_ROLLBACKSERVERGROUP_CONTROLLER =
8
- 'spinnaker.ecs.serverGroup.details.rollback.controller';
9
- export const name = ECS_SERVERGROUP_DETAILS_ROLLBACK_ROLLBACKSERVERGROUP_CONTROLLER; // for backwards compatibility
10
- module(ECS_SERVERGROUP_DETAILS_ROLLBACK_ROLLBACKSERVERGROUP_CONTROLLER, [SERVER_GROUP_WRITER]).controller(
11
- 'ecsRollbackServerGroupCtrl',
12
- [
13
- '$scope',
14
- '$uibModalInstance',
15
- 'serverGroupWriter',
16
- 'application',
17
- 'serverGroup',
18
- 'disabledServerGroups',
19
- 'allServerGroups',
20
- function (
21
- $scope,
22
- $uibModalInstance,
23
- serverGroupWriter,
24
- application,
25
- serverGroup,
26
- disabledServerGroups,
27
- allServerGroups,
28
- ) {
29
- $scope.serverGroup = serverGroup;
30
- $scope.disabledServerGroups = disabledServerGroups.sort((a, b) => b.name.localeCompare(a.name));
31
- $scope.allServerGroups = allServerGroups.sort((a, b) => b.name.localeCompare(a.name));
32
- $scope.verification = {};
33
-
34
- $scope.command = {
35
- rollbackType: 'EXPLICIT',
36
- rollbackContext: {
37
- rollbackServerGroupName: serverGroup.name,
38
- },
39
- };
40
-
41
- if (application && application.attributes) {
42
- if (application.attributes.platformHealthOnlyShowOverride && application.attributes.platformHealthOnly) {
43
- $scope.command.interestingHealthProviderNames = ['Ecs'];
44
- }
45
-
46
- $scope.command.platformHealthOnlyShowOverride = application.attributes.platformHealthOnlyShowOverride;
47
- }
48
-
49
- this.isValid = function () {
50
- const command = $scope.command;
51
- if (!$scope.verification.verified) {
52
- return false;
53
- }
54
-
55
- return command.rollbackContext.restoreServerGroupName !== undefined;
56
- };
57
-
58
- $scope.taskMonitor = new TaskMonitor({
59
- application: application,
60
- title: 'Rollback ' + serverGroup.name,
61
- modalInstance: $uibModalInstance,
62
- });
63
-
64
- this.rollback = function () {
65
- if (!this.isValid()) {
66
- return;
67
- }
68
-
69
- const submitMethod = function () {
70
- return serverGroupWriter.rollbackServerGroup(serverGroup, application, $scope.command);
71
- };
72
-
73
- $scope.taskMonitor.submit(submitMethod);
74
- };
75
-
76
- this.cancel = function () {
77
- $uibModalInstance.dismiss();
78
- };
79
-
80
- this.label = function (serverGroup) {
81
- if (!serverGroup) {
82
- return '';
83
- }
84
-
85
- if (!serverGroup.buildInfo || !serverGroup.buildInfo.jenkins || !serverGroup.buildInfo.jenkins.number) {
86
- return serverGroup.name;
87
- }
88
-
89
- return serverGroup.name + ' (build #' + serverGroup.buildInfo.jenkins.number + ')';
90
- };
91
-
92
- this.group = function (serverGroup) {
93
- return serverGroup.isDisabled ? 'Disabled Server Groups' : 'Enabled Server Groups';
94
- };
95
- },
96
- ],
97
- );
@@ -1,67 +0,0 @@
1
- <div modal-page class="confirmation-modal">
2
- <task-monitor monitor="taskMonitor"></task-monitor>
3
- <form role="form">
4
- <modal-close dismiss="$dismiss()"></modal-close>
5
- <div class="modal-header">
6
- <h4 class="modal-title">Rollback {{serverGroup.name}}</h4>
7
- </div>
8
- <div class="modal-body confirmation-modal">
9
- <div class="row">
10
- <div class="col-sm-3 sm-label-right">Restore to</div>
11
- <div class="col-sm-6">
12
- <ui-select ng-model="command.rollbackContext.restoreServerGroupName" class="form-control input-sm">
13
- <ui-select-match placeholder="Select...">{{ctrl.label($select.selected)}}</ui-select-match>
14
- <ui-select-choices group-by="ctrl.group" repeat="serverGroup.name as serverGroup in allServerGroups">
15
- <span ng-bind-html="ctrl.label(serverGroup)"></span>
16
- </ui-select-choices>
17
- </ui-select>
18
- </div>
19
- </div>
20
-
21
- <div class="row" ng-if="command.platformHealthOnlyShowOverride">
22
- <div class="col-sm-10 col-sm-offset-1">
23
- <platform-health-override
24
- command="command"
25
- platform-health-type="'Ecs'"
26
- show-help-details="true"
27
- field-columns="12"
28
- >
29
- </platform-health-override>
30
- </div>
31
- </div>
32
-
33
- <task-reason command="command"></task-reason>
34
-
35
- <div class="row">
36
- <div class="col-sm-4 sm-label-right">Rollback Operations</div>
37
- </div>
38
- <div class="row">
39
- <div class="col-sm-11 col-sm-offset-1">
40
- <ol>
41
- <li>Enable <em>{{ command.rollbackContext.restoreServerGroupName || 'previous server group' }}</em></li>
42
- <li>
43
- Resize <em>{{ command.rollbackContext.restoreServerGroupName || 'previous server group' }}</em> to [
44
- <strong>min</strong>: {{serverGroup.capacity.desired}}, <strong>max</strong>: {{ serverGroup.capacity.max
45
- }}, <strong>desired</strong>: {{ serverGroup.capacity.desired }} ]<br />(minimum capacity pinned at
46
- {{serverGroup.capacity.desired}} to prevent autoscaling down during rollback)
47
- </li>
48
- <li>Disable {{ serverGroup.name }}</li>
49
- <li>
50
- Restore minimum capacity of
51
- <em>{{ command.rollbackContext.restoreServerGroupName || 'previous server group' }}</em> [
52
- <strong>min</strong>: {{ serverGroup.capacity.min }} ]
53
- </li>
54
- </ol>
55
- <p>This rollback will affect server groups in {{ serverGroup.account }} ({{ serverGroup.region }}).</p>
56
- </div>
57
- </div>
58
- </div>
59
- <ecs-footer
60
- action="ctrl.rollback()"
61
- cancel="ctrl.cancel()"
62
- is-valid="ctrl.isValid()"
63
- account="serverGroup.account"
64
- verification="verification"
65
- ></ecs-footer>
66
- </form>
67
- </div>
@@ -1,366 +0,0 @@
1
- 'use strict';
2
-
3
- import UIROUTER_ANGULARJS from '@uirouter/angularjs';
4
- import * as angular from 'angular';
5
- import { chain, filter, find, has, isEmpty } from 'lodash';
6
-
7
- import {
8
- AccountService,
9
- ConfirmationModalService,
10
- FirewallLabels,
11
- OVERRIDE_REGISTRY,
12
- SERVER_GROUP_WRITER,
13
- ServerGroupReader,
14
- ServerGroupWarningMessageService,
15
- SubnetReader,
16
- } from '@spinnaker/core';
17
-
18
- import { ECS_SERVERGROUP_CONFIGURE_SERVERGROUPCOMMANDBUILDER_SERVICE } from '../configure/serverGroupCommandBuilder.service';
19
- import { ECS_SERVERGROUP_DETAILS_RESIZE_RESIZESERVERGROUP_CONTROLLER } from './resize/resizeServerGroup.controller';
20
- import { ECS_SERVERGROUP_DETAILS_ROLLBACK_ROLLBACKSERVERGROUP_CONTROLLER } from './rollback/rollbackServerGroup.controller';
21
- import { ECS_SERVER_GROUP_TRANSFORMER } from '../serverGroup.transformer';
22
-
23
- export const ECS_SERVERGROUP_DETAILS_SERVERGROUPDETAILS_ECS_CONTROLLER = 'spinnaker.ecs.serverGroup.details.controller';
24
- export const name = ECS_SERVERGROUP_DETAILS_SERVERGROUPDETAILS_ECS_CONTROLLER; // for backwards compatibility
25
- angular
26
- .module(ECS_SERVERGROUP_DETAILS_SERVERGROUPDETAILS_ECS_CONTROLLER, [
27
- UIROUTER_ANGULARJS,
28
- ECS_SERVER_GROUP_TRANSFORMER,
29
- OVERRIDE_REGISTRY,
30
- SERVER_GROUP_WRITER,
31
- ECS_SERVERGROUP_CONFIGURE_SERVERGROUPCOMMANDBUILDER_SERVICE,
32
- ECS_SERVERGROUP_DETAILS_RESIZE_RESIZESERVERGROUP_CONTROLLER,
33
- ECS_SERVERGROUP_DETAILS_ROLLBACK_ROLLBACKSERVERGROUP_CONTROLLER,
34
- ])
35
- .controller('ecsServerGroupDetailsCtrl', [
36
- '$scope',
37
- '$state',
38
- 'app',
39
- 'serverGroup',
40
- 'ecsServerGroupCommandBuilder',
41
- '$uibModal',
42
- 'serverGroupWriter',
43
- 'ecsServerGroupTransformer',
44
- 'overrideRegistry',
45
- function (
46
- $scope,
47
- $state,
48
- app,
49
- serverGroup,
50
- ecsServerGroupCommandBuilder,
51
- $uibModal,
52
- serverGroupWriter,
53
- ecsServerGroupTransformer,
54
- overrideRegistry,
55
- ) {
56
- this.state = {
57
- loading: true,
58
- };
59
-
60
- this.firewallsLabel = FirewallLabels.get('Firewalls');
61
-
62
- this.application = app;
63
-
64
- const extractServerGroupSummary = () => {
65
- return app.ready().then(() => {
66
- let summary = find(app.serverGroups.data, (toCheck) => {
67
- return (
68
- toCheck.name === serverGroup.name &&
69
- toCheck.account === serverGroup.accountId &&
70
- toCheck.region === serverGroup.region
71
- );
72
- });
73
- if (!summary) {
74
- app.loadBalancers.data.some((loadBalancer) => {
75
- if (loadBalancer.account === serverGroup.accountId && loadBalancer.region === serverGroup.region) {
76
- return loadBalancer.serverGroups.some((possibleServerGroup) => {
77
- if (possibleServerGroup.name === serverGroup.name) {
78
- summary = possibleServerGroup;
79
- return true;
80
- }
81
- });
82
- }
83
- });
84
- }
85
- return summary;
86
- });
87
- };
88
-
89
- const autoClose = () => {
90
- if ($scope.$$destroyed) {
91
- return;
92
- }
93
- $state.go('^', { allowModalToStayOpen: true }, { location: 'replace' });
94
- };
95
-
96
- const cancelLoader = () => {
97
- this.state.loading = false;
98
- };
99
-
100
- const retrieveServerGroup = () => {
101
- return extractServerGroupSummary()
102
- .then((summary) => {
103
- return ServerGroupReader.getServerGroup(
104
- app.name,
105
- serverGroup.accountId,
106
- serverGroup.region,
107
- serverGroup.name,
108
- ).then((details) => {
109
- cancelLoader();
110
-
111
- // it's possible the summary was not found because the clusters are still loading
112
- angular.extend(details, summary, { account: serverGroup.accountId });
113
-
114
- this.serverGroup = ecsServerGroupTransformer.normalizeServerGroupDetails(details);
115
- this.applyAccountDetails(this.serverGroup);
116
-
117
- if (!isEmpty(this.serverGroup)) {
118
- this.image = details.image ? details.image : undefined;
119
-
120
- const vpc = this.serverGroup.asg ? this.serverGroup.asg.vpczoneIdentifier : '';
121
-
122
- if (vpc !== '') {
123
- const subnetId = vpc.split(',')[0];
124
- SubnetReader.listSubnets().then((subnets) => {
125
- const subnet = chain(subnets).find({ id: subnetId }).value();
126
- this.serverGroup.subnetType = subnet.purpose;
127
- });
128
- }
129
-
130
- if (details.image && details.image.description) {
131
- const tags = details.image.description.split(', ');
132
- tags.forEach((tag) => {
133
- const keyVal = tag.split('=');
134
- if (keyVal.length === 2 && keyVal[0] === 'ancestor_name') {
135
- details.image.baseImage = keyVal[1];
136
- }
137
- });
138
- }
139
-
140
- if (details.image && details.image.tags) {
141
- const baseAmiVersionTag = details.image.tags.find((tag) => tag.key === 'base_ami_version');
142
- if (baseAmiVersionTag) {
143
- details.baseAmiVersion = baseAmiVersionTag.value;
144
- }
145
- }
146
-
147
- this.scalingPolicies = this.serverGroup.scalingPolicies;
148
- // TODO - figure out whether we need the commented out block below, or not. IF we do, then we need to make it stop crashing
149
-
150
- if (has(this.serverGroup, 'buildInfo.jenkins')) {
151
- this.changeConfig.buildInfo = {
152
- jenkins: this.serverGroup.buildInfo.jenkins,
153
- };
154
- }
155
-
156
- /*this.scalingPoliciesDisabled = this.scalingPolicies.length && this.autoScalingProcesses
157
- .filter(p => !p.enabled)
158
- .some(p => ['Launch','Terminate','AlarmNotification'].includes(p.name));
159
- this.scheduledActionsDisabled = this.serverGroup.scheduledActions.length && this.autoScalingProcesses
160
- .filter(p => !p.enabled)
161
- .some(p => ['Launch','Terminate','ScheduledAction'].includes(p.name));
162
- configureEntityTagTargets();
163
-
164
- this.changeConfig = {
165
- metadata: get(this.serverGroup.entityTags, 'creationMetadata')
166
- };
167
- */
168
- } else {
169
- autoClose();
170
- }
171
- });
172
- })
173
- .catch(autoClose);
174
- };
175
-
176
- retrieveServerGroup().then(() => {
177
- // If the user navigates away from the view before the initial retrieveServerGroup call completes,
178
- // do not bother subscribing to the refresh
179
- if (!$scope.$$destroyed) {
180
- app.serverGroups.onRefresh($scope, retrieveServerGroup);
181
- }
182
- });
183
-
184
- this.destroyServerGroup = () => {
185
- const serverGroup = this.serverGroup;
186
-
187
- const taskMonitor = {
188
- application: app,
189
- title: 'Destroying ' + serverGroup.name,
190
- onTaskComplete: () => {
191
- if ($state.includes('**.serverGroup', stateParams)) {
192
- $state.go('^');
193
- }
194
- },
195
- };
196
-
197
- const submitMethod = (params) => serverGroupWriter.destroyServerGroup(serverGroup, app, params);
198
-
199
- const stateParams = {
200
- name: serverGroup.name,
201
- accountId: serverGroup.account,
202
- region: serverGroup.region,
203
- };
204
-
205
- const confirmationModalParams = {
206
- header: 'Really destroy ' + serverGroup.name + '?',
207
- buttonText: 'Destroy ' + serverGroup.name,
208
- account: serverGroup.account,
209
- taskMonitorConfig: taskMonitor,
210
- submitMethod: submitMethod,
211
- askForReason: true,
212
- platformHealthOnlyShowOverride: app.attributes.platformHealthOnlyShowOverride,
213
- platformHealthType: 'Ecs',
214
- };
215
-
216
- ServerGroupWarningMessageService.addDestroyWarningMessage(app, serverGroup, confirmationModalParams);
217
-
218
- if (app.attributes.platformHealthOnlyShowOverride && app.attributes.platformHealthOnly) {
219
- confirmationModalParams.interestingHealthProviderNames = ['Ecs'];
220
- }
221
-
222
- ConfirmationModalService.confirm(confirmationModalParams);
223
- };
224
-
225
- this.disableServerGroup = () => {
226
- const serverGroup = this.serverGroup;
227
-
228
- const taskMonitor = {
229
- application: app,
230
- title: 'Disabling ' + serverGroup.name,
231
- };
232
-
233
- const submitMethod = (params) => {
234
- return serverGroupWriter.disableServerGroup(serverGroup, app, params);
235
- };
236
-
237
- const confirmationModalParams = {
238
- header: 'Really disable ' + serverGroup.name + '?',
239
- buttonText: 'Disable ' + serverGroup.name,
240
- account: serverGroup.account,
241
- taskMonitorConfig: taskMonitor,
242
- platformHealthOnlyShowOverride: app.attributes.platformHealthOnlyShowOverride,
243
- platformHealthType: 'Ecs',
244
- submitMethod: submitMethod,
245
- askForReason: true,
246
- };
247
-
248
- ServerGroupWarningMessageService.addDisableWarningMessage(app, serverGroup, confirmationModalParams);
249
-
250
- if (app.attributes.platformHealthOnlyShowOverride && app.attributes.platformHealthOnly) {
251
- confirmationModalParams.interestingHealthProviderNames = ['Ecs'];
252
- }
253
-
254
- ConfirmationModalService.confirm(confirmationModalParams);
255
- };
256
-
257
- this.enableServerGroup = () => {
258
- const serverGroup = this.serverGroup;
259
-
260
- const taskMonitor = {
261
- application: app,
262
- title: 'Enabling ' + serverGroup.name,
263
- };
264
-
265
- const submitMethod = (params) => {
266
- return serverGroupWriter.enableServerGroup(serverGroup, app, params);
267
- };
268
-
269
- const confirmationModalParams = {
270
- header: 'Really enable ' + serverGroup.name + '?',
271
- buttonText: 'Enable ' + serverGroup.name,
272
- account: serverGroup.account,
273
- taskMonitorConfig: taskMonitor,
274
- platformHealthOnlyShowOverride: app.attributes.platformHealthOnlyShowOverride,
275
- platformHealthType: 'Ecs',
276
- submitMethod: submitMethod,
277
- askForReason: true,
278
- };
279
-
280
- if (app.attributes.platformHealthOnlyShowOverride && app.attributes.platformHealthOnly) {
281
- confirmationModalParams.interestingHealthProviderNames = ['Ecs'];
282
- }
283
-
284
- ConfirmationModalService.confirm(confirmationModalParams);
285
- };
286
-
287
- this.rollbackServerGroup = () => {
288
- $uibModal.open({
289
- templateUrl: overrideRegistry.getTemplate(
290
- 'ecs.rollback.modal',
291
- require('./rollback/rollbackServerGroup.html'),
292
- ),
293
- windowClass: 'modal-z-index',
294
- controller: 'ecsRollbackServerGroupCtrl as ctrl',
295
- resolve: {
296
- serverGroup: () => this.serverGroup,
297
- disabledServerGroups: () => {
298
- const cluster = find(app.clusters, { name: this.serverGroup.cluster, account: this.serverGroup.account });
299
- return filter(cluster.serverGroups, { isDisabled: true, region: this.serverGroup.region });
300
- },
301
- allServerGroups: () =>
302
- app
303
- .getDataSource('serverGroups')
304
- .data.filter(
305
- (g) =>
306
- g.cluster === this.serverGroup.cluster &&
307
- g.region === this.serverGroup.region &&
308
- g.account === this.serverGroup.account &&
309
- g.name !== this.serverGroup.name,
310
- ),
311
- application: () => app,
312
- },
313
- });
314
- };
315
-
316
- this.resizeServerGroup = () => {
317
- $uibModal.open({
318
- templateUrl: overrideRegistry.getTemplate('ecs.resize.modal', require('./resize/resizeServerGroup.html')),
319
- controller: 'ecsResizeServerGroupCtrl as ctrl',
320
- windowClass: 'modal-z-index',
321
- resolve: {
322
- serverGroup: () => this.serverGroup,
323
- application: () => app,
324
- },
325
- });
326
- };
327
-
328
- this.cloneServerGroup = (serverGroup) => {
329
- $uibModal.open({
330
- templateUrl: require('../configure/wizard/serverGroupWizard.html'),
331
- controller: 'ecsCloneServerGroupCtrl as ctrl',
332
- size: 'lg',
333
- windowClass: 'modal-z-index',
334
- resolve: {
335
- title: () => 'Clone ' + serverGroup.name,
336
- application: () => app,
337
- serverGroupCommand: () =>
338
- ecsServerGroupCommandBuilder.buildServerGroupCommandFromExisting(app, serverGroup),
339
- },
340
- });
341
- };
342
-
343
- this.buildJenkinsLink = () => {
344
- if (has(this, 'serverGroup.buildInfo.buildInfoUrl')) {
345
- return this.serverGroup.buildInfo.buildInfoUrl;
346
- } else if (has(this, 'serverGroup.buildInfo.jenkins')) {
347
- const jenkins = this.serverGroup.buildInfo.jenkins;
348
- return jenkins.host + 'job/' + jenkins.name + '/' + jenkins.number;
349
- }
350
- return null;
351
- };
352
-
353
- this.truncateCommitHash = () => {
354
- if (this.serverGroup && this.serverGroup.buildInfo && this.serverGroup.buildInfo.commit) {
355
- return this.serverGroup.buildInfo.commit.substring(0, 8);
356
- }
357
- return null;
358
- };
359
-
360
- this.applyAccountDetails = (serverGroup) => {
361
- return AccountService.getAccountDetails(serverGroup.account).then((details) => {
362
- serverGroup.accountDetails = details;
363
- });
364
- };
365
- },
366
- ]);