blob: 7856cb0e2cacd13685cbc2ee0e92a3e193822702 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
#!/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)
# 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
# Dump the env file
echo "------------------------------------------------------"
echo "------------- functest environment file --------------"
cat /root/env
echo "------------------------------------------------------"
# 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 }}
# the needed images differ between the suites so avoid downloading unnecessary images
if [[ "$FUNCTEST_SUITE_NAME" =~ "healthcheck" ]]; then
mkdir ~/images && cd ~/images && wget -q http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img && cd ~
elif [[ "$FUNCTEST_SUITE_NAME" =~ "smoke" ]]; then
mkdir -p images && wget -q -O- https://git.opnfv.org/functest/plain/functest/ci/download_images.sh | bash -s -- images && ls -1 images/*
else
echo "Unsupported test suite for functest"
exit 1
fi
# docker image to use will be different for healthcheck and smoke test
DOCKER_IMAGE_NAME="opnfv/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 \
$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 \
$DOCKER_IMAGE_NAME
{% endif %}
|