summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArne Wiebalck <Arne.Wiebalck@cern.ch>2021-08-10 16:20:18 +0200
committerArne Wiebalck <Arne.Wiebalck@cern.ch>2021-08-10 16:37:40 +0200
commita86e21e4f46d7a68e979f99722593412802dc750 (patch)
tree6444ba9360c0d82ab9922117580de287ad344195
parent91f0248164bf1f9fa072021e0b657ec55510127a (diff)
downloadironic-python-agent-a86e21e4f46d7a68e979f99722593412802dc750.tar.gz
Check the network burnin roles and partner
The network burnin roles are 'reader' and 'writer'. Raise an error if the role is not provided or if the role is unknown. Equally, raise an error if the partner is not provided. Change-Id: I6259a7b0d15d62e68b1dc27f0cb511f8563c02ce
-rw-r--r--ironic_python_agent/burnin.py8
-rw-r--r--ironic_python_agent/tests/unit/test_burnin.py21
2 files changed, 29 insertions, 0 deletions
diff --git a/ironic_python_agent/burnin.py b/ironic_python_agent/burnin.py
index 375f11d3..f3918173 100644
--- a/ironic_python_agent/burnin.py
+++ b/ironic_python_agent/burnin.py
@@ -183,8 +183,16 @@ def fio_network(node):
"'agent_burnin_fio_network_config' in driver_info")
raise errors.CleaningError(error_msg)
LOG.debug("agent_burnin_fio_network_config is %s", str(config))
+
role = config.get('role')
+ if role not in NETWORK_BURNIN_ROLES:
+ error_msg = ("fio (network) found an unknown role: %s", role)
+ raise errors.CleaningError(error_msg)
+
partner = config.get('partner')
+ if not partner:
+ error_msg = ("fio (network) failed to find partner")
+ raise errors.CleaningError(error_msg)
_do_fio_network(role == 'writer', runtime, partner)
LOG.debug("fio (network): first direction done, swapping roles ...")
diff --git a/ironic_python_agent/tests/unit/test_burnin.py b/ironic_python_agent/tests/unit/test_burnin.py
index 18025b41..2258352e 100644
--- a/ironic_python_agent/tests/unit/test_burnin.py
+++ b/ironic_python_agent/tests/unit/test_burnin.py
@@ -198,6 +198,27 @@ class TestBurnin(base.IronicAgentTest):
self.assertRaises(errors.CommandExecutionError,
burnin.fio_network, node)
+ def test_fio_network_unknown_role(self, mock_execute):
+
+ node = {'driver_info': {'agent_burnin_fio_network_config':
+ {'partner': 'host-003', 'role': 'read'}}}
+
+ self.assertRaises(errors.CleaningError, burnin.fio_network, node)
+
+ def test_fio_network_no_role(self, mock_execute):
+
+ node = {'driver_info': {'agent_burnin_fio_network_config':
+ {'partner': 'host-003'}}}
+
+ self.assertRaises(errors.CleaningError, burnin.fio_network, node)
+
+ def test_fio_network_no_partner(self, mock_execute):
+
+ node = {'driver_info': {'agent_burnin_fio_network_config':
+ {'role': 'reader'}}}
+
+ self.assertRaises(errors.CleaningError, burnin.fio_network, node)
+
@mock.patch('time.sleep', autospec=True)
def test_fio_network_reader_loop(self, mock_time, mock_execute):