Additional test state fixes

In running some tests downstream, in this case where someone had
aggressively asserted default interface values, some additional
tests failed, and in fun ways.

This changes a couple tests so they explicitly set and account
for differeing defaults from upstream CI. Also adds an inline note
on the Boot from Volume test which can fail if the volume creation
fails.

Change-Id: Ieaa7ac9d9058ba40955248699e8fd762d4b3c15d
diff --git a/ironic_tempest_plugin/tests/api/admin/test_nodes.py b/ironic_tempest_plugin/tests/api/admin/test_nodes.py
index 79e8da4..0652e2e 100644
--- a/ironic_tempest_plugin/tests/api/admin/test_nodes.py
+++ b/ironic_tempest_plugin/tests/api/admin/test_nodes.py
@@ -642,7 +642,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):
@@ -1112,7 +1120,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.