diff --git a/nodepool/builder.py b/nodepool/builder.py index bb00e6771..dce709e9e 100755 --- a/nodepool/builder.py +++ b/nodepool/builder.py @@ -1216,7 +1216,7 @@ class NodePoolBuilder(object): builder_id = self._getBuilderID(builder_id_file) # All worker threads share a single ZooKeeper instance/connection. - self.zk = zk.ZooKeeper() + self.zk = zk.ZooKeeper(enable_cache=False) self.zk.connect(list(self._config.zookeeper_servers.values())) self.log.debug('Starting listener for build jobs') diff --git a/nodepool/cmd/nodepoolcmd.py b/nodepool/cmd/nodepoolcmd.py index 522556f0d..f55da9852 100755 --- a/nodepool/cmd/nodepoolcmd.py +++ b/nodepool/cmd/nodepoolcmd.py @@ -373,7 +373,7 @@ class NodePoolCmd(NodepoolApp): 'image-delete', 'alien-image-list', 'list', 'delete', 'request-list', 'info', 'erase'): - self.zk = zk.ZooKeeper() + self.zk = zk.ZooKeeper(enable_cache=False) self.zk.connect(list(config.zookeeper_servers.values())) self.pool.setConfig(config) diff --git a/nodepool/tests/__init__.py b/nodepool/tests/__init__.py index 8ad99671d..1ab83ac29 100644 --- a/nodepool/tests/__init__.py +++ b/nodepool/tests/__init__.py @@ -539,7 +539,7 @@ class DBTestCase(BaseTestCase): self.zookeeper_host, self.zookeeper_port)) self.zookeeper_chroot = kz_fxtr.zookeeper_chroot - self.zk = zk.ZooKeeper() + self.zk = zk.ZooKeeper(enable_cache=False) host = zk.ZooKeeperConnectionConfig( self.zookeeper_host, self.zookeeper_port, self.zookeeper_chroot ) diff --git a/nodepool/zk.py b/nodepool/zk.py index d67342cb0..0bcd19078 100755 --- a/nodepool/zk.py +++ b/nodepool/zk.py @@ -693,7 +693,7 @@ class ZooKeeper(object): # Log zookeeper retry every 10 seconds retry_log_rate = 10 - def __init__(self): + def __init__(self, enable_cache=True): ''' Initialize the ZooKeeper object. ''' @@ -704,6 +704,7 @@ class ZooKeeper(object): self._request_cache = None self._cached_nodes = {} self._cached_node_requests = {} + self.enable_cache = enable_cache # ======================================================================= # Private Methods @@ -894,15 +895,16 @@ class ZooKeeper(object): except KazooTimeoutError: self.logConnectionRetryEvent() - self._node_cache = TreeCache(self.client, self.NODE_ROOT) - self._node_cache.listen_fault(self.cacheFaultListener) - self._node_cache.listen(self.nodeCacheListener) - self._node_cache.start() + if self.enable_cache: + self._node_cache = TreeCache(self.client, self.NODE_ROOT) + self._node_cache.listen_fault(self.cacheFaultListener) + self._node_cache.listen(self.nodeCacheListener) + self._node_cache.start() - self._request_cache = TreeCache(self.client, self.REQUEST_ROOT) - self._request_cache.listen_fault(self.cacheFaultListener) - self._request_cache.listen(self.requestCacheListener) - self._request_cache.start() + self._request_cache = TreeCache(self.client, self.REQUEST_ROOT) + self._request_cache.listen_fault(self.cacheFaultListener) + self._request_cache.listen(self.requestCacheListener) + self._request_cache.start() def disconnect(self): ''' diff --git a/tools/print-zk.py b/tools/print-zk.py index 13a52145f..a609eb80c 100644 --- a/tools/print-zk.py +++ b/tools/print-zk.py @@ -30,7 +30,7 @@ args = parser.parse_args() config = nodepool.config.loadConfig(args.config) -zk = nodepool.zk.ZooKeeper() +zk = nodepool.zk.ZooKeeper(enable_cache=False) zk.connect(config.zookeeper_servers.values()) def join(a, b):