diff options
author | Derek Higgins <derekh@redhat.com> | 2020-12-01 09:11:41 +0000 |
---|---|---|
committer | Julia Kreger <juliaashleykreger@gmail.com> | 2021-01-08 15:16:53 +0000 |
commit | 7d85b35c8425f10a2fff64dfc82008a93c3a7b98 (patch) | |
tree | bbd5de7ae661f9028b2c7faa6a29f3c4e76c7ed1 /ironic/conductor | |
parent | fcf029a0ad078d96ef0da8859d7f361b2d2cac88 (diff) | |
download | ironic-7d85b35c8425f10a2fff64dfc82008a93c3a7b98.tar.gz |
Register all hardware_interfaces together
Prevent each driver comming online one at a time. So that
/driver returns nothign until all interfaces are registered
Story: #2008423
Task: #41368
Change-Id: I6ef3e6e36b96106faf4581509d9219e5c535a6d8
Diffstat (limited to 'ironic/conductor')
-rw-r--r-- | ironic/conductor/base_manager.py | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/ironic/conductor/base_manager.py b/ironic/conductor/base_manager.py index d4361dfa9..53b2b48ae 100644 --- a/ironic/conductor/base_manager.py +++ b/ironic/conductor/base_manager.py @@ -12,6 +12,7 @@ """Base conductor manager functionality.""" +import copy import inspect import threading @@ -372,15 +373,21 @@ class BaseConductorManager(object): # first unregister, in case we have cruft laying around self.conductor.unregister_all_hardware_interfaces() + interfaces = [] for ht_name, ht in hardware_types.items(): interface_map = driver_factory.enabled_supported_interfaces(ht) for interface_type, interface_names in interface_map.items(): default_interface = driver_factory.default_interface( ht, interface_type, driver_name=ht_name) - self.conductor.register_hardware_interfaces(ht_name, - interface_type, - interface_names, - default_interface) + interface = {} + interface["hardware_type"] = ht_name + interface["interface_type"] = interface_type + for interface_name in interface_names: + interface["interface_name"] = interface_name + interface["default"] = \ + (interface_name == default_interface) + interfaces.append(copy.copy(interface)) + self.conductor.register_hardware_interfaces(interfaces) # TODO(jroll) validate against other conductor, warn if different # how do we do this performantly? :| |