8 # Licensed under the Apache License, Version 2.0 (the "License");
9 # you may not use this file except in compliance with the License.
10 # You may obtain a copy of the License at
12 # http://www.apache.org/licenses/LICENSE-2.0
14 # Unless required by applicable law or agreed to in writing, software
15 # distributed under the License is distributed on an "AS IS" BASIS,
16 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 # See the License for the specific language governing permissions and
18 # limitations under the License.
21 cat /dev
/zero | ssh-keygen
-q -N "" > /dev
/null
24 echo -e "\nInstalling osmclient ${OSMCLIENT}"
25 python3
-m pip
install git
+https
://osm.etsi.org
/gerrit
/osm
/osmclient@
${OSMCLIENT}
29 echo -e "\nDownloading packages ${PACKAGES}"
30 rm -rf ${PACKAGES_FOLDER}
31 git clone https
://osm.etsi.org
/gitlab
/vnf-onboarding
/osm-packages.git
${PACKAGES_FOLDER}
35 # Fetch conformance tests
36 git clone
--single-branch --branch ${NFV_TESTS_BRANCH} https
://forge.etsi.org
/rep
/nfv
/api-tests.git
/robot-systest
/conformance-tests
/repo
37 python3
-m pip
install -r /robot-systest
/conformance-tests
/repo
/requirements.txt
43 while [ $attempts -ge 0 ] ; do
44 echo -e "\n$( date '+%F_%H:%M:%S' ) Creating VIM ${VIM_TARGET}"
45 osm vim-create
--name ${VIM_TARGET} --user ${OS_USERNAME} --password ${OS_PASSWORD} --tenant ${OS_PROJECT_NAME} \
46 --auth_url ${OS_AUTH_URL} --account_type openstack
--description vim \
47 --config "{management_network_name: ${VIM_MGMT_NET}, dataplane_physical_net: ${DATAPLANE:-physnet2}}" || true
50 while [[ ${STATUS} != "ENABLED" ]]
53 if [[ $i -eq 5 ]]; then
54 echo "VIM stuck for more than 50 seconds as: ${VIM_LIST}"
55 osm vim-delete
--force ${VIM_TARGET}
60 VIM_LIST
=`osm vim-list --long | grep ${VIM_TARGET}`
61 echo VIM status
: ${VIM_LIST}
62 STATUS
=`echo ${VIM_LIST} | grep -io ENABLED`
64 if [[ ${STATUS} = "ENABLED" ]] ; then
69 if [ $attempts -lt 0 ] ; then
70 echo "VIM failed to enter ENABLED state"
73 if [ -n "${SDNC_URL}" ]; then
74 osm sdnc-create
--name sdnc-osm
--type ${SDNC_TYPE} --user ${SDNC_USER} --password ${SDNC_PASSWORD} --url ${SDNC_URL}
77 while [ ${COUNTER} -lt 5 ] ; do
78 echo "Checking status of SDNC sdnc-osm to see if it is enabled"
79 STATUS
=$
(osm sdnc-show sdnc-osm |
grep -io ENABLED
)
80 if [ "${STATUS}" == "ENABLED" ]; then
86 if [ "${STATUS}" == "ENABLED" ]; then
89 echo "SDNC failed to enter ENABLED state"
90 osm sdnc-show sdnc-osm
93 if [ -f /root
/port-mapping.yaml
]; then
94 osm vim-update
${VIM_TARGET} --sdn_controller sdnc-osm
--sdn_port_mapping /root
/port-mapping.yaml
97 while [ ${COUNTER2} -lt 5 ] ; do
98 echo "Checking status of VIM $VIM_TARGET to see if there is port-mapping"
99 osm vim-show
$VIM_TARGET |
grep sdn-port-mapping
100 if [ $?
-eq 0 ]; then
107 if [ "${RESULT}" == "OK" ]; then
108 echo "Port-mapping correctly added"
110 echo "Port-mapping failed to be added"
111 osm vim-show
${VIM_TARGET}
120 RUN_CONFORMANCE_TESTS
=false
129 PACKAGES
=$2 && download_packages
132 -o|
--osmclientversion)
133 OSMCLIENT
=$2 && install_osmclient
141 NFV_TESTS_BRANCH
=$2 && download_tst010
142 RUN_CONFORMANCE_TESTS
=true
149 docker run --rm=true -t osmtests --env-file <env_file> \\
150 -v <path_to_reports>:/reports osmtests \\
151 -v <path_to_clouds.yaml>:/robot-systest/clouds.yaml \\
152 -v <path_to_kubeconfig>:/root/.kube/config \\
153 -v <path_to_jujudata>:/root/.local/share/juju \\
154 -o <osmclient_version> \\
155 -p <package_branch> \\
159 --env-file: It is the environmental file where is described the OSM target and VIM
160 -o <osmclient_version> [OPTIONAL]: It is used to specify a particular osmclient version. Default: latest
161 -p <package_branch> [OPTIONAL]: OSM packages repository branch. Default: master
162 -t <testing_tags> [OPTIONAL]: Robot tests tags. [sanity, daily, regression, particular_test]. Default: sanity
163 -T <testing_branch> [OPTIONAL]: Run SOL005 Robot conformance tests
164 -c To create a VIM for the tests
167 <path_to_reports> [OPTIONAL]: It is the absolute path to reports location in the host
168 <path_to_clouds.yaml> [OPTIONAL]: It is the absolute path to the clouds.yaml file in the host
169 <path_to_kubeconfig> [OPTIONAL]: It is the kubeconfig file to be used for k8s clusters
170 <path_to_jujudata> [OPTIONAL]: It is the jujudata file to be used for juju cli"
175 echo "Error: Unsupported flag $1" >&2
185 eval set -- "$PARAMS"
187 if [[ -n "$BRANCH_NAME" ]]; then
188 PACKAGES
=$BRANCH_NAME && download_packages
189 OSMCLIENT
=$BRANCH_NAME && install_osmclient
193 if [ "$RUN_CONFORMANCE_TESTS" = true
] ; then
194 python3
${ROBOT_DEVOPS_FOLDER}/conformance-tests
/run_conformance_tests.py
197 if [[ -z "${TEST}" ]]; then
198 printf "Test not provided. \nRunning default test: sanity\n"
202 if [[ -n "${TEST}" ]]; then
203 robot
-d ${ROBOT_DEVOPS_FOLDER}/reports -i ${TEST} ${ROBOT_DEVOPS_FOLDER}/testsuite
/
206 echo "Wrong test provided"