summaryrefslogtreecommitdiff
path: root/ironic/tests/unit/objects/test_conductor.py
diff options
context:
space:
mode:
authorJim Rollenhagen <jim@jimrollenhagen.com>2016-12-19 17:12:01 -0500
committerJim Rollenhagen <jim@jimrollenhagen.com>2017-01-19 11:28:30 +0000
commitb7e6b737d7aea841e718d66776894986dbcab2a2 (patch)
tree3e94fcb50267ba74d760eb1b62255cb3bff5a9ba /ironic/tests/unit/objects/test_conductor.py
parentc1c86e81afa9d14ffd474684046e5759d923b34a (diff)
downloadironic-b7e6b737d7aea841e718d66776894986dbcab2a2.tar.gz
Register/unregister hardware interfaces for conductors
This registers the intersection of supported and enabled interfaces for each hardware type enabled in the conductor at conductor startup, and unregisters them at conductor shutdown. Validation is left as a todo for now. Change-Id: I14e88bfc304de9414de008d1cc8568dda9115ecc Partial-Bug: #1524745
Diffstat (limited to 'ironic/tests/unit/objects/test_conductor.py')
-rw-r--r--ironic/tests/unit/objects/test_conductor.py31
1 files changed, 30 insertions, 1 deletions
diff --git a/ironic/tests/unit/objects/test_conductor.py b/ironic/tests/unit/objects/test_conductor.py
index 29242665b..1880bfbf8 100644
--- a/ironic/tests/unit/objects/test_conductor.py
+++ b/ironic/tests/unit/objects/test_conductor.py
@@ -106,7 +106,8 @@ class TestConductorObject(base.DbTestCase):
def test_register_update_existing_true(self):
self._test_register(update_existing=True)
- def test_unregister(self):
+ @mock.patch.object(objects.Conductor, 'unregister_all_hardware_interfaces')
+ def test_unregister(self, mock_unreg_ifaces):
host = self.fake_conductor['hostname']
with mock.patch.object(self.dbapi, 'get_conductor',
autospec=True) as mock_get_cdr:
@@ -116,3 +117,31 @@ class TestConductorObject(base.DbTestCase):
c = objects.Conductor.get_by_hostname(self.context, host)
c.unregister()
mock_unregister_cdr.assert_called_once_with(host)
+ mock_unreg_ifaces.assert_called_once_with()
+
+ def test_register_hardware_interfaces(self):
+ host = self.fake_conductor['hostname']
+ self.config(default_deploy_interface='iscsi')
+ with mock.patch.object(self.dbapi, 'get_conductor',
+ autospec=True) as mock_get_cdr:
+ with mock.patch.object(self.dbapi,
+ 'register_conductor_hardware_interfaces',
+ autospec=True) as mock_register:
+ mock_get_cdr.return_value = self.fake_conductor
+ c = objects.Conductor.get_by_hostname(self.context, host)
+ args = ('hardware-type', 'deploy', ['iscsi', 'direct'],
+ 'iscsi')
+ c.register_hardware_interfaces(*args)
+ mock_register.assert_called_once_with(c.id, *args)
+
+ def test_unregister_all_hardware_interfaces(self):
+ host = self.fake_conductor['hostname']
+ with mock.patch.object(self.dbapi, 'get_conductor',
+ autospec=True) as mock_get_cdr:
+ with mock.patch.object(self.dbapi,
+ 'unregister_conductor_hardware_interfaces',
+ autospec=True) as mock_unregister:
+ mock_get_cdr.return_value = self.fake_conductor
+ c = objects.Conductor.get_by_hostname(self.context, host)
+ c.unregister_all_hardware_interfaces()
+ mock_unregister.assert_called_once_with(c.id)