UNPKG

zookeeper-commands

Version:

A node.js client to run ZooKeeper Commands the four letter words.

161 lines 5.33 kB
"use strict"; function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } Object.defineProperty(exports, "__esModule", { value: true }); var os = require("os"); var stat_1 = require("./stat"); var qsutil = require("./qsutil"); var nodeify_ts_1 = require("nodeify-ts"); var Netcat = require('node-netcat'); __export(require("./client")); var extractResult = function (result) { var extracterArray = [ { re: /ruok/, run: function (resultp) { resultp.ok = resultp.raw === 'imok'; return resultp; }, }, { re: /stat/, run: function (resultp) { resultp.lines = resultp.raw.split(os.EOL); resultp.json = {}; stat_1.default(resultp.lines, resultp.json); return resultp; }, }, { re: /conf/, run: function (resultp) { resultp.lines = resultp.raw.split(os.EOL); resultp.json = {}; qsutil.array2json(resultp.lines, resultp.json); return resultp; }, }, { re: /cons/, run: function (resultp) { resultp.lines = resultp.raw.split(os.EOL); resultp.json = {}; stat_1.default(resultp.lines, resultp.json); return resultp; }, }, { re: /dump/, run: function (resultp) { resultp.lines = resultp.raw.split(os.EOL); return resultp; }, }, { re: /envi/, run: function (resultp) { resultp.lines = resultp.raw.split(os.EOL); resultp.json = {}; qsutil.array2json(resultp.lines, resultp.json); return resultp; }, }, { re: /srvr/, run: function (resultp) { resultp.lines = resultp.raw.split(os.EOL); resultp.json = {}; qsutil.array2json2(resultp.lines, resultp.json); return resultp; }, }, { re: /wchs/, run: function (resultp) { resultp.lines = resultp.raw.split(os.EOL); resultp.json = {}; qsutil.array2json2(resultp.lines, resultp.json); return resultp; }, }, { re: /mntr/, run: function (resultp) { resultp.lines = resultp.raw.split(os.EOL); resultp.json = {}; qsutil.array2json3(resultp.lines, resultp.json); return resultp; }, }, ]; extracterArray.forEach(function (extracter) { var re = extracter.re; var str = result.command; var m; if ((m = re.exec(str)) !== null) { if (m.index === re.lastIndex) { re.lastIndex++; } return extracter.run(result); } }); return result; }; var Zookeeper = (function () { function Zookeeper(options) { if (options === void 0) { options = new Options(); } this.options = options; } Zookeeper.prototype.command = function (command, callback) { var zookeeper = this; var promise = Promise.resolve().then(function () { if (!command || command.length !== 4) { throw new Error("Each command must be\n composed of four letters https://zookeeper.apache.org/doc/r3.4.6/zookeeperAdmin.html#sc_zkCommands"); } var options = { read_encoding: 'utf8', timeout: zookeeper.options.timeout_ms ? zookeeper.options.timeout_ms : 60000, }; return new Promise(function (resolve, reject) { var client = Netcat.client(zookeeper.options.port, zookeeper.options.host, options); client.on('open', function () { client.send(command); }); client.on('data', function (data) { var response = data.toString('utf8'); resolve(response); }); client.on('error', function (err) { console.log(err); reject(err); }); client.on('close', function () { }); client.start(); }); }).then(function (data) { var result = { command: command, raw: data, }; return extractResult(result); }); return nodeify_ts_1.default(promise, callback); }; return Zookeeper; }()); exports.Zookeeper = Zookeeper; var Options = (function () { function Options(host, port, timeout_ms) { if (host === void 0) { host = 'localhost'; } if (port === void 0) { port = 2181; } if (timeout_ms === void 0) { timeout_ms = 1000; } this.host = host; this.port = port; this.timeout_ms = timeout_ms; } return Options; }()); exports.Options = Options; //# sourceMappingURL=index.js.map