ping: don't split if target_vm is a dict
[yardstick.git] / yardstick / benchmark / scenarios / networking / ping.py
index b41aa0d..a929e53 100644 (file)
@@ -9,6 +9,8 @@
 
 # ping scenario
 
+from __future__ import print_function
+from __future__ import absolute_import
 import pkg_resources
 import logging
 
@@ -38,24 +40,10 @@ class Ping(base.Scenario):
         self.target_script = pkg_resources.resource_filename(
             'yardstick.benchmark.scenarios.networking', Ping.TARGET_SCRIPT)
         host = self.context_cfg['host']
-        user = host.get('user', 'ubuntu')
-        ssh_port = host.get("ssh_port", ssh.DEFAULT_PORT)
-        ip = host.get('ip', None)
-        key_filename = host.get('key_filename', '/root/.ssh/id_rsa')
-        password = host.get('password', None)
-
-        if password is not None:
-            LOG.info("Log in via pw, user:%s, host:%s, pw:%s",
-                     user, ip, password)
-            self.connection = ssh.SSH(user, ip, password=password,
-                                      port=ssh_port)
-        else:
-            LOG.info("Log in via key, user:%s, host:%s, key_filename:%s",
-                     user, ip, key_filename)
-            self.connection = ssh.SSH(user, ip, key_filename=key_filename,
-                                      port=ssh_port)
 
-        self.connection.wait()
+        self.connection = ssh.SSH.from_node(host, defaults={"user": "ubuntu"})
+
+        self.connection.wait(timeout=600)
 
     def run(self, result):
         """execute the benchmark"""
@@ -88,7 +76,10 @@ class Ping(base.Scenario):
                 raise RuntimeError(stderr)
 
             if stdout:
-                target_vm_name = target_vm.split('.')[0]
+                if isinstance(target_vm, dict):
+                    target_vm_name = target_vm.get("name")
+                else:
+                    target_vm_name = target_vm.split('.')[0]
                 rtt_result[target_vm_name] = float(stdout)
                 if "sla" in self.scenario_cfg:
                     sla_max_rtt = int(self.scenario_cfg["sla"]["max_rtt"])
@@ -100,7 +91,7 @@ class Ping(base.Scenario):
 
 
 def _test():    # pragma: no cover
-    '''internal test function'''
+    """internal test function"""
     key_filename = pkg_resources.resource_filename("yardstick.resources",
                                                    "files/yardstick_key")
     ctx = {
@@ -122,7 +113,8 @@ def _test():    # pragma: no cover
 
     p = Ping(args, ctx)
     p.run(result)
-    print result
+    print(result)
+
 
 if __name__ == '__main__':    # pragma: no cover
     _test()