152 lines
5.5 KiB
JavaScript
Executable File
152 lines
5.5 KiB
JavaScript
Executable File
import com.hivext.api.Response;
|
|
import org.yaml.snakeyaml.Yaml;
|
|
import com.hivext.api.core.utils.Transport;
|
|
|
|
var cdnAppid = "c05ffa5b45628a2a0c95467ebca8a0b4";
|
|
var lsAppid = "9e6afcf310004ac84060f90ff41a5aba";
|
|
var group = jelastic.billing.account.GetAccount(appid, session);
|
|
var isCDN = jelastic.dev.apps.GetApp(cdnAppid);
|
|
var isLS = jelastic.dev.apps.GetApp(lsAppid);
|
|
|
|
//checking quotas
|
|
var perEnv = "environment.maxnodescount",
|
|
maxEnvs = "environment.maxcount",
|
|
perNodeGroup = "environment.maxsamenodescount",
|
|
maxCloudletsPerRec = "environment.maxcloudletsperrec";
|
|
var nodesPerEnvWO_Bl = 9,
|
|
nodesPerEnvWO_GlusterFS = 7,
|
|
nodesPerEnvMin = 6,
|
|
nodesPerGroupMin = 2,
|
|
maxCloudlets = 16,
|
|
markup = "", cur = null, text = "used", prod = true;
|
|
|
|
var settings = jps.settings;
|
|
var fields = {};
|
|
for (var i = 0, field; field = jps.settings.fields[i]; i++)
|
|
fields[field.name] = field;
|
|
|
|
var quotas = jelastic.billing.account.GetQuotas(perEnv + ";"+maxEnvs+";" + perNodeGroup + ";" + maxCloudletsPerRec ).array;
|
|
var group = jelastic.billing.account.GetAccount(appid, session);
|
|
for (var i = 0; i < quotas.length; i++){
|
|
var q = quotas[i], n = toNative(q.quota.name);
|
|
|
|
if (n == maxCloudletsPerRec && maxCloudlets > q.value){
|
|
err(q, "required", maxCloudlets, true);
|
|
prod = false;
|
|
}
|
|
|
|
if (n == perEnv && nodesPerEnvMin > q.value){
|
|
if (!markup) err(q, "required", nodesPerEnvMin, true);
|
|
prod = false;
|
|
}
|
|
|
|
if (n == perNodeGroup && nodesPerGroupMin > q.value){
|
|
if (!markup) err(q, "required", nodesPerGroupMin, true);
|
|
prod = false;
|
|
}
|
|
|
|
if (n == perEnv && nodesPerEnvMin == q.value){
|
|
fields["glusterfs"].value = false;
|
|
fields["glusterfs"].disabled = true;
|
|
fields["galera"].value = false;
|
|
fields["galera"].disabled = true;
|
|
fields["bl_count"].value = 1;
|
|
fields["displayfield"].markup = "Some advanced features are not available. Please upgrade your account.";
|
|
fields["displayfield"].cls = "warning";
|
|
fields["displayfield"].hideLabel = true;
|
|
fields["displayfield"].height = 25;
|
|
}
|
|
|
|
if (n == perEnv && nodesPerEnvWO_GlusterFS == q.value){
|
|
fields["glusterfs"].value = false;
|
|
fields["glusterfs"].disabled = true;
|
|
fields["bl_count"].value = 1;
|
|
fields["displayfield"].markup = "Some advanced features are not available. Please upgrade your account.";
|
|
fields["displayfield"].cls = "warning";
|
|
fields["displayfield"].hideLabel = true;
|
|
fields["displayfield"].height = 25;
|
|
}
|
|
|
|
if (n == perEnv && q.value == 8){
|
|
fields["glusterfs"].value = false;
|
|
fields["glusterfs"].disabled = true;
|
|
fields["bl_count"].value = 2;
|
|
fields["displayfield"].markup = "Some advanced features are not available. Please upgrade your account.";
|
|
fields["displayfield"].cls = "warning";
|
|
fields["displayfield"].hideLabel = true;
|
|
fields["displayfield"].height = 25;
|
|
}
|
|
|
|
if (n == perEnv && nodesPerEnvWO_Bl == q.value){
|
|
fields["bl_count"].value = 1;
|
|
}
|
|
|
|
if (n == perNodeGroup && nodesPerGroupMin == q.value){
|
|
fields["glusterfs"].value = false;
|
|
fields["glusterfs"].disabled = true;
|
|
fields["galera"].value = false;
|
|
fields["galera"].disabled = true;
|
|
fields["displayfield"].markup = "Some advanced features are not available. Please upgrade your account.";
|
|
fields["displayfield"].cls = "warning";
|
|
fields["displayfield"].hideLabel = true;
|
|
fields["displayfield"].height = 25;
|
|
}
|
|
|
|
if (isLS.result == 0 || isLS.result == Response.PERMISSION_DENIED) {
|
|
fields["ls-addon"].hidden = false;
|
|
fields["ls-addon"].value = true;
|
|
} else {
|
|
fields["ls-addon"].hidden = true;
|
|
fields["ls-addon"].value = false;
|
|
fields["ls-addon"].showIf = null;
|
|
}
|
|
|
|
if (isCDN.result == 0 || isCDN.result == Response.PERMISSION_DENIED) {
|
|
fields["cdn-addon"].hidden = false;
|
|
fields["cdn-addon"].value = true;
|
|
} else {
|
|
fields["cdn-addon"].hidden = true;
|
|
fields["cdn-addon"].value = false;
|
|
}
|
|
}
|
|
|
|
if (!prod || group.groupType == 'trial') {
|
|
fields["ls-addon"].disabled = true;
|
|
fields["ls-addon"].value = false;
|
|
fields["loadGrowth"].disabled = true;
|
|
fields["galera"].disabled = true;
|
|
fields["galera"].value = false;
|
|
fields["glusterfs"].disabled = true;
|
|
fields["glusterfs"].value = false;
|
|
fields["le-addon"].disabled = true;
|
|
fields["le-addon"].value = false;
|
|
fields["cdn-addon"].disabled = true;
|
|
fields["cdn-addon"].value = false;
|
|
fields["mu-addon"].disabled = true;
|
|
fields["displayfield"].markup = "Advanced features are not available.";
|
|
fields["displayfield"].cls = "warning";
|
|
fields["displayfield"].hideLabel = true;
|
|
fields["displayfield"].height = 25;
|
|
fields["bl_count"].markup = "WordPress cluster is not available. " + markup + "Please upgrade your account.";
|
|
if (group.groupType == 'trial')
|
|
fields["bl_count"].markup = "WordPress cluster is not available for " + group.groupType + ". Please upgrade your account.";
|
|
fields["bl_count"].cls = "warning";
|
|
fields["bl_count"].hidden = false;
|
|
fields["bl_count"].height = 30;
|
|
|
|
|
|
settings.fields.push(
|
|
{"type": "compositefield","height": 0,"hideLabel": true,"width": 0,"items": [{"height": 0,"type": "string","required": true}]}
|
|
);
|
|
}
|
|
|
|
return {
|
|
result: 0,
|
|
settings: settings
|
|
};
|
|
|
|
function err(e, text, cur, override){
|
|
var m = (e.quota.description || e.quota.name) + " - " + e.value + ", " + text + " - " + cur + ". ";
|
|
if (override) markup = m; else markup += m;
|
|
}
|