aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docker/cnf/Dockerfile8
-rw-r--r--functest_kubernetes/cnf_conformance/conformance.py19
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))