diff --git a/src/lib/python/isc/bind10/component.py b/src/lib/python/isc/bind10/component.py index 0b822a83e2..57f9428586 100644 --- a/src/lib/python/isc/bind10/component.py +++ b/src/lib/python/isc/bind10/component.py @@ -571,6 +571,10 @@ class Configurator: self._running = False self.__reconfigure_internal(self._components, {}) + def has_component(self, component): + '''Return if a specified component is configured.''' + return component in map(lambda x: x[1], self._components.values()) + def reconfigure(self, configuration): """ Changes configuration from the current one to the provided. It diff --git a/src/lib/python/isc/bind10/tests/component_test.py b/src/lib/python/isc/bind10/tests/component_test.py index 1cfc30f8b4..d8a89d578a 100644 --- a/src/lib/python/isc/bind10/tests/component_test.py +++ b/src/lib/python/isc/bind10/tests/component_test.py @@ -896,7 +896,7 @@ class ConfiguratorTest(BossUtils, unittest.TestCase): # We run the plan so the component is wired into internal structures configurator._run_plan(plan) # We should have the 'additional' component in the configurator. - self.assertTrue('additional' in configurator._components) + self.assertTrue(configurator.has_component(component)) for count in [0, 1]: # repeat two times, see below self.log = [] plan = configurator._build_plan(self.__build_components(bigger), @@ -915,6 +915,8 @@ class ConfiguratorTest(BossUtils, unittest.TestCase): component.failed(0) # Run the plan, confirm the specified component is gone. configurator._run_plan(plan) + self.assertFalse(configurator.has_component(component)) + # There shouldn't be any other object that has the same name self.assertFalse('additional' in configurator._components) # We want to switch a component. So, prepare the configurator so it