########################################
# Docker container for FUNCTEST
########################################
-# Purpose: run all the tests against the POD
-# from a pre-installed docker image
-#
-# Maintained by Jose Lausuch
-# Build:
-# $ docker build -t opnfv/functest:tag .
-#
-# Execution:
-# $ docker run -t -i \
-# -e "INSTALLER_TYPE=fuel|apex|compass|joid \
-# -e "INSTALLER_IP=10.20.0.2" \
-# -v $(pwd)/config_functest.yaml:/home/opnfv/repos/functest/functest/ci/config_functest.yaml
-# opnfv/functest /bin/bash
-#
-# NOTE: providing config_functest.yaml is optional. If not provided, it will
-# use the default one located in the repo
-#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# Environment variables
ARG BRANCH=master
-ARG TEMPEST_TAG=12.2.0
-ARG RALLY_TAG=0.7.0
-ARG ODL_TAG=release/beryllium-sr3
+ARG RALLY_TAG=0.8.1
+ARG TEMPEST_TAG=14.0.0
+ARG ODL_TAG=release/beryllium-sr4
ARG OPENSTACK_TAG=stable/mitaka
ARG KINGBIRD_TAG=0.2.2
ARG VIMS_TAG=stable
ARG FUNCTEST_RESULTS_DIR=${FUNCTEST_BASE_DIR}/results
ARG FUNCTEST_REPO_DIR=${REPOS_DIR}/functest
ARG FUNCTEST_TEST_DIR=${FUNCTEST_REPO_DIR}/functest/opnfv_tests
+ARG RELENG_MODULE_DIR=${REPOS_DIR}/releng/modules
+ARG REPOS_VNFS_DIR=${REPOS_DIR}/vnfs
# Environment variables
ENV HOME /home/opnfv
# Packaged dependencies
RUN apt-get update && apt-get install -y \
-ssh \
-sshpass \
+build-essential \
+bundler \
+crudini \
curl \
-git \
gcc \
-wget \
+git \
+libffi-dev \
+libgmp3-dev \
+libpq-dev \
+libssl-dev \
+libxml2-dev \
+libxslt-dev \
python-dev \
python-mock \
python-pip \
-bundler \
postgresql \
-build-essential \
-libpq-dev \
-libxslt-dev \
-libssl-dev \
-libgmp3-dev \
-libxml2-dev \
-libffi-dev \
-crudini \
ruby1.9.1-dev \
+ssh \
+sshpass \
+wget \
--no-install-recommends
RUN pip install --upgrade pip
RUN mkdir -p ${REPOS_DIR} \
+ && mkdir -p ${REPOS_VNFS_DIR} \
&& mkdir -p ${FUNCTEST_BASE_DIR}/results \
&& mkdir -p ${FUNCTEST_BASE_DIR}/conf \
&& mkdir -p /root/.ssh \
# OPNFV repositories
RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/functest ${REPOS_DIR}/functest
RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/copper ${REPOS_DIR}/copper
-RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/moon ${REPOS_DIR}/moon
RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/sdnvpn ${REPOS_DIR}/sdnvpn
RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/domino ${REPOS_DIR}/domino
RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/parser ${REPOS_DIR}/parser
# other repositories
RUN git clone --depth 1 -b $ODL_TAG https://git.opendaylight.org/gerrit/p/integration/test.git ${REPOS_DIR}/odl_test
-RUN git clone --depth 1 -b $VIMS_TAG https://github.com/boucherv-orange/clearwater-live-test ${REPOS_DIR}/vims-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 https://github.com/wuwenbin2/OnosSystemTest.git ${REPOS_DIR}/onos
+RUN pip install -r ${REPOS_DIR}/rally/requirements.txt
+RUN pip install -r ${REPOS_DIR}/tempest/requirements.txt
+
RUN cd ${FUNCTEST_REPO_DIR} \
&& pip install -r requirements.txt \
&& pip install .
-RUN pip install -r ${REPOS_DIR}/rally/requirements.txt
-RUN pip install -r ${REPOS_DIR}/tempest/requirements.txt
+RUN cd ${RELENG_MODULE_DIR} \
+ && pip install .
RUN find ${FUNCTEST_REPO_DIR} -name "*.py" \
- -not -path *unit_tests* |xargs grep __main__ |cut -d\: -f 1 |xargs chmod -c 755 \
+ -not -path "*tests/unit*" |xargs grep __main__ |cut -d\: -f 1 |xargs chmod -c 755 \
&& find ${FUNCTEST_REPO_DIR} -name "*.sh" |xargs grep \#\! |cut -d\: -f 1 |xargs chmod -c 755
RUN /bin/bash ${REPOS_DIR}/parser/tests/parser_install.sh ${REPOS_DIR}
RUN git clone --depth 1 https://gerrit.cablelabs.com/snaps-provisioning ${REPOS_DIR}/snaps
RUN pip install -e ${REPOS_DIR}/snaps/
-RUN /bin/bash -c ". ${REPOS_DIR}/sfc/tests/functest/odl-sfc/tacker_client_install.sh"
+# SFC integration
+RUN /bin/bash -c ". ${REPOS_DIR}/sfc/sfc/tests/functest/setup_scripts/tacker_client_install.sh"
+RUN cd ${REPOS_DIR}/sfc && pip install .
+
+# SDNVPN integration
+RUN cd ${REPOS_DIR}/sdnvpn && pip install .
+
RUN cd ${REPOS_DIR}/bgpvpn && pip install .
#RUN cd ${REPOS_DIR}/kingbird && pip install -e .
-RUN cd ${REPOS_DIR}/moon/moonclient/ && python setup.py install
RUN /bin/bash -c ". /etc/profile.d/rvm.sh \
- && cd ${REPOS_DIR}/vims-test \
+ && cd ${REPOS_VNFS_DIR}/vims-test \
&& rvm autolibs enable"
RUN /bin/bash -c ". /etc/profile.d/rvm.sh \
- && cd ${REPOS_DIR}/vims-test \
+ && cd ${REPOS_VNFS_DIR}/vims-test \
&& rvm install 1.9.3"
RUN /bin/bash -c ". /etc/profile.d/rvm.sh \
- && cd ${REPOS_DIR}/vims-test \
+ && cd ${REPOS_VNFS_DIR}/vims-test \
&& rvm use 1.9.3"
RUN /bin/bash -c ". /etc/profile.d/rvm.sh \
- && cd ${REPOS_DIR}/vims-test \
+ && cd ${REPOS_VNFS_DIR}/vims-test \
&& bundle install"
RUN sh -c 'curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -' \