55 lines
1.9 KiB
YAML
55 lines
1.9 KiB
YAML
actions:
|
|
applyEnvSettings:
|
|
script: |
|
|
var envs = '${this.targetAppid}'.split(',');
|
|
var desiredCloudlets = parseInt('${this.cloudlets}');
|
|
var desiredDiskSpace = parseInt('${this.diskspace}');
|
|
|
|
for (var i = 0, n = envs.length; i < n; i++) {
|
|
var targetAppid = envs[i];
|
|
var resp = jelastic.env.control.GetEnvInfo(targetAppid, session);
|
|
if (resp.result != 0) {
|
|
return {
|
|
result: resp.result,
|
|
error: 'Failed to get environment info for ' + targetAppid + ': ' + resp.error,
|
|
};
|
|
}
|
|
if (!resp.nodes || resp.nodes.length === 0) {
|
|
return {
|
|
result: 1,
|
|
error: 'No nodes found in environment ' + targetAppid,
|
|
};
|
|
}
|
|
var node = resp.nodes[0];
|
|
if (parseInt(node.flexibleCloudlets) !== desiredCloudlets) {
|
|
resp = jelastic.env.control.SetCloudletsCountByGroup({
|
|
envName: targetAppid,
|
|
session: session,
|
|
nodeGroup: node.nodeGroup,
|
|
fixedCloudlets: parseInt(node.fixedCloudlets),
|
|
flexibleCloudlets: desiredCloudlets,
|
|
});
|
|
if (resp.result != 0) {
|
|
return {
|
|
result: resp.result,
|
|
error: 'Failed to set cloudlets for ' + targetAppid + ': ' + resp.error,
|
|
};
|
|
}
|
|
}
|
|
if (parseInt(node.diskLimit) !== desiredDiskSpace) {
|
|
resp = jelastic.env.control.SetDiskLimitByGroup({
|
|
envName: targetAppid,
|
|
session: session,
|
|
nodeGroup: node.nodeGroup,
|
|
limit: desiredDiskSpace,
|
|
});
|
|
if (resp.result != 0) {
|
|
return {
|
|
result: resp.result,
|
|
error: 'Failed to set disk space for ' + targetAppid + ': ' + resp.error,
|
|
};
|
|
}
|
|
}
|
|
}
|
|
return { result: 0 };
|