From: Ondrej Lichtner olichtne@redhat.com
Object specific attributes have to be initialized in the constructor. If they are initialized under the class definition, the attribute objects will be shared between instances.
This caused a bug to appear- when running multiple recipes, if a slave machine is available during one recipe, but becomes unavailable before the next recipe it will still be considered during machine matching for the next recipe.
This commit fixes that bug.
Signed-off-by: Ondrej Lichtner olichtne@redhat.com --- lnst/Controller/SlavePool.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/lnst/Controller/SlavePool.py b/lnst/Controller/SlavePool.py index bd81f81..301ea60 100644 --- a/lnst/Controller/SlavePool.py +++ b/lnst/Controller/SlavePool.py @@ -32,19 +32,16 @@ class SlavePool: This class is responsible for managing test machines that are available at the controler and can be used for testing. """ + def __init__(self, pool_dirs, allow_virtual=False, pool_checks=True): + self._map = {} + self._pool = {}
- _map = {} - _pool = {} - - _machine_matches = [] - _network_matches = [] - - _allow_virt = False - _pool_checks = True + self._machine_matches = [] + self._network_matches = []
- def __init__(self, pool_dirs, allow_virtual=False, pool_checks=True): self._allow_virt = allow_virtual self._pool_checks = pool_checks + logging.info("Checking machine pool availability.") for pool_dir in pool_dirs: self.add_dir(pool_dir)
lnst-developers@lists.fedorahosted.org