diff --git a/ironic_inspector/common/ironic.py b/ironic_inspector/common/ironic.py index a0a6ad734..272a61a8b 100644 --- a/ironic_inspector/common/ironic.py +++ b/ironic_inspector/common/ironic.py @@ -26,8 +26,9 @@ from ironic_inspector import utils CONF = cfg.CONF LOG = utils.getProcessingLogger(__name__) -# See http://specs.openstack.org/openstack/ironic-specs/specs/kilo/new-ironic-state-machine.html # noqa -VALID_STATES = {'enroll', 'manageable', 'inspecting', 'inspect failed'} +# See https://docs.openstack.org/ironic/latest/contributor/states.html # noqa +VALID_STATES = {'enroll', 'manageable', 'inspecting', 'inspect wait', + 'inspect failed'} # 1.19 is API version, which supports port.pxe_enabled DEFAULT_IRONIC_API_VERSION = '1.19' diff --git a/ironic_inspector/test/unit/test_introspect.py b/ironic_inspector/test/unit/test_introspect.py index 4c3db06a2..8c859eb86 100644 --- a/ironic_inspector/test/unit/test_introspect.py +++ b/ironic_inspector/test/unit/test_introspect.py @@ -263,6 +263,16 @@ class TestIntrospect(BaseTest): self.assertFalse(start_mock.called) self.assertFalse(self.node_info.acquire_lock.called) + def test_inspect_wait_state_allowed(self, client_mock, start_mock): + self.node.provision_state = 'inspect wait' + cli = client_mock.return_value + cli.node.get.return_value = self.node + cli.node.validate.return_value = mock.Mock(power={'result': True}) + + introspect.introspect(self.uuid) + + self.assertTrue(start_mock.called) + @mock.patch.object(time, 'time') def test_introspection_delay(self, time_mock, client_mock, start_mock): time_mock.return_value = 42