gce-elastic-docker
Version:
A package to help setup Elasticsearch / Kibana clusters on Google Compute Engine.
98 lines (97 loc) • 3.61 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var md5 = require("apache-md5");
var utils_1 = require("../utils");
var NodeCreateOpts = /** @class */ (function () {
function NodeCreateOpts(v) {
var o = v || {};
this._set_interval(o);
this._set_kibana_network_tag(o);
this._set_kibana_users(o);
this._set_kso(o);
this._set_scripts(o);
this._set_sm(o);
this._set_verbose(o);
}
NodeCreateOpts.prototype.get_kibana_users_env_value = function () {
var _this = this;
var usernames = Object.keys(this.kibana_users);
if (usernames.length) {
var tokens = usernames.map(function (username) {
var pass = _this.kibana_users[username];
var hash = md5(pass);
return username + ":" + hash;
});
return Buffer.from(tokens.join(' ')).toString('base64');
}
};
NodeCreateOpts.prototype._set_interval = function (v) {
if (utils_1.Utils.is_defined(v.interval) &&
(!utils_1.Utils.is_number(v.interval) || (v.interval < 1000))) {
throw Error('interval must be >= 1000');
}
this.interval = v.interval ? v.interval : 2000;
};
NodeCreateOpts.prototype._set_kibana_network_tag = function (v) {
if (v.kibana_network_tag && (!utils_1.Utils.is_string(v.kibana_network_tag) ||
!v.kibana_network_tag || / /.test(v.kibana_network_tag))) {
throw Error(v.kibana_network_tag + " is not a valid name for a gce network tag.");
}
else if (v.kibana_network_tag) {
this.kibana_network_tag = v.kibana_network_tag;
}
};
NodeCreateOpts.prototype._set_kibana_users = function (v) {
this.kibana_users = {};
if (v.kibana_users) {
for (var username in v.kibana_users) {
var pass = v.kibana_users[username];
if (!username || (username.length > 255)) {
throw Error('username must be a string <= 255 characters. see apache htpasswd.');
}
else if (!utils_1.Utils.is_string(pass) || !pass || (pass.length > 255)) {
throw Error('password must be a string <= 255 characters. see apache htpasswd.');
}
this.kibana_users[username] = pass;
}
}
};
NodeCreateOpts.prototype._set_kso = function (v) {
if (utils_1.Utils.is_array(v.kso)) {
this.kso = v.kso;
}
else if (utils_1.Utils.is_defined(v.kso)) {
throw Error('kibana saved objects must be an array.');
}
else {
this.kso = [];
}
};
NodeCreateOpts.prototype._set_scripts = function (v) {
if (utils_1.Utils.is_object(v.scripts)) {
this.scripts = v.scripts;
}
else if (utils_1.Utils.is_defined(v.scripts)) {
throw Error('scripts must be an object.');
}
else {
this.scripts = {};
}
};
NodeCreateOpts.prototype._set_sm = function (v) {
if (utils_1.Utils.is_object(v.sm)) {
this.sm = v.sm;
}
else if (utils_1.Utils.is_defined(v.sm)) {
throw Error('settings and mappings must be an object.');
}
else {
this.sm = {};
}
};
NodeCreateOpts.prototype._set_verbose = function (v) {
this.verbose = !!v.verbose;
};
return NodeCreateOpts;
}());
exports.NodeCreateOpts = NodeCreateOpts;