Merge "Additional test state fixes"
diff --git a/ironic_tempest_plugin/tests/api/admin/test_nodes.py b/ironic_tempest_plugin/tests/api/admin/test_nodes.py
index 0a08a44..a5c52ce 100644
--- a/ironic_tempest_plugin/tests/api/admin/test_nodes.py
+++ b/ironic_tempest_plugin/tests/api/admin/test_nodes.py
@@ -741,7 +741,15 @@
                                     [{'path': '/%s' % field,
                                       'op': 'remove'}])
             _, node = self.client.show_node(self.node['uuid'])
-            self.assertEqual('fake', node[field])
+            if (iface in ['boot', 'deploy', 'inspect', 'network']
+                    and 'fake' != node[field]):
+                # NOTE(TheJulia): Depending on the remote configuration
+                # these interfaces may have explicit defaults which the
+                # reset action changes the value to. This is okay, but
+                # we need to not fail when that is the case.
+                self.assertNotEqual(self.node[field], node[field])
+            else:
+                self.assertEqual('fake', node[field])
 
 
 class TestResetInterfaces(TestHardwareInterfaces):
@@ -1211,7 +1219,21 @@
     def setUp(self):
         super(TestNodesProtectedOldApi, self).setUp()
         _, self.chassis = self.create_chassis()
+
         _, self.node = self.create_node(self.chassis['uuid'])
+        self.useFixture(
+            api_microversion_fixture.APIMicroversionFixture('1.31'))
+        # Now with a 1.31 microversion, swap the deploy and network
+        # interfaces into place so the test doesn't break depending on
+        # the environment's default state.
+        self.client.update_node(self.node['uuid'],
+                                [{'path': '/deploy_interface',
+                                  'op': 'replace',
+                                  'value': 'fake'},
+                                 {'path': '/network_interface',
+                                  'op': 'replace',
+                                  'value': 'noop'}])
+        self.useFixture(api_microversion_fixture.APIMicroversionFixture('1.1'))
         self.deploy_node(self.node['uuid'])
         _, self.node = self.client.show_node(self.node['uuid'])
 
diff --git a/ironic_tempest_plugin/tests/api/admin/test_nodestates.py b/ironic_tempest_plugin/tests/api/admin/test_nodestates.py
index 010e45b..3890fae 100644
--- a/ironic_tempest_plugin/tests/api/admin/test_nodestates.py
+++ b/ironic_tempest_plugin/tests/api/admin/test_nodestates.py
@@ -212,7 +212,8 @@
             api_microversion_fixture.APIMicroversionFixture('1.31'))
         _, self.node = self.create_node(self.chassis['uuid'],
                                         deploy_interface='fake',
-                                        network_interface='noop')
+                                        network_interface='noop',
+                                        inspect_interface='fake')
         self.useFixture(
             api_microversion_fixture.APIMicroversionFixture('1.11')
         )
diff --git a/ironic_tempest_plugin/tests/scenario/test_baremetal_boot_from_volume.py b/ironic_tempest_plugin/tests/scenario/test_baremetal_boot_from_volume.py
index b724683..aa2d1d6 100644
--- a/ironic_tempest_plugin/tests/scenario/test_baremetal_boot_from_volume.py
+++ b/ironic_tempest_plugin/tests/scenario/test_baremetal_boot_from_volume.py
@@ -67,6 +67,9 @@
         self.addCleanup(test_utils.call_and_ignore_notfound_exc,
                         self.volumes_client.delete_volume, volume['id'])
         self.assertEqual(name, volume['name'])
+        # NOTE(TheJulia): This can fail if the remote service can't figure out
+        # what to do. Really depends on the remote storage configuration which
+        # is not something we can sense out remotely.
         waiters.wait_for_volume_resource_status(self.volumes_client,
                                                 volume['id'], 'available')
         # The volume retrieved on creation has a non-up-to-date status.