@spotinst/spinnaker-deck
Version:
Spinnaker-Deck service, forked with support to Spotinst
86 lines (72 loc) • 2.73 kB
JavaScript
;
import * as angular from 'angular';
import _ from 'lodash';
import { AccountService, FirewallLabels } from '@spinnaker/core';
import { GOOGLE_SECURITYGROUP_CONFIGURE_CONFIGSECURITYGROUPMIXIN_CONTROLLER } from '../configure/ConfigSecurityGroupMixin.controller';
export const GOOGLE_SECURITYGROUP_CLONE_CLONESECURITYGROUP_CONTROLLER =
'spinnaker.google.securityGroup.clone.controller';
export const name = GOOGLE_SECURITYGROUP_CLONE_CLONESECURITYGROUP_CONTROLLER; // for backwards compatibility
angular
.module(GOOGLE_SECURITYGROUP_CLONE_CLONESECURITYGROUP_CONTROLLER, [
GOOGLE_SECURITYGROUP_CONFIGURE_CONFIGSECURITYGROUPMIXIN_CONTROLLER,
])
.controller('gceCloneSecurityGroupController', [
'$scope',
'$uibModalInstance',
'$controller',
'securityGroup',
'application',
function ($scope, $uibModalInstance, $controller, securityGroup, application) {
const vm = this;
$scope.pages = {
location: require('../configure/createSecurityGroupProperties.html'),
targets: require('../configure/createSecurityGroupTargets.html'),
sourceFilters: require('../configure/createSecurityGroupSourceFilters.html'),
ingress: require('../configure/createSecurityGroupIngress.html'),
};
$scope.firewallLabel = FirewallLabels.get('Firewall');
angular.extend(
this,
$controller('gceConfigSecurityGroupMixin', {
$scope: $scope,
$uibModalInstance: $uibModalInstance,
application: application,
securityGroup: securityGroup,
mode: 'clone',
}),
);
AccountService.listAccounts('gce').then(function (accounts) {
$scope.accounts = accounts;
vm.accountUpdated();
});
securityGroup.sourceRanges = _.map(securityGroup.sourceRanges, function (sourceRange) {
return { value: sourceRange };
});
securityGroup.ipIngress = _.chain(securityGroup.ipIngressRules)
.map(function (rule) {
if (rule.portRanges && rule.portRanges.length > 0) {
return rule.portRanges.map(function (portRange) {
return {
type: rule.protocol,
startPort: portRange.startPort,
endPort: portRange.endPort,
};
});
} else {
return [
{
type: rule.protocol,
},
];
}
})
.flatten()
.value();
securityGroup.backingData = {};
securityGroup.sourceTags = securityGroup.sourceTags || [];
vm.upsert = function () {
vm.mixinUpsert('Clone');
};
vm.initializeSecurityGroups();
},
]);