diff options
author | Fatih Degirmenci <fdegir@gmail.com> | 2018-08-31 10:52:00 +0200 |
---|---|---|
committer | Fatih Degirmenci <fdegir@gmail.com> | 2018-09-03 09:42:25 +0000 |
commit | 92afad5981d84cec20359551209c50a5f6755cb9 (patch) | |
tree | fba4b57c5084c85c8c66fef4208d7080b8553ea4 | |
parent | fb2cbfce4e9a1ea6e60aa2a361e02fdb189042a2 (diff) |
Rename functest-prepare role to prepare-tests
This change renames functest prepare-tole to prepare tests and makes other
adjustments to the role to move common test preparation steps to its own
script so we can prepare for Functest and Yardstick at one go.
Similar things are required to be prepared for running Functest and Yardstick
such as
- installed packages
- external network creation
- creation of run-functest.sh and run-yardstick scripts from templates
- preparation of environment variables
This change will fail verification until the changes below is submitted.
https://gerrit.opnfv.org/gerrit/#/c/61645/
Change-Id: Id1020d3e61abd3f087863c06a132c5021339d655
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
-rw-r--r-- | xci/playbooks/prepare-tests.yml (renamed from xci/playbooks/prepare-functest.yml) | 4 | ||||
-rw-r--r-- | xci/playbooks/roles/prepare-tests/defaults/main.yml (renamed from xci/playbooks/roles/prepare-functest/defaults/main.yml) | 0 | ||||
-rw-r--r-- | xci/playbooks/roles/prepare-tests/tasks/main.yml (renamed from xci/playbooks/roles/prepare-functest/tasks/main.yml) | 22 | ||||
-rw-r--r-- | xci/playbooks/roles/prepare-tests/templates/env.j2 (renamed from xci/playbooks/roles/prepare-functest/templates/env.j2) | 0 | ||||
-rw-r--r-- | xci/playbooks/roles/prepare-tests/templates/prepare-tests.sh.j2 | 46 | ||||
-rw-r--r-- | xci/playbooks/roles/prepare-tests/templates/run-functest.sh.j2 (renamed from xci/playbooks/roles/prepare-functest/templates/run-functest.sh.j2) | 45 | ||||
-rw-r--r-- | xci/playbooks/roles/prepare-tests/vars/main.yml (renamed from xci/playbooks/roles/prepare-functest/vars/main.yml) | 4 |
7 files changed, 67 insertions, 54 deletions
diff --git a/xci/playbooks/prepare-functest.yml b/xci/playbooks/prepare-tests.yml index a4cb664b..1a1935aa 100644 --- a/xci/playbooks/prepare-functest.yml +++ b/xci/playbooks/prepare-tests.yml @@ -13,11 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -- name: Prepare the environment for functest +- name: Prepare the environment for testing hosts: opnfv user: root vars_files: - ../var/opnfv.yml - ../installer/osa/files/openstack_services.yml roles: - - role: "prepare-functest" + - role: "prepare-tests" diff --git a/xci/playbooks/roles/prepare-functest/defaults/main.yml b/xci/playbooks/roles/prepare-tests/defaults/main.yml index a3638302..a3638302 100644 --- a/xci/playbooks/roles/prepare-functest/defaults/main.yml +++ b/xci/playbooks/roles/prepare-tests/defaults/main.yml diff --git a/xci/playbooks/roles/prepare-functest/tasks/main.yml b/xci/playbooks/roles/prepare-tests/tasks/main.yml index c29baca9..b75965df 100644 --- a/xci/playbooks/roles/prepare-functest/tasks/main.yml +++ b/xci/playbooks/roles/prepare-tests/tasks/main.yml @@ -8,25 +8,25 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -- name: install functest required packages +- name: install required packages package: - name: "{{ functest_required_packages[ansible_pkg_mgr] }}" + name: "{{ required_packages[ansible_pkg_mgr] }}" state: present -# Docker is needed for functest +# Docker is needed for test frameworks - name: Ensure Docker service is started and enabled service: name: docker state: started enabled: yes -- name: install functest required pip packages +- name: install required pip packages pip: - name: "{{ functest_required_pip }}" + name: "{{ required_pip }}" state: present extra_args: '-c https://raw.githubusercontent.com/openstack/requirements/{{ requirements_git_install_branch }}/upper-constraints.txt' -- name: create public network gateway for functest +- name: create public network gateway for testing block: - name: check if the gateway was already set shell: "ip a | grep {{ gateway_ip }}" @@ -40,13 +40,19 @@ when: gateway_ip_result|failed when: deploy_scenario is match("os-.*") -- name: prepare environment file for functest +- name: prepare environment file for tests template: src: env.j2 dest: /root/env mode: 0755 -- name: prepare the script to create networks and run functest +- name: create the script to prepare for testing + template: + src: prepare-tests.sh.j2 + dest: /root/prepare-tests.sh + mode: 0755 + +- name: create the script to run functest template: src: run-functest.sh.j2 dest: /root/run-functest.sh diff --git a/xci/playbooks/roles/prepare-functest/templates/env.j2 b/xci/playbooks/roles/prepare-tests/templates/env.j2 index d9a3bf32..d9a3bf32 100644 --- a/xci/playbooks/roles/prepare-functest/templates/env.j2 +++ b/xci/playbooks/roles/prepare-tests/templates/env.j2 diff --git a/xci/playbooks/roles/prepare-tests/templates/prepare-tests.sh.j2 b/xci/playbooks/roles/prepare-tests/templates/prepare-tests.sh.j2 new file mode 100644 index 00000000..afc1cbbe --- /dev/null +++ b/xci/playbooks/roles/prepare-tests/templates/prepare-tests.sh.j2 @@ -0,0 +1,46 @@ +#!/bin/bash + +# Variables that we need to pass from XCI to testing +XCI_ENV=(INSTALLER_TYPE XCI_FLAVOR OPENSTACK_OSA_VERSION CI_LOOP BUILD_TAG NODE_NAME FUNCTEST_MODE FUNCTEST_SUITE_NAME) + +# Extract variables from xci.env file +if [[ -e /root/xci.env ]]; then + for x in ${XCI_ENV[@]}; do + grep "^${x}=" /root/xci.env >> /root/env + done + # Parse the XCI's DEPLOY_SCENARIO and XCI_FLAVOR variables and + # set the functest container's DEPLOY_SCENARIO variable in the + # following format <scenario>-<flavor>. But the XCI's mini flavor + # is converted into noha. + DEPLOY_SCENARIO=`grep -Po '(?<=DEPLOY_SCENARIO=).*' /root/xci.env` + XCI_FLAVOR=`grep -Po '(?<=XCI_FLAVOR=).*' /root/xci.env` + XCI_FLAVOR=${XCI_FLAVOR/mini/noha} + echo "DEPLOY_SCENARIO=$DEPLOY_SCENARIO-$XCI_FLAVOR" >> /root/env +fi + +# we need to ensure the necessary environment variables are sourced +source /root/env + +{% if 'os-' in deploy_scenario %} +{# stuff needed for OpenStack based scenarios #} +source /root/openrc + +openstack --insecure network create --external \ + --provider-physical-network flat \ + --provider-network-type flat {{ external_network }} + +openstack --insecure subnet create --network {{ external_network }} \ + --allocation-pool {{ allocation_pool }} \ + --subnet-range {{ subnet_cidr }} --gateway {{ gateway_ip }} \ + --no-dhcp {{ subnet_name }} +{% else %} +{# stuff needed for Kubernetes based scenarios #} +# Create k8s.creds file for testing +KUBE_MASTER_URL=$(grep -r server ~/.kube/config | awk '{print $2}') +KUBE_MASTER_IP=$(echo $KUBE_MASTER_URL | awk -F "[:/]" '{print $4}') +cat << EOF > ~/k8s.creds +KUBERNETES_PROVIDER=local +KUBE_MASTER_URL=$KUBE_MASTER_URL +KUBE_MASTER_IP=$KUBE_MASTER_IP +EOF +{% endif %} diff --git a/xci/playbooks/roles/prepare-functest/templates/run-functest.sh.j2 b/xci/playbooks/roles/prepare-tests/templates/run-functest.sh.j2 index 5c6f0168..acd19d19 100644 --- a/xci/playbooks/roles/prepare-functest/templates/run-functest.sh.j2 +++ b/xci/playbooks/roles/prepare-tests/templates/run-functest.sh.j2 @@ -1,25 +1,7 @@ #!/bin/bash -# Variables that we need to pass from XCI to functest -XCI_ENV=(INSTALLER_TYPE XCI_FLAVOR OPENSTACK_OSA_VERSION CI_LOOP BUILD_TAG NODE_NAME FUNCTEST_MODE FUNCTEST_SUITE_NAME OPNFV_FUNCTEST_HEALTHCHECK_DOCKER_IMAGE_DIGEST) - # Create directory to store functest logs -mkdir -p ~/results/ - -# Extract variables from xci.env file -if [[ -e /root/xci.env ]]; then - for x in ${XCI_ENV[@]}; do - grep "^${x}=" /root/xci.env >> /root/env - done - # Parse the XCI's DEPLOY_SCENARIO and XCI_FLAVOR variables and - # set the functest container's DEPLOY_SCENARIO variable in the - # following format <scenario>-<flavor>. But the XCI's mini flavor - # is converted into noha. - DEPLOY_SCENARIO=`grep -Po '(?<=DEPLOY_SCENARIO=).*' /root/xci.env` - XCI_FLAVOR=`grep -Po '(?<=XCI_FLAVOR=).*' /root/xci.env` - XCI_FLAVOR=${XCI_FLAVOR/mini/noha} - echo "DEPLOY_SCENARIO=$DEPLOY_SCENARIO-$XCI_FLAVOR" >> /root/env -fi +mkdir -p /root/functest-results/ # Dump the env file echo "------------------------------------------------------" @@ -32,17 +14,6 @@ source /root/env {% if 'os-' in deploy_scenario %} {# stuff needed for OpenStack based scenarios #} -source /root/openrc - -openstack --insecure network create --external \ - --provider-physical-network flat \ - --provider-network-type flat {{ external_network }} - -openstack --insecure subnet create --network {{ external_network }} \ - --allocation-pool {{ allocation_pool }} \ - --subnet-range {{ subnet_cidr }} --gateway {{ gateway_ip }} \ - --no-dhcp {{ subnet_name }} - # the needed images differ between the suites so avoid downloading unnecessary images echo "Downloading the images needed for functest-$FUNCTEST_SUITE_NAME" mkdir ~/images && cd ~/images @@ -66,26 +37,16 @@ DOCKER_IMAGE_NAME="ollivier/functest-${FUNCTEST_SUITE_NAME}" sudo docker run --env-file env \ -v $(pwd)/openrc:/home/opnfv/functest/conf/env_file \ -v $(pwd)/images:/home/opnfv/functest/images \ - -v $(pwd)/results:/home/opnfv/functest/results \ + -v $(pwd)/functest-results:/home/opnfv/functest/results \ ${DOCKER_IMAGE_NAME} {% else %} {# stuff needed for Kubernetes based scenarios #} -# Create k8s.creds file for functest -KUBE_MASTER_URL=$(grep -r server ~/.kube/config | awk '{print $2}') -KUBE_MASTER_IP=$(echo $KUBE_MASTER_URL | awk -F "[:/]" '{print $4}') -cat << EOF > ~/k8s.creds -KUBERNETES_PROVIDER=local -KUBE_MASTER_URL=$KUBE_MASTER_URL -KUBE_MASTER_IP=$KUBE_MASTER_IP -EOF - # docker image to use will be different for healthcheck and smoke test DOCKER_IMAGE_NAME="opnfv/functest-kubernetes-${FUNCTEST_SUITE_NAME}" sudo docker run --env-file env \ -v $(pwd)/k8s.creds:/home/opnfv/functest/conf/env_file \ -v $(pwd)/.kube/config:/root/.kube/config \ - -v $(pwd)/results:/home/opnfv/functest/results \ + -v $(pwd)/functest-results:/home/opnfv/functest/results \ $DOCKER_IMAGE_NAME {% endif %} - diff --git a/xci/playbooks/roles/prepare-functest/vars/main.yml b/xci/playbooks/roles/prepare-tests/vars/main.yml index f076c033..83638466 100644 --- a/xci/playbooks/roles/prepare-functest/vars/main.yml +++ b/xci/playbooks/roles/prepare-tests/vars/main.yml @@ -1,5 +1,5 @@ --- -functest_required_packages: +required_packages: apt: - docker.io - wget @@ -13,5 +13,5 @@ functest_required_packages: - wget - xz -functest_required_pip: +required_pip: - docker-py |