-##############################################################################\r
-# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.\r
-#\r
-# All rights reserved. This program and the accompanying materials\r
-# are made available under the terms of the Apache License, Version 2.0\r
-# which accompanies this distribution, and is available at\r
-# http://www.apache.org/licenses/LICENSE-2.0\r
-##############################################################################\r
-import pkg_resources\r
-import logging\r
-import json\r
-\r
-import yardstick.ssh as ssh\r
-from yardstick.benchmark.scenarios import base\r
-\r
-LOG = logging.getLogger(__name__)\r
-\r
-\r
-class NetworkCapacity(base.Scenario):\r
- """Measure Network capacity and scale.\r
-\r
- This scenario reads network status including number of connections,\r
- number of frames sent/received.\r
- """\r
- __scenario_type__ = "NetworkCapacity"\r
- TARGET_SCRIPT = "networkcapacity.bash"\r
-\r
- def __init__(self, scenario_cfg, context_cfg):\r
- self.scenario_cfg = scenario_cfg\r
- self.context_cfg = context_cfg\r
- self.setup_done = False\r
-\r
- def setup(self):\r
- """scenario setup"""\r
- self.target_script = pkg_resources.resource_filename(\r
- "yardstick.benchmark.scenarios.networking",\r
- NetworkCapacity.TARGET_SCRIPT)\r
-\r
- host = self.context_cfg['host']\r
- if host is None:\r
- raise RuntimeError('No right node.please check the configuration')\r
- host_user = host.get('user', 'ubuntu')\r
- host_ip = host.get('ip', None)\r
- host_pwd = host.get('password', None)\r
-\r
- LOG.debug("user:%s, host:%s", host_user, host_ip)\r
- self.client = ssh.SSH(host_user, host_ip, password=host_pwd)\r
- self.client.wait(timeout=600)\r
-\r
- # copy script to host\r
- self.client.run("cat > ~/networkcapacity.sh",\r
- stdin=open(self.target_script, 'rb'))\r
-\r
- self.setup_done = True\r
-\r
- def run(self, result):\r
- """execute the benchmark"""\r
-\r
- if not self.setup_done:\r
- self.setup()\r
-\r
- cmd = "sudo bash networkcapacity.sh"\r
-\r
- LOG.debug("Executing command: %s", cmd)\r
- status, stdout, stderr = self.client.execute(cmd)\r
- if status:\r
- raise RuntimeError(stderr)\r
-\r
- result.update(json.loads(stdout))\r
+##############################################################################
+# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+from __future__ import absolute_import
+
+import logging
+
+import pkg_resources
+from oslo_serialization import jsonutils
+
+import yardstick.ssh as ssh
+from yardstick.benchmark.scenarios import base
+
+LOG = logging.getLogger(__name__)
+
+
+class NetworkCapacity(base.Scenario):
+ """Measure Network capacity and scale.
+
+ This scenario reads network status including number of connections,
+ number of frames sent/received.
+ """
+ __scenario_type__ = "NetworkCapacity"
+ TARGET_SCRIPT = "networkcapacity.bash"
+
+ def __init__(self, scenario_cfg, context_cfg):
+ self.scenario_cfg = scenario_cfg
+ self.context_cfg = context_cfg
+ self.setup_done = False
+
+ def setup(self):
+ """scenario setup"""
+ self.target_script = pkg_resources.resource_filename(
+ "yardstick.benchmark.scenarios.networking",
+ NetworkCapacity.TARGET_SCRIPT)
+
+ host = self.context_cfg['host']
+ if host is None:
+ raise RuntimeError('No right node.please check the configuration')
+
+ self.client = ssh.SSH.from_node(host, defaults={"user": "ubuntu"})
+ self.client.wait(timeout=600)
+
+ # copy script to host
+ self.client._put_file_shell(self.target_script, '~/networkcapacity.sh')
+
+ self.setup_done = True
+
+ def run(self, result):
+ """execute the benchmark"""
+
+ if not self.setup_done:
+ self.setup()
+
+ cmd = "sudo bash networkcapacity.sh"
+
+ LOG.debug("Executing command: %s", cmd)
+ status, stdout, stderr = self.client.execute(cmd)
+ if status:
+ raise RuntimeError(stderr)
+
+ result.update(jsonutils.loads(stdout))