53 lines
1.6 KiB
JavaScript
Executable File
53 lines
1.6 KiB
JavaScript
Executable File
var SCALE = "scale-",
|
|
DOWN = "down",
|
|
UP = "up",
|
|
scaleUp = SCALE + UP,
|
|
scaleDown = SCALE + DOWN,
|
|
addNode = "ADD_NODE",
|
|
removeNode = "REMOVE_NODE",
|
|
count = getParam('count'),
|
|
ENV_NAME = "${env.name}",
|
|
triggersToEdit = [],
|
|
triggerActions,
|
|
customData,
|
|
triggers,
|
|
upLimit,
|
|
resp;
|
|
|
|
resp = jelastic.environment.trigger.GetTriggers(ENV_NAME, session, addNode + ";" + removeNode);
|
|
if (resp.result != 0) return resp;
|
|
|
|
triggers = resp.array;
|
|
|
|
for (var i = 0, n = triggers.length; i < n; i++) {
|
|
if ([scaleUp, scaleDown].indexOf(String(triggers[i].name)) != -1) {
|
|
triggerActions = triggers[i].actions;
|
|
|
|
for (var l = 0, m = triggerActions.length; l < m; l++) {
|
|
customData = triggerActions[l].customData;
|
|
|
|
if (triggers[i].name == scaleUp) upLimit = customData.limit;
|
|
|
|
if ((triggerActions[l].type == addNode && customData.limit < count) || triggerActions[l].type == removeNode) {
|
|
triggers[i].actions[l].customData.limit = count;
|
|
|
|
triggersToEdit.push({
|
|
scale: triggers[i].name.indexOf(UP) != -1 ? UP : DOWN,
|
|
trigger: triggers[i]
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
for (var i = 0, n = triggersToEdit.length; i < n; i++) {
|
|
trigger = triggersToEdit[i].trigger;
|
|
|
|
if (triggersToEdit[i].scale == DOWN && trigger.actions[0].customData.limit >= upLimit) trigger.actions[0].customData.limit = upLimit - 1;
|
|
|
|
resp = jelastic.environment.trigger.EditTrigger(ENV_NAME, session, trigger.id, trigger);
|
|
if (resp.result != 0) return resp;
|
|
}
|
|
|
|
return {result: 0};
|