@spinnaker/titus 0.0.0-main-2
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.
- package/CHANGELOG.md +2661 -0
- package/LICENSE.txt +203 -0
- package/dist/domain/IJobDisruptionBudget.d.ts +35 -0
- package/dist/domain/ITitusCredentials.d.ts +5 -0
- package/dist/domain/ITitusInstance.d.ts +28 -0
- package/dist/domain/ITitusScalingPolicy.d.ts +4 -0
- package/dist/domain/ITitusServerGroup.d.ts +52 -0
- package/dist/domain/ITitusServiceJobProcesses.d.ts +3 -0
- package/dist/domain/index.d.ts +5 -0
- package/dist/help/titus.help.d.ts +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +12828 -0
- package/dist/index.js.map +1 -0
- package/dist/instance/details/TitusInstanceDetails.d.ts +25 -0
- package/dist/instance/details/TitusInstanceDns.d.ts +8 -0
- package/dist/instance/details/TitusInstanceInformation.d.ts +7 -0
- package/dist/instance/details/index.d.ts +4 -0
- package/dist/instance/details/titusInstanceDetailsUtils.d.ts +14 -0
- package/dist/pipeline/stages/cloneServerGroup/cloneServerGroupExecutionDetails.controller.d.ts +2 -0
- package/dist/pipeline/stages/cloneServerGroup/titusCloneServerGroupStage.d.ts +2 -0
- package/dist/pipeline/stages/destroyAsg/titusDestroyAsgStage.d.ts +2 -0
- package/dist/pipeline/stages/disableAsg/titusDisableAsgStage.d.ts +2 -0
- package/dist/pipeline/stages/disableCluster/titusDisableClusterStage.d.ts +2 -0
- package/dist/pipeline/stages/enableAsg/titusEnableAsgStage.d.ts +2 -0
- package/dist/pipeline/stages/findAmi/titusFindAmiStage.d.ts +2 -0
- package/dist/pipeline/stages/resizeAsg/titusResizeAsgStage.d.ts +2 -0
- package/dist/pipeline/stages/runJob/RunJobExecutionDetails.d.ts +16 -0
- package/dist/pipeline/stages/runJob/TitusRunJobStageConfig.d.ts +25 -0
- package/dist/pipeline/stages/runJob/TitusSecurityGroupPicker.d.ts +34 -0
- package/dist/pipeline/stages/runJob/titusRunJobStage.d.ts +1 -0
- package/dist/pipeline/stages/scaleDownCluster/titusScaleDownClusterStage.d.ts +2 -0
- package/dist/pipeline/stages/shrinkCluster/titusShrinkClusterStage.d.ts +2 -0
- package/dist/reactShims/index.d.ts +1 -0
- package/dist/reactShims/titus.react.injector.d.ts +11 -0
- package/dist/reactShims/titus.react.module.d.ts +1 -0
- package/dist/securityGroup/securityGroup.read.service.d.ts +2 -0
- package/dist/serverGroup/configure/ServerGroupCommandBuilder.d.ts +2 -0
- package/dist/serverGroup/configure/serverGroup.configure.titus.module.d.ts +2 -0
- package/dist/serverGroup/configure/serverGroupConfiguration.service.d.ts +89 -0
- package/dist/serverGroup/configure/wizard/TitusCloneServerGroupModal.d.ts +31 -0
- package/dist/serverGroup/configure/wizard/pages/ServerGroupBasicSettings.d.ts +28 -0
- package/dist/serverGroup/configure/wizard/pages/ServerGroupParameters.d.ts +15 -0
- package/dist/serverGroup/configure/wizard/pages/ServerGroupResources.d.ts +11 -0
- package/dist/serverGroup/configure/wizard/pages/TitusMapLayout.d.ts +4 -0
- package/dist/serverGroup/configure/wizard/pages/disruptionBudget/JobDisruptionBudget.d.ts +40 -0
- package/dist/serverGroup/configure/wizard/pages/disruptionBudget/PolicyOptions.d.ts +2 -0
- package/dist/serverGroup/configure/wizard/pages/disruptionBudget/RateOptions.d.ts +2 -0
- package/dist/serverGroup/configure/wizard/pages/disruptionBudget/WindowPicker.d.ts +23 -0
- package/dist/serverGroup/configure/wizard/pages/index.d.ts +4 -0
- package/dist/serverGroup/details/TitusCapacityDetailsSection.d.ts +11 -0
- package/dist/serverGroup/details/TitusLaunchConfigSection.d.ts +9 -0
- package/dist/serverGroup/details/TitusPackageDetailsSection.d.ts +6 -0
- package/dist/serverGroup/details/TitusSecurityGroups.d.ts +17 -0
- package/dist/serverGroup/details/capacityDetailsSection.component.d.ts +1 -0
- package/dist/serverGroup/details/disruptionBudget/DisruptionBudgetSection.d.ts +19 -0
- package/dist/serverGroup/details/disruptionBudget/EditDisruptionBudgetModal.d.ts +14 -0
- package/dist/serverGroup/details/index.d.ts +5 -0
- package/dist/serverGroup/details/launchConfigSection.component.d.ts +1 -0
- package/dist/serverGroup/details/resize/TitusResizeServerGroupModal.d.ts +8 -0
- package/dist/serverGroup/details/resize/useTaskMonitor.d.ts +25 -0
- package/dist/serverGroup/details/rollback/rollbackServerGroup.controller.d.ts +2 -0
- package/dist/serverGroup/details/scalingActivity/TitusScalingActivitiesModal.d.ts +7 -0
- package/dist/serverGroup/details/scalingPolicy/CreateScalingPolicyButton.d.ts +21 -0
- package/dist/serverGroup/details/scalingPolicy/TitusCustomScalingPolicy.d.ts +7 -0
- package/dist/serverGroup/details/scalingPolicy/createScalingPolicyButton.component.d.ts +1 -0
- package/dist/serverGroup/details/scalingPolicy/index.d.ts +3 -0
- package/dist/serverGroup/details/scalingPolicy/scalingPolicy.module.d.ts +1 -0
- package/dist/serverGroup/details/scalingPolicy/targetTracking/TitusTargetTrackingChart.d.ts +9 -0
- package/dist/serverGroup/details/scalingPolicy/targetTracking/UpsertTargetTrackingModal.d.ts +10 -0
- package/dist/serverGroup/details/scalingPolicy/titusCustomScalingPolicy.component.d.ts +1 -0
- package/dist/serverGroup/details/scalingPolicy/upsert/TitusScalingPolicyCommandBuilderService.d.ts +10 -0
- package/dist/serverGroup/details/scalingPolicy/upsert/UpsertScalingPolicyModal.d.ts +10 -0
- package/dist/serverGroup/details/sections/ITitusServerGroupDetailsSectionProps.d.ts +5 -0
- package/dist/serverGroup/details/serverGroupDetails.titus.controller.d.ts +2 -0
- package/dist/serverGroup/details/serviceJobProcesses/ServiceJobProcesses.d.ts +3 -0
- package/dist/serverGroup/details/serviceJobProcesses/ServiceJobProcessesSection.d.ts +7 -0
- package/dist/serverGroup/details/titusPackageDetailsSection.component.d.ts +1 -0
- package/dist/serverGroup/details/titusSecurityGroups.component.d.ts +1 -0
- package/dist/serverGroup/serverGroup.transformer.d.ts +2 -0
- package/dist/titus.module.d.ts +5 -0
- package/dist/titus.settings.d.ts +14 -0
- package/dist/validation/ApplicationNameValidator.d.ts +1 -0
- package/package.json +52 -0
- package/src/domain/IJobDisruptionBudget.ts +19 -0
- package/src/domain/ITitusCredentials.ts +6 -0
- package/src/domain/ITitusInstance.ts +30 -0
- package/src/domain/ITitusScalingPolicy.ts +5 -0
- package/src/domain/ITitusServerGroup.ts +56 -0
- package/src/domain/ITitusServiceJobProcesses.ts +3 -0
- package/src/domain/index.ts +5 -0
- package/src/help/titus.help.ts +99 -0
- package/src/index.ts +6 -0
- package/src/instance/details/TitusInstanceDetails.tsx +234 -0
- package/src/instance/details/TitusInstanceDns.tsx +40 -0
- package/src/instance/details/TitusInstanceInformation.tsx +42 -0
- package/src/instance/details/index.ts +4 -0
- package/src/instance/details/titusInstanceDetailsUtils.spec.ts +124 -0
- package/src/instance/details/titusInstanceDetailsUtils.ts +181 -0
- package/src/logo/titus.logo.less +5 -0
- package/src/logo/titus.logo.png +0 -0
- package/src/logo/titus.logo.svg +7 -0
- package/src/pipeline/stages/cloneServerGroup/cloneServerGroupExecutionDetails.controller.js +66 -0
- package/src/pipeline/stages/cloneServerGroup/cloneServerGroupExecutionDetails.html +46 -0
- package/src/pipeline/stages/cloneServerGroup/cloneServerGroupStage.html +106 -0
- package/src/pipeline/stages/cloneServerGroup/cloneServerGroupStepLabel.html +1 -0
- package/src/pipeline/stages/cloneServerGroup/titusCloneServerGroupStage.js +104 -0
- package/src/pipeline/stages/destroyAsg/destroyAsgStage.html +9 -0
- package/src/pipeline/stages/destroyAsg/destroyAsgStepLabel.html +1 -0
- package/src/pipeline/stages/destroyAsg/titusDestroyAsgStage.js +65 -0
- package/src/pipeline/stages/disableAsg/disableAsgStage.html +11 -0
- package/src/pipeline/stages/disableAsg/disableAsgStepLabel.html +1 -0
- package/src/pipeline/stages/disableAsg/titusDisableAsgStage.js +69 -0
- package/src/pipeline/stages/disableCluster/disableClusterStage.html +26 -0
- package/src/pipeline/stages/disableCluster/titusDisableClusterStage.js +85 -0
- package/src/pipeline/stages/enableAsg/enableAsgStage.html +11 -0
- package/src/pipeline/stages/enableAsg/enableAsgStepLabel.html +1 -0
- package/src/pipeline/stages/enableAsg/titusEnableAsgStage.js +73 -0
- package/src/pipeline/stages/findAmi/findAmiStage.html +24 -0
- package/src/pipeline/stages/findAmi/titusFindAmiStage.js +79 -0
- package/src/pipeline/stages/resizeAsg/resizeAsgStage.html +99 -0
- package/src/pipeline/stages/resizeAsg/resizeAsgStepLabel.html +1 -0
- package/src/pipeline/stages/resizeAsg/titusResizeAsgStage.js +125 -0
- package/src/pipeline/stages/runJob/RunJobExecutionDetails.tsx +165 -0
- package/src/pipeline/stages/runJob/TitusRunJobStageConfig.tsx +466 -0
- package/src/pipeline/stages/runJob/TitusSecurityGroupPicker.tsx +170 -0
- package/src/pipeline/stages/runJob/titusRunJobStage.ts +30 -0
- package/src/pipeline/stages/scaleDownCluster/scaleDownClusterStage.html +35 -0
- package/src/pipeline/stages/scaleDownCluster/titusScaleDownClusterStage.js +79 -0
- package/src/pipeline/stages/shrinkCluster/shrinkClusterStage.html +34 -0
- package/src/pipeline/stages/shrinkCluster/titusShrinkClusterStage.js +73 -0
- package/src/reactShims/index.ts +1 -0
- package/src/reactShims/titus.react.injector.ts +17 -0
- package/src/reactShims/titus.react.module.ts +10 -0
- package/src/securityGroup/securityGroup.read.service.js +15 -0
- package/src/serverGroup/configure/ServerGroupCommandBuilder.js +247 -0
- package/src/serverGroup/configure/serverGroup.configure.titus.module.js +9 -0
- package/src/serverGroup/configure/serverGroupCommandBuilder.spec.js +63 -0
- package/src/serverGroup/configure/serverGroupConfiguration.service.ts +410 -0
- package/src/serverGroup/configure/wizard/TitusCloneServerGroupModal.tsx +293 -0
- package/src/serverGroup/configure/wizard/pages/ServerGroupBasicSettings.tsx +339 -0
- package/src/serverGroup/configure/wizard/pages/ServerGroupParameters.less +5 -0
- package/src/serverGroup/configure/wizard/pages/ServerGroupParameters.tsx +217 -0
- package/src/serverGroup/configure/wizard/pages/ServerGroupResources.tsx +200 -0
- package/src/serverGroup/configure/wizard/pages/TitusMapLayout.less +3 -0
- package/src/serverGroup/configure/wizard/pages/TitusMapLayout.tsx +29 -0
- package/src/serverGroup/configure/wizard/pages/disruptionBudget/JobDisruptionBudget.tsx +285 -0
- package/src/serverGroup/configure/wizard/pages/disruptionBudget/PolicyOptions.tsx +112 -0
- package/src/serverGroup/configure/wizard/pages/disruptionBudget/RateOptions.tsx +89 -0
- package/src/serverGroup/configure/wizard/pages/disruptionBudget/WindowPicker.tsx +202 -0
- package/src/serverGroup/configure/wizard/pages/index.ts +4 -0
- package/src/serverGroup/details/TitusCapacityDetailsSection.tsx +66 -0
- package/src/serverGroup/details/TitusLaunchConfigSection.tsx +35 -0
- package/src/serverGroup/details/TitusPackageDetailsSection.tsx +40 -0
- package/src/serverGroup/details/TitusSecurityGroups.tsx +107 -0
- package/src/serverGroup/details/capacityDetailsSection.component.ts +12 -0
- package/src/serverGroup/details/disruptionBudget/DisruptionBudgetSection.tsx +226 -0
- package/src/serverGroup/details/disruptionBudget/EditDisruptionBudgetModal.tsx +92 -0
- package/src/serverGroup/details/index.ts +5 -0
- package/src/serverGroup/details/launchConfigSection.component.ts +12 -0
- package/src/serverGroup/details/resize/TitusResizeServerGroupModal.tsx +302 -0
- package/src/serverGroup/details/resize/useTaskMonitor.ts +30 -0
- package/src/serverGroup/details/rollback/rollbackServerGroup.controller.js +149 -0
- package/src/serverGroup/details/rollback/rollbackServerGroup.html +133 -0
- package/src/serverGroup/details/scalingActivity/TitusScalingActivitiesModal.tsx +81 -0
- package/src/serverGroup/details/scalingPolicy/CreateScalingPolicyButton.tsx +102 -0
- package/src/serverGroup/details/scalingPolicy/TitusCustomScalingPolicy.tsx +13 -0
- package/src/serverGroup/details/scalingPolicy/createScalingPolicyButton.component.ts +15 -0
- package/src/serverGroup/details/scalingPolicy/index.js +3 -0
- package/src/serverGroup/details/scalingPolicy/scalingPolicy.module.ts +7 -0
- package/src/serverGroup/details/scalingPolicy/targetTracking/TitusTargetTrackingChart.tsx +57 -0
- package/src/serverGroup/details/scalingPolicy/targetTracking/UpsertTargetTrackingModal.tsx +82 -0
- package/src/serverGroup/details/scalingPolicy/titusCustomScalingPolicy.component.ts +17 -0
- package/src/serverGroup/details/scalingPolicy/upsert/TitusScalingPolicyCommandBuilderService.ts +115 -0
- package/src/serverGroup/details/scalingPolicy/upsert/UpsertScalingPolicyModal.tsx +157 -0
- package/src/serverGroup/details/sections/ITitusServerGroupDetailsSectionProps.ts +6 -0
- package/src/serverGroup/details/serverGroupDetails.html +191 -0
- package/src/serverGroup/details/serverGroupDetails.titus.controller.js +457 -0
- package/src/serverGroup/details/serviceJobProcesses/ServiceJobProcesses.ts +12 -0
- package/src/serverGroup/details/serviceJobProcesses/ServiceJobProcessesSection.tsx +136 -0
- package/src/serverGroup/details/titusPackageDetailsSection.component.ts +12 -0
- package/src/serverGroup/details/titusSecurityGroups.component.ts +12 -0
- package/src/serverGroup/serverGroup.transformer.js +90 -0
- package/src/titus.module.ts +95 -0
- package/src/titus.settings.ts +22 -0
- package/src/validation/ApplicationNameValidator.ts +43 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import UIROUTER_ANGULARJS from '@uirouter/angularjs';
|
|
4
|
+
import { module } from 'angular';
|
|
5
|
+
import _ from 'lodash';
|
|
6
|
+
|
|
7
|
+
import { ClusterState, UrlBuilder } from '@spinnaker/core';
|
|
8
|
+
|
|
9
|
+
export const TITUS_PIPELINE_STAGES_CLONESERVERGROUP_CLONESERVERGROUPEXECUTIONDETAILS_CONTROLLER =
|
|
10
|
+
'spinnaker.titus.pipeline.stage.cloneServerGroup.executionDetails.controller';
|
|
11
|
+
export const name = TITUS_PIPELINE_STAGES_CLONESERVERGROUP_CLONESERVERGROUPEXECUTIONDETAILS_CONTROLLER; // for backwards compatibility
|
|
12
|
+
module(TITUS_PIPELINE_STAGES_CLONESERVERGROUP_CLONESERVERGROUPEXECUTIONDETAILS_CONTROLLER, [
|
|
13
|
+
UIROUTER_ANGULARJS,
|
|
14
|
+
]).controller('titusCloneServerGroupExecutionDetailsCtrl', [
|
|
15
|
+
'$scope',
|
|
16
|
+
'$stateParams',
|
|
17
|
+
'executionDetailsSectionService',
|
|
18
|
+
function ($scope, $stateParams, executionDetailsSectionService) {
|
|
19
|
+
$scope.configSections = ['cloneServerGroupConfig', 'taskStatus'];
|
|
20
|
+
|
|
21
|
+
const initialized = () => {
|
|
22
|
+
const resultObjects = context['kato.tasks'][0].resultObjects;
|
|
23
|
+
$scope.detailsSection = $stateParams.details;
|
|
24
|
+
|
|
25
|
+
const context = $scope.stage.context || {};
|
|
26
|
+
const results = [];
|
|
27
|
+
|
|
28
|
+
function addDeployedArtifacts(key) {
|
|
29
|
+
const deployedArtifacts = _.find(resultObjects, key);
|
|
30
|
+
if (deployedArtifacts) {
|
|
31
|
+
_.forEach(deployedArtifacts[key], (serverGroupNameAndRegion) => {
|
|
32
|
+
if (serverGroupNameAndRegion.includes(':')) {
|
|
33
|
+
const [region, serverGroupName] = serverGroupNameAndRegion.split(':');
|
|
34
|
+
const result = {
|
|
35
|
+
type: 'serverGroups',
|
|
36
|
+
application: context.application,
|
|
37
|
+
serverGroup: serverGroupName,
|
|
38
|
+
account: context.credentials,
|
|
39
|
+
region: region,
|
|
40
|
+
provider: 'titus',
|
|
41
|
+
project: $stateParams.project,
|
|
42
|
+
};
|
|
43
|
+
result.href = UrlBuilder.buildFromMetadata(result);
|
|
44
|
+
results.push(result);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
if (context && context['kato.tasks'] && context['kato.tasks'].length) {
|
|
51
|
+
if (resultObjects && resultObjects.length) {
|
|
52
|
+
addDeployedArtifacts('serverGroupNames');
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
$scope.deployed = results;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
this.overrideFiltersForUrl = (r) => ClusterState.filterService.overrideFiltersForUrl(r);
|
|
59
|
+
|
|
60
|
+
const initialize = () => executionDetailsSectionService.synchronizeSection($scope.configSections, initialized);
|
|
61
|
+
|
|
62
|
+
initialize();
|
|
63
|
+
|
|
64
|
+
$scope.$on('$stateChangeSuccess', initialize);
|
|
65
|
+
},
|
|
66
|
+
]);
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<div ng-controller="titusCloneServerGroupExecutionDetailsCtrl">
|
|
2
|
+
<execution-details-section-nav sections="configSections"></execution-details-section-nav>
|
|
3
|
+
<div class="step-section-details" ng-if="detailsSection === 'cloneServerGroupConfig'">
|
|
4
|
+
<div class="row">
|
|
5
|
+
<div class="col-md-9">
|
|
6
|
+
<dl class="dl-narrow dl-horizontal">
|
|
7
|
+
<dt>Account</dt>
|
|
8
|
+
<dd><account-tag account="stage.context.credentials"></account-tag></dd>
|
|
9
|
+
<dt>Region</dt>
|
|
10
|
+
<dd>{{stage.context.region}}</dd>
|
|
11
|
+
<dt>Cluster</dt>
|
|
12
|
+
<dd>{{stage.context.targetCluster}}</dd>
|
|
13
|
+
<dt>Server Group</dt>
|
|
14
|
+
<dd>{{stage.context.source.serverGroupName}}</dd>
|
|
15
|
+
<dt ng-if="!stage.context.useSourceCapacity && stage.context.capacity">Capacity</dt>
|
|
16
|
+
<dd ng-if="!stage.context.useSourceCapacity && stage.context.capacity">
|
|
17
|
+
Min: {{stage.context.capacity.min}} / Desired: {{stage.context.capacity.desired}} / Max:
|
|
18
|
+
{{stage.context.capacity.max}}
|
|
19
|
+
</dd>
|
|
20
|
+
</dl>
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
<stage-failure-message stage="stage" message="stage.failureMessage"></stage-failure-message>
|
|
24
|
+
|
|
25
|
+
<div class="row" ng-if="deployed.length">
|
|
26
|
+
<div class="col-md-12">
|
|
27
|
+
<div class="well alert alert-info">
|
|
28
|
+
<strong>Deployed:</strong>
|
|
29
|
+
<a
|
|
30
|
+
ng-repeat="serverGroup in deployed"
|
|
31
|
+
ng-click="$event.stopPropagation(); deployDetailsCtrl.overrideFiltersForUrl(serverGroup);"
|
|
32
|
+
ng-href="{{serverGroup.href}}"
|
|
33
|
+
>
|
|
34
|
+
{{serverGroup.serverGroup}}
|
|
35
|
+
</a>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
|
|
41
|
+
<div class="step-section-details" ng-if="detailsSection === 'taskStatus'">
|
|
42
|
+
<div class="row">
|
|
43
|
+
<execution-step-details item="stage"></execution-step-details>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
<div ng-controller="titusCloneServerGroupStageCtrl as cloneServerGroupStageCtrl">
|
|
2
|
+
<div ng-if="!pipeline.strategy">
|
|
3
|
+
<div ng-if="viewState.loading">
|
|
4
|
+
<h4 class="text-center">
|
|
5
|
+
<span us-spinner="{radius:20, width:6, length: 12}"></span>
|
|
6
|
+
</h4>
|
|
7
|
+
</div>
|
|
8
|
+
<div ng-if="!viewState.loading">
|
|
9
|
+
<account-region-cluster-selector
|
|
10
|
+
application="application"
|
|
11
|
+
component="stage"
|
|
12
|
+
accounts="accounts"
|
|
13
|
+
single-region="true"
|
|
14
|
+
cluster-field="targetCluster"
|
|
15
|
+
>
|
|
16
|
+
</account-region-cluster-selector>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
<stage-config-field label="Target">
|
|
20
|
+
<target-select model="stage" options="cloneServerGroupStageCtrl.cloneTargets"></target-select>
|
|
21
|
+
</stage-config-field>
|
|
22
|
+
<div>
|
|
23
|
+
<div class="form-group">
|
|
24
|
+
<div class="col-md-3 sm-label-right">Capacity</div>
|
|
25
|
+
<div class="col-md-9 radio">
|
|
26
|
+
<label>
|
|
27
|
+
<input
|
|
28
|
+
type="radio"
|
|
29
|
+
ng-model="stage.useSourceCapacity"
|
|
30
|
+
ng-value="true"
|
|
31
|
+
ng-click="cloneServerGroupStageCtrl.removeCapacity()"
|
|
32
|
+
id="useSourceCapacityTrue"
|
|
33
|
+
/>
|
|
34
|
+
Copy the capacity from the current server group
|
|
35
|
+
<help-field key="serverGroupCapacity.useSourceCapacityTrue"></help-field>
|
|
36
|
+
</label>
|
|
37
|
+
</div>
|
|
38
|
+
<div class="col-md-9 col-md-offset-3 radio">
|
|
39
|
+
<label>
|
|
40
|
+
<input type="radio" ng-model="stage.useSourceCapacity" ng-value="false" id="useSourceCapacityFalse" />
|
|
41
|
+
Let me specify the capacity
|
|
42
|
+
<help-field key="serverGroupCapacity.useSourceCapacityFalse"></help-field>
|
|
43
|
+
</label>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
<div class="form-group">
|
|
47
|
+
<div class="col-md-2 col-md-offset-3">Min</div>
|
|
48
|
+
<div class="col-md-2">Max</div>
|
|
49
|
+
<div class="col-md-2">Desired</div>
|
|
50
|
+
</div>
|
|
51
|
+
<div class="form-group">
|
|
52
|
+
<div class="col-md-2 col-md-offset-3">
|
|
53
|
+
<input
|
|
54
|
+
type="number"
|
|
55
|
+
ng-disabled="stage.useSourceCapacity"
|
|
56
|
+
class="form-control input-sm"
|
|
57
|
+
ng-model="stage.capacity.min"
|
|
58
|
+
min="0"
|
|
59
|
+
max="{{stage.capacity.max}}"
|
|
60
|
+
required
|
|
61
|
+
/>
|
|
62
|
+
</div>
|
|
63
|
+
<div class="col-md-2">
|
|
64
|
+
<input
|
|
65
|
+
type="number"
|
|
66
|
+
ng-disabled="stage.useSourceCapacity"
|
|
67
|
+
class="form-control input-sm"
|
|
68
|
+
ng-model="stage.capacity.max"
|
|
69
|
+
min="{{stage.capacity.min}}"
|
|
70
|
+
required
|
|
71
|
+
/>
|
|
72
|
+
</div>
|
|
73
|
+
<div class="col-md-2">
|
|
74
|
+
<input
|
|
75
|
+
type="number"
|
|
76
|
+
ng-disabled="stage.useSourceCapacity"
|
|
77
|
+
class="form-control input-sm"
|
|
78
|
+
ng-model="stage.capacity.desired"
|
|
79
|
+
min="{{stage.capacity.min}}"
|
|
80
|
+
max="{{stage.capacity.max}}"
|
|
81
|
+
required
|
|
82
|
+
/>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
</div>
|
|
86
|
+
<stage-config-field label="Traffic" help-key="titus.serverGroup.traffic">
|
|
87
|
+
<div class="checkbox">
|
|
88
|
+
<label>
|
|
89
|
+
<input
|
|
90
|
+
type="checkbox"
|
|
91
|
+
ng-click="cloneServerGroupStageCtrl.toggleSuspendedProcess('AddToLoadBalancer')"
|
|
92
|
+
ng-checked="!cloneServerGroupStageCtrl.processIsSuspended('AddToLoadBalancer')"
|
|
93
|
+
/>
|
|
94
|
+
Send client requests to new instances
|
|
95
|
+
</label>
|
|
96
|
+
</div>
|
|
97
|
+
</stage-config-field>
|
|
98
|
+
<stage-platform-health-override application="application" stage="stage" platform-health-type="'Titus'">
|
|
99
|
+
</stage-platform-health-override>
|
|
100
|
+
<deployment-strategy-selector
|
|
101
|
+
label-columns="3"
|
|
102
|
+
field-columns="6"
|
|
103
|
+
command="stage"
|
|
104
|
+
on-field-change="cloneServerGroupStageCtrl.onRedBlackFieldChange"
|
|
105
|
+
></deployment-strategy-selector>
|
|
106
|
+
</div>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<span class="task-label"> Clone Server Group: {{step.context.source.serverGroupName}} ({{step.context.region}}) </span>
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import { module } from 'angular';
|
|
4
|
+
import _ from 'lodash';
|
|
5
|
+
|
|
6
|
+
import { AccountService, NameUtils, Registry, StageConstants } from '@spinnaker/core';
|
|
7
|
+
import { TITUS_PIPELINE_STAGES_CLONESERVERGROUP_CLONESERVERGROUPEXECUTIONDETAILS_CONTROLLER } from './cloneServerGroupExecutionDetails.controller';
|
|
8
|
+
|
|
9
|
+
export const TITUS_PIPELINE_STAGES_CLONESERVERGROUP_TITUSCLONESERVERGROUPSTAGE =
|
|
10
|
+
'spinnaker.titus.pipeline.stage.cloneServerGroupStage';
|
|
11
|
+
export const name = TITUS_PIPELINE_STAGES_CLONESERVERGROUP_TITUSCLONESERVERGROUPSTAGE; // for backwards compatibility
|
|
12
|
+
module(TITUS_PIPELINE_STAGES_CLONESERVERGROUP_TITUSCLONESERVERGROUPSTAGE, [
|
|
13
|
+
TITUS_PIPELINE_STAGES_CLONESERVERGROUP_CLONESERVERGROUPEXECUTIONDETAILS_CONTROLLER,
|
|
14
|
+
])
|
|
15
|
+
.config(function () {
|
|
16
|
+
Registry.pipeline.registerStage({
|
|
17
|
+
provides: 'cloneServerGroup',
|
|
18
|
+
cloudProvider: 'titus',
|
|
19
|
+
templateUrl: require('./cloneServerGroupStage.html'),
|
|
20
|
+
executionDetailsUrl: require('./cloneServerGroupExecutionDetails.html'),
|
|
21
|
+
executionStepLabelUrl: require('./cloneServerGroupStepLabel.html'),
|
|
22
|
+
validators: [
|
|
23
|
+
{ type: 'requiredField', fieldName: 'targetCluster', fieldLabel: 'cluster' },
|
|
24
|
+
{ type: 'requiredField', fieldName: 'target' },
|
|
25
|
+
{ type: 'requiredField', fieldName: 'region' },
|
|
26
|
+
{ type: 'requiredField', fieldName: 'credentials', fieldLabel: 'account' },
|
|
27
|
+
],
|
|
28
|
+
});
|
|
29
|
+
})
|
|
30
|
+
.controller('titusCloneServerGroupStageCtrl', [
|
|
31
|
+
'$scope',
|
|
32
|
+
function ($scope) {
|
|
33
|
+
const stage = $scope.stage;
|
|
34
|
+
|
|
35
|
+
$scope.viewState = {
|
|
36
|
+
accountsLoaded: false,
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
AccountService.listAccounts('titus').then((accounts) => {
|
|
40
|
+
$scope.accounts = accounts;
|
|
41
|
+
$scope.viewState.accountsLoaded = true;
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
this.cloneTargets = StageConstants.TARGET_LIST;
|
|
45
|
+
stage.target = stage.target || this.cloneTargets[0].val;
|
|
46
|
+
stage.application = $scope.application.name;
|
|
47
|
+
stage.cloudProvider = 'titus';
|
|
48
|
+
stage.cloudProviderType = 'titus';
|
|
49
|
+
stage.viewState = {
|
|
50
|
+
mode: 'editPipeline',
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
if (
|
|
54
|
+
stage.isNew &&
|
|
55
|
+
$scope.application.attributes.platformHealthOnlyShowOverride &&
|
|
56
|
+
$scope.application.attributes.platformHealthOnly
|
|
57
|
+
) {
|
|
58
|
+
stage.interestingHealthProviderNames = ['Titus'];
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if (!stage.credentials && $scope.application.defaultCredentials.titus) {
|
|
62
|
+
stage.credentials = $scope.application.defaultCredentials.titus;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
this.targetClusterUpdated = () => {
|
|
66
|
+
if (stage.targetCluster) {
|
|
67
|
+
const clusterName = NameUtils.parseServerGroupName(stage.targetCluster);
|
|
68
|
+
stage.stack = clusterName.stack;
|
|
69
|
+
stage.freeFormDetails = clusterName.freeFormDetails;
|
|
70
|
+
} else {
|
|
71
|
+
stage.stack = '';
|
|
72
|
+
stage.freeFormDetails = '';
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
$scope.$watch('stage.targetCluster', this.targetClusterUpdated);
|
|
77
|
+
|
|
78
|
+
this.removeCapacity = () => {
|
|
79
|
+
delete stage.capacity;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
if (!_.has(stage, 'useSourceCapacity')) {
|
|
83
|
+
stage.useSourceCapacity = true;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
this.toggleSuspendedProcess = (process) => {
|
|
87
|
+
stage.suspendedProcesses = stage.suspendedProcesses || [];
|
|
88
|
+
const processIndex = stage.suspendedProcesses.indexOf(process);
|
|
89
|
+
if (processIndex === -1) {
|
|
90
|
+
stage.suspendedProcesses.push(process);
|
|
91
|
+
} else {
|
|
92
|
+
stage.suspendedProcesses.splice(processIndex, 1);
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
this.processIsSuspended = (process) => {
|
|
97
|
+
return stage.suspendedProcesses && stage.suspendedProcesses.includes(process);
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
this.onRedBlackFieldChange = (key, value) => {
|
|
101
|
+
_.set(stage, key, value);
|
|
102
|
+
};
|
|
103
|
+
},
|
|
104
|
+
]);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<div ng-controller="titusDestroyAsgStageCtrl as destroyAsgStageCtrl" class="form-horizontal">
|
|
2
|
+
<div ng-if="!pipeline.strategy">
|
|
3
|
+
<account-region-cluster-selector application="application" component="stage" accounts="accounts">
|
|
4
|
+
</account-region-cluster-selector>
|
|
5
|
+
</div>
|
|
6
|
+
<stage-config-field label="Target">
|
|
7
|
+
<target-select model="stage" options="targets"></target-select>
|
|
8
|
+
</stage-config-field>
|
|
9
|
+
</div>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<span class="task-label"> Destroy Server Group: {{step.context.serverGroupName}} ({{step.context.region}}) </span>
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import { module } from 'angular';
|
|
4
|
+
|
|
5
|
+
import { AccountService, Registry, StageConstants } from '@spinnaker/core';
|
|
6
|
+
|
|
7
|
+
export const TITUS_PIPELINE_STAGES_DESTROYASG_TITUSDESTROYASGSTAGE = 'spinnaker.titus.pipeline.stage.destroyAsgStage';
|
|
8
|
+
export const name = TITUS_PIPELINE_STAGES_DESTROYASG_TITUSDESTROYASGSTAGE; // for backwards compatibility
|
|
9
|
+
module(TITUS_PIPELINE_STAGES_DESTROYASG_TITUSDESTROYASGSTAGE, [])
|
|
10
|
+
.config(function () {
|
|
11
|
+
Registry.pipeline.registerStage({
|
|
12
|
+
provides: 'destroyServerGroup',
|
|
13
|
+
alias: 'destroyAsg',
|
|
14
|
+
cloudProvider: 'titus',
|
|
15
|
+
templateUrl: require('./destroyAsgStage.html'),
|
|
16
|
+
executionStepLabelUrl: require('./destroyAsgStepLabel.html'),
|
|
17
|
+
accountExtractor: (stage) => [stage.context.credentials],
|
|
18
|
+
configAccountExtractor: (stage) => [stage.credentials],
|
|
19
|
+
validators: [
|
|
20
|
+
{
|
|
21
|
+
type: 'targetImpedance',
|
|
22
|
+
message:
|
|
23
|
+
'This pipeline will attempt to destroy a server group without deploying a new version into the same cluster.',
|
|
24
|
+
},
|
|
25
|
+
{ type: 'requiredField', fieldName: 'cluster' },
|
|
26
|
+
{ type: 'requiredField', fieldName: 'target' },
|
|
27
|
+
{ type: 'requiredField', fieldName: 'regions' },
|
|
28
|
+
{ type: 'requiredField', fieldName: 'credentials', fieldLabel: 'account' },
|
|
29
|
+
],
|
|
30
|
+
});
|
|
31
|
+
})
|
|
32
|
+
.controller('titusDestroyAsgStageCtrl', [
|
|
33
|
+
'$scope',
|
|
34
|
+
function ($scope) {
|
|
35
|
+
const stage = $scope.stage;
|
|
36
|
+
|
|
37
|
+
$scope.state = {
|
|
38
|
+
accounts: false,
|
|
39
|
+
regionsLoaded: false,
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
AccountService.listAccounts('titus').then(function (accounts) {
|
|
43
|
+
$scope.accounts = accounts;
|
|
44
|
+
$scope.state.accounts = true;
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
$scope.regions = ['us-east-1', 'us-west-1', 'eu-west-1', 'us-west-2'];
|
|
48
|
+
|
|
49
|
+
$scope.targets = StageConstants.TARGET_LIST;
|
|
50
|
+
|
|
51
|
+
stage.regions = stage.regions || [];
|
|
52
|
+
stage.cloudProvider = 'titus';
|
|
53
|
+
|
|
54
|
+
if (!stage.credentials && $scope.application.defaultCredentials.titus) {
|
|
55
|
+
stage.credentials = $scope.application.defaultCredentials.titus;
|
|
56
|
+
}
|
|
57
|
+
if (!stage.regions.length && $scope.application.defaultRegions.titus) {
|
|
58
|
+
stage.regions.push($scope.application.defaultRegions.titus);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if (!stage.target) {
|
|
62
|
+
stage.target = $scope.targets[0].val;
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
]);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<div ng-controller="titusDisableAsgStageCtrl as disableAsgStageCtrl" class="form-horizontal">
|
|
2
|
+
<div ng-if="!pipeline.strategy">
|
|
3
|
+
<account-region-cluster-selector application="application" component="stage" accounts="accounts">
|
|
4
|
+
</account-region-cluster-selector>
|
|
5
|
+
</div>
|
|
6
|
+
<stage-config-field label="Target">
|
|
7
|
+
<target-select model="stage" options="targets"></target-select>
|
|
8
|
+
</stage-config-field>
|
|
9
|
+
<stage-platform-health-override application="application" stage="stage" platform-health-type="'Titus'">
|
|
10
|
+
</stage-platform-health-override>
|
|
11
|
+
</div>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<span class="task-label"> Disable Server Group: {{step.context.serverGroupName}} ({{step.context.region}}) </span>
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import { module } from 'angular';
|
|
4
|
+
|
|
5
|
+
import { AccountService, Registry, StageConstants } from '@spinnaker/core';
|
|
6
|
+
|
|
7
|
+
export const TITUS_PIPELINE_STAGES_DISABLEASG_TITUSDISABLEASGSTAGE = 'spinnaker.titus.pipeline.stage.disableAsgStage';
|
|
8
|
+
export const name = TITUS_PIPELINE_STAGES_DISABLEASG_TITUSDISABLEASGSTAGE; // for backwards compatibility
|
|
9
|
+
module(TITUS_PIPELINE_STAGES_DISABLEASG_TITUSDISABLEASGSTAGE, [])
|
|
10
|
+
.config(function () {
|
|
11
|
+
Registry.pipeline.registerStage({
|
|
12
|
+
provides: 'disableServerGroup',
|
|
13
|
+
alias: 'disableAsg',
|
|
14
|
+
cloudProvider: 'titus',
|
|
15
|
+
templateUrl: require('./disableAsgStage.html'),
|
|
16
|
+
executionStepLabelUrl: require('./disableAsgStepLabel.html'),
|
|
17
|
+
validators: [
|
|
18
|
+
{
|
|
19
|
+
type: 'targetImpedance',
|
|
20
|
+
message:
|
|
21
|
+
'This pipeline will attempt to disable a server group without deploying a new version into the same cluster.',
|
|
22
|
+
},
|
|
23
|
+
{ type: 'requiredField', fieldName: 'cluster' },
|
|
24
|
+
{ type: 'requiredField', fieldName: 'target' },
|
|
25
|
+
{ type: 'requiredField', fieldName: 'regions' },
|
|
26
|
+
{ type: 'requiredField', fieldName: 'credentials', fieldLabel: 'account' },
|
|
27
|
+
],
|
|
28
|
+
});
|
|
29
|
+
})
|
|
30
|
+
.controller('titusDisableAsgStageCtrl', [
|
|
31
|
+
'$scope',
|
|
32
|
+
function ($scope) {
|
|
33
|
+
const stage = $scope.stage;
|
|
34
|
+
|
|
35
|
+
$scope.state = {
|
|
36
|
+
accounts: false,
|
|
37
|
+
regionsLoaded: false,
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
AccountService.listAccounts('titus').then(function (accounts) {
|
|
41
|
+
$scope.accounts = accounts;
|
|
42
|
+
$scope.state.accounts = true;
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
$scope.targets = StageConstants.TARGET_LIST;
|
|
46
|
+
|
|
47
|
+
stage.regions = stage.regions || [];
|
|
48
|
+
stage.cloudProvider = 'titus';
|
|
49
|
+
|
|
50
|
+
if (
|
|
51
|
+
stage.isNew &&
|
|
52
|
+
$scope.application.attributes.platformHealthOnlyShowOverride &&
|
|
53
|
+
$scope.application.attributes.platformHealthOnly
|
|
54
|
+
) {
|
|
55
|
+
stage.interestingHealthProviderNames = ['Titus'];
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (!stage.credentials && $scope.application.defaultCredentials.titus) {
|
|
59
|
+
stage.credentials = $scope.application.defaultCredentials.titus;
|
|
60
|
+
}
|
|
61
|
+
if (!stage.regions.length && $scope.application.defaultRegions.titus) {
|
|
62
|
+
stage.regions.push($scope.application.defaultRegions.titus);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
if (!stage.target) {
|
|
66
|
+
stage.target = $scope.targets[0].val;
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
]);
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<div ng-controller="titusDisableClusterStageCtrl as disableClusterStageCtrl" class="form-horizontal">
|
|
2
|
+
<div ng-if="!pipeline.strategy">
|
|
3
|
+
<account-region-cluster-selector application="application" component="stage" accounts="accounts">
|
|
4
|
+
</account-region-cluster-selector>
|
|
5
|
+
</div>
|
|
6
|
+
<stage-config-field label="Disable Options">
|
|
7
|
+
<div class="form-inline">
|
|
8
|
+
Keep the
|
|
9
|
+
<input
|
|
10
|
+
type="number"
|
|
11
|
+
min="0"
|
|
12
|
+
required
|
|
13
|
+
ng-model="stage.remainingEnabledServerGroups"
|
|
14
|
+
class="form-control input-sm"
|
|
15
|
+
style="width: 50px"
|
|
16
|
+
/>
|
|
17
|
+
<select class="form-control input-sm" ng-model="stage.preferLargerOverNewer" style="width: 100px">
|
|
18
|
+
<option value="true">largest</option>
|
|
19
|
+
<option value="false">newest</option>
|
|
20
|
+
</select>
|
|
21
|
+
{{disableClusterStageCtrl.pluralize('server group', stage.remainingEnabledServerGroups)}} enabled.
|
|
22
|
+
</div>
|
|
23
|
+
</stage-config-field>
|
|
24
|
+
<stage-platform-health-override application="application" stage="stage" platform-health-type="'Titus'">
|
|
25
|
+
</stage-platform-health-override>
|
|
26
|
+
</div>
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import { module } from 'angular';
|
|
4
|
+
|
|
5
|
+
import { AccountService, Registry } from '@spinnaker/core';
|
|
6
|
+
|
|
7
|
+
export const TITUS_PIPELINE_STAGES_DISABLECLUSTER_TITUSDISABLECLUSTERSTAGE =
|
|
8
|
+
'spinnaker.titus.pipeline.stage.disableClusterStage';
|
|
9
|
+
export const name = TITUS_PIPELINE_STAGES_DISABLECLUSTER_TITUSDISABLECLUSTERSTAGE; // for backwards compatibility
|
|
10
|
+
module(TITUS_PIPELINE_STAGES_DISABLECLUSTER_TITUSDISABLECLUSTERSTAGE, [])
|
|
11
|
+
.config(function () {
|
|
12
|
+
Registry.pipeline.registerStage({
|
|
13
|
+
provides: 'disableCluster',
|
|
14
|
+
cloudProvider: 'titus',
|
|
15
|
+
templateUrl: require('./disableClusterStage.html'),
|
|
16
|
+
executionConfigSections: ['disableClusterConfig', 'taskStatus'],
|
|
17
|
+
validators: [
|
|
18
|
+
{ type: 'requiredField', fieldName: 'cluster' },
|
|
19
|
+
{
|
|
20
|
+
type: 'requiredField',
|
|
21
|
+
fieldName: 'remainingEnabledServerGroups',
|
|
22
|
+
fieldLabel: 'Keep [X] enabled Server Groups',
|
|
23
|
+
},
|
|
24
|
+
{ type: 'requiredField', fieldName: 'regions' },
|
|
25
|
+
{ type: 'requiredField', fieldName: 'credentials', fieldLabel: 'account' },
|
|
26
|
+
],
|
|
27
|
+
});
|
|
28
|
+
})
|
|
29
|
+
.controller('titusDisableClusterStageCtrl', [
|
|
30
|
+
'$scope',
|
|
31
|
+
function ($scope) {
|
|
32
|
+
const ctrl = this;
|
|
33
|
+
|
|
34
|
+
const stage = $scope.stage;
|
|
35
|
+
|
|
36
|
+
$scope.state = {
|
|
37
|
+
accounts: false,
|
|
38
|
+
regionsLoaded: false,
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
AccountService.listAccounts('titus').then(function (accounts) {
|
|
42
|
+
$scope.accounts = accounts;
|
|
43
|
+
$scope.state.accounts = true;
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
ctrl.reset = () => {
|
|
47
|
+
ctrl.accountUpdated();
|
|
48
|
+
ctrl.resetSelectedCluster();
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
stage.regions = stage.regions || [];
|
|
52
|
+
stage.cloudProvider = 'titus';
|
|
53
|
+
|
|
54
|
+
if (
|
|
55
|
+
stage.isNew &&
|
|
56
|
+
$scope.application.attributes.platformHealthOnlyShowOverride &&
|
|
57
|
+
$scope.application.attributes.platformHealthOnly
|
|
58
|
+
) {
|
|
59
|
+
stage.interestingHealthProviderNames = ['Titus'];
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (!stage.credentials && $scope.application.defaultCredentials.titus) {
|
|
63
|
+
stage.credentials = $scope.application.defaultCredentials.titus;
|
|
64
|
+
}
|
|
65
|
+
if (!stage.regions.length && $scope.application.defaultRegions.titus) {
|
|
66
|
+
stage.regions.push($scope.application.defaultRegions.titus);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
if (stage.remainingEnabledServerGroups === undefined) {
|
|
70
|
+
stage.remainingEnabledServerGroups = 1;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
ctrl.pluralize = function (str, val) {
|
|
74
|
+
if (val === 1) {
|
|
75
|
+
return str;
|
|
76
|
+
}
|
|
77
|
+
return str + 's';
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
if (stage.preferLargerOverNewer === undefined) {
|
|
81
|
+
stage.preferLargerOverNewer = 'false';
|
|
82
|
+
}
|
|
83
|
+
stage.preferLargerOverNewer = stage.preferLargerOverNewer.toString();
|
|
84
|
+
},
|
|
85
|
+
]);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<div ng-controller="titusEnableAsgStageCtrl as enableAsgStageCtrl" class="form-horizontal">
|
|
2
|
+
<div ng-if="!pipeline.strategy">
|
|
3
|
+
<account-region-cluster-selector application="application" component="stage" accounts="accounts">
|
|
4
|
+
</account-region-cluster-selector>
|
|
5
|
+
</div>
|
|
6
|
+
<stage-config-field label="Target">
|
|
7
|
+
<target-select model="stage" options="targets"></target-select>
|
|
8
|
+
</stage-config-field>
|
|
9
|
+
<stage-platform-health-override application="application" stage="stage" platform-health-type="'Titus'">
|
|
10
|
+
</stage-platform-health-override>
|
|
11
|
+
</div>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<span class="task-label"> Enable Server Group: {{step.context.serverGroupName}} ({{step.context.region}}) </span>
|