Skip to content

Commit 694086a

Browse files
BB-727: Watch created config in queuePopulator
1 parent dc1fe12 commit 694086a

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

extensions/notification/configManager/ZookeeperConfigManager.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -237,11 +237,20 @@ class ZookeeperConfigManager extends BaseConfigManager {
237237
(exists, next) => {
238238
if (!exists) {
239239
return this._createBucketNotifConfigNode(bucket,
240-
err => next(err));
240+
err => next(err, exists));
241+
}
242+
return next(null, exists);
243+
},
244+
(exists, next) => this._zkClient.setData(zkPath, Buffer.from(data), -1, err => next(err, exists)),
245+
(exists, next) => {
246+
if (!exists) {
247+
// if znode is created, run getData to set a watcher on the bucket config
248+
// in case another node becomes leader on the raft and modifies the config
249+
// while the current process keeps running
250+
return this._updateLocalStore([bucket], next);
241251
}
242252
return next();
243253
},
244-
next => this._zkClient.setData(zkPath, Buffer.from(data), -1, next),
245254
], err => {
246255
if (err) {
247256
this.log.error('error saving config', { method, zkPath, data });

0 commit comments

Comments
 (0)