UNPKG

gce-elastic-docker

Version:

A package to help setup Elasticsearch / Kibana clusters on Google Compute Engine.

98 lines (97 loc) 3.61 kB
"use strict"; 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;