From 65dd04abf7774a8a2bc411b686c09b695fa6eff9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?C=C3=A9dric=20Ollivier?= Date: Fri, 4 Sep 2020 21:24:55 +0200 Subject: [PATCH] Allow skipping arm and arm64 if cnf-conformance MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit cnf-conformance doesn't support this architectures. It also improve cleaning to publish artifacts [1]. [1] https://build.opnfv.org/ci/job/functest-kubernetes-opnfv-functest-kubernetes-cnf-latest-cnf_conformance-run/2/console Change-Id: Ie64e4a1b8b496a050a1798eaf4e5ef6397c011d0 Signed-off-by: Cédric Ollivier (cherry picked from commit 2cf6903c9a805b9c1b7702292bdf33b9485be319) --- docker/cnf/Dockerfile | 8 +++++--- functest_kubernetes/cnf_conformance/conformance.py | 19 ++++++++++++++++--- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/docker/cnf/Dockerfile b/docker/cnf/Dockerfile index 46c97c5b..1cd74ab4 100644 --- a/docker/cnf/Dockerfile +++ b/docker/cnf/Dockerfile @@ -7,9 +7,11 @@ RUN apk --no-cache add --update wget curl libc6-compat && \ case $(uname -m) in armv7l) ARCH=arm;; aarch64) ARCH=arm64;; x86_64) ARCH=amd64;; esac && \ curl https://storage.googleapis.com/kubernetes-release/release/$K8S_TAG/bin/linux/$ARCH/kubectl \ -s --output /usr/local/bin/kubectl && \ - curl https://github.com/cncf/cnf-conformance/releases/download/$CNF_CONFORMANCE_TAG/cnf-conformance-$(echo $CNF_CONFORMANCE_TAG |cut -d\- -f 1)-$ARCH-static \ - -Ls --output /usr/local/bin/cnf-conformance && \ - chmod +x /usr/local/bin/kubectl /usr/local/bin/cnf-conformance && \ + case $(uname -m) in x86_64) \ + curl https://github.com/cncf/cnf-conformance/releases/download/$CNF_CONFORMANCE_TAG/cnf-conformance-$(echo $CNF_CONFORMANCE_TAG |cut -d\- -f 1)-$ARCH-static \ + -Ls --output /usr/local/bin/cnf-conformance && \ + chmod +x /usr/local/bin/cnf-conformance ;; esac && \ + chmod +x /usr/local/bin/kubectl && \ mkdir -p /src/cnf-conformance && \ curl -Ls https://raw.githubusercontent.com/cncf/cnf-conformance/$CNF_CONFORMANCE_TAG/example-cnfs/coredns/cnf-conformance.yml \ -s --output /src/cnf-conformance/cnf-conformance.yml && \ diff --git a/functest_kubernetes/cnf_conformance/conformance.py b/functest_kubernetes/cnf_conformance/conformance.py index 1f80f15c..5aff8aad 100644 --- a/functest_kubernetes/cnf_conformance/conformance.py +++ b/functest_kubernetes/cnf_conformance/conformance.py @@ -42,10 +42,19 @@ class CNFConformance(testcase.TestCase): __logger = logging.getLogger(__name__) + def check_requirements(self): + """Check if cnf-conformance is in $PATH""" + if not os.path.exists(os.path.join(self.bin_dir, 'cnf-conformance')): + self.__logger.warning( + "cnf-conformance is not compiled for arm and arm64 for the " + "time being") + self.is_skipped = True + def setup(self): """Implement initialization and pre-reqs steps""" - os.makedirs(self.res_dir, exist_ok=True) - + if os.path.exists(self.res_dir): + shutil.rmtree(self.res_dir) + os.makedirs(self.res_dir) shutil.copy2(os.path.join(self.src_dir, 'points.yml'), self.res_dir) shutil.copy2( os.path.join(self.src_dir, 'cnf-conformance.yml'), self.res_dir) @@ -101,4 +110,8 @@ class CNFConformance(testcase.TestCase): 'cnf-config=cnf-conformance.yml'] output = subprocess.check_output(cmd, stderr=subprocess.STDOUT) self.__logger.info("%s\n%s", " ".join(cmd), output.decode("utf-8")) - shutil.rmtree(self.res_dir) + shutil.rmtree(os.path.join(self.res_dir, 'tools'), ignore_errors=True) + shutil.rmtree(os.path.join(self.res_dir, 'cnfs'), ignore_errors=True) + for lfile in os.listdir(self.res_dir): + if not fnmatch.fnmatch(lfile, 'cnf-conformance-results-*.yml'): + os.remove(os.path.join(self.res_dir, lfile)) -- 2.16.6