diff options
author | Jim Rollenhagen <jim@jimrollenhagen.com> | 2016-12-19 17:12:01 -0500 |
---|---|---|
committer | Jim Rollenhagen <jim@jimrollenhagen.com> | 2017-01-19 11:28:30 +0000 |
commit | b7e6b737d7aea841e718d66776894986dbcab2a2 (patch) | |
tree | 3e94fcb50267ba74d760eb1b62255cb3bff5a9ba /ironic/tests/unit/objects/test_conductor.py | |
parent | c1c86e81afa9d14ffd474684046e5759d923b34a (diff) | |
download | ironic-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.py | 31 |
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) |