KVMFORNFV:Passing breaktrace option to cyclictest.
[yardstick.git] / yardstick / benchmark / scenarios / compute / cachestat.py
index da4aa75..b4c3463 100644 (file)
@@ -9,18 +9,20 @@
 
 """cache hit/miss ratio and usage statistics"""
 
+from __future__ import absolute_import
 import pkg_resources
 import logging
 import re
 import yardstick.ssh as ssh
 
 from yardstick.benchmark.scenarios import base
+from six.moves import zip
 
 LOG = logging.getLogger(__name__)
 
 
 class CACHEstat(base.Scenario):
-    '''Collect cache statistics.
+    """Collect cache statistics.
 
     This scenario reads system cache hit/miss ratio and other statistics on
     a Linux host.
@@ -56,7 +58,7 @@ class CACHEstat(base.Scenario):
     some error margin depending on unusual workload types.
 
     REQUIREMENTS: CONFIG_FUNCTION_PROFILER, awk.
-    '''
+    """
     __scenario_type__ = "CACHEstat"
 
     TARGET_SCRIPT = "cache_stat.bash"
@@ -75,22 +77,23 @@ class CACHEstat(base.Scenario):
 
         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', '~/.ssh/id_rsa')
 
         LOG.info("user:%s, host:%s", user, ip)
-        self.client = ssh.SSH(user, ip, key_filename=key_filename)
+        self.client = ssh.SSH(user, ip, key_filename=key_filename,
+                              port=ssh_port)
         self.client.wait(timeout=600)
 
         # copy scripts to host
-        self.client.run("cat > ~/cache_stat.sh",
-                        stdin=open(self.target_script, 'rb'))
+        self.client._put_file_shell(self.target_script, '~/cache_stat.sh')
 
         self.setup_done = True
 
     def _execute_command(self, cmd):
         """Execute a command on server."""
-        LOG.info("Executing: %s" % cmd)
+        LOG.info("Executing: %s", cmd)
         status, stdout, stderr = self.client.execute(cmd)
         if status:
             raise RuntimeError("Failed executing command: ",
@@ -119,7 +122,7 @@ class CACHEstat(base.Scenario):
                 ite += 1
                 values = line[:]
                 if values and len(values) == len(fields):
-                    cachestat[cache] = dict(zip(fields, values))
+                    cachestat[cache] = dict(list(zip(fields, values)))
 
         for entry in cachestat:
             for item in average: