Ignore removed provider in _cleanupLeakedInstances
Sometimes when a provider is removed _cleanupLeakedInstances fails with [1] because the provider has been removed between config iteration and getting the manager. Getting a non existent provider should return None instead of an exception so we can skip that provider cleanly without the need of catching exceptions. [1] Traceback ERROR:nodepool.CleanupWorker:Exception in CleanupWorker (leaked instance cleanup) Traceback (most recent call last): File "/Users/q282539/repos/cc/nodepool/nodepool/launcher.py", line 598, in _run task() File "/Users/q282539/repos/cc/nodepool/nodepool/launcher.py", line 473, in _cleanupLeakedInstances manager = self._nodepool.getProviderManager(provider.name) File "/Users/q282539/repos/cc/nodepool/nodepool/launcher.py", line 792, in getProviderManager return self.config.provider_managers[provider_name] KeyError: 'fake-provider2' Change-Id: Iae1266efc6e17b50b5a176afc5b28f26f2fa7177
This commit is contained in:
parent
ad49f5421c
commit
17ebcdd286
|
@ -471,7 +471,8 @@ class CleanupWorker(BaseCleanupWorker):
|
|||
'''
|
||||
for provider in self._nodepool.config.providers.values():
|
||||
manager = self._nodepool.getProviderManager(provider.name)
|
||||
manager.cleanupLeakedResources()
|
||||
if manager:
|
||||
manager.cleanupLeakedResources()
|
||||
|
||||
def _cleanupMaxReadyAge(self):
|
||||
'''
|
||||
|
@ -789,7 +790,7 @@ class NodePool(threading.Thread):
|
|||
return self.zk
|
||||
|
||||
def getProviderManager(self, provider_name):
|
||||
return self.config.provider_managers[provider_name]
|
||||
return self.config.provider_managers.get(provider_name)
|
||||
|
||||
def getPoolWorkers(self, provider_name):
|
||||
return [t for t in self._pool_threads.values() if
|
||||
|
|
Loading…
Reference in New Issue