_registerOwner(cb) { this._myName = _genRandomHexChars(12); const zkPath = `${OWNERS}/${this._myName}`; this._withRandomDelayIfTest( () => this._client.create( zkPath, null, zookeeper.ACL.OPEN_ACL_UNSAFE, zookeeper.CreateMode.EPHEMERAL, err => { if (err) { return cb(err); } this._log.debug('registered owner zk node', { zkPath: `${this._zkEndpoint}${zkPath}` }); return cb(null, zkPath); }) ); }
_registerLeader(cb) { // register in election queue const zkPath = `${LEADERS}${LEADER}`; this._withRandomDelayIfTest( () => this._client.create( zkPath, null, zookeeper.ACL.OPEN_ACL_UNSAFE, zookeeper.CreateMode.EPHEMERAL_SEQUENTIAL, (err, _path) => { if (err) { return cb(err); } this._myLeaderName = path.basename(_path); this._log.debug('registered leader zk node', { zkPath: `${this._zkEndpoint}${path}` }); return cb(); }) ); }