@spinnaker/azure 2026.2.2 → 2026.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/dist/azure.module.d.ts +3 -1
  2. package/dist/image/image.reader.d.ts +4 -2
  3. package/dist/index.js +1 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/instance/azureInstanceType.service.d.ts +6 -2
  6. package/dist/instance/details/AzureInstanceDetails.d.ts +67 -0
  7. package/dist/loadBalancer/configure/AzureLoadBalancerChoiceModal.d.ts +10 -5
  8. package/dist/loadBalancer/configure/AzureLoadBalancerModal.d.ts +102 -0
  9. package/dist/loadBalancer/details/azureLoadBalancerDetails.d.ts +26 -0
  10. package/dist/loadBalancer/loadBalancer.transformer.d.ts +45 -2
  11. package/dist/pipeline/stages/AzureAccountRegionClusterSelector.d.ts +32 -0
  12. package/dist/pipeline/stages/bake/azureBakeStage.d.ts +46 -2
  13. package/dist/pipeline/stages/destroyAsg/azureDestroyAsgStage.d.ts +14 -2
  14. package/dist/pipeline/stages/disableAsg/azureDisableAsgStage.d.ts +4 -2
  15. package/dist/pipeline/stages/enableAsg/azureEnableAsgStage.d.ts +4 -2
  16. package/dist/securityGroup/configure/AzureSecurityGroupModal.d.ts +70 -0
  17. package/dist/securityGroup/details/AzureSecurityGroupDetails.d.ts +51 -0
  18. package/dist/securityGroup/securityGroup.reader.d.ts +3 -2
  19. package/dist/securityGroup/securityGroup.transformer.d.ts +3 -2
  20. package/dist/securityGroup/securityGroup.write.service.d.ts +9 -2
  21. package/dist/serverGroup/configure/serverGroupCommandBuilder.service.d.ts +88 -2
  22. package/dist/serverGroup/configure/serverGroupConfiguration.service.d.ts +30 -2
  23. package/dist/serverGroup/configure/wizard/AzureCloneServerGroupModal.d.ts +44 -0
  24. package/dist/serverGroup/configure/wizard/pages/ServerGroupAdvancedSettings.d.ts +8 -0
  25. package/dist/serverGroup/configure/wizard/pages/ServerGroupBasicSettings.d.ts +12 -0
  26. package/dist/serverGroup/configure/wizard/pages/ServerGroupCapacityAndZones.d.ts +11 -0
  27. package/dist/serverGroup/configure/wizard/pages/ServerGroupHealthSettings.d.ts +10 -0
  28. package/dist/serverGroup/configure/wizard/pages/ServerGroupImageSettings.d.ts +12 -0
  29. package/dist/serverGroup/configure/wizard/pages/ServerGroupInstanceType.d.ts +9 -0
  30. package/dist/serverGroup/configure/wizard/pages/ServerGroupLoadBalancers.d.ts +14 -0
  31. package/dist/serverGroup/configure/wizard/pages/ServerGroupNetworkSettings.d.ts +10 -0
  32. package/dist/serverGroup/configure/wizard/pages/ServerGroupSecurityGroups.d.ts +6 -0
  33. package/dist/serverGroup/configure/wizard/pages/ServerGroupTags.d.ts +9 -0
  34. package/dist/serverGroup/configure/wizard/pages/common.d.ts +14 -0
  35. package/dist/serverGroup/configure/wizard/pages/index.d.ts +10 -0
  36. package/dist/serverGroup/details/azureServerGroupDetails.d.ts +13 -0
  37. package/dist/serverGroup/details/rollback/RollbackServerGroupModal.d.ts +6 -4
  38. package/dist/serverGroup/serverGroup.transformer.d.ts +61 -2
  39. package/dist/validation/applicationName.validator.d.ts +6 -2
  40. package/package.json +5 -8
  41. package/src/azure.module.spec.ts +921 -0
  42. package/src/azure.module.ts +56 -68
  43. package/src/image/image.reader.js +4 -15
  44. package/src/image/image.reader.spec.js +4 -7
  45. package/src/instance/azureInstanceType.service.js +8 -16
  46. package/src/instance/azureInstanceType.service.spec.js +5 -13
  47. package/src/instance/details/AzureInstanceDetails.spec.tsx +364 -0
  48. package/src/instance/details/AzureInstanceDetails.tsx +533 -0
  49. package/src/loadBalancer/configure/AzureLoadBalancerChoiceModal.spec.tsx +125 -0
  50. package/src/loadBalancer/configure/AzureLoadBalancerChoiceModal.tsx +46 -26
  51. package/src/loadBalancer/configure/AzureLoadBalancerModal.spec.tsx +658 -0
  52. package/src/loadBalancer/configure/AzureLoadBalancerModal.tsx +960 -0
  53. package/src/loadBalancer/details/azureLoadBalancerDetails.spec.tsx +470 -0
  54. package/src/loadBalancer/details/azureLoadBalancerDetails.tsx +412 -0
  55. package/src/loadBalancer/loadBalancer.transformer.js +83 -93
  56. package/src/pipeline/stages/AzureAccountRegionClusterSelector.tsx +238 -0
  57. package/src/pipeline/stages/bake/azureBakeStage.tsx +723 -0
  58. package/src/pipeline/stages/destroyAsg/azureDestroyAsgStage.tsx +128 -0
  59. package/src/pipeline/stages/disableAsg/azureDisableAsgStage.tsx +92 -0
  60. package/src/pipeline/stages/enableAsg/azureEnableAsgStage.tsx +87 -0
  61. package/src/routerConsumers.spec.tsx +69 -0
  62. package/src/securityGroup/configure/AzureSecurityGroupModal.spec.tsx +558 -0
  63. package/src/securityGroup/configure/AzureSecurityGroupModal.tsx +782 -0
  64. package/src/securityGroup/details/AzureSecurityGroupDetails.spec.tsx +291 -0
  65. package/src/securityGroup/details/AzureSecurityGroupDetails.tsx +354 -0
  66. package/src/securityGroup/securityGroup.reader.js +3 -13
  67. package/src/securityGroup/securityGroup.transformer.js +3 -13
  68. package/src/securityGroup/securityGroup.write.service.spec.ts +105 -0
  69. package/src/securityGroup/securityGroup.write.service.ts +73 -0
  70. package/src/serverGroup/configure/serverGroupCommandBuilder.service.js +167 -166
  71. package/src/serverGroup/configure/serverGroupCommandBuilder.service.spec.js +63 -0
  72. package/src/serverGroup/configure/serverGroupConfiguration.service.js +325 -309
  73. package/src/serverGroup/configure/serverGroupConfiguration.service.spec.js +57 -53
  74. package/src/serverGroup/configure/wizard/AzureCloneServerGroupModal.spec.tsx +758 -0
  75. package/src/serverGroup/configure/wizard/AzureCloneServerGroupModal.tsx +349 -0
  76. package/src/serverGroup/configure/wizard/pages/ServerGroupAdvancedSettings.tsx +208 -0
  77. package/src/serverGroup/configure/wizard/pages/ServerGroupBasicSettings.tsx +122 -0
  78. package/src/serverGroup/configure/wizard/pages/ServerGroupCapacityAndZones.tsx +80 -0
  79. package/src/serverGroup/configure/wizard/pages/ServerGroupHealthSettings.tsx +97 -0
  80. package/src/serverGroup/configure/wizard/pages/ServerGroupImageSettings.tsx +151 -0
  81. package/src/serverGroup/configure/wizard/pages/ServerGroupInstanceType.tsx +41 -0
  82. package/src/serverGroup/configure/wizard/pages/ServerGroupLoadBalancers.tsx +214 -0
  83. package/src/serverGroup/configure/wizard/pages/ServerGroupNetworkSettings.tsx +119 -0
  84. package/src/serverGroup/configure/wizard/pages/ServerGroupSecurityGroups.tsx +54 -0
  85. package/src/serverGroup/configure/wizard/pages/ServerGroupTags.tsx +40 -0
  86. package/src/serverGroup/configure/wizard/pages/common.tsx +72 -0
  87. package/src/serverGroup/configure/wizard/pages/index.ts +10 -0
  88. package/src/serverGroup/details/azureServerGroupDetails.spec.tsx +263 -0
  89. package/src/serverGroup/details/azureServerGroupDetails.tsx +318 -0
  90. package/src/serverGroup/details/rollback/RollbackServerGroupModal.tsx +24 -30
  91. package/src/serverGroup/serverGroup.transformer.js +11 -19
  92. package/src/serverGroup/serverGroup.transformer.spec.js +2 -6
  93. package/src/validation/applicationName.validator.js +14 -29
  94. package/dist/instance/details/instance.details.controller.d.ts +0 -2
  95. package/dist/loadBalancer/configure/createLoadBalancer.controller.d.ts +0 -2
  96. package/dist/loadBalancer/details/loadBalancerDetail.controller.d.ts +0 -2
  97. package/dist/pipeline/stages/bake/bakeExecutionDetails.controller.d.ts +0 -2
  98. package/dist/securityGroup/clone/cloneSecurityGroup.controller.d.ts +0 -2
  99. package/dist/securityGroup/configure/CreateSecurityGroupCtrl.d.ts +0 -2
  100. package/dist/securityGroup/configure/EditSecurityGroupCtrl.d.ts +0 -2
  101. package/dist/securityGroup/details/securityGroupDetail.controller.d.ts +0 -2
  102. package/dist/serverGroup/configure/serverGroup.configure.azure.module.d.ts +0 -2
  103. package/dist/serverGroup/configure/wizard/CloneServerGroup.azure.controller.d.ts +0 -2
  104. package/dist/serverGroup/configure/wizard/ServerGroupInstanceArchetype.controller.d.ts +0 -2
  105. package/dist/serverGroup/configure/wizard/ServerGroupInstanceType.controller.d.ts +0 -2
  106. package/dist/serverGroup/configure/wizard/advancedSettings/ServerGroupAdvancedSettings.controller.d.ts +0 -2
  107. package/dist/serverGroup/configure/wizard/advancedSettings/advancedSettingsSelector.directive.d.ts +0 -2
  108. package/dist/serverGroup/configure/wizard/basicSettings/ServerGroupBasicSettings.controller.d.ts +0 -2
  109. package/dist/serverGroup/configure/wizard/basicSettings/image.regional.filter.d.ts +0 -2
  110. package/dist/serverGroup/configure/wizard/capacity/capacitySelector.directive.d.ts +0 -2
  111. package/dist/serverGroup/configure/wizard/healthSettings/ServerGroupHealthSettings.controller.d.ts +0 -2
  112. package/dist/serverGroup/configure/wizard/healthSettings/healthSettingsSelector.directive.d.ts +0 -2
  113. package/dist/serverGroup/configure/wizard/image/ServerGroupImageSettings.controller.d.ts +0 -2
  114. package/dist/serverGroup/configure/wizard/image/imageSettingsSelector.directive.d.ts +0 -2
  115. package/dist/serverGroup/configure/wizard/loadBalancers/ServerGroupLoadBalancers.controller.d.ts +0 -2
  116. package/dist/serverGroup/configure/wizard/loadBalancers/serverGroupLoadBalancersSelector.directive.d.ts +0 -2
  117. package/dist/serverGroup/configure/wizard/networkSettings/ServerGroupNetworkSettings.controller.d.ts +0 -2
  118. package/dist/serverGroup/configure/wizard/networkSettings/ServerGroupNetworkSettingsSelector.directive.d.ts +0 -2
  119. package/dist/serverGroup/configure/wizard/securityGroup/ServerGroupSecurityGroups.controller.d.ts +0 -2
  120. package/dist/serverGroup/configure/wizard/securityGroup/serverGroupSecurityGroupsSelector.directive.d.ts +0 -2
  121. package/dist/serverGroup/configure/wizard/tags/tagsSelector.directive.d.ts +0 -2
  122. package/dist/serverGroup/configure/wizard/zones/zoneSelector.directive.d.ts +0 -2
  123. package/dist/serverGroup/details/serverGroup.details.module.d.ts +0 -2
  124. package/dist/serverGroup/details/serverGroupDetails.azure.controller.d.ts +0 -2
  125. package/src/instance/details/instance.details.controller.js +0 -371
  126. package/src/instance/details/instance.details.controller.spec.js +0 -129
  127. package/src/instance/details/instanceDetails.html +0 -43
  128. package/src/loadBalancer/configure/advancedSettings.html +0 -95
  129. package/src/loadBalancer/configure/createLoadBalancer.controller.js +0 -275
  130. package/src/loadBalancer/configure/createLoadBalancer.controller.spec.js +0 -39
  131. package/src/loadBalancer/configure/createLoadBalancer.html +0 -25
  132. package/src/loadBalancer/configure/createLoadBalancerProperties.html +0 -128
  133. package/src/loadBalancer/configure/editLoadBalancer.html +0 -26
  134. package/src/loadBalancer/configure/healthCheck.html +0 -74
  135. package/src/loadBalancer/configure/listeners.html +0 -50
  136. package/src/loadBalancer/details/loadBalancerDetail.controller.js +0 -181
  137. package/src/loadBalancer/details/loadBalancerDetail.controller.spec.js +0 -39
  138. package/src/loadBalancer/details/loadBalancerDetail.html +0 -128
  139. package/src/pipeline/stages/bake/azureBakeStage.js +0 -276
  140. package/src/pipeline/stages/bake/bakeExecutionDetails.controller.js +0 -40
  141. package/src/pipeline/stages/bake/bakeExecutionDetails.html +0 -50
  142. package/src/pipeline/stages/bake/bakeStage.html +0 -187
  143. package/src/pipeline/stages/destroyAsg/azureDestroyAsgStage.js +0 -73
  144. package/src/pipeline/stages/destroyAsg/destroyAsgStage.html +0 -9
  145. package/src/pipeline/stages/destroyAsg/destroyAsgStepLabel.html +0 -1
  146. package/src/pipeline/stages/disableAsg/azureDisableAsgStage.js +0 -65
  147. package/src/pipeline/stages/disableAsg/disableAsgStage.html +0 -11
  148. package/src/pipeline/stages/disableAsg/disableAsgStepLabel.html +0 -1
  149. package/src/pipeline/stages/enableAsg/azureEnableAsgStage.js +0 -70
  150. package/src/pipeline/stages/enableAsg/enableAsgStage.html +0 -11
  151. package/src/pipeline/stages/enableAsg/enableAsgStepLabel.html +0 -1
  152. package/src/securityGroup/clone/cloneSecurityGroup.controller.js +0 -162
  153. package/src/securityGroup/clone/cloneSecurityGroup.html +0 -8
  154. package/src/securityGroup/configure/CreateSecurityGroup.controller.spec.js +0 -78
  155. package/src/securityGroup/configure/CreateSecurityGroupCtrl.js +0 -265
  156. package/src/securityGroup/configure/EditSecurityGroupCtrl.js +0 -222
  157. package/src/securityGroup/configure/configSecurityGroup.mixin.controller.js +0 -262
  158. package/src/securityGroup/configure/createSecurityGroup.html +0 -20
  159. package/src/securityGroup/configure/createSecurityGroupIngress.html +0 -75
  160. package/src/securityGroup/configure/createSecurityGroupProperties.html +0 -88
  161. package/src/securityGroup/configure/editSecurityGroup.html +0 -19
  162. package/src/securityGroup/details/securityGroupDetail.controller.js +0 -142
  163. package/src/securityGroup/details/securityGroupDetail.html +0 -78
  164. package/src/securityGroup/securityGroup.write.service.js +0 -57
  165. package/src/serverGroup/configure/serverGroup.configure.azure.module.js +0 -47
  166. package/src/serverGroup/configure/wizard/CloneServerGroup.azure.controller.js +0 -247
  167. package/src/serverGroup/configure/wizard/ServerGroupInstanceArchetype.controller.js +0 -35
  168. package/src/serverGroup/configure/wizard/ServerGroupInstanceType.controller.js +0 -15
  169. package/src/serverGroup/configure/wizard/advancedSettings/ServerGroupAdvancedSettings.controller.js +0 -25
  170. package/src/serverGroup/configure/wizard/advancedSettings/advancedSettings.html +0 -5
  171. package/src/serverGroup/configure/wizard/advancedSettings/advancedSettingsSelector.directive.html +0 -138
  172. package/src/serverGroup/configure/wizard/advancedSettings/advancedSettingsSelector.directive.js +0 -43
  173. package/src/serverGroup/configure/wizard/basicSettings/ServerGroupBasicSettings.controller.js +0 -71
  174. package/src/serverGroup/configure/wizard/basicSettings/basicSettings.html +0 -131
  175. package/src/serverGroup/configure/wizard/basicSettings/image.regional.filter.js +0 -15
  176. package/src/serverGroup/configure/wizard/basicSettings/image.regional.filter.spec.js +0 -42
  177. package/src/serverGroup/configure/wizard/capacity/capacity.html +0 -5
  178. package/src/serverGroup/configure/wizard/capacity/capacitySelector.directive.html +0 -20
  179. package/src/serverGroup/configure/wizard/capacity/capacitySelector.directive.js +0 -21
  180. package/src/serverGroup/configure/wizard/capacity/zones.html +0 -5
  181. package/src/serverGroup/configure/wizard/healthSettings/ServerGroupHealthSettings.controller.js +0 -38
  182. package/src/serverGroup/configure/wizard/healthSettings/healthSettings.html +0 -5
  183. package/src/serverGroup/configure/wizard/healthSettings/healthSettingsSelector.directive.html +0 -32
  184. package/src/serverGroup/configure/wizard/healthSettings/healthSettingsSelector.directive.js +0 -22
  185. package/src/serverGroup/configure/wizard/image/ServerGroupImageSettings.controller.js +0 -34
  186. package/src/serverGroup/configure/wizard/image/imageSettings.html +0 -5
  187. package/src/serverGroup/configure/wizard/image/imageSettingsSelector.directive.html +0 -33
  188. package/src/serverGroup/configure/wizard/image/imageSettingsSelector.directive.js +0 -22
  189. package/src/serverGroup/configure/wizard/instanceArchetype.html +0 -33
  190. package/src/serverGroup/configure/wizard/instanceType/instanceType.html +0 -10
  191. package/src/serverGroup/configure/wizard/instanceType.html +0 -33
  192. package/src/serverGroup/configure/wizard/loadBalancers/ServerGroupLoadBalancers.controller.js +0 -137
  193. package/src/serverGroup/configure/wizard/loadBalancers/loadBalancers.html +0 -3
  194. package/src/serverGroup/configure/wizard/loadBalancers/serverGroupLoadBalancersSelector.directive.html +0 -41
  195. package/src/serverGroup/configure/wizard/loadBalancers/serverGroupLoadBalancersSelector.directive.js +0 -22
  196. package/src/serverGroup/configure/wizard/networkSettings/ServerGroupNetworkSettings.controller.js +0 -44
  197. package/src/serverGroup/configure/wizard/networkSettings/ServerGroupNetworkSettingsSelector.directive.html +0 -54
  198. package/src/serverGroup/configure/wizard/networkSettings/ServerGroupNetworkSettingsSelector.directive.js +0 -19
  199. package/src/serverGroup/configure/wizard/networkSettings/networkSettings.html +0 -3
  200. package/src/serverGroup/configure/wizard/securityGroup/ServerGroupSecurityGroups.controller.js +0 -28
  201. package/src/serverGroup/configure/wizard/securityGroup/securityGroups.html +0 -3
  202. package/src/serverGroup/configure/wizard/securityGroup/serverGroupSecurityGroupsSelector.directive.html +0 -40
  203. package/src/serverGroup/configure/wizard/securityGroup/serverGroupSecurityGroupsSelector.directive.js +0 -38
  204. package/src/serverGroup/configure/wizard/serverGroupWizard.html +0 -61
  205. package/src/serverGroup/configure/wizard/tags/tags.html +0 -5
  206. package/src/serverGroup/configure/wizard/tags/tagsSelector.directive.html +0 -16
  207. package/src/serverGroup/configure/wizard/tags/tagsSelector.directive.js +0 -30
  208. package/src/serverGroup/configure/wizard/templateSelection.html +0 -9
  209. package/src/serverGroup/configure/wizard/zones/zoneSelector.directive.html +0 -21
  210. package/src/serverGroup/configure/wizard/zones/zoneSelector.directive.js +0 -28
  211. package/src/serverGroup/details/serverGroup.details.module.js +0 -11
  212. package/src/serverGroup/details/serverGroupDetails.azure.controller.js +0 -260
  213. package/src/serverGroup/details/serverGroupDetails.html +0 -98
  214. package/src/subnet/subnetSelectField.directive.html +0 -28
  215. package/src/subnet/subnetSelectField.directive.js +0 -35
@@ -1,162 +0,0 @@
1
- 'use strict';
2
-
3
- import { module } from 'angular';
4
- import _ from 'lodash';
5
-
6
- import { AccountService, FirewallLabels, TaskMonitor } from '@spinnaker/core';
7
-
8
- import { AZURE_SECURITYGROUP_CONFIGURE_CREATESECURITYGROUPCTRL } from '../configure/CreateSecurityGroupCtrl';
9
- import { AZURE_SECURITYGROUP_SECURITYGROUP_WRITE_SERVICE } from '../securityGroup.write.service';
10
-
11
- export const AZURE_SECURITYGROUP_CLONE_CLONESECURITYGROUP_CONTROLLER = 'spinnaker.azure.securityGroup.clone.controller';
12
- export const name = AZURE_SECURITYGROUP_CLONE_CLONESECURITYGROUP_CONTROLLER; // for backwards compatibility
13
- module(AZURE_SECURITYGROUP_CLONE_CLONESECURITYGROUP_CONTROLLER, [
14
- AZURE_SECURITYGROUP_SECURITYGROUP_WRITE_SERVICE,
15
- AZURE_SECURITYGROUP_CONFIGURE_CREATESECURITYGROUPCTRL,
16
- ]).controller('azureCloneSecurityGroupController', [
17
- '$scope',
18
- '$uibModalInstance',
19
- '$controller',
20
- '$state',
21
- 'azureSecurityGroupWriter',
22
- 'securityGroup',
23
- 'application',
24
- function ($scope, $uibModalInstance, $controller, $state, azureSecurityGroupWriter, securityGroup, application) {
25
- const ctrl = this;
26
-
27
- $scope.firewallLabel = FirewallLabels.get('Firewall');
28
-
29
- $scope.pages = {
30
- location: require('../configure/createSecurityGroupProperties.html'),
31
- ingress: require('../configure/createSecurityGroupIngress.html'),
32
- };
33
-
34
- securityGroup.securityRules = _.map(securityGroup.securityRules, function (rule) {
35
- const temp = rule.destinationPortRange.split('-');
36
- rule.startPort = Number(temp[0]);
37
- rule.endPort = Number(temp[1]);
38
- return rule;
39
- });
40
-
41
- ctrl.accountUpdated = function () {
42
- AccountService.getRegionsForAccount($scope.securityGroup.credentials).then(function (regions) {
43
- $scope.regions = regions;
44
- $scope.securityGroup.regions = regions;
45
- ctrl.updateName();
46
- });
47
- };
48
-
49
- ctrl.cancel = function () {
50
- $uibModalInstance.dismiss();
51
- };
52
-
53
- ctrl.updateName = function () {
54
- const securityGroup = $scope.securityGroup;
55
- let name = application.name;
56
- if (securityGroup.detail) {
57
- name += '-' + securityGroup.detail;
58
- }
59
- securityGroup.name = name;
60
- $scope.namePreview = name;
61
- };
62
-
63
- $scope.securityGroup = securityGroup;
64
-
65
- $scope.state = {
66
- refreshingSecurityGroups: false,
67
- };
68
-
69
- $scope.taskMonitor = new TaskMonitor({
70
- application: application,
71
- title: `Updating your ${FirewallLabels.get('firewall')}`,
72
- modalInstance: $uibModalInstance,
73
- onTaskComplete: onTaskComplete,
74
- });
75
-
76
- AccountService.listAccounts('azure').then(function (accounts) {
77
- $scope.accounts = accounts;
78
- ctrl.accountUpdated();
79
- });
80
-
81
- ctrl.addRule = function (ruleset) {
82
- ruleset.push({
83
- name: $scope.securityGroup.name + '-Rule' + ruleset.length,
84
- priority: ruleset.length === 0 ? 100 : 100 * (ruleset.length + 1),
85
- protocol: 'tcp',
86
- access: 'Allow',
87
- direction: 'InBound',
88
- sourceAddressPrefix: '*',
89
- sourcePortRange: '*',
90
- destinationAddressPrefix: '*',
91
- destinationPortRange: '7001-7001',
92
- startPort: 7001,
93
- endPort: 7001,
94
- });
95
- };
96
-
97
- function onApplicationRefresh() {
98
- // If the user has already closed the modal, do not navigate to the new details view
99
- if ($scope.$$destroyed) {
100
- return;
101
- }
102
- $uibModalInstance.close();
103
- const newStateParams = {
104
- name: $scope.securityGroup.name,
105
- accountId: $scope.securityGroup.credentials || $scope.securityGroup.accountName,
106
- region: $scope.securityGroup.region,
107
- provider: 'azure',
108
- };
109
- if (!$state.includes('**.firewallDetails')) {
110
- $state.go('.firewallDetails', newStateParams);
111
- } else {
112
- $state.go('^.firewallDetails', newStateParams);
113
- }
114
- }
115
-
116
- function onTaskComplete() {
117
- application.securityGroups.refresh();
118
- application.securityGroups.onNextRefresh($scope, onApplicationRefresh);
119
- }
120
-
121
- ctrl.portUpdated = function (ruleset, index) {
122
- ruleset[index].destinationPortRange = ruleset[index].startPort + '-' + ruleset[index].endPort;
123
- };
124
- ctrl.removeRule = function (ruleset, index) {
125
- ruleset.splice(index, 1);
126
- };
127
- ctrl.moveUp = function (ruleset, index) {
128
- if (index === 0) return;
129
- swapRules(ruleset, index, index - 1);
130
- };
131
- ctrl.moveDown = function (ruleset, index) {
132
- if (index === ruleset.length - 1) return;
133
- swapRules(ruleset, index, index + 1);
134
- };
135
- function swapRules(ruleset, a, b) {
136
- const temp = ruleset[b];
137
- const priorityA = ruleset[a].priority;
138
- const priorityB = ruleset[b].priority;
139
- //swap elements
140
- ruleset[b] = ruleset[a];
141
- ruleset[a] = temp;
142
- //swap priorities
143
- ruleset[a].priority = priorityA;
144
- ruleset[b].priority = priorityB;
145
- }
146
-
147
- ctrl.upsert = function () {
148
- $scope.taskMonitor.submit(function () {
149
- const params = {
150
- cloudProvider: 'azure',
151
- appName: application.name,
152
- region: $scope.securityGroup.region,
153
- subnet: 'none',
154
- vpcId: 'null',
155
- };
156
- $scope.securityGroup.type = 'upsertSecurityGroup';
157
-
158
- return azureSecurityGroupWriter.upsertSecurityGroup($scope.securityGroup, application, 'Clone', params);
159
- });
160
- };
161
- },
162
- ]);
@@ -1,8 +0,0 @@
1
- <v2-modal-wizard heading="Clone {{firewallLabel}}">
2
- <v2-wizard-page key="Location" label="Location">
3
- <ng-include src="pages.location"></ng-include>
4
- </v2-wizard-page>
5
- <v2-wizard-page key="Ingress" label="Ingress" done="true">
6
- <ng-include src="pages.ingress"></ng-include>
7
- </v2-wizard-page>
8
- </v2-modal-wizard>
@@ -1,78 +0,0 @@
1
- 'use strict';
2
- import { mockHttpClient } from 'core/api/mock/jasmine';
3
- import { AccountService, SECURITY_GROUP_READER } from '@spinnaker/core';
4
-
5
- describe('Controller: Azure.CreateSecurityGroup', function () {
6
- beforeEach(window.module(SECURITY_GROUP_READER, require('./CreateSecurityGroupCtrl').name));
7
-
8
- describe('filtering', function () {
9
- // Initialize the controller and a mock scope
10
- beforeEach(
11
- window.inject(function ($controller, $rootScope, $q, securityGroupReader, azureSecurityGroupWriter) {
12
- this.$scope = $rootScope.$new();
13
- this.$q = $q;
14
- this.securityGroupReader = securityGroupReader;
15
- this.securityGroupWriter = azureSecurityGroupWriter;
16
-
17
- spyOn(AccountService, 'listAccounts').and.returnValue($q.when(['prod', 'test']));
18
-
19
- spyOn(AccountService, 'getRegionsForAccount').and.returnValue($q.when(['us-east-1', 'us-west-1']));
20
-
21
- spyOn(this.securityGroupReader, 'getAllSecurityGroups').and.returnValue(
22
- $q.when({
23
- prod: {
24
- azure: {
25
- 'us-east-1': [
26
- { name: 'group1', vpcId: null, id: '1' },
27
- { name: 'group2', vpcId: null, id: '2' },
28
- { name: 'group3', vpcId: 'vpc1-pe', id: '3' },
29
- ],
30
- 'us-west-1': [
31
- { name: 'group1', vpcId: null, id: '1' },
32
- { name: 'group3', vpcId: 'vpc2-pw', id: '3' },
33
- ],
34
- },
35
- },
36
- test: {
37
- azure: {
38
- 'us-east-1': [
39
- { name: 'group1', vpcId: null, id: '1' },
40
- { name: 'group2', vpcId: 'vpc1-te', id: '2' },
41
- { name: 'group3', vpcId: 'vpc1-te', id: '3' },
42
- { name: 'group4', vpcId: 'vpc2-te', id: '4' },
43
- ],
44
- 'us-west-1': [
45
- { name: 'group1', vpcId: null, id: '1' },
46
- { name: 'group3', vpcId: 'vpc1-tw', id: '3' },
47
- { name: 'group3', vpcId: 'vpc2-tw', id: '3' },
48
- { name: 'group5', vpcId: 'vpc2-tw', id: '5' },
49
- ],
50
- },
51
- },
52
- }),
53
- );
54
-
55
- this.initializeCtrl = function () {
56
- this.ctrl = $controller('azureCreateSecurityGroupCtrl', {
57
- $scope: this.$scope,
58
- $uibModalInstance: { result: this.$q.when(null) },
59
- securityGroupReader: this.securityGroupReader,
60
- securityGroupWriter: this.securityGroupWriter,
61
- application: {},
62
- securityGroup: { regions: [], securityGroupIngress: [] },
63
- });
64
-
65
- this.$scope.$digest();
66
- };
67
- }),
68
- );
69
-
70
- it('initializes with no firewalls available for ingress permissions', async function () {
71
- const http = mockHttpClient();
72
- http.expectGET('/networks').respond(200, []);
73
- this.initializeCtrl();
74
- await http.flush();
75
- expect(this.$scope.securityGroup.securityRules.length).toBe(0);
76
- });
77
- });
78
- });
@@ -1,265 +0,0 @@
1
- 'use strict';
2
-
3
- import UIROUTER_ANGULARJS from '@uirouter/angularjs';
4
- import { module } from 'angular';
5
- import _ from 'lodash';
6
-
7
- import { AccountService, FirewallLabels, NetworkReader, TaskMonitor } from '@spinnaker/core';
8
-
9
- import { AZURE_SECURITYGROUP_SECURITYGROUP_WRITE_SERVICE } from '../securityGroup.write.service';
10
-
11
- export const AZURE_SECURITYGROUP_CONFIGURE_CREATESECURITYGROUPCTRL = 'spinnaker.azure.securityGroup.create.controller';
12
- export const name = AZURE_SECURITYGROUP_CONFIGURE_CREATESECURITYGROUPCTRL; // for backwards compatibility
13
- module(AZURE_SECURITYGROUP_CONFIGURE_CREATESECURITYGROUPCTRL, [
14
- UIROUTER_ANGULARJS,
15
- AZURE_SECURITYGROUP_SECURITYGROUP_WRITE_SERVICE,
16
- ]).controller('azureCreateSecurityGroupCtrl', [
17
- '$scope',
18
- '$uibModalInstance',
19
- '$state',
20
- '$controller',
21
- 'application',
22
- 'securityGroup',
23
- 'azureSecurityGroupWriter',
24
- function ($scope, $uibModalInstance, $state, $controller, application, securityGroup, azureSecurityGroupWriter) {
25
- $scope.pages = {
26
- location: require('./createSecurityGroupProperties.html'),
27
- ingress: require('./createSecurityGroupIngress.html'),
28
- };
29
-
30
- $scope.regions = [];
31
-
32
- $scope.firewallLabel = FirewallLabels.get('Firewall');
33
-
34
- const ctrl = this;
35
- $scope.isNew = true;
36
- $scope.state = {
37
- submitting: false,
38
- infiniteScroll: {
39
- numToAdd: 20,
40
- currentItems: 20,
41
- },
42
- };
43
-
44
- AccountService.listAccounts('azure').then(function (accounts) {
45
- $scope.accounts = accounts;
46
- ctrl.accountUpdated();
47
- });
48
-
49
- ctrl.addMoreItems = function () {
50
- $scope.state.infiniteScroll.currentItems += $scope.state.infiniteScroll.numToAdd;
51
- };
52
-
53
- function onApplicationRefresh() {
54
- // If the user has already closed the modal, do not navigate to the new details view
55
- if ($scope.$$destroyed) {
56
- return;
57
- }
58
- $uibModalInstance.close();
59
- const newStateParams = {
60
- name: $scope.securityGroup.name,
61
- accountId: $scope.securityGroup.credentials || $scope.securityGroup.accountName,
62
- region: $scope.securityGroup.regions[0],
63
- provider: 'azure',
64
- };
65
- if (!$state.includes('**.firewallDetails')) {
66
- $state.go('.firewallDetails', newStateParams);
67
- } else {
68
- $state.go('^.firewallDetails', newStateParams);
69
- }
70
- }
71
-
72
- function onTaskComplete() {
73
- application.securityGroups.refresh();
74
- application.securityGroups.onNextRefresh($scope, onApplicationRefresh);
75
- }
76
-
77
- $scope.taskMonitor = new TaskMonitor({
78
- application: application,
79
- title: `Creating your ${FirewallLabels.get('firewall')}`,
80
- modalInstance: $uibModalInstance,
81
- onTaskComplete: onTaskComplete,
82
- });
83
-
84
- $scope.securityGroup = securityGroup;
85
-
86
- ctrl.accountUpdated = function () {
87
- AccountService.getRegionsForAccount($scope.securityGroup.credentials).then(function (regions) {
88
- $scope.regions = regions;
89
- $scope.securityGroup.regions = regions;
90
- ctrl.updateName();
91
- ctrl.regionUpdated();
92
- });
93
- };
94
-
95
- this.regionUpdated = function () {
96
- ctrl.vnetUpdated();
97
- };
98
-
99
- this.vnetUpdated = function () {
100
- const account = $scope.securityGroup.credentials;
101
- const region = $scope.securityGroup.region;
102
- $scope.securityGroup.selectedVnet = null;
103
- $scope.securityGroup.vnet = null;
104
- $scope.securityGroup.vnetResourceGroup = null;
105
-
106
- ctrl.selectedVnets = [];
107
-
108
- NetworkReader.listNetworks().then(function (vnets) {
109
- if (vnets.azure) {
110
- vnets.azure.forEach((vnet) => {
111
- if (vnet.account === account && vnet.region === region) {
112
- ctrl.selectedVnets.push(vnet);
113
- }
114
- });
115
- }
116
- });
117
-
118
- ctrl.subnetUpdated();
119
- };
120
-
121
- this.subnetUpdated = function () {
122
- $scope.securityGroup.selectedSubnet = null;
123
- $scope.securityGroup.subnet = null;
124
- ctrl.selectedSubnets = [];
125
- };
126
-
127
- this.selectedVnetChanged = function (item) {
128
- $scope.securityGroup.vnet = item.name;
129
- $scope.securityGroup.vnetResourceGroup = item.resourceGroup;
130
- $scope.securityGroup.selectedSubnet = null;
131
- $scope.securityGroup.subnet = null;
132
- ctrl.selectedSubnets = [];
133
- if (item.subnets) {
134
- item.subnets.map(function (subnet) {
135
- ctrl.selectedSubnets.push(subnet);
136
- });
137
- }
138
- };
139
-
140
- ctrl.cancel = function () {
141
- $uibModalInstance.dismiss();
142
- };
143
-
144
- ctrl.updateName = function () {
145
- const securityGroup = $scope.securityGroup;
146
- let name = application.name;
147
- if (securityGroup.detail) {
148
- name += '-' + securityGroup.detail;
149
- }
150
- securityGroup.name = name;
151
- $scope.namePreview = name;
152
- };
153
-
154
- ctrl.upsert = function () {
155
- $scope.taskMonitor.submit(function () {
156
- const params = {
157
- cloudProvider: 'azure',
158
- appName: application.name,
159
- region: $scope.securityGroup.region,
160
- vpcId: 'null',
161
- };
162
-
163
- if ($scope.securityGroup.selectedVnet) {
164
- $scope.securityGroup.vnet = $scope.securityGroup.selectedVnet.name;
165
- $scope.securityGroup.vnetResourceGroup = $scope.securityGroup.selectedVnet.resourceGroup;
166
- }
167
-
168
- if ($scope.securityGroup.selectedSubnet) {
169
- $scope.securityGroup.subnet = $scope.securityGroup.selectedSubnet.name;
170
- }
171
-
172
- $scope.securityGroup.type = 'upsertSecurityGroup';
173
-
174
- return azureSecurityGroupWriter.upsertSecurityGroup($scope.securityGroup, application, 'Create', params);
175
- });
176
- };
177
-
178
- ctrl.addRule = function (ruleset) {
179
- ruleset.push({
180
- name: $scope.securityGroup.name + '-Rule' + ruleset.length,
181
- priority: ruleset.length == 0 ? 100 : 100 * (ruleset.length + 1),
182
- protocolUI: 'tcp',
183
- protocol: 'tcp',
184
- access: 'Allow',
185
- direction: 'InBound',
186
- sourceAddressPrefix: '*',
187
- sourceAddressPrefixes: [],
188
- sourcePortRange: '*',
189
- destinationAddressPrefix: '*',
190
- destinationPortRange: '*',
191
- destinationPortRanges: [],
192
- destPortRanges: '*',
193
- sourceIPCIDRRanges: '*',
194
- });
195
- };
196
-
197
- ctrl.portUpdated = function (ruleset, index) {
198
- if (!_.isEmpty(ruleset[index].destPortRanges)) {
199
- const ruleRanges = ruleset[index].destPortRanges.split(',');
200
-
201
- if (ruleRanges.length > 1) {
202
- ruleset[index].destinationPortRanges = [];
203
- ruleRanges.forEach((v) => ruleset[index].destinationPortRanges.push(v));
204
-
205
- // If there are multiple port ranges then set null to the single port parameter otherwise ARM template will fail in validation.
206
- ruleset[index].destinationPortRange = null;
207
- } else {
208
- ruleset[index].destinationPortRange = ruleset[index].destPortRanges;
209
-
210
- // If there is a single port range then set null to the port array otherwise ARM template will fail in validation.
211
- ruleset[index].destinationPortRanges = [];
212
- }
213
- }
214
- };
215
-
216
- ctrl.sourceIPCIDRUpdated = function (ruleset, index) {
217
- if (!_.isEmpty(ruleset[index].destPortRanges)) {
218
- const ruleRanges = ruleset[index].sourceIPCIDRRanges.split(',');
219
- if (ruleRanges.length > 1) {
220
- ruleset[index].sourceAddressPrefixes = [];
221
- ruleRanges.forEach((v) => ruleset[index].sourceAddressPrefixes.push(v));
222
-
223
- // If there are multiple IP/CIDR ranges then set null to the single sourceAddressPrefix parameter otherwise ARM template will fail in validation
224
- ruleset[index].sourceAddressPrefix = null;
225
- } else {
226
- ruleset[index].sourceAddressPrefix = ruleset[index].sourceIPCIDRRanges;
227
-
228
- // If there is a single IP/CIDR then set null to the IP/CIDR array otherwise ARM template will fail in validation.
229
- ruleset[index].sourceAddressPrefixes = [];
230
- }
231
- }
232
- };
233
-
234
- ctrl.protocolUpdated = function (ruleset, index) {
235
- ruleset[index].protocol = ruleset[index].protocolUI;
236
- };
237
-
238
- ctrl.removeRule = function (ruleset, index) {
239
- ruleset.splice(index, 1);
240
- };
241
-
242
- ctrl.moveUp = function (ruleset, index) {
243
- if (index === 0) return;
244
- swapRules(ruleset, index, index - 1);
245
- };
246
- ctrl.moveDown = function (ruleset, index) {
247
- if (index === ruleset.length - 1) return;
248
- swapRules(ruleset, index, index + 1);
249
- };
250
-
251
- function swapRules(ruleset, a, b) {
252
- const temp = ruleset[b];
253
- const priorityA = ruleset[a].priority;
254
- const priorityB = ruleset[b].priority;
255
- //swap elements
256
- ruleset[b] = ruleset[a];
257
- ruleset[a] = temp;
258
- //swap priorities
259
- ruleset[a].priority = priorityA;
260
- ruleset[b].priority = priorityB;
261
- }
262
-
263
- $scope.securityGroup.securityRules = [];
264
- },
265
- ]);