Integrate cloudify_ims in functest-features
authorCédric Ollivier <cedric.ollivier@orange.com>
Mon, 7 Aug 2017 18:27:29 +0000 (20:27 +0200)
committerCédric Ollivier <cedric.ollivier@orange.com>
Fri, 18 Aug 2017 12:46:32 +0000 (14:46 +0200)
We only rely on system libraries in case of Alpine.
It's not possible in case of Ubuntu 14.04 because libxml is too old.

Change-Id: I304f8ea5e9a6541e9719210db9d07949107bf193
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
docker/Dockerfile
docker/vnf/Dockerfile [new file with mode: 0644]
docker/vnf/hooks/post_checkout [new file with mode: 0644]
docker/vnf/testcases.yaml [new file with mode: 0644]
functest/ci/config_functest.yaml
functest/opnfv_tests/vnf/ims/clearwater_ims_base.py

index 910be83..8173bea 100644 (file)
@@ -52,7 +52,9 @@ python-dev \
 python-mock \
 python-pip \
 postgresql \
-ruby1.9.1-dev \
+ruby \
+ruby-dev \
+ruby-bundler \
 ssh \
 sshpass \
 wget \
@@ -90,13 +92,10 @@ RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/fds /src/fds
 
 # other repositories
 RUN git clone --depth 1 -b $ODL_TAG https://git.opendaylight.org/gerrit/p/integration/test.git /src/odl_test
-RUN git clone --depth 1 -b $VIMS_TAG https://github.com/boucherv-orange/clearwater-live-test ${REPOS_VNFS_DIR}/vims-test
+RUN git clone --depth 1 -b $VIMS_TAG https://github.com/boucherv-orange/clearwater-live-test /src/vims-test
 RUN git clone --depth 1 -b $VROUTER_TAG https://github.com/oolorg/opnfv-functest-vrouter.git ${REPOS_VNFS_DIR}/vrouter
 RUN git clone --depth 1 https://github.com/wuwenbin2/OnosSystemTest.git ${REPOS_DIR}/onos
 
-RUN gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
-RUN curl -L https://get.rvm.io | bash -s stable
-
 # SFC integration
 RUN /bin/bash -c ". /usr/local/lib/python2.7/dist-packages/sfc/tests/functest/setup_scripts/tacker_client_install.sh"
 
@@ -104,18 +103,7 @@ RUN /bin/bash -c ". /usr/local/lib/python2.7/dist-packages/sfc/tests/functest/se
 RUN ln -s /src/tempest /src/refstack-client/.tempest \
     && virtualenv --system-site-packages /src/tempest/.venv
 
-RUN /bin/bash -c ". /etc/profile.d/rvm.sh \
-    && cd ${REPOS_VNFS_DIR}/vims-test \
-    && rvm autolibs enable"
-RUN /bin/bash -c ". /etc/profile.d/rvm.sh \
-    && cd ${REPOS_VNFS_DIR}/vims-test \
-    && rvm install 1.9.3"
-RUN /bin/bash -c ". /etc/profile.d/rvm.sh \
-    && cd ${REPOS_VNFS_DIR}/vims-test \
-    && rvm use 1.9.3"
-RUN /bin/bash -c ". /etc/profile.d/rvm.sh \
-    && cd ${REPOS_VNFS_DIR}/vims-test \
-    && bundle install"
+RUN cd /src/vims-test && bundle install
 
 RUN sh -c 'curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -' \
     && sudo apt-get install -y nodejs \
diff --git a/docker/vnf/Dockerfile b/docker/vnf/Dockerfile
new file mode 100644 (file)
index 0000000..70c13ab
--- /dev/null
@@ -0,0 +1,12 @@
+FROM opnfv/functest-core
+
+ARG VIMS_TAG=stable
+
+RUN apk --no-cache add --update \
+        ruby ruby-dev ruby-bundler ruby-irb ruby-rdoc \
+        procps git g++ make libxslt-dev libxml2-dev zlib-dev libffi-dev && \
+    git clone --depth 1 -b $VIMS_TAG https://github.com/boucherv-orange/clearwater-live-test /src/vims-test && \
+    rm -r /src/vims-test/.git && \
+    cd /src/vims-test && bundle config build.nokogiri --use-system-libraries && bundle install --system
+COPY testcases.yaml /usr/lib/python2.7/site-packages/functest/ci/testcases.yaml
+CMD ["bash","-c","prepare_env start && run_tests -t all"]
diff --git a/docker/vnf/hooks/post_checkout b/docker/vnf/hooks/post_checkout
new file mode 100644 (file)
index 0000000..20a6d4b
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+from="${DOCKER_REPO%/*}/functest-core"
+sed -i "s|^FROM.*$|FROM ${from}|" Dockerfile
+
+exit $?
diff --git a/docker/vnf/testcases.yaml b/docker/vnf/testcases.yaml
new file mode 100644 (file)
index 0000000..4e05c21
--- /dev/null
@@ -0,0 +1,22 @@
+tiers:
+    -
+        name: vnf
+        order: 4
+        ci_loop: 'daily'
+        description : >-
+            Collection of VNF test cases.
+        testcases:
+            -
+                case_name: cloudify_ims
+                project_name: functest
+                criteria: 100
+                blocking: false
+                description: >-
+                    This test case deploys an OpenSource vIMS solution from Clearwater
+                    using the Cloudify orchestrator. It also runs some signaling traffic.
+                dependencies:
+                    installer: ''
+                    scenario: 'os-nosdn-nofeature-ha'
+                run:
+                    module: 'functest.opnfv_tests.vnf.ims.cloudify_ims'
+                    class: 'CloudifyIms'
index 679140f..e2569eb 100644 (file)
@@ -5,7 +5,7 @@ general:
         dir_repo_rally:     /home/opnfv/repos/rally
         repo_tempest:       /src/tempest
         dir_repo_releng:    /home/opnfv/repos/releng
-        repo_vims_test:     /home/opnfv/repos/vnfs/vims-test
+        repo_vims_test:     /src/vims-test
         repo_onos:          /home/opnfv/repos/onos
         repo_barometer:     /home/opnfv/repos/barometer
         repo_doctor:        /home/opnfv/repos/doctor
index 5a5c12b..1c3f69c 100644 (file)
@@ -117,7 +117,6 @@ class ClearwaterOnBoardingBase(vnf.VnfOnBoarding):
         dns_file_bak = '/etc/resolv.conf.bak'
         shutil.copy(dns_file, dns_file_bak)
         script = ('echo -e "nameserver {0}{1}" > {2};'
-                  'source /etc/profile.d/rvm.sh;'
                   'cd {3};'
                   'rake test[{4}] SIGNUP_CODE={5}'
                   .format(dns_ip,