aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjuraj.linkes <juraj.linkes@pantheon.tech>2019-07-17 14:28:30 +0200
committerPeter Mikus <pmikus@cisco.com>2019-07-23 08:39:28 +0000
commitc79c748013ec53ff59e9260034822a5b26afa441 (patch)
treea41c87a91079fe1f8d54938102ef3a0ef9ff97fd
parent6e1de92cec9a0687ca82bcefaae3ef7dad5104b0 (diff)
Add support for aarch64 container images
Change-Id: I84f13d7139a6e5f7004426018c2d27425c5fa97e Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>
-rw-r--r--VPP_DEVICE_IMAGE_UBUNTU_ARM1
-rw-r--r--resources/libraries/bash/entry/bootstrap_verify_perf.sh2
-rwxr-xr-xresources/libraries/bash/entry/bootstrap_vpp_device.sh2
-rw-r--r--resources/libraries/bash/entry/per_patch_device.sh2
-rw-r--r--resources/libraries/bash/entry/per_patch_perf.sh2
-rw-r--r--resources/libraries/bash/function/common.sh16
-rw-r--r--resources/libraries/python/Constants.py3
-rw-r--r--resources/libraries/python/ContainerUtils.py13
8 files changed, 32 insertions, 9 deletions
diff --git a/VPP_DEVICE_IMAGE_UBUNTU_ARM b/VPP_DEVICE_IMAGE_UBUNTU_ARM
new file mode 100644
index 0000000000..c35e84ddfc
--- /dev/null
+++ b/VPP_DEVICE_IMAGE_UBUNTU_ARM
@@ -0,0 +1 @@
+snergster/csit-sut-arm-ubuntu18:latest
diff --git a/resources/libraries/bash/entry/bootstrap_verify_perf.sh b/resources/libraries/bash/entry/bootstrap_verify_perf.sh
index b9299b1422..bf7fa3519c 100644
--- a/resources/libraries/bash/entry/bootstrap_verify_perf.sh
+++ b/resources/libraries/bash/entry/bootstrap_verify_perf.sh
@@ -36,7 +36,7 @@ common_dirs || die
get_test_code "${1-}" || die
get_test_tag_string || die
select_topology || die
-select_os || die
+select_arch_os || die
gather_build || die
check_download_dir || die
activate_virtualenv || die
diff --git a/resources/libraries/bash/entry/bootstrap_vpp_device.sh b/resources/libraries/bash/entry/bootstrap_vpp_device.sh
index 209943fb89..4ac73e777f 100755
--- a/resources/libraries/bash/entry/bootstrap_vpp_device.sh
+++ b/resources/libraries/bash/entry/bootstrap_vpp_device.sh
@@ -35,7 +35,7 @@ common_dirs || die
get_test_code "${1-}" || die
get_test_tag_string || die
select_topology || die
-select_os || die
+select_arch_os || die
gather_build || die
check_download_dir || die
activate_virtualenv || die
diff --git a/resources/libraries/bash/entry/per_patch_device.sh b/resources/libraries/bash/entry/per_patch_device.sh
index ac2c4a4ac5..6624047862 100644
--- a/resources/libraries/bash/entry/per_patch_device.sh
+++ b/resources/libraries/bash/entry/per_patch_device.sh
@@ -45,7 +45,7 @@ get_test_code "${1-}" || die
get_test_tag_string || die
set_perpatch_dut || die
select_topology || die
-select_os || die
+select_arch_os || die
select_build "build_current" || die
check_download_dir || die
activate_virtualenv "${VPP_DIR}" || die
diff --git a/resources/libraries/bash/entry/per_patch_perf.sh b/resources/libraries/bash/entry/per_patch_perf.sh
index 195d1a70e0..ef75ea90ce 100644
--- a/resources/libraries/bash/entry/per_patch_perf.sh
+++ b/resources/libraries/bash/entry/per_patch_perf.sh
@@ -52,7 +52,7 @@ get_test_code "${1-}" || die
get_test_tag_string || die
set_perpatch_dut || die
select_topology || die
-select_os || die
+select_arch_os || die
activate_virtualenv "${VPP_DIR}" || die
generate_tests || die
archive_tests || die
diff --git a/resources/libraries/bash/function/common.sh b/resources/libraries/bash/function/common.sh
index 696fc71189..e576f99d8d 100644
--- a/resources/libraries/bash/function/common.sh
+++ b/resources/libraries/bash/function/common.sh
@@ -648,7 +648,7 @@ function run_pybot () {
}
-function select_os () {
+function select_arch_os () {
# Populate variables related to local operating system.
#
@@ -678,7 +678,19 @@ function select_os () {
PKG_SUFFIX="rpm"
;;
*)
- die "Unable to identify distro or os from ${OS}"
+ die "Unable to identify distro or os from ${os_id}"
+ ;;
+ esac
+
+ arch=$(uname -m) || {
+ die "Get CPU architecture failed."
+ }
+
+ case "${arch}" in
+ "aarch64")
+ IMAGE_VER_FILE="${IMAGE_VER_FILE}_ARM"
+ ;;
+ *)
;;
esac
}
diff --git a/resources/libraries/python/Constants.py b/resources/libraries/python/Constants.py
index ddff2b161c..0a252687a7 100644
--- a/resources/libraries/python/Constants.py
+++ b/resources/libraries/python/Constants.py
@@ -73,6 +73,9 @@ class Constants(object):
# Docker container SUT image
DOCKER_SUT_IMAGE_UBUNTU = 'snergster/csit-sut:latest'
+ # Docker container arm SUT image
+ DOCKER_SUT_IMAGE_UBUNTU_ARM = 'snergster/csit-sut-arm-ubuntu18:latest'
+
# TRex install version
TREX_INSTALL_VERSION = '2.54'
diff --git a/resources/libraries/python/ContainerUtils.py b/resources/libraries/python/ContainerUtils.py
index a324465eaf..363411c070 100644
--- a/resources/libraries/python/ContainerUtils.py
+++ b/resources/libraries/python/ContainerUtils.py
@@ -593,8 +593,12 @@ class LXC(ContainerEngine):
else:
return
+ target_arch = 'arm64' \
+ if Topology.get_node_arch(self.container.node) == 'aarch64' \
+ else 'amd64'
+
image = self.container.image if self.container.image else\
- "-d ubuntu -r bionic -a amd64"
+ "-d ubuntu -r bionic -a {arch}".format(arch=target_arch)
cmd = 'lxc-create -t download --name {c.name} -- {image} '\
'--no-validate'.format(c=self.container, image=image)
@@ -786,8 +790,10 @@ class Docker(ContainerEngine):
return
if not self.container.image:
- setattr(self.container, 'image',
- Constants.DOCKER_SUT_IMAGE_UBUNTU)
+ img = Constants.DOCKER_SUT_IMAGE_UBUNTU_ARM \
+ if Topology.get_node_arch(self.container.node) == 'aarch64' \
+ else Constants.DOCKER_SUT_IMAGE_UBUNTU
+ setattr(self.container, 'image', img)
cmd = 'docker pull {image}'.format(image=self.container.image)
@@ -795,6 +801,7 @@ class Docker(ContainerEngine):
if int(ret) != 0:
raise RuntimeError('Failed to create container {c.name}.'
.format(c=self.container))
+
if self.container.cpuset_cpus:
self._configure_cgroup('docker')