@spotinst/spinnaker-deck
Version:
Spinnaker-Deck service, forked with support to Spotinst
52 lines (42 loc) • 2.23 kB
JavaScript
;
import { module } from 'angular';
import { TaskMonitor } from '@spinnaker/core';
import { GOOGLE_AUTOSCALINGPOLICY_AUTOSCALINGPOLICY_WRITE_SERVICE } from 'google/autoscalingPolicy/autoscalingPolicy.write.service';
import { GOOGLE_AUTOSCALINGPOLICY_COMPONENTS_BASICSETTINGS_BASICSETTINGS_COMPONENT } from 'google/autoscalingPolicy/components/basicSettings/basicSettings.component';
import { GOOGLE_AUTOSCALINGPOLICY_COMPONENTS_METRICSETTINGS_METRICSETTINGS_COMPONENT } from 'google/autoscalingPolicy/components/metricSettings/metricSettings.component';
import './upsertAutoscalingPolicy.modal.less';
export const GOOGLE_SERVERGROUP_DETAILS_AUTOSCALINGPOLICY_MODAL_UPSERTAUTOSCALINGPOLICY_MODAL_CONTROLLER =
'spinnaker.deck.gce.upsertAutoscalingPolicy.modal.controller';
export const name = GOOGLE_SERVERGROUP_DETAILS_AUTOSCALINGPOLICY_MODAL_UPSERTAUTOSCALINGPOLICY_MODAL_CONTROLLER; // for backwards compatibility
module(GOOGLE_SERVERGROUP_DETAILS_AUTOSCALINGPOLICY_MODAL_UPSERTAUTOSCALINGPOLICY_MODAL_CONTROLLER, [
GOOGLE_AUTOSCALINGPOLICY_AUTOSCALINGPOLICY_WRITE_SERVICE,
GOOGLE_AUTOSCALINGPOLICY_COMPONENTS_BASICSETTINGS_BASICSETTINGS_COMPONENT,
GOOGLE_AUTOSCALINGPOLICY_COMPONENTS_METRICSETTINGS_METRICSETTINGS_COMPONENT,
]).controller('gceUpsertAutoscalingPolicyModalCtrl', [
'policy',
'application',
'serverGroup',
'$uibModalInstance',
'gceAutoscalingPolicyWriter',
'$scope',
function (policy, application, serverGroup, $uibModalInstance, gceAutoscalingPolicyWriter, $scope) {
[this.action, this.isNew] = policy ? ['Edit', false] : ['New', true];
this.policy = _.cloneDeep(policy || {});
this.cancel = $uibModalInstance.dismiss;
this.taskMonitor = new TaskMonitor({
application: application,
title: `${this.action} scaling policy for ${serverGroup.name}`,
modalInstance: $uibModalInstance,
});
this.save = () => {
const submitMethod = () =>
gceAutoscalingPolicyWriter.upsertAutoscalingPolicy(application, serverGroup, this.policy);
this.taskMonitor.submit(submitMethod);
};
this.updatePolicy = (updatedPolicy) => {
$scope.$applyAsync(() => {
this.policy = updatedPolicy;
});
};
},
]);