diff options
author | Dmitry Tantsur <dtantsur@protonmail.com> | 2019-09-19 14:21:58 +0200 |
---|---|---|
committer | Dmitry Tantsur <dtantsur@protonmail.com> | 2019-09-20 15:24:28 +0200 |
commit | b2834e66619c5f968389fa6ab1cf3e5f99cbafa3 (patch) | |
tree | fda99a4e472c26cb87dbb12d65b886f0d2f5eac2 /ironic/tests/unit/db | |
parent | 9fa39045dab1c3b401efac740d14a7e88c6c41f5 (diff) | |
download | ironic-b2834e66619c5f968389fa6ab1cf3e5f99cbafa3.tar.gz |
Allow retrying PXE boot if it takes too long
PXE is inherently unreliable and sometimes times out without an
obvious reason. It happens particularly often in resource constrained
environments, such as the CI. This change allows an operator to
set a timeout, after which the boot is retried again.
The _add_node_filters call had to be refactored to avoid hitting
the complexity limit.
Change-Id: I34a11f52e8e98e5b64f2d21f7190468a9e4b030d
Story: #2005167
Task: #29901
Diffstat (limited to 'ironic/tests/unit/db')
-rw-r--r-- | ironic/tests/unit/db/test_nodes.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/ironic/tests/unit/db/test_nodes.py b/ironic/tests/unit/db/test_nodes.py index 11568b963..e61302be7 100644 --- a/ironic/tests/unit/db/test_nodes.py +++ b/ironic/tests/unit/db/test_nodes.py @@ -231,7 +231,8 @@ class DbNodeTestCase(base.DbTestCase): # node with provision_updated timeout node1 = utils.create_test_node(uuid=uuidutils.generate_uuid(), - provision_updated_at=past) + provision_updated_at=past, + provision_state=states.DEPLOYING) # node with None in provision_updated_at node2 = utils.create_test_node(uuid=uuidutils.generate_uuid(), provision_state=states.DEPLOYWAIT) @@ -247,6 +248,10 @@ class DbNodeTestCase(base.DbTestCase): states.DEPLOYWAIT}) self.assertEqual([node2.id], [r[0] for r in res]) + res = self.dbapi.get_nodeinfo_list( + filters={'provision_state_in': [states.ACTIVE, states.DEPLOYING]}) + self.assertEqual([node1.id], [r[0] for r in res]) + @mock.patch.object(timeutils, 'utcnow', autospec=True) def test_get_nodeinfo_list_inspection(self, mock_utcnow): past = datetime.datetime(2000, 1, 1, 0, 0) |