UNPKG

solr-zk-client

Version:

A node solr-client that uses zk to find the livenodes at cluster

78 lines (67 loc) 1.89 kB
var zkClient = require('node-zookeeper-client'); var logger = null; function zkConnectAndExecute(dto, callback) { if (!dto) { return callback(new Error('Missing DTO')); } var client = zkClient.createClient(dto.zkConnectionString, dto.zkOptions); client.once('connected', function () { callback(null, client); client.close(); }); client.connect(); } function zkExistsPath(dto, path, callback) { zkConnectAndExecute(dto, function (err, client) { if (err) { return callback(err); } client.exists(path, function (err, stat) { if (err) { return callback(err); } callback(null, stat !== null); }); }); } function zkCreatePathAndData(dto, path, data, callback) { zkConnectAndExecute(dto, function (err, client) { if (err) { return callback(err); } client.create(path, data, callback); }); } function zkSetData(dto, path, data, callback) { zkConnectAndExecute(dto, function (err, client) { if (err) { return callback(err); } client.setData(path, data, callback); }); } function zkGetData(dto, path, callback) { zkConnectAndExecute(dto, function (err, client) { if (err) { return callback(err); } client.getData(path, callback); }); } function zkGetChildren(dto, path, callback) { zkConnectAndExecute(dto, function(err, client) { if (err) { return callback(err); } client.getChildren(path, callback); }) } function setLogger(lgr) { logger = lgr; } exports.existsPath = zkExistsPath; exports.createPathAndData = zkCreatePathAndData; exports.setData = zkSetData; exports.getData = zkGetData; exports.getChildren = zkGetChildren; exports.setLogger = setLogger;