4 # Copyright 2015 Telefonica Investigacion y Desarrollo, S.A.U.
5 # This file is part of openmano
8 # Licensed under the Apache License, Version 2.0 (the "License"); you may
9 # not use this file except in compliance with the License. You may obtain
10 # 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, WITHOUT
16 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
17 # License for the specific language governing permissions and limitations
20 # For those usages not covered by the Apache License, Version 2.0 please
21 # contact with: nfvlabs@tid.es
24 #This script can be used as a basic test of openmano.
25 #WARNING: It destroy the database content
29 echo -e "usage: ${BASH_SOURCE[0]} [OPTIONS] <action>\n test openmano with fake tenant, datancenters, etc."\
30 "It assumes that you have configured openmano cli with HOST,PORT,TENANT with environment variables"
31 "If not, it will use by default localhost:9080 and creates a new TENANT"
32 echo -e " -h --help shows this help"
35 function is_valid_uuid
(){
36 echo "$1" |
grep -q -E '^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$' && return 0
40 DIRNAME
=$
(dirname $
(readlink
-f ${BASH_SOURCE[0]}))
41 DIRmano
=$
(dirname $DIRNAME)
42 DIRscript
=${DIRmano}/scripts
44 #detect paths of executables, preceding the relative paths
45 openmano
=openmano
&& [[ -x "${DIRmano}/openmano" ]] && openmano
="${DIRmano}/openmano"
46 service_openmano
=service-openmano
&& [[ -x "$DIRscript/service-openmano" ]] &&
47 service_openmano
="$DIRscript/service-openmano"
48 initopenvim
="initopenvim"
58 [[ $command == "datacenter-detach" ]] && force
="" || force
=-f
59 printf "%-50s" "$command $uuid:"
60 ! $openmano $command $uuid $force >> /dev
/null
&& echo FAIL
&& EXIT_STATUS
=1 ||
echo OK
62 [[ ${BASH_SOURCE[0]} != $0 ]] && return $1 ||
exit $EXIT_STATUS
67 source ${DIRscript}/get-options.sh
"force:-f help:h insert-bashrc init-openvim:initopenvim install-openvim screen" \
71 [ -n "$option_help" ] && usage
&& _exit
0
75 DCs
="dc-fake1-openstack dc-fake2-openvim" #dc-fake3-vmware
76 Ts
="fake-tenant1 fake-tenand2"
77 SDNs
="sdn-fake1-opendaylight sdn-fake2-floodlight sdn-fake3-onos"
81 printf "%-50s" "Creating fake tenant '$T':"
82 ! result
=`$openmano tenant-create "$T"` && echo FAIL
&& echo " $result" && _exit
1
83 tenant
=`echo $result |gawk '{print $1}'`
84 ! is_valid_uuid
$tenant && echo "FAIL" && echo " $result" && _exit
1
86 ToDelete
="tenant-delete:$tenant $ToDelete"
87 [[ -z "$OPENMANO_TENANT" ]] && export OPENMANO_TENANT
=$tenant
94 printf "%-50s" "Creating datacenter '$DC':"
95 ! result
=`$openmano datacenter-create "$DC" "http://$DC/v2.0" --type=${DC##*-} --config='{insecure: True}'` &&
96 echo FAIL
&& echo " $result" && _exit
1
97 datacenter
=`echo $result |gawk '{print $1}'`
98 ! is_valid_uuid
$datacenter && echo "FAIL" && echo " $result" && _exit
1
100 eval DC
${index}=$datacenter
101 ToDelete
="datacenter-delete:$datacenter $ToDelete"
102 [[ -z "$datacenter_empty" ]] && datacenter_empty
=datacenter
104 printf "%-50s" "Attaching openmano tenant to the datacenter:"
105 ! result
=`$openmano datacenter-attach "$DC" --vim-tenant-name=osm --config='{insecure: False}'` &&
106 echo FAIL
&& echo " $result" && _exit
1
107 ToDelete
="datacenter-detach:$datacenter $ToDelete"
111 printf "%-50s" "Datacenter list:"
112 ! result
=`$openmano datacenter-list` &&
113 echo "FAIL" && echo " $result" && _exit
1
114 for verbose
in "" -v -vv -vvv
116 ! result
=`$openmano datacenter-list "$DC" $verbose` &&
117 echo "FAIL" && echo " $result" && _exit
1
121 dpid_prefix
=55:56:57:58:59:60:61:0
125 printf "%-50s" "Creating SDN controller '$SDN':"
126 ! result
=`$openmano sdn-controller-create "$SDN" --ip 4.5.6.7 --port 80 --type=${SDN##*-} \
127 --user user --passwd p --dpid=${dpid_prefix}${dpid_sufix}` && echo "FAIL" && echo " $result" && _exit
1
128 sdn
=`echo $result |gawk '{print $1}'`
129 #check a valid uuid is obtained
130 ! is_valid_uuid
$sdn && echo "FAIL" && echo " $result" && _exit
1
132 ToDelete
="sdn-controller-delete:$sdn $ToDelete"
133 dpid_sufix
=$
((dpid_sufix
+1))
136 printf "%-50s" "Edit SDN-controller:"
137 for edit
in user
=u password
=p ip
=5.6.6.7 port
=81 name
=name dpid
=45:55:54:45:44:44:55:67
139 ! result
=`$openmano sdn-controller-edit $sdn -f --"${edit}"` &&
140 echo "FAIL" && echo " $result" && _exit
1
144 printf "%-50s" "SDN-controller list:"
145 ! result
=`$openmano sdn-controller-list` &&
146 echo "FAIL" && echo " $result" && _exit
1
147 for verbose
in "" -v -vv -vvv
149 ! result
=`$openmano sdn-controller-list "$sdn" $verbose` &&
150 echo "FAIL" && echo " $result" && _exit
1
154 printf "%-50s" "Add sdn to datacenter:"
155 ! result
=`$openmano datacenter-edit -f $DC --sdn-controller $SDN` &&
156 echo "FAIL" && echo " $result" && _exit
1 ||
echo OK
158 printf "%-50s" "Clear Port mapping:"
159 ! result
=`$openmano datacenter-sdn-port-mapping-clear -f $DC` &&
160 echo "FAIL" && echo " $result" && _exit
1 ||
echo OK
162 printf "%-50s" "Set Port mapping:"
163 ! result
=`$openmano datacenter-sdn-port-mapping-set -f $DC ${DIRmano}/sdn/sdn_port_mapping.yaml` &&
164 echo "FAIL" && echo " $result" && _exit
1 ||
echo OK
166 printf "%-50s" "List Port mapping:"
167 for verbose
in "" -v -vv -vvv
169 ! result
=`$openmano datacenter-sdn-port-mapping-list "$DC" $verbose` &&
170 echo "FAIL" && echo " $result" && _exit
1
174 printf "%-50s" "Set again Port mapping:"
175 ! result
=`$openmano datacenter-sdn-port-mapping-set -f $DC ${DIRmano}/sdn/sdn_port_mapping.yaml` &&
176 echo "FAIL" && echo " $result" && _exit
1 ||
echo OK
178 printf "%-50s" "Clear again Port mapping:"
179 ! result
=`$openmano datacenter-sdn-port-mapping-clear -f $DC` &&
180 echo "FAIL" && echo " $result" && _exit
1 ||
echo OK
182 printf "%-50s" "Set again Port mapping:"
183 ! result
=`$openmano datacenter-sdn-port-mapping-set -f $DC ${DIRmano}/sdn/sdn_port_mapping.yaml` &&
184 echo "FAIL" && echo " $result" && _exit
1 ||
echo OK
186 printf "%-50s" "Remove datacenter sdn:"
187 ! result
=`$openmano datacenter-edit -f $DC --sdn-controller null` &&
188 echo "FAIL" && echo " $result" && _exit
1 ||
echo OK
190 printf "%-50s" "Negative list port mapping:"
191 result
=`$openmano datacenter-sdn-port-mapping-list $DC` &&
192 echo "FAIL" && echo " $result" && _exit
1 ||
echo OK
194 printf "%-50s" "Add again datacenter sdn:"
195 ! result
=`$openmano datacenter-edit -f $DC --sdn-controller $SDN` &&
196 echo "FAIL" && echo " $result" && _exit
1 ||
echo OK
198 printf "%-50s" "Empty list port mapping:"
199 ! [[ `$openmano datacenter-sdn-port-mapping-list $DC | wc -l` -eq 6 ]] &&
200 echo "FAIL" && _exit
1 ||
echo OK
202 printf "%-50s" "Set again Port mapping:"
203 ! result
=`$openmano datacenter-sdn-port-mapping-set -f $DC ${DIRmano}/sdn/sdn_port_mapping.yaml` &&
204 echo "FAIL" && echo " $result" && _exit
1 ||
echo OK