@spinnaker/appengine 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 (131) hide show
  1. package/dist/appengine.module.d.ts +7 -1
  2. package/dist/domain/index.d.ts +0 -1
  3. package/dist/index.d.ts +1 -1
  4. package/dist/index.js +1 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/instance/details/AppengineInstanceDetails.d.ts +11 -0
  7. package/dist/loadBalancer/configure/AppengineCreateLoadBalancerModal.d.ts +29 -0
  8. package/dist/loadBalancer/details/AppengineLoadBalancerActions.d.ts +5 -0
  9. package/dist/loadBalancer/details/AppengineLoadBalancerDetailsSection.d.ts +3 -0
  10. package/dist/loadBalancer/details/index.d.ts +3 -0
  11. package/dist/loadBalancer/details/useAppengineLoadBalancerDetails.d.ts +3 -0
  12. package/dist/loadBalancer/transformer.d.ts +2 -6
  13. package/dist/pipeline/stages/AppengineExecutionDetails.d.ts +15 -0
  14. package/dist/pipeline/stages/AppengineServerGroupStageConfig.d.ts +12 -0
  15. package/dist/pipeline/stages/destroyAsg/appengineDestroyAsgStage.d.ts +1 -1
  16. package/dist/pipeline/stages/disableAsg/appengineDisableAsgStage.d.ts +1 -1
  17. package/dist/pipeline/stages/editLoadBalancer/AppengineEditLoadBalancerStageConfig.d.ts +3 -0
  18. package/dist/pipeline/stages/editLoadBalancer/appengineEditLoadBalancerStage.d.ts +1 -1
  19. package/dist/pipeline/stages/enableAsg/appengineEnableAsgStage.d.ts +1 -1
  20. package/dist/pipeline/stages/shrinkCluster/appengineShrinkClusterStage.d.ts +1 -1
  21. package/dist/pipeline/stages/startServerGroup/appengineStartServerGroupStage.d.ts +1 -1
  22. package/dist/pipeline/stages/stopServerGroup/appengineStopServerGroupStage.d.ts +1 -1
  23. package/dist/serverGroup/configure/serverGroupCommandBuilder.service.d.ts +5 -9
  24. package/dist/serverGroup/configure/wizard/AppengineCloneServerGroupModal.d.ts +22 -0
  25. package/dist/serverGroup/details/AppengineServerGroupActions.d.ts +12 -0
  26. package/dist/serverGroup/details/AppengineServerGroupDetailsSection.d.ts +3 -0
  27. package/dist/serverGroup/details/appengineServerGroupDetailsGetter.d.ts +4 -0
  28. package/dist/serverGroup/details/index.d.ts +3 -0
  29. package/dist/serverGroup/transformer.d.ts +1 -5
  30. package/dist/serverGroup/writer/serverGroup.write.service.d.ts +15 -4
  31. package/package.json +4 -8
  32. package/src/appengine.module.spec.ts +194 -0
  33. package/src/appengine.module.ts +47 -58
  34. package/src/domain/index.ts +0 -1
  35. package/src/index.ts +1 -1
  36. package/src/instance/details/AppengineInstanceDetails.tsx +33 -0
  37. package/src/loadBalancer/configure/AppengineCreateLoadBalancerModal.tsx +342 -0
  38. package/src/loadBalancer/details/AppengineLoadBalancerActions.tsx +66 -0
  39. package/src/loadBalancer/details/AppengineLoadBalancerDetailsSection.tsx +42 -0
  40. package/src/loadBalancer/details/index.ts +3 -0
  41. package/src/loadBalancer/details/useAppengineLoadBalancerDetails.ts +37 -0
  42. package/src/loadBalancer/transformer.ts +3 -14
  43. package/src/pipeline/stages/AppengineExecutionDetails.tsx +90 -0
  44. package/src/pipeline/stages/AppengineServerGroupStageConfig.tsx +190 -0
  45. package/src/pipeline/stages/destroyAsg/appengineDestroyAsgStage.ts +17 -43
  46. package/src/pipeline/stages/disableAsg/appengineDisableAsgStage.ts +18 -53
  47. package/src/pipeline/stages/editLoadBalancer/AppengineEditLoadBalancerStageConfig.tsx +94 -0
  48. package/src/pipeline/stages/editLoadBalancer/appengineEditLoadBalancerStage.ts +14 -74
  49. package/src/pipeline/stages/enableAsg/appengineEnableAsgStage.ts +13 -48
  50. package/src/pipeline/stages/shrinkCluster/appengineShrinkClusterStage.ts +13 -61
  51. package/src/pipeline/stages/startServerGroup/appengineStartServerGroupStage.ts +17 -54
  52. package/src/pipeline/stages/stopServerGroup/appengineStopServerGroupStage.ts +17 -54
  53. package/src/serverGroup/configure/serverGroupCommandBuilder.service.ts +20 -19
  54. package/src/serverGroup/configure/wizard/AppengineCloneServerGroupModal.tsx +119 -0
  55. package/src/serverGroup/configure/wizard/serverGroupWizard.less +0 -8
  56. package/src/serverGroup/details/AppengineServerGroupActions.tsx +245 -0
  57. package/src/serverGroup/details/AppengineServerGroupDetailsSection.tsx +27 -0
  58. package/src/serverGroup/details/appengineServerGroupDetailsGetter.ts +62 -0
  59. package/src/serverGroup/details/index.ts +3 -0
  60. package/src/serverGroup/transformer.ts +3 -15
  61. package/src/serverGroup/writer/serverGroup.write.service.ts +57 -8
  62. package/dist/common/componentUrlDetails.component.d.ts +0 -1
  63. package/dist/common/conditionalDescriptionListItem.component.d.ts +0 -1
  64. package/dist/common/loadBalancerMessage.component.d.ts +0 -1
  65. package/dist/domain/IAppengineStageScope.d.ts +0 -18
  66. package/dist/instance/details/details.controller.d.ts +0 -1
  67. package/dist/loadBalancer/configure/wizard/advancedSettings.component.d.ts +0 -1
  68. package/dist/loadBalancer/configure/wizard/allocationConfigurationRow.component.d.ts +0 -1
  69. package/dist/loadBalancer/configure/wizard/basicSettings.component.d.ts +0 -1
  70. package/dist/loadBalancer/configure/wizard/stageAllocationConfigurationRow.component.d.ts +0 -1
  71. package/dist/loadBalancer/configure/wizard/wizard.controller.d.ts +0 -2
  72. package/dist/loadBalancer/details/details.controller.d.ts +0 -1
  73. package/dist/loadBalancer/loadBalancer.module.d.ts +0 -1
  74. package/dist/pipeline/pipeline.module.d.ts +0 -1
  75. package/dist/pipeline/stages/appengineStage.controller.d.ts +0 -12
  76. package/dist/pipeline/stages/editLoadBalancer/loadBalancerChoice.modal.controller.d.ts +0 -1
  77. package/dist/serverGroup/configure/wizard/basicSettings.controller.d.ts +0 -1
  78. package/dist/serverGroup/configure/wizard/cloneServerGroup.controller.d.ts +0 -2
  79. package/dist/serverGroup/configure/wizard/configFileArtifactList.module.d.ts +0 -1
  80. package/dist/serverGroup/configure/wizard/configFiles.component.d.ts +0 -20
  81. package/dist/serverGroup/configure/wizard/dynamicBranchLabel.component.d.ts +0 -1
  82. package/dist/serverGroup/details/details.controller.d.ts +0 -1
  83. package/src/common/componentUrlDetails.component.ts +0 -29
  84. package/src/common/conditionalDescriptionListItem.component.ts +0 -37
  85. package/src/common/loadBalancerMessage.component.html +0 -33
  86. package/src/common/loadBalancerMessage.component.ts +0 -13
  87. package/src/domain/IAppengineStageScope.ts +0 -22
  88. package/src/instance/details/details.controller.ts +0 -116
  89. package/src/instance/details/details.html +0 -99
  90. package/src/loadBalancer/configure/wizard/advancedSettings.component.ts +0 -56
  91. package/src/loadBalancer/configure/wizard/allocationConfigurationRow.component.ts +0 -70
  92. package/src/loadBalancer/configure/wizard/basicSettings.component.html +0 -65
  93. package/src/loadBalancer/configure/wizard/basicSettings.component.ts +0 -98
  94. package/src/loadBalancer/configure/wizard/stageAllocationConfigurationRow.component.html +0 -117
  95. package/src/loadBalancer/configure/wizard/stageAllocationConfigurationRow.component.ts +0 -108
  96. package/src/loadBalancer/configure/wizard/wizard.controller.ts +0 -163
  97. package/src/loadBalancer/configure/wizard/wizard.html +0 -44
  98. package/src/loadBalancer/configure/wizard/wizard.less +0 -17
  99. package/src/loadBalancer/details/details.controller.ts +0 -151
  100. package/src/loadBalancer/details/details.html +0 -102
  101. package/src/loadBalancer/loadBalancer.module.ts +0 -21
  102. package/src/pipeline/pipeline.module.ts +0 -20
  103. package/src/pipeline/stages/appengineStage.controller.ts +0 -45
  104. package/src/pipeline/stages/destroyAsg/destroyAsgStage.html +0 -16
  105. package/src/pipeline/stages/destroyAsg/destroyAsgStepLabel.html +0 -1
  106. package/src/pipeline/stages/disableAsg/disableAsgStage.html +0 -18
  107. package/src/pipeline/stages/disableAsg/disableAsgStepLabel.html +0 -1
  108. package/src/pipeline/stages/editLoadBalancer/editLoadBalancerExecutionDetails.html +0 -33
  109. package/src/pipeline/stages/editLoadBalancer/editLoadBalancerStage.html +0 -51
  110. package/src/pipeline/stages/editLoadBalancer/loadBalancerChoice.modal.controller.ts +0 -65
  111. package/src/pipeline/stages/editLoadBalancer/loadBalancerChoice.modal.html +0 -45
  112. package/src/pipeline/stages/enableAsg/enableAsgStage.html +0 -18
  113. package/src/pipeline/stages/enableAsg/enableAsgStepLabel.html +0 -1
  114. package/src/pipeline/stages/shrinkCluster/shrinkClusterStage.html +0 -41
  115. package/src/pipeline/stages/startServerGroup/startServerGroupExecutionDetails.html +0 -26
  116. package/src/pipeline/stages/startServerGroup/startServerGroupStage.html +0 -18
  117. package/src/pipeline/stages/startServerGroup/startServerGroupStepLabel.html +0 -1
  118. package/src/pipeline/stages/stopServerGroup/stopServerGroupExecutionDetails.html +0 -26
  119. package/src/pipeline/stages/stopServerGroup/stopServerGroupStage.html +0 -18
  120. package/src/pipeline/stages/stopServerGroup/stopServerGroupStepLabel.html +0 -1
  121. package/src/serverGroup/configure/wizard/advancedSettings.html +0 -33
  122. package/src/serverGroup/configure/wizard/basicSettings.controller.ts +0 -151
  123. package/src/serverGroup/configure/wizard/basicSettings.html +0 -287
  124. package/src/serverGroup/configure/wizard/cloneServerGroup.controller.ts +0 -103
  125. package/src/serverGroup/configure/wizard/configFileArtifactList.module.ts +0 -18
  126. package/src/serverGroup/configure/wizard/configFiles.component.html +0 -81
  127. package/src/serverGroup/configure/wizard/configFiles.component.ts +0 -121
  128. package/src/serverGroup/configure/wizard/dynamicBranchLabel.component.ts +0 -19
  129. package/src/serverGroup/configure/wizard/serverGroupWizard.html +0 -39
  130. package/src/serverGroup/details/details.controller.ts +0 -463
  131. package/src/serverGroup/details/details.html +0 -229
@@ -1,51 +0,0 @@
1
- <div class="well well-sm clearfix" ng-if="!pipeline.strategy">
2
- <div class="row">
3
- <div class="col-md-12">
4
- <h4 class="text-left">Load Balancers</h4>
5
- </div>
6
- </div>
7
- <div class="row">
8
- <div class="col-md-12">
9
- <table class="table table-condensed">
10
- <thead>
11
- <tr>
12
- <th>Account</th>
13
- <th>Name</th>
14
- <th>Region</th>
15
- <th>Actions</th>
16
- </tr>
17
- </thead>
18
- <tbody>
19
- <tr ng-repeat="loadBalancer in stage.loadBalancers">
20
- <td>
21
- <account-tag account="loadBalancer.credentials"></account-tag>
22
- </td>
23
- <td>{{ loadBalancer.name }}</td>
24
- <td>{{ loadBalancer.region }}</td>
25
- <td class="condensed-actions">
26
- <a class="btn btn-sm btn-link" href ng-click="editLoadBalancerStageCtrl.editLoadBalancer($index)">
27
- <span class="glyphicon glyphicon-edit" uib-tooltip="Edit"></span
28
- ></a>
29
- <a
30
- class="btn btn-sm btn-link pad-left"
31
- href
32
- ng-click="editLoadBalancerStageCtrl.removeLoadBalancer($index)"
33
- >
34
- <span class="glyphicon glyphicon-trash" uib-tooltip="Remove"></span>
35
- </a>
36
- </td>
37
- </tr>
38
- </tbody>
39
- <tfoot>
40
- <tr>
41
- <td colspan="8">
42
- <button class="btn btn-block btn-sm add-new" ng-click="editLoadBalancerStageCtrl.addLoadBalancer()">
43
- <span class="glyphicon glyphicon-plus-sign"></span> Add load balancer
44
- </button>
45
- </td>
46
- </tr>
47
- </tfoot>
48
- </table>
49
- </div>
50
- </div>
51
- </div>
@@ -1,65 +0,0 @@
1
- import type { IController } from 'angular';
2
- import { module } from 'angular';
3
- import type { IModalService, IModalServiceInstance } from 'angular-ui-bootstrap';
4
- import { cloneDeep } from 'lodash';
5
-
6
- import type { Application, ILoadBalancer } from '@spinnaker/core';
7
- import { CloudProviderRegistry } from '@spinnaker/core';
8
-
9
- class AppengineLoadBalancerChoiceModalCtrl implements IController {
10
- public state = { loading: true };
11
- public loadBalancers: ILoadBalancer[];
12
- public selectedLoadBalancer: ILoadBalancer;
13
-
14
- public static $inject = ['$uibModal', '$uibModalInstance', 'application'];
15
- constructor(
16
- private $uibModal: IModalService,
17
- private $uibModalInstance: IModalServiceInstance,
18
- private application: Application,
19
- ) {
20
- this.initialize();
21
- }
22
-
23
- public submit(): void {
24
- const config = CloudProviderRegistry.getValue('appengine', 'loadBalancer');
25
- const updatedLoadBalancerPromise = this.$uibModal.open({
26
- templateUrl: config.createLoadBalancerTemplateUrl,
27
- controller: `${config.createLoadBalancerController} as ctrl`,
28
- size: 'lg',
29
- resolve: {
30
- application: () => this.application,
31
- loadBalancer: () => cloneDeep(this.selectedLoadBalancer),
32
- isNew: () => false,
33
- forPipelineConfig: () => true,
34
- },
35
- }).result;
36
-
37
- this.$uibModalInstance.close(updatedLoadBalancerPromise);
38
- }
39
-
40
- public cancel(): void {
41
- this.$uibModalInstance.dismiss();
42
- }
43
-
44
- private initialize(): void {
45
- this.application
46
- .getDataSource('loadBalancers')
47
- .ready()
48
- .then(() => {
49
- this.loadBalancers = (this.application.loadBalancers.data as ILoadBalancer[]).filter(
50
- (candidate) => candidate.cloudProvider === 'appengine',
51
- );
52
-
53
- if (this.loadBalancers.length) {
54
- this.selectedLoadBalancer = this.loadBalancers[0];
55
- }
56
- this.state.loading = false;
57
- });
58
- }
59
- }
60
-
61
- export const APPENGINE_LOAD_BALANCER_CHOICE_MODAL_CTRL = 'spinnaker.appengine.loadBalancerChoiceModal.controller';
62
- module(APPENGINE_LOAD_BALANCER_CHOICE_MODAL_CTRL, []).controller(
63
- 'appengineLoadBalancerChoiceModelCtrl',
64
- AppengineLoadBalancerChoiceModalCtrl,
65
- );
@@ -1,45 +0,0 @@
1
- <div modal-page>
2
- <modal-close dismiss="$dismiss()"></modal-close>
3
- <div class="modal-header">
4
- <h4 class="modal-title">Select Load Balancer</h4>
5
- </div>
6
- <div class="modal-body" ng-if="ctrl.state.loading" style="height: 200px" class="horizontal center middle">
7
- <loading-spinner size="'small'"></loading-spinner>
8
- </div>
9
- <div class="modal-body" ng-if="!ctrl.state.loading">
10
- <div class="alert alert-warning" ng-if="ctrl.loadBalancers.length === 0">
11
- <p>This application has no App Engine load balancers.</p>
12
- </div>
13
- <form
14
- role="form"
15
- name="form"
16
- class="form-horizontal"
17
- ng-submit="ctrl.submit()"
18
- ng-if="ctrl.loadBalancers.length > 0"
19
- >
20
- <div class="form-group">
21
- <div class="col-md-3 sm-label-right">
22
- <b>Load Balancer</b>
23
- </div>
24
- <div class="col-md-7">
25
- <ui-select class="form-control input-sm" ng-model="ctrl.selectedLoadBalancer">
26
- <ui-select-match>
27
- <account-tag account="$select.selected.account"></account-tag>
28
- <span style="margin-left: 5px">{{$select.selected.name}}</span>
29
- </ui-select-match>
30
- <ui-select-choices repeat="loadBalancer in ctrl.loadBalancers | filter: $select.search">
31
- <account-tag account="loadBalancer.account"></account-tag>
32
- <span style="margin-left: 5px" ng-bind-html="loadBalancer.name"></span>
33
- </ui-select-choices>
34
- </ui-select>
35
- </div>
36
- </div>
37
- </form>
38
- </div>
39
- <div class="modal-footer">
40
- <button class="btn btn-default" ng-click="ctrl.cancel()">Cancel</button>
41
- <button class="btn btn-primary" ng-if="ctrl.loadBalancers.length > 0" ng-click="ctrl.submit()">
42
- <span class="far fa-check-circle"></span> Edit
43
- </button>
44
- </div>
45
- </div>
@@ -1,18 +0,0 @@
1
- <div ng-controller="appengineEnableAsgStageCtrl as enableAsgStageCtrl" class="form-horizontal">
2
- <div ng-if="!pipeline.strategy">
3
- <account-region-cluster-selector
4
- application="application"
5
- component="stage"
6
- single-region="true"
7
- disable-region-select="true"
8
- on-account-update="enableAsgStageCtrl.setStageRegion()"
9
- accounts="accounts"
10
- >
11
- </account-region-cluster-selector>
12
- </div>
13
- <stage-config-field label="Target">
14
- <target-select model="stage" options="targets"></target-select>
15
- </stage-config-field>
16
- <stage-platform-health-override application="application" stage="stage" platform-health-type="platformHealth">
17
- </stage-platform-health-override>
18
- </div>
@@ -1 +0,0 @@
1
- <span class="task-label"> Enable Server Group: {{step.context.serverGroupName}} ({{step.context.region}}) </span>
@@ -1,41 +0,0 @@
1
- <div ng-controller="appengineShrinkClusterStageCtrl as shrinkClusterStageCtrl" class="form-horizontal">
2
- <div ng-if="!pipeline.strategy">
3
- <account-region-cluster-selector
4
- application="application"
5
- component="stage"
6
- single-region="true"
7
- disable-region-select="true"
8
- on-account-update="shrinkClusterStageCtrl.setStageRegion()"
9
- accounts="accounts"
10
- >
11
- </account-region-cluster-selector>
12
- </div>
13
- <stage-config-field label="Shrink Options">
14
- <div class="form-inline">
15
- Shrink to
16
- <input
17
- type="number"
18
- min="0"
19
- required
20
- ng-model="stage.shrinkToSize"
21
- class="form-control input-sm"
22
- style="width: 50px"
23
- />
24
- {{shrinkClusterStageCtrl.pluralize('server group', stage.shrinkToSize)}}, keeping the
25
- <select class="form-control input-sm" ng-model="stage.retainLargerOverNewer" style="width: 100px">
26
- <option value="true">largest</option>
27
- <option value="false">newest</option>
28
- </select>
29
- </div>
30
- </stage-config-field>
31
- <div class="form-group">
32
- <div class="col-md-offset-3 col-md-6 checkbox">
33
- <label>
34
- <input type="checkbox" ng-model="stage.allowDeleteActive" />
35
- Allow deletion of active server groups
36
- </label>
37
- </div>
38
- </div>
39
- <stage-platform-health-override application="application" stage="stage" platform-health-type="platformHealth">
40
- </stage-platform-health-override>
41
- </div>
@@ -1,26 +0,0 @@
1
- <div ng-controller="BaseExecutionDetailsCtrl">
2
- <execution-details-section-nav sections="configSections"></execution-details-section-nav>
3
- <div class="step-section-details" ng-if="detailsSection === 'startServerGroupConfig'">
4
- <div class="row">
5
- <div class="col-md-9">
6
- <dl class="dl-narrow dl-horizontal">
7
- <dt>Account</dt>
8
- <dd>
9
- <account-tag account="stage.context.credentials"></account-tag>
10
- </dd>
11
- <dt>Region</dt>
12
- <dd>{{stage.context.region}}</dd>
13
- <dt>Server Group</dt>
14
- <dd>{{stage.context.serverGroupName}}</dd>
15
- </dl>
16
- </div>
17
- </div>
18
- <stage-failure-message stage="stage" message="stage.failureMessage"></stage-failure-message>
19
- </div>
20
-
21
- <div class="step-section-details" ng-if="detailsSection === 'taskStatus'">
22
- <div class="row">
23
- <execution-step-details item="stage"></execution-step-details>
24
- </div>
25
- </div>
26
- </div>
@@ -1,18 +0,0 @@
1
- <div ng-controller="appengineStartServerGroupStageCtrl as startServerGroupStageCtrl" class="form-horizontal">
2
- <div ng-if="!pipeline.strategy">
3
- <account-region-cluster-selector
4
- application="application"
5
- component="stage"
6
- single-region="true"
7
- disable-region-select="true"
8
- on-account-update="startServerGroupStageCtrl.setStageRegion()"
9
- accounts="accounts"
10
- >
11
- </account-region-cluster-selector>
12
- </div>
13
- <stage-config-field label="Target">
14
- <target-select model="stage" options="targets"></target-select>
15
- </stage-config-field>
16
- <stage-platform-health-override application="application" stage="stage" platform-health-type="platformHealth">
17
- </stage-platform-health-override>
18
- </div>
@@ -1 +0,0 @@
1
- <span class="task-label"> Start Server Group: {{step.context.serverGroupName}} ({{step.context.region}}) </span>
@@ -1,26 +0,0 @@
1
- <div ng-controller="appengineStopServerGroupExecutionDetailsCtrl">
2
- <execution-details-section-nav sections="configSections"></execution-details-section-nav>
3
- <div class="step-section-details" ng-if="detailsSection === 'stopServerGroupConfig'">
4
- <div class="row">
5
- <div class="col-md-9">
6
- <dl class="dl-narrow dl-horizontal">
7
- <dt>Account</dt>
8
- <dd>
9
- <account-tag account="stage.context.credentials"></account-tag>
10
- </dd>
11
- <dt>Region</dt>
12
- <dd>{{stage.context.region}}</dd>
13
- <dt>Server Group</dt>
14
- <dd>{{stage.context.serverGroupName}}</dd>
15
- </dl>
16
- </div>
17
- </div>
18
- <stage-failure-message stage="stage" message="stage.failureMessage"></stage-failure-message>
19
- </div>
20
-
21
- <div class="step-section-details" ng-if="detailsSection === 'taskStatus'">
22
- <div class="row">
23
- <execution-step-details item="stage"></execution-step-details>
24
- </div>
25
- </div>
26
- </div>
@@ -1,18 +0,0 @@
1
- <div ng-controller="appengineStopServerGroupStageCtrl as stopServerGroupStageCtrl" class="form-horizontal">
2
- <div ng-if="!pipeline.strategy">
3
- <account-region-cluster-selector
4
- application="application"
5
- component="stage"
6
- single-region="true"
7
- disable-region-select="true"
8
- on-account-update="stopServerGroupStageCtrl.setStageRegion()"
9
- accounts="accounts"
10
- >
11
- </account-region-cluster-selector>
12
- </div>
13
- <stage-config-field label="Target">
14
- <target-select model="stage" options="targets"></target-select>
15
- </stage-config-field>
16
- <stage-platform-health-override application="application" stage="stage" platform-health-type="platformHealth">
17
- </stage-platform-health-override>
18
- </div>
@@ -1 +0,0 @@
1
- <span class="task-label"> Stop Server Group: {{step.context.serverGroupName}} ({{step.context.region}}) </span>
@@ -1,33 +0,0 @@
1
- <div class="form-horizontal container-fluid">
2
- <div class="form-group">
3
- <div class="col-md-4 sm-label-right">Promote <help-field key="appengine.serverGroup.promote"></help-field></div>
4
- <div class="col-md-7">
5
- <input type="checkbox" ng-model="command.promote" />
6
- </div>
7
- </div>
8
-
9
- <div class="form-group">
10
- <div class="col-md-4 sm-label-right">
11
- Stop Previous Version <help-field key="appengine.serverGroup.stopPreviousVersion"></help-field>
12
- </div>
13
- <div class="col-md-7">
14
- <input type="checkbox" ng-model="command.stopPreviousVersion" />
15
- </div>
16
- </div>
17
- <div class="form-group" ng-if="showPlatformHealthOnlyOverride">
18
- <div class="col-md-4 sm-label-right">Task Completion</div>
19
- <div class="col-md-7">
20
- <platform-health-override command="command" platform-health-type="platformHealth"> </platform-health-override>
21
- </div>
22
- </div>
23
-
24
- <div class="form-group">
25
- <div class="col-md-4 sm-label-right">
26
- Suppress Version String
27
- <help-field key="appengine.serverGroup.suppress-version-string"></help-field>
28
- </div>
29
- <div class="col-md-7">
30
- <input type="checkbox" ng-model="command.suppressVersionString" />
31
- </div>
32
- </div>
33
- </div>
@@ -1,151 +0,0 @@
1
- import type { StateService } from '@uirouter/angularjs';
2
- import type { IController, IControllerService, IScope } from 'angular';
3
- import { extend, module } from 'angular';
4
- import { set } from 'lodash';
5
-
6
- import type { IArtifact, IExpectedArtifact } from '@spinnaker/core';
7
- import {
8
- ArtifactTypePatterns,
9
- excludeAllTypesExcept,
10
- ExpectedArtifactSelectorViewController,
11
- NgAppEngineDeployArtifactDelegate,
12
- } from '@spinnaker/core';
13
- import type { GitCredentialType, IAppengineAccount } from '../../../domain/index';
14
-
15
- import type { IAppengineServerGroupCommand } from '../serverGroupCommandBuilder.service';
16
- import { AppengineSourceType } from '../serverGroupCommandBuilder.service';
17
-
18
- interface IAppengineBasicSettingsScope extends IScope {
19
- command: IAppengineServerGroupCommand;
20
- }
21
-
22
- class AppengineServerGroupBasicSettingsCtrl implements IController {
23
- public static $inject = ['$scope', '$state', '$controller', '$uibModalStack'];
24
-
25
- constructor(
26
- public $scope: IAppengineBasicSettingsScope,
27
- $state: StateService,
28
- $controller: IControllerService,
29
- $uibModalStack: any,
30
- ) {
31
- extend(
32
- this,
33
- $controller('BasicSettingsMixin', {
34
- $scope,
35
- imageReader: null,
36
- $uibModalStack,
37
- $state,
38
- }),
39
- );
40
-
41
- if (!this.$scope.command.gitCredentialType) {
42
- this.onAccountChange();
43
- }
44
-
45
- this.$scope.containerArtifactDelegate = new NgAppEngineDeployArtifactDelegate($scope, [
46
- ArtifactTypePatterns.DOCKER_IMAGE,
47
- ]);
48
- this.$scope.containerArtifactController = new ExpectedArtifactSelectorViewController(
49
- this.$scope.containerArtifactDelegate,
50
- );
51
- this.$scope.gcsArtifactDelegate = new NgAppEngineDeployArtifactDelegate($scope, [ArtifactTypePatterns.GCS_OBJECT]);
52
- this.$scope.gcsArtifactController = new ExpectedArtifactSelectorViewController(this.$scope.gcsArtifactDelegate);
53
- }
54
-
55
- public isGitSource(): boolean {
56
- return this.$scope.command.sourceType === AppengineSourceType.GIT;
57
- }
58
-
59
- public isGcsSource(): boolean {
60
- return this.$scope.command.sourceType === AppengineSourceType.GCS;
61
- }
62
-
63
- public isContainerImageSource(): boolean {
64
- return this.$scope.command.sourceType === AppengineSourceType.CONTAINER_IMAGE;
65
- }
66
-
67
- public toggleResolveViaTrigger(): void {
68
- this.$scope.command.fromTrigger = !this.$scope.command.fromTrigger;
69
- delete this.$scope.command.trigger;
70
- delete this.$scope.command.branch;
71
- }
72
-
73
- public onTriggerChange(): void {
74
- set(this, '$scope.command.trigger.matchBranchOnRegex', undefined);
75
- }
76
-
77
- public onAccountChange(): void {
78
- const account = this.findAccountInBackingData();
79
- if (account) {
80
- this.$scope.command.gitCredentialType = this.getSupportedGitCredentialTypes()[0];
81
- this.$scope.command.region = account.region;
82
- } else {
83
- this.$scope.command.gitCredentialType = 'NONE';
84
- delete this.$scope.command.region;
85
- }
86
- }
87
-
88
- public getSupportedGitCredentialTypes(): GitCredentialType[] {
89
- const account = this.findAccountInBackingData();
90
- if (account && account.supportedGitCredentialTypes) {
91
- return account.supportedGitCredentialTypes;
92
- } else {
93
- return ['NONE'];
94
- }
95
- }
96
-
97
- public humanReadableGitCredentialType(type: GitCredentialType): string {
98
- switch (type) {
99
- case 'HTTPS_USERNAME_PASSWORD':
100
- return 'HTTPS with username and password';
101
- case 'HTTPS_GITHUB_OAUTH_TOKEN':
102
- return 'HTTPS with Github OAuth token';
103
- case 'SSH':
104
- return 'SSH';
105
- case 'NONE':
106
- return 'No credentials';
107
- default:
108
- return 'No credentials';
109
- }
110
- }
111
-
112
- public readonly excludedGcsArtifactTypes = excludeAllTypesExcept(ArtifactTypePatterns.GCS_OBJECT);
113
- public readonly excludedContainerArtifactTypes = excludeAllTypesExcept(ArtifactTypePatterns.DOCKER_IMAGE);
114
-
115
- public onExpectedArtifactEdited = (artifact: IArtifact): void => {
116
- this.$scope.$applyAsync(() => {
117
- this.$scope.command.expectedArtifactId = null;
118
- this.$scope.command.expectedArtifact = artifact;
119
- });
120
- };
121
-
122
- public onExpectedArtifactSelected = (expectedArtifact: IExpectedArtifact): void => {
123
- this.onChangeExpectedArtifactId(expectedArtifact.id);
124
- };
125
-
126
- public onChangeExpectedArtifactId = (artifactId: string): void => {
127
- this.$scope.$applyAsync(() => {
128
- this.$scope.command.expectedArtifactId = artifactId;
129
- this.$scope.command.expectedArtifact = null;
130
- });
131
- };
132
-
133
- public onExpectedArtifactAccountSelected = (accountName: string): void => {
134
- this.$scope.$applyAsync(() => {
135
- this.$scope.command.storageAccountName = accountName;
136
- });
137
- };
138
-
139
- private findAccountInBackingData(): IAppengineAccount {
140
- return this.$scope.command.backingData.accounts.find((account: IAppengineAccount) => {
141
- return this.$scope.command.credentials === account.name;
142
- });
143
- }
144
- }
145
-
146
- export const APPENGINE_SERVER_GROUP_BASIC_SETTINGS_CTRL = 'spinnaker.appengine.basicSettings.controller';
147
-
148
- module(APPENGINE_SERVER_GROUP_BASIC_SETTINGS_CTRL, []).controller(
149
- 'appengineServerGroupBasicSettingsCtrl',
150
- AppengineServerGroupBasicSettingsCtrl,
151
- );