summaryrefslogtreecommitdiff
path: root/ironic/tests/unit/db
diff options
context:
space:
mode:
authorDmitry Tantsur <dtantsur@protonmail.com>2019-09-19 14:21:58 +0200
committerDmitry Tantsur <dtantsur@protonmail.com>2019-09-20 15:24:28 +0200
commitb2834e66619c5f968389fa6ab1cf3e5f99cbafa3 (patch)
treefda99a4e472c26cb87dbb12d65b886f0d2f5eac2 /ironic/tests/unit/db
parent9fa39045dab1c3b401efac740d14a7e88c6c41f5 (diff)
downloadironic-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.py7
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)