Cleanup: Add common "ssh-login server" method

There are some "ssh-login server" methods in scenario tests, and
they will increase in the future by increasing scenario tests.
This patch adds common "ssh-login server" method to parent class
and uses it instead of each implementation.

Change-Id: Iefee90b7a79b85b67694bc32382b4c4d776bc5b2
diff --git a/tempest/scenario/manager.py b/tempest/scenario/manager.py
index ccfba83..f853849 100644
--- a/tempest/scenario/manager.py
+++ b/tempest/scenario/manager.py
@@ -32,6 +32,7 @@
 from tempest.common import isolated_creds
 from tempest.common import ssh
 from tempest.common.utils.data_utils import rand_name
+from tempest.common.utils.linux.remote_client import RemoteClient
 import tempest.manager
 from tempest.openstack.common import log as logging
 import tempest.test
@@ -343,6 +344,18 @@
         self.set_resource(name, keypair)
         return keypair
 
+    def get_remote_client(self, server_or_ip, username=None, private_key=None):
+        if isinstance(server_or_ip, basestring):
+            ip = server_or_ip
+        else:
+            network_name_for_ssh = self.config.compute.network_for_ssh
+            ip = server_or_ip.networks[network_name_for_ssh][0]
+        if username is None:
+            username = self.config.scenario.ssh_user
+        if private_key is None:
+            private_key = self.keypair.private_key
+        return RemoteClient(ip, username, pkey=private_key)
+
 
 class NetworkScenarioTest(OfficialClientTest):
     """
diff --git a/tempest/scenario/test_minimum_basic.py b/tempest/scenario/test_minimum_basic.py
index 25735e9..5cddde2 100644
--- a/tempest/scenario/test_minimum_basic.py
+++ b/tempest/scenario/test_minimum_basic.py
@@ -16,7 +16,6 @@
 #    under the License.
 
 from tempest.common.utils.data_utils import rand_name
-from tempest.common.utils.linux.remote_client import RemoteClient
 from tempest.openstack.common import log as logging
 from tempest.scenario import manager
 
@@ -132,10 +131,7 @@
         self.server.add_floating_ip(self.floating_ip)
 
     def ssh_to_server(self):
-        username = self.config.scenario.ssh_user
-        self.linux_client = RemoteClient(self.floating_ip.ip,
-                                         username,
-                                         pkey=self.keypair.private_key)
+        self.linux_client = self.get_remote_client(self.floating_ip.ip)
 
     def check_partitions(self):
         partitions = self.linux_client.get_partitions()
diff --git a/tempest/scenario/test_snapshot_pattern.py b/tempest/scenario/test_snapshot_pattern.py
index 1e090af..c55e2a3 100644
--- a/tempest/scenario/test_snapshot_pattern.py
+++ b/tempest/scenario/test_snapshot_pattern.py
@@ -16,7 +16,6 @@
 #    under the License.
 
 from tempest.common.utils.data_utils import rand_name
-from tempest.common.utils.linux.remote_client import RemoteClient
 from tempest.openstack.common import log as logging
 from tempest.scenario import manager
 
@@ -54,16 +53,7 @@
         self.keypair = self.create_keypair()
 
     def _ssh_to_server(self, server_or_ip):
-        if isinstance(server_or_ip, basestring):
-            ip = server_or_ip
-        else:
-            network_name_for_ssh = self.config.compute.network_for_ssh
-            ip = server_or_ip.networks[network_name_for_ssh][0]
-        username = self.config.scenario.ssh_user
-        linux_client = RemoteClient(ip,
-                                    username,
-                                    pkey=self.keypair.private_key)
-
+        linux_client = self.get_remote_client(server_or_ip)
         return linux_client.ssh_client
 
     def _write_timestamp(self, server_or_ip):
diff --git a/tempest/scenario/test_stamp_pattern.py b/tempest/scenario/test_stamp_pattern.py
index 8864b2f..c74b88d 100644
--- a/tempest/scenario/test_stamp_pattern.py
+++ b/tempest/scenario/test_stamp_pattern.py
@@ -21,7 +21,6 @@
 import testtools
 
 from tempest.common.utils.data_utils import rand_name
-from tempest.common.utils.linux.remote_client import RemoteClient
 from tempest import exceptions
 from tempest.openstack.common import log as logging
 from tempest.scenario import manager
@@ -81,20 +80,8 @@
     def _add_floating_ip(self, server, floating_ip):
         server.add_floating_ip(floating_ip)
 
-    def _remote_client_to_server(self, server_or_ip):
-        if isinstance(server_or_ip, basestring):
-            ip = server_or_ip
-        else:
-            network_name_for_ssh = self.config.compute.network_for_ssh
-            ip = server_or_ip.networks[network_name_for_ssh][0]
-        username = self.config.scenario.ssh_user
-        linux_client = RemoteClient(ip,
-                                    username,
-                                    pkey=self.keypair.private_key)
-        return linux_client
-
     def _ssh_to_server(self, server_or_ip):
-        linux_client = self._remote_client_to_server(server_or_ip)
+        linux_client = self.get_remote_client(server_or_ip)
         return linux_client.ssh_client
 
     def _create_image(self, server):
@@ -148,7 +135,7 @@
         self._wait_for_volume_status(volume, 'available')
 
     def _wait_for_volume_availible_on_the_system(self, server_or_ip):
-        ssh = self._remote_client_to_server(server_or_ip)
+        ssh = self.get_remote_client(server_or_ip)
         conf = self.config
 
         def _func():