Actually test rescue in the standalone job

The current test only makes sure the node can be pinged and passes
happily if rescue fails, as long as the ramdisk stays online.

Change-Id: Ib4946974713ccf5fccb38359987ce6e7573e07e0
diff --git a/ironic_tempest_plugin/tests/scenario/baremetal_standalone_manager.py b/ironic_tempest_plugin/tests/scenario/baremetal_standalone_manager.py
index eac82f3..9948ca8 100644
--- a/ironic_tempest_plugin/tests/scenario/baremetal_standalone_manager.py
+++ b/ironic_tempest_plugin/tests/scenario/baremetal_standalone_manager.py
@@ -17,6 +17,7 @@
 
 from oslo_utils import uuidutils
 from tempest import config
+from tempest.lib.common.utils.linux import remote_client
 from tempest.lib.common.utils import test_utils
 from tempest.lib import exceptions as lib_exc
 from tempest.scenario import manager
@@ -600,3 +601,21 @@
         # NOTE(dtantsur): apparently cirros cannot boot from md devices :(
         # So we only move the node to active (verifying deployment).
         self.set_node_to_active()
+
+    def rescue_unrescue(self):
+        rescue_password = uuidutils.generate_uuid()
+        self.rescue_node(self.node['uuid'], rescue_password)
+        self.assertTrue(self.ping_ip_address(self.node_ip,
+                                             should_succeed=True))
+
+        # Open ssh connection to server
+        linux_client = remote_client.RemoteClient(
+            self.node_ip,
+            'rescue',
+            password=rescue_password,
+            ssh_timeout=CONF.baremetal.rescue_timeout)
+        linux_client.validate_authentication()
+
+        self.unrescue_node(self.node['uuid'])
+        self.assertTrue(self.ping_ip_address(self.node_ip,
+                                             should_succeed=True))
diff --git a/ironic_tempest_plugin/tests/scenario/ironic_standalone/test_basic_ops.py b/ironic_tempest_plugin/tests/scenario/ironic_standalone/test_basic_ops.py
index ecd4463..0f91b01 100644
--- a/ironic_tempest_plugin/tests/scenario/ironic_standalone/test_basic_ops.py
+++ b/ironic_tempest_plugin/tests/scenario/ironic_standalone/test_basic_ops.py
@@ -204,13 +204,7 @@
     @utils.services('image', 'network')
     def test_rescue_mode(self):
         self.set_node_to_active(self.image_ref)
-        self.rescue_node(self.node['uuid'], 'abc123')
-        self.assertTrue(self.ping_ip_address(self.node_ip,
-                                             should_succeed=True))
-
-        self.unrescue_node(self.node['uuid'])
-        self.assertTrue(self.ping_ip_address(self.node_ip,
-                                             should_succeed=True))
+        self.rescue_unrescue()
 
 
 class BaremetalIpmiRescuePartitioned(bsm.BaremetalStandaloneScenarioTest):
@@ -233,13 +227,7 @@
     @utils.services('image', 'network')
     def test_rescue_mode(self):
         self.set_node_to_active(self.image_ref)
-        self.rescue_node(self.node['uuid'], 'abc123')
-        self.assertTrue(self.ping_ip_address(self.node_ip,
-                                             should_succeed=True))
-
-        self.unrescue_node(self.node['uuid'])
-        self.assertTrue(self.ping_ip_address(self.node_ip,
-                                             should_succeed=True))
+        self.rescue_unrescue()
 
 
 class BaremetalIloDirectWholediskHttpLink(