aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/python/QemuUtils.py
diff options
context:
space:
mode:
authorGabriel Ganne <gabriel.ganne@enea.com>2017-11-27 15:38:53 +0100
committerJan Gelety <jgelety@cisco.com>2018-01-10 15:42:43 +0100
commitc7eb2002bcd007520309feb3e11a26ff847a4e05 (patch)
tree84ea1d5513da1bb0f4e078aec87b44cf653a7e7c /resources/libraries/python/QemuUtils.py
parenta95c54b7821596402e0aa7136cd7d1de71a5b187 (diff)
add new topology parameter: arch
if unset, arch variable will default to "x86_64" * Note on "arm64" vs "aarch64" debian-based uses arm64 rhel-based uses aarch64 qemu binaries of both distribs uses aarch64 dpdk uses arm64 vpp uses aarch64 python machine modules uses aarch64 => prefer aarch64 to use the same nomenclature as vpp * add ARCH argument to: init_dpdk.sh, install_dpdk.sh, run_l2fwd.sh, install_tldk.sh, run_tldk.sh. default to x86_64 converts "aarch64" if needed for dpdk naming convention * fixed terminal end detection to allow "~]# " add dut node arch as param to all robot set bin calls * add --target-list flag to qemu_build.sh defaults to x86_64-softmmu * add arch flag to all the topology files * topologies/available/ (and example file) * resources/tools/virl/topologies/ * set _qemu_bin path using node['arch'] in qemu_set_node() Change-Id: If46d88d064d213d3e4c6fc584bb8e0d4b6428cb8 Signed-off-by: Gabriel Ganne <gabriel.ganne@enea.com>
Diffstat (limited to 'resources/libraries/python/QemuUtils.py')
-rw-r--r--resources/libraries/python/QemuUtils.py13
1 files changed, 9 insertions, 4 deletions
diff --git a/resources/libraries/python/QemuUtils.py b/resources/libraries/python/QemuUtils.py
index 428599be83..6426394bf4 100644
--- a/resources/libraries/python/QemuUtils.py
+++ b/resources/libraries/python/QemuUtils.py
@@ -20,7 +20,7 @@ from robot.api import logger
from resources.libraries.python.ssh import SSH, SSHTimeout
from resources.libraries.python.constants import Constants
-from resources.libraries.python.topology import NodeType
+from resources.libraries.python.topology import NodeType, Topology
class QemuUtils(object):
@@ -28,7 +28,7 @@ class QemuUtils(object):
def __init__(self, qemu_id=1):
self._qemu_id = qemu_id
- # Path to QEMU binary
+ # Path to QEMU binary. Use x86_64 by default
self._qemu_bin = '/usr/bin/qemu-system-x86_64'
# QEMU Machine Protocol socket
self._qmp_sock = '/tmp/qmp{0}.sock'.format(self._qemu_id)
@@ -188,6 +188,9 @@ class QemuUtils(object):
self._ssh.connect(node)
self._vm_info['host'] = node['host']
+ arch = Topology.get_node_arch(node)
+ self._qemu_bin = '/usr/bin/qemu-system-{0}'.format(arch)
+
def qemu_add_vhost_user_if(self, socket, server=True, mac=None):
"""Add Vhost-user interface.
@@ -677,12 +680,14 @@ class QemuUtils(object):
version = ' --version={0}'.format(Constants.QEMU_INSTALL_VERSION)
force = ' --force' if force_install else ''
patch = ' --patch' if apply_patch else ''
+ arch = Topology.get_node_arch(node)
+ target_list = ' --target-list={0}-softmmu'.format(arch)
(ret_code, stdout, stderr) = \
ssh.exec_command(
- "sudo -E sh -c '{0}/{1}/qemu_build.sh{2}{3}{4}{5}'"\
+ "sudo -E sh -c '{0}/{1}/qemu_build.sh{2}{3}{4}{5}{6}'"\
.format(Constants.REMOTE_FW_DIR, Constants.RESOURCES_LIB_SH,
- version, directory, force, patch), 1000)
+ version, directory, force, patch, target_list), 1000)
if int(ret_code) != 0:
logger.debug('QEMU build failed {0}'.format(stdout + stderr))