cloudcms-cli
Version:
Cloud CMS Command-Line client
85 lines (78 loc) • 2.8 kB
JavaScript
var helper = require("../../../helper");
var AbstractCommand = require("../../abstract");
class SetClusterValueCommand extends AbstractCommand
{
constructor()
{
super({
"group": "admin",
"name": "set-cluster-value",
"description": "Sets a key/value onto the cluster config",
"schema": {
"properties": [{
"name": "key",
"type": "string",
"description": "Enter the key:",
"helper": "The key to retrieve",
"required": true,
"args": ["key", "k"]
}, {
"name": "value",
"type": "string",
"description": "Enter the value:",
"helper": "The value to set",
"required": true,
"args": ["value", "val", "v"]
}, {
"name": "bool",
"type": "boolean",
"description": "Is this a boolean value?:",
"helper": "Whether the value is true/false",
"required": false,
"args": ["boolean", "bool"]
}, {
"name": "int",
"type": "boolean",
"description": "Is this an integer value?:",
"helper": "Whether the value is an integer",
"required": false,
"args": ["integer", "int"]
}, {
"name": "username",
"type": "string",
"description": "Admin username",
"required": true,
"args": ["username", "u"]
}, {
"name": "password",
"type": "string",
"description": "Admin password",
"required": true,
"hidden": true,
"args": ["password", "p"]
}]
}
});
}
handle(options, callback)
{
var value = options.value;
if (options.bool) {
value = "true".equals(value);
}
if (options.int) {
value = parseInt(value);
}
var payload = {
"patches": [{
"op": "add",
"path": options.key,
"value": value
}]
};
helper._handleAdminGitanaPost("/cluster/configuration/modify", {}, payload, options.username, options.password, function(err, jsonResponse) {
helper._handleJsonResponse(err, jsonResponse, callback);
});
}
}
module.exports = SetClusterValueCommand;