@spinnaker/oracle 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.
Files changed (117) hide show
  1. package/CHANGELOG.md +868 -0
  2. package/LICENSE.txt +203 -0
  3. package/dist/common/footer.component.d.ts +2 -0
  4. package/dist/domain/IOracleLoadBalancer.d.ts +114 -0
  5. package/dist/helpContents/oracleHelpContents.d.ts +1 -0
  6. package/dist/image/image.reader.d.ts +2 -0
  7. package/dist/index.d.ts +1 -0
  8. package/dist/index.js +3634 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/instance/details/instance.details.controller.d.ts +2 -0
  11. package/dist/loadBalancer/configure/createLoadBalancer.controller.d.ts +87 -0
  12. package/dist/loadBalancer/details/loadBalancerDetail.controller.d.ts +21 -0
  13. package/dist/loadBalancer/loadBalancer.transformer.d.ts +12 -0
  14. package/dist/oracle.module.d.ts +2 -0
  15. package/dist/oracle.settings.d.ts +15 -0
  16. package/dist/pipeline/stages/bake/bakeExecutionDetails.controller.d.ts +2 -0
  17. package/dist/pipeline/stages/bake/ociBakeStage.d.ts +2 -0
  18. package/dist/pipeline/stages/destroyAsg/destroyAsgStage.d.ts +2 -0
  19. package/dist/pipeline/stages/disableAsg/disableAsgStage.d.ts +2 -0
  20. package/dist/pipeline/stages/findAmi/findAmiStage.d.ts +2 -0
  21. package/dist/pipeline/stages/findImageFromTags/oracleFindImageFromTagsStage.d.ts +2 -0
  22. package/dist/pipeline/stages/resizeAsg/resizeAsgStage.d.ts +2 -0
  23. package/dist/pipeline/stages/scaleDownCluster/scaleDownClusterStage.d.ts +2 -0
  24. package/dist/pipeline/stages/shrinkCluster/shrinkClusterStage.d.ts +2 -0
  25. package/dist/securityGroup/configure/createSecurityGroup.controller.d.ts +2 -0
  26. package/dist/securityGroup/securityGroup.reader.d.ts +2 -0
  27. package/dist/securityGroup/securityGroup.transformer.d.ts +2 -0
  28. package/dist/serverGroup/configure/serverGroup.configure.module.d.ts +2 -0
  29. package/dist/serverGroup/configure/serverGroupCommandBuilder.service.d.ts +2 -0
  30. package/dist/serverGroup/configure/serverGroupConfiguration.service.d.ts +2 -0
  31. package/dist/serverGroup/configure/wizard/basicSettings/basicSettings.controller.d.ts +2 -0
  32. package/dist/serverGroup/configure/wizard/capacity/capacitySelector.component.d.ts +2 -0
  33. package/dist/serverGroup/configure/wizard/cloneServerGroup.controller.d.ts +2 -0
  34. package/dist/serverGroup/details/resize/resizeCapacity.component.d.ts +2 -0
  35. package/dist/serverGroup/details/resize/resizeServerGroup.controller.d.ts +2 -0
  36. package/dist/serverGroup/details/rollback/rollbackServerGroup.controller.d.ts +2 -0
  37. package/dist/serverGroup/details/serverGroupDetails.controller.d.ts +2 -0
  38. package/dist/serverGroup/serverGroup.transformer.d.ts +2 -0
  39. package/package.json +38 -0
  40. package/src/common/footer.component.html +7 -0
  41. package/src/common/footer.component.js +18 -0
  42. package/src/common/ocid/ocid.component.js +15 -0
  43. package/src/common/ocid/ocid.template.html +10 -0
  44. package/src/common/ocid/truncateOcid.filter.js +14 -0
  45. package/src/domain/IOracleLoadBalancer.ts +110 -0
  46. package/src/helpContents/oracleHelpContents.ts +52 -0
  47. package/src/image/image.reader.js +38 -0
  48. package/src/index.ts +1 -0
  49. package/src/instance/details/instance.details.controller.js +56 -0
  50. package/src/instance/details/instanceDetails.html +31 -0
  51. package/src/loadBalancer/configure/backendSets.html +67 -0
  52. package/src/loadBalancer/configure/certificates.html +63 -0
  53. package/src/loadBalancer/configure/createLoadBalancer.controller.spec.ts +201 -0
  54. package/src/loadBalancer/configure/createLoadBalancer.controller.ts +540 -0
  55. package/src/loadBalancer/configure/createLoadBalancer.html +25 -0
  56. package/src/loadBalancer/configure/createLoadBalancerProperties.html +167 -0
  57. package/src/loadBalancer/configure/editLoadBalancer.html +26 -0
  58. package/src/loadBalancer/configure/listeners.html +88 -0
  59. package/src/loadBalancer/details/loadBalancerDetail.controller.spec.ts +62 -0
  60. package/src/loadBalancer/details/loadBalancerDetail.controller.ts +163 -0
  61. package/src/loadBalancer/details/loadBalancerDetail.html +100 -0
  62. package/src/loadBalancer/loadBalancer.transformer.ts +144 -0
  63. package/src/oracle.module.ts +94 -0
  64. package/src/oracle.settings.ts +19 -0
  65. package/src/pipeline/disableAsg/disableAsgStage.html +11 -0
  66. package/src/pipeline/disableAsg/disableAsgStage.js +62 -0
  67. package/src/pipeline/disableAsg/disableAsgStepLabel.html +1 -0
  68. package/src/pipeline/stages/bake/bakeExecutionDetails.controller.js +38 -0
  69. package/src/pipeline/stages/bake/bakeExecutionDetails.html +52 -0
  70. package/src/pipeline/stages/bake/bakeStage.html +109 -0
  71. package/src/pipeline/stages/bake/ociBakeStage.js +147 -0
  72. package/src/pipeline/stages/destroyAsg/destroyAsgStage.html +9 -0
  73. package/src/pipeline/stages/destroyAsg/destroyAsgStage.js +64 -0
  74. package/src/pipeline/stages/destroyAsg/destroyAsgStepLabel.html +1 -0
  75. package/src/pipeline/stages/disableAsg/disableAsgStage.html +11 -0
  76. package/src/pipeline/stages/disableAsg/disableAsgStage.js +63 -0
  77. package/src/pipeline/stages/disableAsg/disableAsgStepLabel.html +1 -0
  78. package/src/pipeline/stages/findAmi/findAmiStage.html +20 -0
  79. package/src/pipeline/stages/findAmi/findAmiStage.js +82 -0
  80. package/src/pipeline/stages/findImageFromTags/findImageFromTagsExecutionDetails.html +44 -0
  81. package/src/pipeline/stages/findImageFromTags/findImageFromTagsStage.html +11 -0
  82. package/src/pipeline/stages/findImageFromTags/oracleFindImageFromTagsStage.js +36 -0
  83. package/src/pipeline/stages/resizeAsg/resizeAsgStage.html +89 -0
  84. package/src/pipeline/stages/resizeAsg/resizeAsgStage.js +101 -0
  85. package/src/pipeline/stages/resizeAsg/resizeAsgStepLabel.html +1 -0
  86. package/src/pipeline/stages/scaleDownCluster/scaleDownClusterStage.html +35 -0
  87. package/src/pipeline/stages/scaleDownCluster/scaleDownClusterStage.js +75 -0
  88. package/src/pipeline/stages/shrinkCluster/shrinkClusterStage.html +34 -0
  89. package/src/pipeline/stages/shrinkCluster/shrinkClusterStage.js +71 -0
  90. package/src/securityGroup/configure/createSecurityGroup.controller.js +19 -0
  91. package/src/securityGroup/configure/createSecurityGroup.html +19 -0
  92. package/src/securityGroup/securityGroup.reader.js +15 -0
  93. package/src/securityGroup/securityGroup.transformer.js +25 -0
  94. package/src/serverGroup/configure/serverGroup.configure.module.js +15 -0
  95. package/src/serverGroup/configure/serverGroupCommandBuilder.service.js +105 -0
  96. package/src/serverGroup/configure/serverGroupConfiguration.service.js +229 -0
  97. package/src/serverGroup/configure/wizard/advancedSettings/advancedSettings.html +13 -0
  98. package/src/serverGroup/configure/wizard/basicSettings/basicSettings.controller.js +35 -0
  99. package/src/serverGroup/configure/wizard/basicSettings/basicSettings.html +134 -0
  100. package/src/serverGroup/configure/wizard/capacity/capacity.html +7 -0
  101. package/src/serverGroup/configure/wizard/capacity/capacitySelector.component.html +13 -0
  102. package/src/serverGroup/configure/wizard/capacity/capacitySelector.component.js +17 -0
  103. package/src/serverGroup/configure/wizard/cloneServerGroup.controller.js +109 -0
  104. package/src/serverGroup/configure/wizard/instanceType/instanceType.html +29 -0
  105. package/src/serverGroup/configure/wizard/loadBalancers/loadBalancers.html +44 -0
  106. package/src/serverGroup/configure/wizard/network/networkSettings.html +15 -0
  107. package/src/serverGroup/configure/wizard/serverGroupWizard.html +40 -0
  108. package/src/serverGroup/configure/wizard/templateSelection/templateSelection.html +9 -0
  109. package/src/serverGroup/details/resize/resizeCapacity.component.html +36 -0
  110. package/src/serverGroup/details/resize/resizeCapacity.component.js +42 -0
  111. package/src/serverGroup/details/resize/resizeServerGroup.controller.js +62 -0
  112. package/src/serverGroup/details/resize/resizeServerGroup.html +33 -0
  113. package/src/serverGroup/details/rollback/rollbackServerGroup.controller.js +73 -0
  114. package/src/serverGroup/details/rollback/rollbackServerGroup.html +41 -0
  115. package/src/serverGroup/details/serverGroupDetails.controller.js +230 -0
  116. package/src/serverGroup/details/serverGroupDetails.html +94 -0
  117. package/src/serverGroup/serverGroup.transformer.js +29 -0
@@ -0,0 +1,144 @@
1
+ import { module } from 'angular';
2
+ import { $q } from 'ngimport';
3
+
4
+ import type { Application } from '@spinnaker/core';
5
+ import type {
6
+ IOracleBackEndSet,
7
+ IOracleListener,
8
+ IOracleListenerCertificate,
9
+ IOracleListenerSSLConfiguration,
10
+ IOracleLoadBalancer,
11
+ IOracleLoadBalancerUpsertCommand,
12
+ } from '../domain/IOracleLoadBalancer';
13
+ import { LoadBalancingPolicy } from '../domain/IOracleLoadBalancer';
14
+ import { OracleProviderSettings } from '../oracle.settings';
15
+ import { OracleDefaultProviderSettings } from '../oracle.settings';
16
+
17
+ export class OracleLoadBalancerTransformer {
18
+ public normalizeLoadBalancer(loadBalancer: IOracleLoadBalancer): PromiseLike<IOracleLoadBalancer> {
19
+ /*loadBalancer.serverGroups.forEach(function(serverGroup) {
20
+ serverGroup.account = loadBalancer.account;
21
+ serverGroup.region = loadBalancer.region;
22
+
23
+ if (serverGroup.detachedInstances) {
24
+ serverGroup.detachedInstances = serverGroup.detachedInstances.map(function(instanceId) {
25
+ return { id: instanceId };
26
+ });
27
+ serverGroup.instances = serverGroup.instances.concat(serverGroup.detachedInstances);
28
+ } else {
29
+ serverGroup.detachedInstances = [];
30
+ }
31
+ });
32
+ var activeServerGroups = _.filter(loadBalancer.serverGroups, { isDisabled: false });
33
+ loadBalancer.provider = loadBalancer.type;
34
+ loadBalancer.instances = _.chain(activeServerGroups)
35
+ .map('instances')
36
+ .flatten()
37
+ .value();
38
+ loadBalancer.detachedInstances = _.chain(activeServerGroups)
39
+ .map('detachedInstances')
40
+ .flatten()
41
+ .value();*/
42
+ return $q.resolve(loadBalancer);
43
+ }
44
+
45
+ public convertLoadBalancerForEditing(loadBalancer: IOracleLoadBalancer): IOracleLoadBalancerUpsertCommand {
46
+ if (loadBalancer.listeners) {
47
+ Object.keys(loadBalancer.listeners).forEach((key) => {
48
+ const lis = loadBalancer.listeners[key];
49
+ lis.isSsl = !!lis.sslConfiguration; // use !! operator to get truthiness value
50
+ });
51
+ }
52
+ const toEdit: IOracleLoadBalancerUpsertCommand = {
53
+ name: loadBalancer.name,
54
+ cloudProvider: loadBalancer.cloudProvider,
55
+ credentials: loadBalancer.account,
56
+ region: loadBalancer.region,
57
+ shape: loadBalancer.shape,
58
+ isPrivate: loadBalancer.isPrivate,
59
+ subnetIds: loadBalancer.subnets.map((subnet) => subnet.id),
60
+ certificates: loadBalancer.certificates,
61
+ listeners: loadBalancer.listeners,
62
+ hostnames: loadBalancer.hostnames,
63
+ backendSets: loadBalancer.backendSets,
64
+ freeformTags: loadBalancer.freeformTags,
65
+ loadBalancerType: loadBalancer.type,
66
+ securityGroups: loadBalancer.securityGroups,
67
+ vpcId: loadBalancer.vpcId,
68
+ subnetTypeMap: loadBalancer.subnetTypeMap,
69
+ };
70
+ return toEdit;
71
+ }
72
+
73
+ public constructNewLoadBalancerTemplate(application: Application): IOracleLoadBalancerUpsertCommand {
74
+ const defaultCredentials =
75
+ application.defaultCredentials.oracle ||
76
+ (OracleProviderSettings.defaults
77
+ ? OracleProviderSettings.defaults.account
78
+ : OracleDefaultProviderSettings.defaults.account);
79
+ const defaultRegion =
80
+ application.defaultRegions.oracle ||
81
+ (OracleProviderSettings.defaults
82
+ ? OracleProviderSettings.defaults.region
83
+ : OracleDefaultProviderSettings.defaults.region);
84
+ return {
85
+ name: undefined,
86
+ cloudProvider: 'oracle',
87
+ credentials: defaultCredentials,
88
+ region: defaultRegion,
89
+ shape: null,
90
+ isPrivate: false,
91
+ subnetIds: [],
92
+ listeners: {},
93
+ hostnames: [],
94
+ backendSets: {},
95
+ freeformTags: {},
96
+ loadBalancerType: null,
97
+ securityGroups: [],
98
+ vpcId: null,
99
+ subnetTypeMap: {},
100
+ };
101
+ }
102
+
103
+ public constructNewListenerTemplate(): IOracleListener {
104
+ return {
105
+ name: 'HTTP_80',
106
+ port: 80,
107
+ protocol: 'HTTP',
108
+ defaultBackendSetName: undefined,
109
+ isSsl: false,
110
+ };
111
+ }
112
+
113
+ public constructNewBackendSetTemplate(name: string): IOracleBackEndSet {
114
+ return {
115
+ name: name,
116
+ policy: LoadBalancingPolicy.ROUND_ROBIN,
117
+ healthChecker: { protocol: 'HTTP', port: 80, urlPath: '/' },
118
+ backends: [],
119
+ isNew: true,
120
+ };
121
+ }
122
+
123
+ public constructNewSSLConfiguration(): IOracleListenerSSLConfiguration {
124
+ return {
125
+ certificateName: '',
126
+ verifyDepth: 0,
127
+ verifyPeerCertificates: false,
128
+ };
129
+ }
130
+
131
+ public constructNewCertificateTemplate(name: string): IOracleListenerCertificate {
132
+ return {
133
+ certificateName: name,
134
+ publicCertificate: undefined,
135
+ caCertificate: undefined,
136
+ privateKey: undefined,
137
+ passphrase: undefined,
138
+ isNew: true,
139
+ };
140
+ }
141
+ }
142
+
143
+ export const ORACLE_LOAD_BALANCER_TRANSFORMER = 'spinnaker.oracle.loadBalancer.transformer';
144
+ module(ORACLE_LOAD_BALANCER_TRANSFORMER, []).service('oracleLoadBalancerTransformer', OracleLoadBalancerTransformer);
@@ -0,0 +1,94 @@
1
+ import { module } from 'angular';
2
+
3
+ import { CloudProviderRegistry, DeploymentStrategyRegistry } from '@spinnaker/core';
4
+
5
+ import './helpContents/oracleHelpContents';
6
+ import { ORACLE_IMAGE_IMAGE_READER } from './image/image.reader';
7
+ import { ORACLE_INSTANCE_DETAILS_INSTANCE_DETAILS_CONTROLLER } from './instance/details/instance.details.controller';
8
+ import { ORACLE_LOAD_BALANCER_CREATE_CONTROLLER } from './loadBalancer/configure/createLoadBalancer.controller';
9
+ import { ORACLE_LOAD_BALANCER_DETAIL_CONTROLLER } from './loadBalancer/details/loadBalancerDetail.controller';
10
+ import { ORACLE_LOAD_BALANCER_TRANSFORMER } from './loadBalancer/loadBalancer.transformer';
11
+ import { ORACLE_PIPELINE_STAGES_BAKE_OCIBAKESTAGE } from './pipeline/stages/bake/ociBakeStage';
12
+ import { ORACLE_PIPELINE_STAGES_DESTROYASG_DESTROYASGSTAGE } from './pipeline/stages/destroyAsg/destroyAsgStage';
13
+ import { ORACLE_PIPELINE_STAGES_DISABLEASG_DISABLEASGSTAGE } from './pipeline/stages/disableAsg/disableAsgStage';
14
+ import { ORACLE_PIPELINE_STAGES_FINDAMI_FINDAMISTAGE } from './pipeline/stages/findAmi/findAmiStage';
15
+ import { ORACLE_PIPELINE_STAGES_FINDIMAGEFROMTAGS_ORACLEFINDIMAGEFROMTAGSSTAGE } from './pipeline/stages/findImageFromTags/oracleFindImageFromTagsStage';
16
+ import { ORACLE_PIPELINE_STAGES_RESIZEASG_RESIZEASGSTAGE } from './pipeline/stages/resizeAsg/resizeAsgStage';
17
+ import { ORACLE_PIPELINE_STAGES_SCALEDOWNCLUSTER_SCALEDOWNCLUSTERSTAGE } from './pipeline/stages/scaleDownCluster/scaleDownClusterStage';
18
+ import { ORACLE_PIPELINE_STAGES_SHRINKCLUSTER_SHRINKCLUSTERSTAGE } from './pipeline/stages/shrinkCluster/shrinkClusterStage';
19
+ import { ORACLE_SECURITYGROUP_CONFIGURE_CREATESECURITYGROUP_CONTROLLER } from './securityGroup/configure/createSecurityGroup.controller';
20
+ import { ORACLE_SECURITYGROUP_SECURITYGROUP_READER } from './securityGroup/securityGroup.reader';
21
+ import { ORACLE_SECURITYGROUP_SECURITYGROUP_TRANSFORMER } from './securityGroup/securityGroup.transformer';
22
+ import { ORACLE_SERVERGROUP_CONFIGURE_SERVERGROUP_CONFIGURE_MODULE } from './serverGroup/configure/serverGroup.configure.module';
23
+ import { ORACLE_SERVERGROUP_CONFIGURE_SERVERGROUPCOMMANDBUILDER_SERVICE } from './serverGroup/configure/serverGroupCommandBuilder.service';
24
+ import { ORACLE_SERVERGROUP_CONFIGURE_WIZARD_CLONESERVERGROUP_CONTROLLER } from './serverGroup/configure/wizard/cloneServerGroup.controller';
25
+ import { ORACLE_SERVERGROUP_DETAILS_SERVERGROUPDETAILS_CONTROLLER } from './serverGroup/details/serverGroupDetails.controller';
26
+ import { ORACLE_SERVERGROUP_SERVERGROUP_TRANSFORMER } from './serverGroup/serverGroup.transformer';
27
+
28
+ export const ORACLE_MODULE = 'spinnaker.oracle';
29
+ module(ORACLE_MODULE, [
30
+ // Pipeline
31
+ ORACLE_PIPELINE_STAGES_BAKE_OCIBAKESTAGE,
32
+ ORACLE_PIPELINE_STAGES_DESTROYASG_DESTROYASGSTAGE,
33
+ ORACLE_PIPELINE_STAGES_DISABLEASG_DISABLEASGSTAGE,
34
+ ORACLE_PIPELINE_STAGES_FINDAMI_FINDAMISTAGE,
35
+ ORACLE_PIPELINE_STAGES_FINDIMAGEFROMTAGS_ORACLEFINDIMAGEFROMTAGSSTAGE,
36
+ ORACLE_PIPELINE_STAGES_RESIZEASG_RESIZEASGSTAGE,
37
+ ORACLE_PIPELINE_STAGES_SCALEDOWNCLUSTER_SCALEDOWNCLUSTERSTAGE,
38
+ ORACLE_PIPELINE_STAGES_SHRINKCLUSTER_SHRINKCLUSTERSTAGE,
39
+
40
+ // Load Balancers
41
+ ORACLE_LOAD_BALANCER_TRANSFORMER,
42
+ ORACLE_LOAD_BALANCER_DETAIL_CONTROLLER,
43
+ ORACLE_LOAD_BALANCER_CREATE_CONTROLLER,
44
+
45
+ // Server Groups
46
+ ORACLE_SERVERGROUP_SERVERGROUP_TRANSFORMER,
47
+ ORACLE_SERVERGROUP_CONFIGURE_SERVERGROUP_CONFIGURE_MODULE,
48
+ ORACLE_SERVERGROUP_DETAILS_SERVERGROUPDETAILS_CONTROLLER,
49
+ ORACLE_SERVERGROUP_CONFIGURE_SERVERGROUPCOMMANDBUILDER_SERVICE,
50
+ ORACLE_SERVERGROUP_CONFIGURE_WIZARD_CLONESERVERGROUP_CONTROLLER,
51
+ // Images
52
+ ORACLE_IMAGE_IMAGE_READER,
53
+ // Instances
54
+ ORACLE_INSTANCE_DETAILS_INSTANCE_DETAILS_CONTROLLER,
55
+ // Firewalls
56
+ ORACLE_SECURITYGROUP_SECURITYGROUP_READER,
57
+ ORACLE_SECURITYGROUP_SECURITYGROUP_TRANSFORMER,
58
+ ORACLE_SECURITYGROUP_CONFIGURE_CREATESECURITYGROUP_CONTROLLER,
59
+ ]).config(function () {
60
+ CloudProviderRegistry.registerProvider('oracle', {
61
+ name: 'Oracle',
62
+ image: {
63
+ reader: 'oracleImageReader',
64
+ },
65
+ loadBalancer: {
66
+ transformer: 'oracleLoadBalancerTransformer',
67
+ detailsTemplateUrl: require('./loadBalancer/details/loadBalancerDetail.html'),
68
+ detailsController: 'oracleLoadBalancerDetailCtrl',
69
+ createLoadBalancerTemplateUrl: require('./loadBalancer/configure/createLoadBalancer.html'),
70
+ createLoadBalancerController: 'oracleCreateLoadBalancerCtrl',
71
+ },
72
+ serverGroup: {
73
+ transformer: 'oracleServerGroupTransformer',
74
+ detailsTemplateUrl: require('./serverGroup/details/serverGroupDetails.html'),
75
+ detailsController: 'oracleServerGroupDetailsCtrl',
76
+ commandBuilder: 'oracleServerGroupCommandBuilder',
77
+ cloneServerGroupController: 'oracleCloneServerGroupCtrl',
78
+ cloneServerGroupTemplateUrl: require('./serverGroup/configure/wizard/serverGroupWizard.html'),
79
+ configurationService: 'oracleServerGroupConfigurationService',
80
+ },
81
+ instance: {
82
+ detailsController: 'oracleInstanceDetailsCtrl',
83
+ detailsTemplateUrl: require('./instance/details/instanceDetails.html'),
84
+ },
85
+ securityGroup: {
86
+ reader: 'oracleSecurityGroupReader',
87
+ transformer: 'oracleSecurityGroupTransformer',
88
+ createSecurityGroupTemplateUrl: require('./securityGroup/configure/createSecurityGroup.html'),
89
+ createSecurityGroupController: 'oracleCreateSecurityGroupCtrl',
90
+ },
91
+ });
92
+ });
93
+
94
+ DeploymentStrategyRegistry.registerProvider('oracle', []);
@@ -0,0 +1,19 @@
1
+ import type { IProviderSettings } from '@spinnaker/core';
2
+ import { SETTINGS } from '@spinnaker/core';
3
+
4
+ export interface IOracleProviderSettings extends IProviderSettings {
5
+ defaults: {
6
+ account?: string;
7
+ region?: string;
8
+ };
9
+ }
10
+
11
+ export const OracleProviderSettings: IOracleProviderSettings = (SETTINGS.providers
12
+ .oracle as IOracleProviderSettings) || { defaults: {} };
13
+ if (OracleProviderSettings) {
14
+ OracleProviderSettings.resetToOriginal = SETTINGS.resetProvider('oracle');
15
+ }
16
+
17
+ export const OracleDefaultProviderSettings = {
18
+ defaults: { account: 'DEFAULT', bakeryRegions: 'us-phoenix-1', region: 'us-phoenix-1' },
19
+ };
@@ -0,0 +1,11 @@
1
+ <div ng-controller="oracleDisableAsgStageCtrl 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="'Google'">
10
+ </stage-platform-health-override>
11
+ </div>
@@ -0,0 +1,62 @@
1
+ 'use strict';
2
+
3
+ import { module } from 'angular';
4
+
5
+ import { AccountService, Registry, StageConstants } from '@spinnaker/core';
6
+
7
+ export const ORACLE_PIPELINE_DISABLEASG_DISABLEASGSTAGE = 'spinnaker.oracle.pipeline.stage.disableAsgStage';
8
+ export const name = ORACLE_PIPELINE_DISABLEASG_DISABLEASGSTAGE; // for backwards compatibility
9
+ module(ORACLE_PIPELINE_DISABLEASG_DISABLEASGSTAGE, [])
10
+ .config(function () {
11
+ Registry.pipeline.registerStage({
12
+ provides: 'disableServerGroup',
13
+ cloudProvider: 'oracle',
14
+ templateUrl: require('./disableAsgStage.html'),
15
+ executionStepLabelUrl: require('./disableAsgStepLabel.html'),
16
+ validators: [
17
+ {
18
+ type: 'targetImpedance',
19
+ message:
20
+ 'This pipeline will attempt to disable a server group without deploying a new version into the same cluster.',
21
+ },
22
+ { type: 'requiredField', fieldName: 'cluster' },
23
+ { type: 'requiredField', fieldName: 'target' },
24
+ { type: 'requiredField', fieldName: 'regions' },
25
+ { type: 'requiredField', fieldName: 'credentials', fieldLabel: 'account' },
26
+ ],
27
+ });
28
+ })
29
+ .controller('oracleDisableAsgStageCtrl', [
30
+ '$scope',
31
+ function ($scope) {
32
+ const stage = $scope.stage;
33
+
34
+ const provider = 'oracle';
35
+
36
+ $scope.state = {
37
+ accounts: false,
38
+ regionsLoaded: false,
39
+ };
40
+
41
+ AccountService.listAccounts(provider).then(function (accounts) {
42
+ $scope.accounts = accounts;
43
+ $scope.state.accounts = true;
44
+ });
45
+
46
+ $scope.targets = StageConstants.TARGET_LIST;
47
+
48
+ stage.regions = stage.regions || [];
49
+ stage.cloudProvider = provider;
50
+
51
+ if (!stage.credentials && $scope.application.defaultCredentials.oracle) {
52
+ stage.credentials = $scope.application.defaultCredentials.oracle;
53
+ }
54
+ if (!stage.regions.length && $scope.application.defaultRegions.gce) {
55
+ stage.regions.push($scope.application.defaultRegions.oracle);
56
+ }
57
+
58
+ if (!stage.target) {
59
+ stage.target = $scope.targets[0].val;
60
+ }
61
+ },
62
+ ]);
@@ -0,0 +1 @@
1
+ <span class="task-label"> Disable Server Group: {{step.context.serverGroupName}} ({{step.context.region}}) </span>
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ import UIROUTER_ANGULARJS from '@uirouter/angularjs';
4
+ import { module } from 'angular';
5
+
6
+ import { EXECUTION_DETAILS_SECTION_SERVICE, SETTINGS } from '@spinnaker/core';
7
+
8
+ export const ORACLE_PIPELINE_STAGES_BAKE_BAKEEXECUTIONDETAILS_CONTROLLER =
9
+ 'spinnaker.oracle.pipeline.stage.bake.executionDetails.controller';
10
+ export const name = ORACLE_PIPELINE_STAGES_BAKE_BAKEEXECUTIONDETAILS_CONTROLLER; // for backwards compatibility
11
+ module(ORACLE_PIPELINE_STAGES_BAKE_BAKEEXECUTIONDETAILS_CONTROLLER, [
12
+ EXECUTION_DETAILS_SECTION_SERVICE,
13
+ UIROUTER_ANGULARJS,
14
+ ]).controller('oracleBakeExecutionDetailsCtrl', [
15
+ '$log',
16
+ '$scope',
17
+ '$stateParams',
18
+ 'executionDetailsSectionService',
19
+ '$interpolate',
20
+ function ($log, $scope, $stateParams, executionDetailsSectionService, $interpolate) {
21
+ $scope.configSections = ['bakeConfig', 'taskStatus'];
22
+
23
+ const initialized = () => {
24
+ $scope.detailsSection = $stateParams.details;
25
+ $scope.provider = $scope.stage.context.cloudProviderType || 'oracle';
26
+ $scope.roscoMode = SETTINGS.feature.roscoMode;
27
+ $scope.bakeryDetailUrl = $interpolate(
28
+ $scope.roscoMode && SETTINGS.roscoDetailUrl ? SETTINGS.roscoDetailUrl : SETTINGS.bakeryDetailUrl,
29
+ );
30
+ };
31
+
32
+ const initialize = () => executionDetailsSectionService.synchronizeSection($scope.configSections, initialized);
33
+
34
+ initialize();
35
+
36
+ $scope.$on('$stateChangeSuccess', initialize);
37
+ },
38
+ ]);
@@ -0,0 +1,52 @@
1
+ <div ng-controller="oracleBakeExecutionDetailsCtrl">
2
+ <execution-details-section-nav sections="configSections"></execution-details-section-nav>
3
+ <div class="step-section-details" ng-if="detailsSection === 'bakeConfig'">
4
+ <div class="row">
5
+ <div class="col-md-6">
6
+ <dl class="dl-narrow dl-horizontal">
7
+ <dt>Provider</dt>
8
+ <dd>oracle</dd>
9
+ <dt>Image Name</dt>
10
+ <dd>{{stage.context.amiName}}</dd>
11
+ <dt ng-if="stage.context.package">Package</dt>
12
+ <dd ng-if="stage.context.package">{{stage.context.package}}</dd>
13
+ <dt ng-if="stage.context.accountName">Account</dt>
14
+ <dd ng-if="stage.context.accountName">{{stage.context.accountName}}</dd>
15
+ </dl>
16
+ </div>
17
+ <div class="col-md-6">
18
+ <dl class="dl-narrow dl-horizontal">
19
+ <dt>Base Image</dt>
20
+ <dd>{{stage.context.baseOs}}</dd>
21
+ <dt ng-if="roscoMode || execution.trigger.rebake || stage.context.rebake">Rebake</dt>
22
+ <dd ng-if="roscoMode || execution.trigger.rebake || stage.context.rebake">
23
+ {{execution.trigger.rebake || stage.context.rebake || false}}
24
+ </dd>
25
+ <dt ng-if="stage.context.templateFileName">Template</dt>
26
+ <dd ng-if="stage.context.templateFileName">{{stage.context.templateFileName}}</dd>
27
+ <dt ng-if="stage.context.varFileName">Var File</dt>
28
+ <dd ng-if="stage.context.varFileName">{{stage.context.varFileName}}</dd>
29
+ </dl>
30
+ </div>
31
+ </div>
32
+ <stage-failure-message stage="stage" message="stage.failureMessage"></stage-failure-message>
33
+
34
+ <div class="row" ng-if="stage.context.region && stage.context.status.resourceId">
35
+ <div class="col-md-12">
36
+ <div class="alert alert-{{stage.isFailed ? 'danger' : 'info'}}">
37
+ <div ng-if="stage.context.previouslyBaked">No changes detected; reused existing bake</div>
38
+ <div ng-if="stage.context.imageName">
39
+ <strong>Image:</strong>
40
+ <div select-on-dbl-click>{{stage.context.imageName}}</div>
41
+ </div>
42
+ <a target="_blank" href="{{ bakeryDetailUrl(stage) }}"> View Bakery Details </a>
43
+ </div>
44
+ </div>
45
+ </div>
46
+ </div>
47
+ <div class="step-section-details" ng-if="detailsSection === 'taskStatus'">
48
+ <div class="row">
49
+ <execution-step-details item="stage"></execution-step-details>
50
+ </div>
51
+ </div>
52
+ </div>
@@ -0,0 +1,109 @@
1
+ <div ng-controller="oracleBakeStageCtrl as bakeStageCtrl">
2
+ <div ng-if="viewState.loading" class="horizontal center middle">
3
+ <loading-spinner size="'small'"></loading-spinner>
4
+ </div>
5
+
6
+ <stage-config-field label="Oracle Account" help-key="oracle.pipeline.config.bake.account_name">
7
+ <account-select-field
8
+ component="stage"
9
+ field="accountName"
10
+ accounts="accounts"
11
+ on-change="bakeStageCtrl.accountUpdated()"
12
+ provider="'oracle'"
13
+ >
14
+ </account-select-field>
15
+ </stage-config-field>
16
+
17
+ <stage-config-field label="Region" help-key="oracle.pipeline.config.bake.regions">
18
+ <input type="text" class="form-control input-sm" ng-readonly="true" ng-model="stage.region" />
19
+ </stage-config-field>
20
+
21
+ <stage-config-field label="Base Image" , help-key="oracle.pipeline.config.bake.baseOsOption">
22
+ <div class="radio" ng-repeat="baseImage in baseOsOptions.baseImages">
23
+ <label>
24
+ <input type="radio" ng-model="stage.baseOs" ng-value="baseImage.id" />
25
+ {{bakeStageCtrl.getBaseOsDescription(baseImage)}}
26
+ <help-field content="{{baseImage.detailedDescription}}"></help-field>
27
+ </label>
28
+ </div>
29
+ </stage-config-field>
30
+
31
+ <stage-config-field label="Image Name" help-key="oracle.pipeline.config.bake.image_name">
32
+ <input type="text" class="form-control input-sm" ng-model="stage.amiName" />
33
+ </stage-config-field>
34
+
35
+ <stage-config-field label="Package" help-key="oracle.pipeline.config.bake.package">
36
+ <input type="text" class="form-control input-sm" ng-model="stage.package" />
37
+ </stage-config-field>
38
+
39
+ <stage-config-field label="Rebake" help-key="execution.forceRebake">
40
+ <div class="checkbox" style="margin-bottom: 0">
41
+ <label>
42
+ <input type="checkbox" ng-model="stage.rebake" />
43
+ Rebake image without regard to the status of any existing bake
44
+ </label>
45
+ </div>
46
+ </stage-config-field>
47
+ <div class="form-group">
48
+ <div class="col-md-9 col-md-offset-1">
49
+ <div class="checkbox">
50
+ <label>
51
+ <input type="checkbox" ng-model="stage.showAdvancedOptions" />
52
+ <strong>Show Advanced Options</strong>
53
+ </label>
54
+ </div>
55
+ </div>
56
+ </div>
57
+ <div ng-class="{collapse: stage.showAdvancedOptions !== true, 'collapse.in': stage.showAdvancedOptions === true}">
58
+ <stage-config-field label="Template File Name" help-key="pipeline.config.bake.templateFileName">
59
+ <input type="text" class="form-control input-sm" ng-model="stage.templateFileName" />
60
+ </stage-config-field>
61
+ <stage-config-field label="Var File Name" help-key="pipeline.config.bake.varFileName">
62
+ <input type="text" class="form-control input-sm" ng-model="stage.varFileName" />
63
+ </stage-config-field>
64
+ <stage-config-field label="Extended Attributes" help-key="pipeline.config.bake.extendedAttributes">
65
+ <table class="table table-condensed packed">
66
+ <thead>
67
+ <tr>
68
+ <th style="width: 40%">Key</th>
69
+ <th style="width: 60%">Value</th>
70
+ <th class="text-right">Actions</th>
71
+ </tr>
72
+ </thead>
73
+ <tbody>
74
+ <tr ng-repeat="(key,value) in stage.extendedAttributes">
75
+ <td>
76
+ <strong class="small">{{key}}</strong>
77
+ </td>
78
+ <td>
79
+ <input
80
+ type="text"
81
+ ng-model="stage.extendedAttributes[key]"
82
+ value="{{value}}"
83
+ class="form-control input-sm"
84
+ />
85
+ </td>
86
+ <td class="text-right">
87
+ <a class="small" href ng-click="bakeStageCtrl.removeExtendedAttribute(key)">Remove</a>
88
+ </td>
89
+ </tr>
90
+ </tbody>
91
+ <tfoot>
92
+ <tr>
93
+ <td colspan="7">
94
+ <button class="btn btn-block btn-sm add-new" ng-click="bakeStageCtrl.addExtendedAttribute()">
95
+ <span class="glyphicon glyphicon-plus-sign"></span> Add Extended Attribute
96
+ </button>
97
+ </td>
98
+ </tr>
99
+ </tfoot>
100
+ </table>
101
+ </stage-config-field>
102
+ <stage-config-field label="Upgrade" help-key="oracle.pipeline.config.bake.upgrade">
103
+ <label class="checkbox-inline">
104
+ <input type="checkbox" ng-model="stage.upgrade" />
105
+ Perform a package manager upgrade before proceeding with the package installation
106
+ </label>
107
+ </stage-config-field>
108
+ </div>
109
+ </div>