@spinnaker/azure 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.
- package/dist/azure.module.d.ts +3 -1
- package/dist/image/image.reader.d.ts +4 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/instance/azureInstanceType.service.d.ts +6 -2
- package/dist/instance/details/AzureInstanceDetails.d.ts +67 -0
- package/dist/loadBalancer/configure/AzureLoadBalancerChoiceModal.d.ts +10 -5
- package/dist/loadBalancer/configure/AzureLoadBalancerModal.d.ts +102 -0
- package/dist/loadBalancer/details/azureLoadBalancerDetails.d.ts +26 -0
- package/dist/loadBalancer/loadBalancer.transformer.d.ts +45 -2
- package/dist/pipeline/stages/AzureAccountRegionClusterSelector.d.ts +32 -0
- package/dist/pipeline/stages/bake/azureBakeStage.d.ts +46 -2
- package/dist/pipeline/stages/destroyAsg/azureDestroyAsgStage.d.ts +14 -2
- package/dist/pipeline/stages/disableAsg/azureDisableAsgStage.d.ts +4 -2
- package/dist/pipeline/stages/enableAsg/azureEnableAsgStage.d.ts +4 -2
- package/dist/securityGroup/configure/AzureSecurityGroupModal.d.ts +70 -0
- package/dist/securityGroup/details/AzureSecurityGroupDetails.d.ts +51 -0
- package/dist/securityGroup/securityGroup.reader.d.ts +3 -2
- package/dist/securityGroup/securityGroup.transformer.d.ts +3 -2
- package/dist/securityGroup/securityGroup.write.service.d.ts +9 -2
- package/dist/serverGroup/configure/serverGroupCommandBuilder.service.d.ts +88 -2
- package/dist/serverGroup/configure/serverGroupConfiguration.service.d.ts +30 -2
- package/dist/serverGroup/configure/wizard/AzureCloneServerGroupModal.d.ts +44 -0
- package/dist/serverGroup/configure/wizard/pages/ServerGroupAdvancedSettings.d.ts +8 -0
- package/dist/serverGroup/configure/wizard/pages/ServerGroupBasicSettings.d.ts +12 -0
- package/dist/serverGroup/configure/wizard/pages/ServerGroupCapacityAndZones.d.ts +11 -0
- package/dist/serverGroup/configure/wizard/pages/ServerGroupHealthSettings.d.ts +10 -0
- package/dist/serverGroup/configure/wizard/pages/ServerGroupImageSettings.d.ts +12 -0
- package/dist/serverGroup/configure/wizard/pages/ServerGroupInstanceType.d.ts +9 -0
- package/dist/serverGroup/configure/wizard/pages/ServerGroupLoadBalancers.d.ts +14 -0
- package/dist/serverGroup/configure/wizard/pages/ServerGroupNetworkSettings.d.ts +10 -0
- package/dist/serverGroup/configure/wizard/pages/ServerGroupSecurityGroups.d.ts +6 -0
- package/dist/serverGroup/configure/wizard/pages/ServerGroupTags.d.ts +9 -0
- package/dist/serverGroup/configure/wizard/pages/common.d.ts +14 -0
- package/dist/serverGroup/configure/wizard/pages/index.d.ts +10 -0
- package/dist/serverGroup/details/azureServerGroupDetails.d.ts +13 -0
- package/dist/serverGroup/details/rollback/RollbackServerGroupModal.d.ts +6 -4
- package/dist/serverGroup/serverGroup.transformer.d.ts +61 -2
- package/dist/validation/applicationName.validator.d.ts +6 -2
- package/package.json +5 -8
- package/src/azure.module.spec.ts +921 -0
- package/src/azure.module.ts +56 -68
- package/src/image/image.reader.js +4 -15
- package/src/image/image.reader.spec.js +4 -7
- package/src/instance/azureInstanceType.service.js +8 -16
- package/src/instance/azureInstanceType.service.spec.js +5 -13
- package/src/instance/details/AzureInstanceDetails.spec.tsx +364 -0
- package/src/instance/details/AzureInstanceDetails.tsx +533 -0
- package/src/loadBalancer/configure/AzureLoadBalancerChoiceModal.spec.tsx +125 -0
- package/src/loadBalancer/configure/AzureLoadBalancerChoiceModal.tsx +46 -26
- package/src/loadBalancer/configure/AzureLoadBalancerModal.spec.tsx +658 -0
- package/src/loadBalancer/configure/AzureLoadBalancerModal.tsx +960 -0
- package/src/loadBalancer/details/azureLoadBalancerDetails.spec.tsx +470 -0
- package/src/loadBalancer/details/azureLoadBalancerDetails.tsx +412 -0
- package/src/loadBalancer/loadBalancer.transformer.js +83 -93
- package/src/pipeline/stages/AzureAccountRegionClusterSelector.tsx +238 -0
- package/src/pipeline/stages/bake/azureBakeStage.tsx +723 -0
- package/src/pipeline/stages/destroyAsg/azureDestroyAsgStage.tsx +128 -0
- package/src/pipeline/stages/disableAsg/azureDisableAsgStage.tsx +92 -0
- package/src/pipeline/stages/enableAsg/azureEnableAsgStage.tsx +87 -0
- package/src/routerConsumers.spec.tsx +69 -0
- package/src/securityGroup/configure/AzureSecurityGroupModal.spec.tsx +558 -0
- package/src/securityGroup/configure/AzureSecurityGroupModal.tsx +782 -0
- package/src/securityGroup/details/AzureSecurityGroupDetails.spec.tsx +291 -0
- package/src/securityGroup/details/AzureSecurityGroupDetails.tsx +354 -0
- package/src/securityGroup/securityGroup.reader.js +3 -13
- package/src/securityGroup/securityGroup.transformer.js +3 -13
- package/src/securityGroup/securityGroup.write.service.spec.ts +105 -0
- package/src/securityGroup/securityGroup.write.service.ts +73 -0
- package/src/serverGroup/configure/serverGroupCommandBuilder.service.js +167 -166
- package/src/serverGroup/configure/serverGroupCommandBuilder.service.spec.js +63 -0
- package/src/serverGroup/configure/serverGroupConfiguration.service.js +325 -309
- package/src/serverGroup/configure/serverGroupConfiguration.service.spec.js +57 -53
- package/src/serverGroup/configure/wizard/AzureCloneServerGroupModal.spec.tsx +758 -0
- package/src/serverGroup/configure/wizard/AzureCloneServerGroupModal.tsx +349 -0
- package/src/serverGroup/configure/wizard/pages/ServerGroupAdvancedSettings.tsx +208 -0
- package/src/serverGroup/configure/wizard/pages/ServerGroupBasicSettings.tsx +122 -0
- package/src/serverGroup/configure/wizard/pages/ServerGroupCapacityAndZones.tsx +80 -0
- package/src/serverGroup/configure/wizard/pages/ServerGroupHealthSettings.tsx +97 -0
- package/src/serverGroup/configure/wizard/pages/ServerGroupImageSettings.tsx +151 -0
- package/src/serverGroup/configure/wizard/pages/ServerGroupInstanceType.tsx +41 -0
- package/src/serverGroup/configure/wizard/pages/ServerGroupLoadBalancers.tsx +214 -0
- package/src/serverGroup/configure/wizard/pages/ServerGroupNetworkSettings.tsx +119 -0
- package/src/serverGroup/configure/wizard/pages/ServerGroupSecurityGroups.tsx +54 -0
- package/src/serverGroup/configure/wizard/pages/ServerGroupTags.tsx +40 -0
- package/src/serverGroup/configure/wizard/pages/common.tsx +72 -0
- package/src/serverGroup/configure/wizard/pages/index.ts +10 -0
- package/src/serverGroup/details/azureServerGroupDetails.spec.tsx +263 -0
- package/src/serverGroup/details/azureServerGroupDetails.tsx +318 -0
- package/src/serverGroup/details/rollback/RollbackServerGroupModal.tsx +24 -30
- package/src/serverGroup/serverGroup.transformer.js +11 -19
- package/src/serverGroup/serverGroup.transformer.spec.js +2 -6
- package/src/validation/applicationName.validator.js +14 -29
- package/dist/instance/details/instance.details.controller.d.ts +0 -2
- package/dist/loadBalancer/configure/createLoadBalancer.controller.d.ts +0 -2
- package/dist/loadBalancer/details/loadBalancerDetail.controller.d.ts +0 -2
- package/dist/pipeline/stages/bake/bakeExecutionDetails.controller.d.ts +0 -2
- package/dist/securityGroup/clone/cloneSecurityGroup.controller.d.ts +0 -2
- package/dist/securityGroup/configure/CreateSecurityGroupCtrl.d.ts +0 -2
- package/dist/securityGroup/configure/EditSecurityGroupCtrl.d.ts +0 -2
- package/dist/securityGroup/details/securityGroupDetail.controller.d.ts +0 -2
- package/dist/serverGroup/configure/serverGroup.configure.azure.module.d.ts +0 -2
- package/dist/serverGroup/configure/wizard/CloneServerGroup.azure.controller.d.ts +0 -2
- package/dist/serverGroup/configure/wizard/ServerGroupInstanceArchetype.controller.d.ts +0 -2
- package/dist/serverGroup/configure/wizard/ServerGroupInstanceType.controller.d.ts +0 -2
- package/dist/serverGroup/configure/wizard/advancedSettings/ServerGroupAdvancedSettings.controller.d.ts +0 -2
- package/dist/serverGroup/configure/wizard/advancedSettings/advancedSettingsSelector.directive.d.ts +0 -2
- package/dist/serverGroup/configure/wizard/basicSettings/ServerGroupBasicSettings.controller.d.ts +0 -2
- package/dist/serverGroup/configure/wizard/basicSettings/image.regional.filter.d.ts +0 -2
- package/dist/serverGroup/configure/wizard/capacity/capacitySelector.directive.d.ts +0 -2
- package/dist/serverGroup/configure/wizard/healthSettings/ServerGroupHealthSettings.controller.d.ts +0 -2
- package/dist/serverGroup/configure/wizard/healthSettings/healthSettingsSelector.directive.d.ts +0 -2
- package/dist/serverGroup/configure/wizard/image/ServerGroupImageSettings.controller.d.ts +0 -2
- package/dist/serverGroup/configure/wizard/image/imageSettingsSelector.directive.d.ts +0 -2
- package/dist/serverGroup/configure/wizard/loadBalancers/ServerGroupLoadBalancers.controller.d.ts +0 -2
- package/dist/serverGroup/configure/wizard/loadBalancers/serverGroupLoadBalancersSelector.directive.d.ts +0 -2
- package/dist/serverGroup/configure/wizard/networkSettings/ServerGroupNetworkSettings.controller.d.ts +0 -2
- package/dist/serverGroup/configure/wizard/networkSettings/ServerGroupNetworkSettingsSelector.directive.d.ts +0 -2
- package/dist/serverGroup/configure/wizard/securityGroup/ServerGroupSecurityGroups.controller.d.ts +0 -2
- package/dist/serverGroup/configure/wizard/securityGroup/serverGroupSecurityGroupsSelector.directive.d.ts +0 -2
- package/dist/serverGroup/configure/wizard/tags/tagsSelector.directive.d.ts +0 -2
- package/dist/serverGroup/configure/wizard/zones/zoneSelector.directive.d.ts +0 -2
- package/dist/serverGroup/details/serverGroup.details.module.d.ts +0 -2
- package/dist/serverGroup/details/serverGroupDetails.azure.controller.d.ts +0 -2
- package/src/instance/details/instance.details.controller.js +0 -371
- package/src/instance/details/instance.details.controller.spec.js +0 -129
- package/src/instance/details/instanceDetails.html +0 -43
- package/src/loadBalancer/configure/advancedSettings.html +0 -95
- package/src/loadBalancer/configure/createLoadBalancer.controller.js +0 -275
- package/src/loadBalancer/configure/createLoadBalancer.controller.spec.js +0 -39
- package/src/loadBalancer/configure/createLoadBalancer.html +0 -25
- package/src/loadBalancer/configure/createLoadBalancerProperties.html +0 -128
- package/src/loadBalancer/configure/editLoadBalancer.html +0 -26
- package/src/loadBalancer/configure/healthCheck.html +0 -74
- package/src/loadBalancer/configure/listeners.html +0 -50
- package/src/loadBalancer/details/loadBalancerDetail.controller.js +0 -181
- package/src/loadBalancer/details/loadBalancerDetail.controller.spec.js +0 -39
- package/src/loadBalancer/details/loadBalancerDetail.html +0 -128
- package/src/pipeline/stages/bake/azureBakeStage.js +0 -276
- package/src/pipeline/stages/bake/bakeExecutionDetails.controller.js +0 -40
- package/src/pipeline/stages/bake/bakeExecutionDetails.html +0 -50
- package/src/pipeline/stages/bake/bakeStage.html +0 -187
- package/src/pipeline/stages/destroyAsg/azureDestroyAsgStage.js +0 -73
- package/src/pipeline/stages/destroyAsg/destroyAsgStage.html +0 -9
- package/src/pipeline/stages/destroyAsg/destroyAsgStepLabel.html +0 -1
- package/src/pipeline/stages/disableAsg/azureDisableAsgStage.js +0 -65
- package/src/pipeline/stages/disableAsg/disableAsgStage.html +0 -11
- package/src/pipeline/stages/disableAsg/disableAsgStepLabel.html +0 -1
- package/src/pipeline/stages/enableAsg/azureEnableAsgStage.js +0 -70
- package/src/pipeline/stages/enableAsg/enableAsgStage.html +0 -11
- package/src/pipeline/stages/enableAsg/enableAsgStepLabel.html +0 -1
- package/src/securityGroup/clone/cloneSecurityGroup.controller.js +0 -162
- package/src/securityGroup/clone/cloneSecurityGroup.html +0 -8
- package/src/securityGroup/configure/CreateSecurityGroup.controller.spec.js +0 -78
- package/src/securityGroup/configure/CreateSecurityGroupCtrl.js +0 -265
- package/src/securityGroup/configure/EditSecurityGroupCtrl.js +0 -222
- package/src/securityGroup/configure/configSecurityGroup.mixin.controller.js +0 -262
- package/src/securityGroup/configure/createSecurityGroup.html +0 -20
- package/src/securityGroup/configure/createSecurityGroupIngress.html +0 -75
- package/src/securityGroup/configure/createSecurityGroupProperties.html +0 -88
- package/src/securityGroup/configure/editSecurityGroup.html +0 -19
- package/src/securityGroup/details/securityGroupDetail.controller.js +0 -142
- package/src/securityGroup/details/securityGroupDetail.html +0 -78
- package/src/securityGroup/securityGroup.write.service.js +0 -57
- package/src/serverGroup/configure/serverGroup.configure.azure.module.js +0 -47
- package/src/serverGroup/configure/wizard/CloneServerGroup.azure.controller.js +0 -247
- package/src/serverGroup/configure/wizard/ServerGroupInstanceArchetype.controller.js +0 -35
- package/src/serverGroup/configure/wizard/ServerGroupInstanceType.controller.js +0 -15
- package/src/serverGroup/configure/wizard/advancedSettings/ServerGroupAdvancedSettings.controller.js +0 -25
- package/src/serverGroup/configure/wizard/advancedSettings/advancedSettings.html +0 -5
- package/src/serverGroup/configure/wizard/advancedSettings/advancedSettingsSelector.directive.html +0 -138
- package/src/serverGroup/configure/wizard/advancedSettings/advancedSettingsSelector.directive.js +0 -43
- package/src/serverGroup/configure/wizard/basicSettings/ServerGroupBasicSettings.controller.js +0 -71
- package/src/serverGroup/configure/wizard/basicSettings/basicSettings.html +0 -131
- package/src/serverGroup/configure/wizard/basicSettings/image.regional.filter.js +0 -15
- package/src/serverGroup/configure/wizard/basicSettings/image.regional.filter.spec.js +0 -42
- package/src/serverGroup/configure/wizard/capacity/capacity.html +0 -5
- package/src/serverGroup/configure/wizard/capacity/capacitySelector.directive.html +0 -20
- package/src/serverGroup/configure/wizard/capacity/capacitySelector.directive.js +0 -21
- package/src/serverGroup/configure/wizard/capacity/zones.html +0 -5
- package/src/serverGroup/configure/wizard/healthSettings/ServerGroupHealthSettings.controller.js +0 -38
- package/src/serverGroup/configure/wizard/healthSettings/healthSettings.html +0 -5
- package/src/serverGroup/configure/wizard/healthSettings/healthSettingsSelector.directive.html +0 -32
- package/src/serverGroup/configure/wizard/healthSettings/healthSettingsSelector.directive.js +0 -22
- package/src/serverGroup/configure/wizard/image/ServerGroupImageSettings.controller.js +0 -34
- package/src/serverGroup/configure/wizard/image/imageSettings.html +0 -5
- package/src/serverGroup/configure/wizard/image/imageSettingsSelector.directive.html +0 -33
- package/src/serverGroup/configure/wizard/image/imageSettingsSelector.directive.js +0 -22
- package/src/serverGroup/configure/wizard/instanceArchetype.html +0 -33
- package/src/serverGroup/configure/wizard/instanceType/instanceType.html +0 -10
- package/src/serverGroup/configure/wizard/instanceType.html +0 -33
- package/src/serverGroup/configure/wizard/loadBalancers/ServerGroupLoadBalancers.controller.js +0 -137
- package/src/serverGroup/configure/wizard/loadBalancers/loadBalancers.html +0 -3
- package/src/serverGroup/configure/wizard/loadBalancers/serverGroupLoadBalancersSelector.directive.html +0 -41
- package/src/serverGroup/configure/wizard/loadBalancers/serverGroupLoadBalancersSelector.directive.js +0 -22
- package/src/serverGroup/configure/wizard/networkSettings/ServerGroupNetworkSettings.controller.js +0 -44
- package/src/serverGroup/configure/wizard/networkSettings/ServerGroupNetworkSettingsSelector.directive.html +0 -54
- package/src/serverGroup/configure/wizard/networkSettings/ServerGroupNetworkSettingsSelector.directive.js +0 -19
- package/src/serverGroup/configure/wizard/networkSettings/networkSettings.html +0 -3
- package/src/serverGroup/configure/wizard/securityGroup/ServerGroupSecurityGroups.controller.js +0 -28
- package/src/serverGroup/configure/wizard/securityGroup/securityGroups.html +0 -3
- package/src/serverGroup/configure/wizard/securityGroup/serverGroupSecurityGroupsSelector.directive.html +0 -40
- package/src/serverGroup/configure/wizard/securityGroup/serverGroupSecurityGroupsSelector.directive.js +0 -38
- package/src/serverGroup/configure/wizard/serverGroupWizard.html +0 -61
- package/src/serverGroup/configure/wizard/tags/tags.html +0 -5
- package/src/serverGroup/configure/wizard/tags/tagsSelector.directive.html +0 -16
- package/src/serverGroup/configure/wizard/tags/tagsSelector.directive.js +0 -30
- package/src/serverGroup/configure/wizard/templateSelection.html +0 -9
- package/src/serverGroup/configure/wizard/zones/zoneSelector.directive.html +0 -21
- package/src/serverGroup/configure/wizard/zones/zoneSelector.directive.js +0 -28
- package/src/serverGroup/details/serverGroup.details.module.js +0 -11
- package/src/serverGroup/details/serverGroupDetails.azure.controller.js +0 -260
- package/src/serverGroup/details/serverGroupDetails.html +0 -98
- package/src/subnet/subnetSelectField.directive.html +0 -28
- package/src/subnet/subnetSelectField.directive.js +0 -35
|
@@ -1,357 +1,373 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
import * as angular from 'angular';
|
|
4
1
|
import _ from 'lodash';
|
|
5
2
|
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
'
|
|
28
|
-
|
|
29
|
-
'
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
'
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
];
|
|
52
|
-
|
|
53
|
-
function configureUpdateCommand(command) {
|
|
3
|
+
import { AccountService } from '@spinnaker/core';
|
|
4
|
+
import { AzureInstanceTypeService } from '../../instance/azureInstanceType.service';
|
|
5
|
+
|
|
6
|
+
export class AzureServerGroupConfigurationService {
|
|
7
|
+
static requiresDeckRuntimeServices = true;
|
|
8
|
+
|
|
9
|
+
constructor(promiseService, runtimeServices) {
|
|
10
|
+
this.promiseService = promiseService;
|
|
11
|
+
this.azureInstanceTypeService = new AzureInstanceTypeService(promiseService);
|
|
12
|
+
this.cacheInitializer = runtimeServices.cacheInitializer;
|
|
13
|
+
this.loadBalancerReader = runtimeServices.loadBalancerReader;
|
|
14
|
+
this.securityGroupReader = runtimeServices.securityGroupReader;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
createDelegate() {
|
|
18
|
+
const all = (values) => this.promiseService.all(values);
|
|
19
|
+
const azureInstanceTypeService = this.azureInstanceTypeService;
|
|
20
|
+
const cacheInitializer = this.cacheInitializer;
|
|
21
|
+
const loadBalancerReader = this.loadBalancerReader;
|
|
22
|
+
const securityGroupReader = this.securityGroupReader;
|
|
23
|
+
const dataDiskTypes = ['Standard_LRS', 'StandardSSD_LRS', 'Premium_LRS'];
|
|
24
|
+
const dataDiskCachingTypes = ['None', 'ReadOnly', 'ReadWrite'];
|
|
25
|
+
|
|
26
|
+
const healthCheckTypes = ['EC2', 'ELB'];
|
|
27
|
+
const terminationPolicies = [
|
|
28
|
+
'OldestInstance',
|
|
29
|
+
'NewestInstance',
|
|
30
|
+
'OldestLaunchConfiguration',
|
|
31
|
+
'ClosestToNextInstanceHour',
|
|
32
|
+
'Default',
|
|
33
|
+
];
|
|
34
|
+
|
|
35
|
+
function configureUpdateCommand(command) {
|
|
36
|
+
command.backingData = {
|
|
37
|
+
healthCheckTypes: _.cloneDeep(healthCheckTypes),
|
|
38
|
+
terminationPolicies: _.cloneDeep(terminationPolicies),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function configureCommand(application, command) {
|
|
43
|
+
return all([
|
|
44
|
+
AccountService.getCredentialsKeyedByAccount('azure'),
|
|
45
|
+
securityGroupReader.loadSecurityGroups(),
|
|
46
|
+
loadBalancerReader.loadLoadBalancers(application.name),
|
|
47
|
+
]).then(function ([credentialsKeyedByAccount, securityGroups, loadBalancers]) {
|
|
54
48
|
command.backingData = {
|
|
55
|
-
|
|
56
|
-
|
|
49
|
+
credentialsKeyedByAccount,
|
|
50
|
+
securityGroups,
|
|
51
|
+
loadBalancers,
|
|
52
|
+
dataDiskTypes: _.cloneDeep(dataDiskTypes),
|
|
53
|
+
dataDiskCachingTypes: _.cloneDeep(dataDiskCachingTypes),
|
|
54
|
+
accounts: _.keys(credentialsKeyedByAccount),
|
|
55
|
+
filtered: {},
|
|
57
56
|
};
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
return $q
|
|
62
|
-
.all([
|
|
63
|
-
AccountService.getCredentialsKeyedByAccount('azure'),
|
|
64
|
-
securityGroupReader.loadSecurityGroups(),
|
|
65
|
-
loadBalancerReader.loadLoadBalancers(application.name),
|
|
66
|
-
])
|
|
67
|
-
.then(function ([credentialsKeyedByAccount, securityGroups, loadBalancers]) {
|
|
68
|
-
command.backingData = {
|
|
69
|
-
credentialsKeyedByAccount,
|
|
70
|
-
securityGroups,
|
|
71
|
-
loadBalancers,
|
|
72
|
-
dataDiskTypes: angular.copy(dataDiskTypes),
|
|
73
|
-
dataDiskCachingTypes: angular.copy(dataDiskCachingTypes),
|
|
74
|
-
accounts: _.keys(credentialsKeyedByAccount),
|
|
75
|
-
filtered: {},
|
|
76
|
-
};
|
|
77
|
-
attachEventHandlers(command);
|
|
78
|
-
});
|
|
79
|
-
}
|
|
57
|
+
attachEventHandlers(command);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
80
60
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
61
|
+
function configureInstanceTypes(command) {
|
|
62
|
+
const result = {
|
|
63
|
+
dirty: {},
|
|
64
|
+
};
|
|
65
|
+
if (command.region) {
|
|
66
|
+
const results = [result.dirty];
|
|
87
67
|
|
|
88
|
-
|
|
89
|
-
|
|
68
|
+
// results.push(configureCustomInstanceTypes(command).dirty);
|
|
69
|
+
results.push(configureStandardInstanceTypes(command).dirty);
|
|
90
70
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
return result;
|
|
71
|
+
_.extend(...results);
|
|
72
|
+
} else {
|
|
73
|
+
command.backingData.filtered.instanceTypes = [];
|
|
96
74
|
}
|
|
75
|
+
return result;
|
|
76
|
+
}
|
|
97
77
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
78
|
+
function configureStandardInstanceTypes(command) {
|
|
79
|
+
const c = command;
|
|
80
|
+
const result = {
|
|
81
|
+
dirty: {},
|
|
82
|
+
};
|
|
103
83
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
84
|
+
const locations = [c.region];
|
|
85
|
+
const { credentialsKeyedByAccount } = c.backingData;
|
|
86
|
+
const { locationToInstanceTypesMap } = credentialsKeyedByAccount[c.credentials];
|
|
107
87
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
88
|
+
if (locations.every((l) => !l)) {
|
|
89
|
+
return result;
|
|
90
|
+
}
|
|
111
91
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
92
|
+
const filtered = azureInstanceTypeService
|
|
93
|
+
.getAvailableTypesForRegions(locationToInstanceTypesMap, locations)
|
|
94
|
+
.map((type) => type.name);
|
|
115
95
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
121
|
-
c.backingData.filtered.instanceTypes = filtered;
|
|
122
|
-
return result;
|
|
96
|
+
const instanceType = c.instanceType;
|
|
97
|
+
if (_.every([instanceType, !_.startsWith(instanceType, 'custom'), !_.includes(filtered, instanceType)])) {
|
|
98
|
+
result.dirty.instanceType = c.instanceType;
|
|
99
|
+
c.instanceType = null;
|
|
123
100
|
}
|
|
101
|
+
c.backingData.filtered.instanceTypes = filtered;
|
|
102
|
+
return result;
|
|
103
|
+
}
|
|
124
104
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
if (command.region) {
|
|
134
|
-
regionalImages = command.backingData.packageImages
|
|
135
|
-
.filter(function (image) {
|
|
136
|
-
return image.amis && image.amis[command.region];
|
|
137
|
-
})
|
|
138
|
-
.map(function (image) {
|
|
139
|
-
return {
|
|
140
|
-
imageName: image.imageName,
|
|
141
|
-
ami: image.amis ? image.amis[command.region][0] : null,
|
|
142
|
-
};
|
|
143
|
-
});
|
|
144
|
-
if (
|
|
145
|
-
command.amiName &&
|
|
146
|
-
!regionalImages.some(function (image) {
|
|
147
|
-
return image.imageName === command.amiName;
|
|
148
|
-
})
|
|
149
|
-
) {
|
|
150
|
-
result.dirty.amiName = true;
|
|
151
|
-
command.amiName = null;
|
|
152
|
-
}
|
|
153
|
-
} else {
|
|
105
|
+
function configureImages(command) {
|
|
106
|
+
const result = {
|
|
107
|
+
dirty: {},
|
|
108
|
+
};
|
|
109
|
+
let regionalImages = null;
|
|
110
|
+
const clearSelectedImage = function () {
|
|
111
|
+
if (command.amiName) {
|
|
112
|
+
result.dirty.amiName = true;
|
|
154
113
|
command.amiName = null;
|
|
155
114
|
}
|
|
156
|
-
command.
|
|
115
|
+
if (command.imageName) {
|
|
116
|
+
result.dirty.imageName = true;
|
|
117
|
+
command.imageName = null;
|
|
118
|
+
}
|
|
119
|
+
if (command.selectedImage) {
|
|
120
|
+
result.dirty.selectedImage = true;
|
|
121
|
+
command.selectedImage = null;
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
if (command.viewState.disableImageSelection) {
|
|
157
125
|
return result;
|
|
158
126
|
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
127
|
+
if (command.region) {
|
|
128
|
+
regionalImages = (command.backingData.packageImages || command.images || [])
|
|
129
|
+
.filter(function (image) {
|
|
130
|
+
return image.amis && image.amis[command.region];
|
|
131
|
+
})
|
|
132
|
+
.map(function (image) {
|
|
133
|
+
return {
|
|
134
|
+
imageName: image.imageName,
|
|
135
|
+
ami: image.amis ? image.amis[command.region][0] : null,
|
|
136
|
+
};
|
|
137
|
+
});
|
|
138
|
+
const selectedImageName =
|
|
139
|
+
command.imageName || (command.selectedImage && command.selectedImage.imageName) || command.amiName;
|
|
140
|
+
const selectedRegionalImage = regionalImages.find(function (image) {
|
|
141
|
+
return image.imageName === selectedImageName;
|
|
142
|
+
});
|
|
143
|
+
if (selectedImageName && !selectedRegionalImage) {
|
|
144
|
+
clearSelectedImage();
|
|
145
|
+
} else if (selectedRegionalImage && !command.image?.isCustom) {
|
|
146
|
+
command.imageName = selectedRegionalImage.imageName;
|
|
147
|
+
command.selectedImage = selectedRegionalImage;
|
|
165
148
|
}
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
149
|
+
} else {
|
|
150
|
+
clearSelectedImage();
|
|
151
|
+
}
|
|
152
|
+
command.backingData.filtered.images = regionalImages;
|
|
153
|
+
return result;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
function configureZones(command) {
|
|
157
|
+
const result = { dirty: {} };
|
|
158
|
+
const filteredData = command.backingData.filtered;
|
|
159
|
+
if (!command.region) {
|
|
173
160
|
return result;
|
|
174
161
|
}
|
|
162
|
+
let { regionsSupportZones, availabilityZones } = command.backingData.credentialsKeyedByAccount[
|
|
163
|
+
command.credentials
|
|
164
|
+
];
|
|
165
|
+
regionsSupportZones = regionsSupportZones || [];
|
|
166
|
+
availabilityZones = availabilityZones || [];
|
|
167
|
+
filteredData.zones = regionsSupportZones.includes(command.region) ? availabilityZones : [];
|
|
175
168
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
azure: {},
|
|
179
|
-
};
|
|
180
|
-
return _.chain(newSecurityGroups[command.region]).sortBy('name').value();
|
|
181
|
-
}
|
|
169
|
+
return result;
|
|
170
|
+
}
|
|
182
171
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
currentOptions = command.backingData.filtered.securityGroups;
|
|
190
|
-
}
|
|
191
|
-
const newRegionalSecurityGroups = getRegionalSecurityGroups(command);
|
|
192
|
-
if (command.selectedSecurityGroup) {
|
|
193
|
-
// one has not been previously selected. We are either configuring for the
|
|
194
|
-
//first time or they changed regions or account
|
|
195
|
-
command.selectedSecurityGroup = null;
|
|
196
|
-
result.dirty.securityGroups = true;
|
|
197
|
-
}
|
|
198
|
-
if (currentOptions != newRegionalSecurityGroups) {
|
|
199
|
-
command.backingData.filtered.securityGroups = newRegionalSecurityGroups;
|
|
200
|
-
result.dirty.securityGroups = true;
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
if (command.backingData.filtered.securityGroups.length === 0) {
|
|
204
|
-
command.viewState.securityGroupsConfigured = false;
|
|
205
|
-
} else {
|
|
206
|
-
command.viewState.securityGroupsConfigured = true;
|
|
207
|
-
}
|
|
172
|
+
function getRegionalSecurityGroups(command) {
|
|
173
|
+
const newSecurityGroups = command.backingData.securityGroups[command.credentials] || {
|
|
174
|
+
azure: {},
|
|
175
|
+
};
|
|
176
|
+
return _.chain(newSecurityGroups[command.region]).sortBy('name').value();
|
|
177
|
+
}
|
|
208
178
|
|
|
209
|
-
|
|
179
|
+
function configureSecurityGroupOptions(command) {
|
|
180
|
+
const result = {
|
|
181
|
+
dirty: {},
|
|
182
|
+
};
|
|
183
|
+
let currentOptions;
|
|
184
|
+
if (command.backingData.filtered.securityGroups) {
|
|
185
|
+
currentOptions = command.backingData.filtered.securityGroups;
|
|
210
186
|
}
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
configureSecurityGroupOptions(command);
|
|
218
|
-
}
|
|
219
|
-
});
|
|
220
|
-
});
|
|
187
|
+
const newRegionalSecurityGroups = getRegionalSecurityGroups(command);
|
|
188
|
+
if (command.selectedSecurityGroup) {
|
|
189
|
+
// one has not been previously selected. We are either configuring for the
|
|
190
|
+
//first time or they changed regions or account
|
|
191
|
+
command.selectedSecurityGroup = null;
|
|
192
|
+
result.dirty.securityGroups = true;
|
|
221
193
|
}
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
194
|
+
if (currentOptions != newRegionalSecurityGroups) {
|
|
195
|
+
command.backingData.filtered.securityGroups = newRegionalSecurityGroups;
|
|
196
|
+
result.dirty.securityGroups = true;
|
|
225
197
|
}
|
|
226
198
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
const current = command.loadBalancers;
|
|
232
|
-
const newLoadBalancers = getLoadBalancerNames(command.backingData.loadBalancers);
|
|
233
|
-
|
|
234
|
-
if (current && command.loadBalancers) {
|
|
235
|
-
const matched = _.intersection(newLoadBalancers, command.loadBalancers);
|
|
236
|
-
const removed = _.xor(matched, current);
|
|
237
|
-
command.loadBalancers = matched;
|
|
238
|
-
if (removed.length) {
|
|
239
|
-
result.dirty.loadBalancers = removed;
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
command.backingData.filtered.loadBalancers = newLoadBalancers;
|
|
243
|
-
return result;
|
|
199
|
+
if (command.backingData.filtered.securityGroups.length === 0) {
|
|
200
|
+
command.viewState.securityGroupsConfigured = false;
|
|
201
|
+
} else {
|
|
202
|
+
command.viewState.securityGroupsConfigured = true;
|
|
244
203
|
}
|
|
245
204
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
205
|
+
return result;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
function refreshSecurityGroups(command, skipCommandReconfiguration) {
|
|
209
|
+
return cacheInitializer.refreshCache('securityGroups').then(function () {
|
|
210
|
+
return securityGroupReader.getAllSecurityGroups().then(function (securityGroups) {
|
|
211
|
+
command.backingData.securityGroups = securityGroups;
|
|
249
212
|
if (!skipCommandReconfiguration) {
|
|
250
|
-
|
|
213
|
+
configureSecurityGroupOptions(command);
|
|
251
214
|
}
|
|
252
215
|
});
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
function getLoadBalancerNames(loadBalancers) {
|
|
220
|
+
return _.chain(loadBalancers).map('name').uniq().value().sort();
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
function configureLoadBalancerOptions(command) {
|
|
224
|
+
const result = {
|
|
225
|
+
dirty: {},
|
|
226
|
+
};
|
|
227
|
+
const current = command.loadBalancers;
|
|
228
|
+
const newLoadBalancers = getLoadBalancerNames(command.backingData.loadBalancers);
|
|
229
|
+
|
|
230
|
+
if (current && command.loadBalancers) {
|
|
231
|
+
const matched = _.intersection(newLoadBalancers, command.loadBalancers);
|
|
232
|
+
const removed = _.xor(matched, current);
|
|
233
|
+
command.loadBalancers = matched;
|
|
234
|
+
if (removed.length) {
|
|
235
|
+
result.dirty.loadBalancers = removed;
|
|
236
|
+
}
|
|
253
237
|
}
|
|
238
|
+
command.backingData.filtered.loadBalancers = newLoadBalancers;
|
|
239
|
+
return result;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
function refreshLoadBalancers(command, skipCommandReconfiguration) {
|
|
243
|
+
return loadBalancerReader.listLoadBalancers('azure').then(function (loadBalancers) {
|
|
244
|
+
command.backingData.loadBalancers = loadBalancers;
|
|
245
|
+
if (!skipCommandReconfiguration) {
|
|
246
|
+
configureLoadBalancerOptions(command);
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
}
|
|
254
250
|
|
|
255
|
-
|
|
251
|
+
function configureLoadBalancers(command) {
|
|
252
|
+
const result = {
|
|
253
|
+
dirty: {},
|
|
254
|
+
};
|
|
255
|
+
const temp = command.backingData.loadBalancers;
|
|
256
|
+
const filterlist = _.filter(temp, function (lb) {
|
|
257
|
+
return lb.account === command.credentials && lb.region === command.region;
|
|
258
|
+
});
|
|
259
|
+
|
|
260
|
+
command.loadBalancers = getLoadBalancerNames(filterlist);
|
|
261
|
+
command.viewState.loadBalancersConfigured = true;
|
|
262
|
+
|
|
263
|
+
return result;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
function attachEventHandlers(cmd) {
|
|
267
|
+
cmd.regionChanged = function regionChanged(command, isInit = false) {
|
|
256
268
|
const result = {
|
|
257
269
|
dirty: {},
|
|
258
270
|
};
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
271
|
+
if (command.region && command.credentials) {
|
|
272
|
+
_.extend(result.dirty, configureLoadBalancers(command).dirty);
|
|
273
|
+
_.extend(result.dirty, configureSecurityGroupOptions(command).dirty);
|
|
274
|
+
_.extend(result.dirty, configureInstanceTypes(command).dirty);
|
|
275
|
+
_.extend(result.dirty, configureZones(command).dirty);
|
|
276
|
+
}
|
|
277
|
+
// reset previous set values
|
|
278
|
+
if (!isInit) {
|
|
279
|
+
command.loadBalancerName = null;
|
|
280
|
+
command.loadBalancerType = null;
|
|
281
|
+
command.vnet = null;
|
|
282
|
+
command.vnetResourceGroup = null;
|
|
283
|
+
command.subnet = null;
|
|
284
|
+
command.selectedSubnet = null;
|
|
285
|
+
command.selectedVnet = null;
|
|
286
|
+
command.selectedVnetSubnets = [];
|
|
287
|
+
command.viewState.networkSettingsConfigured = false;
|
|
288
|
+
command.selectedSecurityGroup = null;
|
|
289
|
+
command.securityGroupName = null;
|
|
290
|
+
command.zonesEnabled = false;
|
|
291
|
+
command.zones = [];
|
|
292
|
+
}
|
|
266
293
|
|
|
267
294
|
return result;
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
function attachEventHandlers(cmd) {
|
|
271
|
-
cmd.regionChanged = function regionChanged(command, isInit = false) {
|
|
272
|
-
const result = {
|
|
273
|
-
dirty: {},
|
|
274
|
-
};
|
|
275
|
-
if (command.region && command.credentials) {
|
|
276
|
-
angular.extend(result.dirty, configureLoadBalancers(command).dirty);
|
|
277
|
-
angular.extend(result.dirty, configureSecurityGroupOptions(command).dirty);
|
|
278
|
-
angular.extend(result.dirty, configureInstanceTypes(command).dirty);
|
|
279
|
-
angular.extend(result.dirty, configureZones(command).dirty);
|
|
280
|
-
}
|
|
281
|
-
// reset previous set values
|
|
282
|
-
if (!isInit) {
|
|
283
|
-
command.loadBalancerName = null;
|
|
284
|
-
command.loadBalancerType = null;
|
|
285
|
-
command.vnet = null;
|
|
286
|
-
command.vnetResourceGroup = null;
|
|
287
|
-
command.subnet = null;
|
|
288
|
-
command.selectedSubnet = null;
|
|
289
|
-
command.selectedVnet = null;
|
|
290
|
-
command.selectedVnetSubnets = [];
|
|
291
|
-
command.viewState.networkSettingsConfigured = false;
|
|
292
|
-
command.selectedSecurityGroup = null;
|
|
293
|
-
command.securityGroupName = null;
|
|
294
|
-
command.zonesEnabled = false;
|
|
295
|
-
command.zones = [];
|
|
296
|
-
}
|
|
295
|
+
};
|
|
297
296
|
|
|
298
|
-
|
|
297
|
+
cmd.credentialsChanged = function credentialsChanged(command, isInit) {
|
|
298
|
+
const result = {
|
|
299
|
+
dirty: {},
|
|
299
300
|
};
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
const
|
|
303
|
-
|
|
301
|
+
const backingData = command.backingData;
|
|
302
|
+
if (command.credentials) {
|
|
303
|
+
const regionsForAccount = backingData.credentialsKeyedByAccount[command.credentials] || {
|
|
304
|
+
regions: [],
|
|
305
|
+
defaultKeyPair: null,
|
|
304
306
|
};
|
|
305
|
-
|
|
306
|
-
if (
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
!_.chain(backingData.filtered.regions)
|
|
314
|
-
.some({
|
|
315
|
-
name: command.region,
|
|
316
|
-
})
|
|
317
|
-
.value()
|
|
318
|
-
) {
|
|
319
|
-
command.region = null;
|
|
320
|
-
result.dirty.region = true;
|
|
321
|
-
} else {
|
|
322
|
-
angular.extend(result.dirty, command.regionChanged(command, isInit).dirty);
|
|
323
|
-
}
|
|
324
|
-
if (command.region) {
|
|
325
|
-
angular.extend(result.dirty, configureLoadBalancers(command).dirty);
|
|
326
|
-
}
|
|
327
|
-
angular.extend(result.dirty, configureInstanceTypes(command).dirty);
|
|
328
|
-
} else {
|
|
307
|
+
backingData.filtered.regions = regionsForAccount.regions;
|
|
308
|
+
if (
|
|
309
|
+
!_.chain(backingData.filtered.regions)
|
|
310
|
+
.some({
|
|
311
|
+
name: command.region,
|
|
312
|
+
})
|
|
313
|
+
.value()
|
|
314
|
+
) {
|
|
329
315
|
command.region = null;
|
|
316
|
+
result.dirty.region = true;
|
|
317
|
+
} else {
|
|
318
|
+
_.extend(result.dirty, command.regionChanged(command, isInit).dirty);
|
|
330
319
|
}
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
320
|
+
if (command.region) {
|
|
321
|
+
_.extend(result.dirty, configureLoadBalancers(command).dirty);
|
|
322
|
+
}
|
|
323
|
+
_.extend(result.dirty, configureInstanceTypes(command).dirty);
|
|
324
|
+
} else {
|
|
325
|
+
command.region = null;
|
|
326
|
+
}
|
|
327
|
+
return result;
|
|
328
|
+
};
|
|
329
|
+
}
|
|
334
330
|
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
});
|
|
331
|
+
function refreshInstanceTypes(command) {
|
|
332
|
+
return cacheInitializer.refreshCache('instanceTypes').then(function () {
|
|
333
|
+
return azureInstanceTypeService.getAllTypesByRegion().then(function (instanceTypes) {
|
|
334
|
+
command.backingData.instanceTypes = instanceTypes;
|
|
335
|
+
configureInstanceTypes(command);
|
|
341
336
|
});
|
|
342
|
-
}
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
}
|
|
357
|
-
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
return {
|
|
341
|
+
configureUpdateCommand: configureUpdateCommand,
|
|
342
|
+
configureCommand: configureCommand,
|
|
343
|
+
configureImages: configureImages,
|
|
344
|
+
configureSecurityGroupOptions: configureSecurityGroupOptions,
|
|
345
|
+
configureLoadBalancerOptions: configureLoadBalancerOptions,
|
|
346
|
+
refreshLoadBalancers: refreshLoadBalancers,
|
|
347
|
+
refreshSecurityGroups: refreshSecurityGroups,
|
|
348
|
+
getRegionalSecurityGroups: getRegionalSecurityGroups,
|
|
349
|
+
refreshInstanceTypes: refreshInstanceTypes,
|
|
350
|
+
configureZones: configureZones,
|
|
351
|
+
};
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
[
|
|
356
|
+
'configureUpdateCommand',
|
|
357
|
+
'configureCommand',
|
|
358
|
+
'configureImages',
|
|
359
|
+
'configureSecurityGroupOptions',
|
|
360
|
+
'configureLoadBalancerOptions',
|
|
361
|
+
'refreshLoadBalancers',
|
|
362
|
+
'refreshSecurityGroups',
|
|
363
|
+
'getRegionalSecurityGroups',
|
|
364
|
+
'refreshInstanceTypes',
|
|
365
|
+
'configureZones',
|
|
366
|
+
].forEach((method) => {
|
|
367
|
+
AzureServerGroupConfigurationService.prototype[method] = function (...args) {
|
|
368
|
+
if (!this.delegate) {
|
|
369
|
+
this.delegate = this.createDelegate();
|
|
370
|
+
}
|
|
371
|
+
return this.delegate[method](...args);
|
|
372
|
+
};
|
|
373
|
+
});
|