Stop using a forked obsolete repo 91/58391/1
authorCédric Ollivier <cedric.ollivier@orange.com>
Sat, 9 Jun 2018 08:53:41 +0000 (10:53 +0200)
committerCédric Ollivier <cedric.ollivier@orange.com>
Sat, 9 Jun 2018 15:38:15 +0000 (17:38 +0200)
It leverages on the official clearwater live test instead.
It now parses the output directly.

Conflicts:
    docker/vnf/Dockerfile

Change-Id: Ia7746c13362323daf72b3536d294401f0b7ae42f
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
(cherry picked from commit 0c55898253147b8fb6e5ef1afbf6f462a5b343b5)

docker/vnf/Dockerfile
functest/opnfv_tests/vnf/ims/clearwater_ims_base.py
functest/opnfv_tests/vnf/ims/cloudify_ims.py

index 37fe364..bd37990 100644 (file)
@@ -2,7 +2,8 @@ FROM opnfv/functest-core:fraser
 
 ARG BRANCH=stable/fraser
 ARG OPENSTACK_TAG=stable/pike
-ARG VIMS_TEST_TAG=stable
+ARG VIMS_TEST_TAG=release-129
+ARG QUAFF_TAG=a6d9a184f03af5d8831ca4631c98dee0de60441c
 ARG VIMS_TAG=fraser
 ARG VROUTER_TAG=fraser
 ARG JUJU_TAG=tags/juju-2.2.5
@@ -16,11 +17,14 @@ RUN apk --no-cache add --update \
         ruby ruby-bundler ruby-irb ruby-rdoc dnsmasq \
         procps libxslt libxml2 zlib libffi python3 go musl-dev && \
     apk --no-cache add --virtual .build-deps --update \
-        ruby-dev g++ make libxslt-dev libxml2-dev zlib-dev libffi-dev && \
+        ruby-dev g++ make libxslt-dev libxml2-dev zlib-dev libffi-dev g++ make && \
     wget -q -O- https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=$OPENSTACK_TAG | \
         sed -E s/^tempest==+\(.*\)$/-e\ git+https:\\/\\/github.com\\/openstack\\/tempest@\\1#egg=tempest/ | \
         > upper-constraints.txt && \
-    git clone --depth 1 -b $VIMS_TEST_TAG https://github.com/boucherv-orange/clearwater-live-test.git /src/vims-test && \
+    git clone --depth 1 -b $VIMS_TEST_TAG https://github.com/Metaswitch/clearwater-live-test /src/vims-test && \
+    git clone https://github.com/rkd91/quaff /src/vims-test/quaff && \
+    (cd /src/vims-test/quaff && git checkout $QUAFF_TAG) && \
+    git clone --depth 1 -b $VIMS_TEST_TAG https://github.com/Metaswitch/clearwater-build-infra /src/vims-test/build-infra && \
     git clone --depth 1 -b $VIMS_TAG https://github.com/Orange-OpenSource/opnfv-cloudify-clearwater.git /src/vims && \
     git clone --depth 1 -b $VROUTER_TAG https://github.com/oolorg/opnfv-vnf-vyos-blueprint.git /src/opnfv-vnf-vyos-blueprint && \
     git clone https://github.com/RebacaInc/abot_charm.git /src/epc-requirements/abot_charm && \
@@ -34,7 +38,8 @@ RUN apk --no-cache add --update \
     go install -v github.com/juju/juju/... && \
     rm -rf $GOPATH/go/src/ $GOPATH/pkg && \
     (cd /src/vims-test && bundle config build.nokogiri --use-system-libraries && bundle install --system) && \
-    rm -r upper-constraints.txt /src/vims-test/.git /src/vims/.git /src/opnfv-vnf-vyos-blueprint/.git \
+    rm -r upper-constraints.txt /src/vims-test/.git /src/vims/.git /src/vims-test/quaff/.git \
+        /src/vims-test/build-infra/.git /src/opnfv-vnf-vyos-blueprint/.git \
         /src/epc-requirements/abot_charm/.git && \
     apk del .build-deps
 COPY testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml
index 94915c8..ae01cfa 100644 (file)
@@ -6,9 +6,9 @@
 # which accompanies this distribution, and is available at
 #
 # http://www.apache.org/licenses/LICENSE-2.0
-import json
 import logging
 import os
+import re
 import shlex
 import shutil
 import subprocess
@@ -151,19 +151,18 @@ class ClearwaterOnBoardingBase(vnf.VnfOnBoarding):
         if result != "":
             self.logger.debug(result)
 
-        vims_test_result = ""
-        tempFile = os.path.join(self.test_dir, "temp.json")
+        vims_test_result = {}
         try:
-            self.logger.debug("Trying to load test results")
-            with open(tempFile) as f:
-                vims_test_result = json.load(f)
-            f.close()
+            grp = re.search(
+                '(\d+) failures out of (\d+) tests run\n.*?'
+                '(\d+) tests skipped', result)
+            assert grp
+            vims_test_result["failures"] = int(grp.group(1))
+            vims_test_result["total"] = int(grp.group(2))
+            vims_test_result["skipped"] = int(grp.group(3))
+            vims_test_result['passed'] = (
+                int(grp.group(2)) - int(grp.group(3)) - int(grp.group(1)))
         except Exception:  # pylint: disable=broad-except
-            self.logger.error("Unable to retrieve test results")
-
-        try:
-            os.remove(tempFile)
-        except Exception:  # pylint: disable=broad-except
-            self.logger.error("Deleting file failed")
-
+            self.logger.exception("Cannot parse live tests results")
+            return None
         return vims_test_result
index 6595494..711cd82 100644 (file)
@@ -387,24 +387,26 @@ class CloudifyIms(clearwater_ims_base.ClearwaterOnBoardingBase):
         if not dns_ip:
             return False
 
-        vims_test_result = self.run_clearwater_live_test(
+        short_result = self.run_clearwater_live_test(
             dns_ip=dns_ip,
             public_domain=self.vnf['inputs']["public_domain"])
         duration = time.time() - start_time
-        short_result, nb_test = sig_test_format(vims_test_result)
         self.__logger.info(short_result)
         self.details['test_vnf'].update(result=short_result,
-                                        full_result=vims_test_result,
                                         duration=duration)
         try:
-            vnf_test_rate = short_result['passed'] / nb_test
+            vnf_test_rate = short_result['passed'] / (
+                short_result['total'] - short_result['skipped'])
             # orchestrator + vnf + test_vnf
             self.result += vnf_test_rate / 3 * 100
         except ZeroDivisionError:
             self.__logger.error("No test has been executed")
             self.details['test_vnf'].update(status='FAIL')
             return False
-
+        except Exception:  # pylint: disable=broad-except
+            self.__logger.exception("Cannot calculate results")
+            self.details['test_vnf'].update(status='FAIL')
+            return False
         return True if vnf_test_rate > 0 else False
 
     def clean(self):
@@ -540,23 +542,3 @@ def _get_deployment_environment_creation_execution(client, deployment_id):
     raise RuntimeError('Failed to get create_deployment_environment '
                        'workflow execution.'
                        'Available executions: {0}'.format(executions))
-
-
-def sig_test_format(sig_test):
-    """Process the signaling result to have a short result."""
-    nb_passed = 0
-    nb_failures = 0
-    nb_skipped = 0
-    for data_test in sig_test:
-        if data_test['result'] == "Passed":
-            nb_passed += 1
-        elif data_test['result'] == "Failed":
-            nb_failures += 1
-        elif data_test['result'] == "Skipped":
-            nb_skipped += 1
-    short_sig_test_result = {}
-    short_sig_test_result['passed'] = nb_passed
-    short_sig_test_result['failures'] = nb_failures
-    short_sig_test_result['skipped'] = nb_skipped
-    nb_test = nb_passed + nb_skipped
-    return (short_sig_test_result, nb_test)