@spotinst/spinnaker-deck
Version:
Spinnaker-Deck service, forked with support to Spotinst
71 lines (59 loc) • 2.26 kB
JavaScript
;
import { module } from 'angular';
import { TaskExecutor, TaskMonitor } from '@spinnaker/core';
export const AMAZON_SERVERGROUP_DETAILS_SCHEDULEDACTION_EDITSCHEDULEDACTIONS_MODAL_CONTROLLER =
'spinnaker.amazon.serverGroup.details.scheduledActions.editScheduledActions.modal.controller';
export const name = AMAZON_SERVERGROUP_DETAILS_SCHEDULEDACTION_EDITSCHEDULEDACTIONS_MODAL_CONTROLLER; // for backwards compatibility
module(AMAZON_SERVERGROUP_DETAILS_SCHEDULEDACTION_EDITSCHEDULEDACTIONS_MODAL_CONTROLLER, []).controller(
'EditScheduledActionsCtrl',
[
'$scope',
'$uibModalInstance',
'application',
'serverGroup',
function ($scope, $uibModalInstance, application, serverGroup) {
$scope.command = {
scheduledActions: serverGroup.scheduledActions.map((action) => {
return {
recurrence: action.recurrence,
minSize: action.minSize,
maxSize: action.maxSize,
desiredCapacity: action.desiredCapacity,
};
}),
};
$scope.serverGroup = serverGroup;
this.addScheduledAction = () => {
$scope.command.scheduledActions.push({});
};
this.removeScheduledAction = (index) => {
$scope.command.scheduledActions.splice(index, 1);
};
$scope.taskMonitor = new TaskMonitor({
application: application,
title: 'Update Scheduled Actions for ' + serverGroup.name,
modalInstance: $uibModalInstance,
onTaskComplete: () => application.serverGroups.refresh(),
});
this.submit = () => {
const job = [
{
type: 'upsertAsgScheduledActions',
asgs: [{ asgName: serverGroup.name, region: serverGroup.region }],
scheduledActions: $scope.command.scheduledActions,
credentials: serverGroup.account,
},
];
const submitMethod = function () {
return TaskExecutor.executeTask({
job: job,
application: application,
description: 'Update Scheduled Actions for ' + serverGroup.name,
});
};
$scope.taskMonitor.submit(submitMethod);
};
this.cancel = $uibModalInstance.dismiss;
},
],
);