tree 772cfdd2c7bb151d056c20b153da5e61c5583f4b
parent ff956a6669ecd546de89d43d52771aade0f56896
author Elena Ezhova <eezhova@mirantis.com> 1393606030 +0400
committer Elena Ezhova <eezhova@mirantis.com> 1394103367 +0400

Fix RemoteClient usage in scenario tests

Some scenario tests use the following patter to work with RemoteClient:

   client = self.get_remote_client(ip,
                                   private_key=keypair.private_key)
   return client.ssh_client

ssh_client is directly accessed because exec_command method
is not directly available in RemoteClient

In order to preserve encapsulation, RemoteClient should be improved to
expose that method.

Change-Id: I054762d769d002b5fb45c871d85a8ca8ff294695
Closes-Bug: #1285539
