| #!/bin/bash |
| |
| ## |
| # Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U. |
| # This file is part of openvim |
| # All Rights Reserved. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); you may |
| # not use this file except in compliance with the License. You may obtain |
| # a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| # License for the specific language governing permissions and limitations |
| # under the License. |
| # |
| # For those usages not covered by the Apache License, Version 2.0 please |
| # contact with: nfvlabs@tid.es |
| ## |
| |
| # |
| #author Alfonso Tierno |
| # |
| #script to test openvim with the creation of flavors and interfaces |
| #using images already inserted |
| # |
| |
| echo " Creates 1 flavor, 3 nets, 2 VMs (US) |
| Interfaces: 2 sriov, 1 passthrough, 1 sriov dedicated |
| Test mac address allocation, 1 VM with direct network attach, |
| another VM with network attach after creation" |
| echo |
| echo -n "type network model to test network model (empty to skip)? " |
| read model |
| echo "Press enter to continue" |
| read kk |
| if [ -n "$model" ] |
| then |
| model="model: '${model}'" |
| fi |
| #echo _${model}_ |
| |
| #image to load |
| imagePath=/mnt/powervault/virtualization/vnfs/os/US1404.qcow2 |
| #image to load as an extra disk, can be any |
| imagePath_extra=/mnt/powervault/virtualization/vnfs/os/US1404user.qcow2 |
| #default network to use |
| network_eth0=default |
| |
| |
| DIRNAME=`dirname $0` |
| |
| function del_rubbish(){ |
| echo "Press enter to delete the deployed things" |
| read kk |
| [ -n "$DEL_server" ] && ${DIRNAME}/test_openvim.py -f del server $DEL_server |
| [ -n "$DEL_network" ] && ${DIRNAME}/test_openvim.py -f del network $DEL_network |
| [ -n "$DEL_flavor" ] && ${DIRNAME}/test_openvim.py -f del flavor $DEL_flavor |
| [ -n "$DEL_image" ] && ${DIRNAME}/test_openvim.py -f del image $DEL_image |
| rm -f kk.out |
| } |
| |
| function proccess_out(){ # action_text field to retrieve |
| if egrep -q "\"error\"" kk.out |
| then |
| echo "failed to" $1 |
| cat kk.out |
| del_rubbish |
| exit -1 |
| fi |
| if [ -z "$2" ] ; then pattern='"id"' ; else pattern="$2" ; fi |
| value=`egrep "$pattern" kk.out ` |
| value=${value##* \"} |
| value=${value%\"*} |
| if [[ -z "$value" ]] |
| then |
| echo "not found the field" $2 |
| cat kk.out |
| del_rubbish |
| exit -1 |
| fi |
| } |
| |
| #proccess_out "insert server tidgen1" '^ "id"' |
| #echo $value |
| #exit 0 |
| |
| |
| |
| echo -n "get ${imagePath##*/} image: " |
| ${DIRNAME}/test_openvim.py -F"path=$imagePath" images > kk.out |
| proccess_out "get ${imagePath##*/}" |
| echo $value |
| image1=$value |
| |
| |
| echo -n "get ${imagePath_extra##*/} image: " |
| ${DIRNAME}/test_openvim.py -F"path=$imagePath_extra" images > kk.out |
| proccess_out "get ${imagePath_extra##*/}" |
| echo $value |
| image2=$value |
| |
| |
| echo -n "get ${network_eth0} network: " |
| ${DIRNAME}/test_openvim.py -F"name=$network_eth0" network > kk.out |
| proccess_out "get ${network_eth0} network" |
| echo $value |
| network_eth0=$value |
| |
| |
| echo -n "insert flavor: " |
| ${DIRNAME}/test_openvim.py new flavor ' |
| --- |
| flavor: |
| name: 5PTh_8G_2I |
| description: flavor to test openvim |
| extended: |
| processor_ranking: 205 |
| numas: |
| - memory: 8 |
| paired-threads: 5 |
| interfaces: |
| - name: xe0 |
| dedicated: "yes" |
| bandwidth: "10 Gbps" |
| vpci: "0000:00:10.0" |
| #mac_address: "10:10:10:10:10:10" |
| - name: xe1 |
| dedicated: "yes:sriov" |
| bandwidth: "10 Gbps" |
| vpci: "0000:00:11.0" |
| mac_address: "10:10:10:10:10:11" |
| ' > kk.out |
| proccess_out "insert flavor" |
| echo $value |
| flavor1=$value |
| DEL_flavor="$DEL_flavor $flavor1" |
| |
| |
| echo -n "insert ptp net1: " |
| ${DIRNAME}/test_openvim.py new network ' |
| --- |
| network: |
| name: network-xe0 |
| type: ptp |
| ' > kk.out |
| proccess_out "insert network 0" |
| echo $value |
| network0=$value |
| DEL_network="$DEL_network $value" |
| |
| |
| echo -n "insert ptp net2: " |
| ${DIRNAME}/test_openvim.py new network ' |
| --- |
| network: |
| name: network-xe1 |
| type: ptp |
| ' > kk.out |
| proccess_out "insert network 1" |
| echo $value |
| network1=$value |
| DEL_network="$DEL_network $value" |
| |
| |
| |
| echo -n "insert bridge network net2: " |
| ${DIRNAME}/test_openvim.py new network ' |
| --- |
| network: |
| name: network-net2 |
| type: bridge_data |
| ' > kk.out |
| proccess_out "insert network 2" |
| echo $value |
| network2=$value |
| DEL_network="$DEL_network $value" |
| |
| echo -n "insert test VM 1: " |
| ${DIRNAME}/test_openvim.py new server " |
| --- |
| server: |
| name: test_VM1 |
| descrition: US or tidgen with 1 SRIOV 1 PASSTHROUGH |
| imageRef: '$image1' |
| flavorRef: '$flavor1' |
| networks: |
| - name: mgmt0 |
| vpci: '0000:00:0a.0' |
| uuid: ${network_eth0} |
| mac_address: '10:10:10:10:10:12' |
| - name: eth0 |
| vpci: '0000:00:0b.0' |
| uuid: '$network2' |
| mac_address: '10:10:10:10:10:13' |
| ${model} |
| " > kk.out |
| proccess_out "insert test VM 2" '^ "id"' |
| echo $value |
| server1=$value |
| DEL_server="$DEL_server $value" |
| |
| |
| |
| echo -n "insert test VM 2: " |
| ${DIRNAME}/test_openvim.py new server " |
| --- |
| server: |
| name: test_VM2 |
| descrition: US or tidgen with direct network attach |
| imageRef: '$image1' |
| flavorRef: '$flavor1' |
| extended: |
| processor_ranking: 205 |
| numas: |
| - memory: 8 |
| threads: 10 |
| interfaces: |
| - name: xe0 |
| dedicated: 'yes' |
| bandwidth: '10 Gbps' |
| vpci: '0000:00:10.0' |
| #mac_address: '10:10:10:10:aa:10' |
| uuid: '$network0' |
| - name: xe1 |
| dedicated: 'no' |
| bandwidth: '7 Gbps' |
| vpci: '0000:00:11.0' |
| mac_address: '10:10:10:10:aa:11' |
| uuid: '$network1' |
| devices: |
| - type: disk |
| imageRef: '$image2' |
| networks: |
| - name: mgmt0 |
| vpci: '0000:00:0a.0' |
| uuid: ${network_eth0} |
| mac_address: '10:10:10:10:aa:12' |
| - name: eth0 |
| vpci: '0000:00:0b.0' |
| uuid: '$network2' |
| mac_address: '10:10:10:10:aa:13' |
| ${model} |
| " > kk.out |
| proccess_out "insert test VM 2" '^ "id"' |
| echo $value |
| server2=$value |
| DEL_server="$DEL_server $value" |
| |
| echo -n "get xe0 iface uuid from tidgen1: " |
| ${DIRNAME}/test_openvim.py -F "device_id=${server1}&name=xe0" ports > kk.out |
| proccess_out "get xe0 uuid port from tidgen1" |
| echo $value |
| iface_xe0=$value |
| |
| |
| echo -n "get xe1 iface uuid from tidgen1: " |
| ${DIRNAME}/test_openvim.py -F "device_id=${server1}&name=xe1" ports > kk.out |
| proccess_out "get xe1 uuid port from tidgen1" |
| echo $value |
| iface_xe1=$value |
| |
| |
| echo -n "attach xe0 from tidgen1 to network " |
| ${DIRNAME}/test_openvim.py -f edit ports $iface_xe0 "network_id: $network0" > kk.out |
| proccess_out "attach xe0 from tidgen1 to network" |
| echo "ok" |
| |
| |
| echo -n "attach xe1 from tidgen1 to network " |
| ${DIRNAME}/test_openvim.py -f edit ports $iface_xe1 "network_id: $network1" > kk.out |
| proccess_out "attach xe1 from tidgen1 to network" |
| echo "ok" |
| |
| |
| echo |
| echo finish. Check connections!! |
| echo click return to delete all deployed things |
| echo |
| |
| del_rubbish |
| exit 0 |
| |