aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Mikus <pmikus@cisco.com>2018-02-22 11:05:01 +0100
committerPeter Mikus <pmikus@cisco.com>2018-02-23 05:47:46 +0000
commit6b6b146d51013b58b8637db59d9f01d6e62c4332 (patch)
tree29dfcf620ac1a47ed18e326e2d18f35939c60355
parent1ef49b2e3ab7a08cbe17ae89f3e3e48fd14aee27 (diff)
FIX: Qemu path override
Currently there is bug that Qemu path is not correctly composed and cannot be properly overriden due to race condition in code. This patch is fixing functions to properly work with path. Change-Id: I276458d2d23c7a14441a4de4a56eff6431242ab9 Signed-off-by: Peter Mikus <pmikus@cisco.com>
-rw-r--r--resources/libraries/python/QemuUtils.py20
-rw-r--r--resources/libraries/robot/performance/performance_configuration.robot12
-rw-r--r--tests/vpp/perf/__init__.robot3
3 files changed, 19 insertions, 16 deletions
diff --git a/resources/libraries/python/QemuUtils.py b/resources/libraries/python/QemuUtils.py
index 6426394bf4..aa45ce08ef 100644
--- a/resources/libraries/python/QemuUtils.py
+++ b/resources/libraries/python/QemuUtils.py
@@ -29,7 +29,8 @@ class QemuUtils(object):
def __init__(self, qemu_id=1):
self._qemu_id = qemu_id
# Path to QEMU binary. Use x86_64 by default
- self._qemu_bin = '/usr/bin/qemu-system-x86_64'
+ self._qemu_path = '/usr/bin/'
+ self._qemu_bin = 'qemu-system-x86_64'
# QEMU Machine Protocol socket
self._qmp_sock = '/tmp/qmp{0}.sock'.format(self._qemu_id)
# QEMU Guest Agent socket
@@ -71,13 +72,13 @@ class QemuUtils(object):
self._node = None
self._socks = [self._qmp_sock, self._qga_sock]
- def qemu_set_bin(self, path):
+ def qemu_set_path(self, path):
"""Set binary path for QEMU.
:param path: Absolute path in filesystem.
:type path: str
"""
- self._qemu_bin = path
+ self._qemu_path = path
def qemu_set_smp(self, cpus, cores, threads, sockets):
"""Set SMP option for QEMU.
@@ -189,7 +190,7 @@ class QemuUtils(object):
self._vm_info['host'] = node['host']
arch = Topology.get_node_arch(node)
- self._qemu_bin = '/usr/bin/qemu-system-{0}'.format(arch)
+ self._qemu_bin = 'qemu-system-{arch}'.format(arch=arch)
def qemu_add_vhost_user_if(self, socket, server=True, mac=None):
"""Add Vhost-user interface.
@@ -518,6 +519,9 @@ class QemuUtils(object):
.. note:: First set at least node to run QEMU on.
.. warning:: Starts only one VM on the node.
"""
+ # Qemu binary path
+ bin_path = '{0}{1}'.format(self._qemu_path, self._qemu_bin)
+
# SSH forwarding
ssh_fwd = '-net user,hostfwd=tcp::{0}-:22'.format(
self._qemu_opt.get('ssh_fwd_port'))
@@ -548,10 +552,10 @@ class QemuUtils(object):
pid = '-pidfile {}'.format(self._pid_file)
# Run QEMU
- cmd = '{0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10}'.format(
- self._qemu_bin, self._qemu_opt.get('smp'), mem, ssh_fwd,
- self._qemu_opt.get('options'),
- drive, qmp, serial, qga, graphic, pid)
+ cmd = '{0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10}'.format(bin_path,
+ self._qemu_opt.get('smp'), mem, ssh_fwd,
+ self._qemu_opt.get('options'), drive, qmp, serial, qga, graphic,
+ pid)
try:
(ret_code, _, _) = self._ssh.exec_command_sudo(cmd, timeout=300)
if int(ret_code) != 0:
diff --git a/resources/libraries/robot/performance/performance_configuration.robot b/resources/libraries/robot/performance/performance_configuration.robot
index 52be3a26a8..641b808173 100644
--- a/resources/libraries/robot/performance/performance_configuration.robot
+++ b/resources/libraries/robot/performance/performance_configuration.robot
@@ -1457,7 +1457,7 @@
| | ... | ${True}
| | Run Keyword Unless | ${qemu_built} | ${vm_name}.Build QEMU | ${dut_node}
| | ... | force_install=${True} | apply_patch=${apply_patch}
-| | Run keyword | ${vm_name}.Qemu Set Bin | ${perf_qemu_bin}
+| | Run keyword | ${vm_name}.Qemu Set Path | ${perf_qemu_path}
| | Run keyword | ${vm_name}.Qemu Set Node | ${dut_node}
| | Run keyword | ${vm_name}.Qemu Set Smp | ${count} | ${count} | 1 | 1
| | Run keyword | ${vm_name}.Qemu Set Mem Size | 2048
@@ -1540,7 +1540,7 @@
| | ... | ${True}
| | Run Keyword Unless | ${qemu_built} | ${vm_name}.Build QEMU | ${dut_node}
| | ... | force_install=${True} | apply_patch=${apply_patch}
-| | Run keyword | ${vm_name}.Qemu Set Bin | ${perf_qemu_bin}
+| | Run keyword | ${vm_name}.Qemu Set Path | ${perf_qemu_path}
| | Run keyword | ${vm_name}.Qemu Set Node | ${dut_node}
| | Run keyword | ${vm_name}.Qemu Set Smp | ${count} | ${count} | 1 | 1
| | Run keyword | ${vm_name}.Qemu Set Mem Size | 2048
@@ -1605,7 +1605,7 @@
| | ... | ${True}
| | Run Keyword Unless | ${qemu_built} | ${vm_name}.Build QEMU | ${dut_node}
| | ... | force_install=${True} | apply_patch=${apply_patch}
-| | Run keyword | ${vm_name}.Qemu Set Bin | ${perf_qemu_bin}
+| | Run keyword | ${vm_name}.Qemu Set Path | ${perf_qemu_path}
| | Run keyword | ${vm_name}.Qemu Set Node | ${dut_node}
| | Run keyword | ${vm_name}.Qemu Set Smp | ${count} | ${count} | 1 | 1
| | Run keyword | ${vm_name}.Qemu Set Mem Size | 2048
@@ -1698,7 +1698,7 @@
| | ... | ${True}
| | Run Keyword Unless | ${qemu_built} | ${vm_name}.Build QEMU | ${dut_node}
| | ... | force_install=${True} | apply_patch=${apply_patch}
-| | Run keyword | ${vm_name}.Qemu Set Bin | ${perf_qemu_bin}
+| | Run keyword | ${vm_name}.Qemu Set Path | ${perf_qemu_path}
| | Run keyword | ${vm_name}.Qemu Set Node | ${dut_node}
| | Run keyword | ${vm_name}.Qemu Set Smp | ${count} | ${count} | 1 | 1
| | Run keyword | ${vm_name}.Qemu Set Mem Size | 2048
@@ -1746,7 +1746,7 @@
| | ... | ${True}
| | Run Keyword Unless | ${qemu_built} | ${vm_name}.Build QEMU | ${dut_node}
| | ... | force_install=${True} | apply_patch=${apply_patch}
-| | Run keyword | ${vm_name}.Qemu Set Bin | ${perf_qemu_bin}
+| | Run keyword | ${vm_name}.Qemu Set Path | ${perf_qemu_path}
| | Run keyword | ${vm_name}.Qemu Set Node | ${dut_node}
| | Run keyword | ${vm_name}.Qemu Set Smp | ${count} | ${count} | 1 | 1
| | Run keyword | ${vm_name}.Qemu Set Mem Size | 2048
@@ -1796,7 +1796,7 @@
| | ... | ${True}
| | Run Keyword Unless | ${qemu_built} | ${vm_name}.Build QEMU | ${dut_node}
| | ... | force_install=${True} | apply_patch=${apply_patch}
-| | Run keyword | ${vm_name}.Qemu Set Bin | ${perf_qemu_bin}
+| | Run keyword | ${vm_name}.Qemu Set Path | ${perf_qemu_path}
| | Run keyword | ${vm_name}.Qemu Set Node | ${dut_node}
| | Run keyword | ${vm_name}.Qemu Set Smp | ${count} | ${count} | 1 | 1
| | Run keyword | ${vm_name}.Qemu Set Mem Size | 2048
diff --git a/tests/vpp/perf/__init__.robot b/tests/vpp/perf/__init__.robot
index 9b65b05460..a50c1fd83f 100644
--- a/tests/vpp/perf/__init__.robot
+++ b/tests/vpp/perf/__init__.robot
@@ -45,8 +45,7 @@
| | Set Global Variable | ${perf_pdr_loss_acceptance} | 0.5
| | Set Global Variable | ${perf_pdr_loss_acceptance_type} | percentage
| | Set Global Variable | ${perf_vm_image} | /var/lib/vm/csit-nested-1.7.img
-| | Set Global Variable | ${perf_qemu_bin}
-| | ... | /opt/qemu-2.5.0/bin/qemu-system-x86_64
+| | Set Global Variable | ${perf_qemu_path} | /opt/qemu-2.5.0/bin/
| | Set Global Variable | ${perf_qemu_qsz} | 1024
| | Set Global Variable | ${use_tuned_cfs} | ${False}
| | Set Global Variable | ${qemu_built} | ${False}