Add a test for introspection abort action verification.
Change-Id: Ia2c371a862a800220323e81545e6a8693dac51f0
diff --git a/ironic_tempest_plugin/tests/manager.py b/ironic_tempest_plugin/tests/manager.py
index 445a15e..961b284 100644
--- a/ironic_tempest_plugin/tests/manager.py
+++ b/ironic_tempest_plugin/tests/manager.py
@@ -121,6 +121,9 @@
def introspection_start(self, uuid):
return self.introspection_client.start_introspection(uuid)
+ def introspection_abort(self, uuid):
+ return self.introspection_client.abort_introspection(uuid)
+
def baremetal_flavor(self):
flavor_id = CONF.compute.flavor_ref
flavor = self.flavors_client.show_flavor(flavor_id)['flavor']
@@ -210,6 +213,11 @@
if (self.node_show(node_id)['provision_state'] ==
BaremetalProvisionStates.AVAILABLE):
return
+ # in case when introspection failed we need set provision state
+ # to 'manage' to make it possible transit into 'provide' state
+ if self.node_show(node_id)['provision_state'] == 'inspect failed':
+ self.baremetal_client.set_node_provision_state(node_id, 'manage')
+
try:
self.baremetal_client.set_node_provision_state(node_id, 'provide')
except tempest.lib.exceptions.RestClientException:
@@ -222,13 +230,14 @@
timeout=CONF.baremetal.unprovision_timeout,
interval=self.wait_provisioning_state_interval)
- def introspect_node(self, node_id):
- # in case there are properties remove those
- patch = {('properties/%s' % key): None for key in
- self.node_show(node_id)['properties']}
- # reset any previous rule result
- patch['extra/rule_success'] = None
- self.node_update(node_id, patch)
+ def introspect_node(self, node_id, remove_props=True):
+ if remove_props:
+ # in case there are properties remove those
+ patch = {('properties/%s' % key): None for key in
+ self.node_show(node_id)['properties']}
+ # reset any previous rule result
+ patch['extra/rule_success'] = None
+ self.node_update(node_id, patch)
self.baremetal_client.set_node_provision_state(node_id, 'manage')
self.baremetal_client.set_node_provision_state(node_id, 'inspect')