3 #Copyright 2016 Open Platform for NFV Project, Inc. and its contributors
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
8 # Unless required by applicable law or agreed to in writing, software
9 # distributed under the License is distributed on an "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 # See the License for the specific language governing permissions and
12 # limitations under the License.
20 toscafile_test1=./tosca-templates/tosca_helloworld_nfv.yaml
21 test1_reffile1=./tests/refdata/test1_client1.ref
22 test1_reffile2=./tests/refdata/test1_client2.ref
23 client1_log=./tests/logdata/client1.log
24 client2_log=./tests/logdata/client2.log
25 server_log=./tests/logdata/server.log
27 install_dependency() {
28 sudo pip install tosca-parser
29 sudo pip install heat-translator
34 pgrep -f "python DominoServer.py" && return 0
35 python DominoServer.py --log "$LOGLEVEL" > "$server_log" 2>&1 &
39 pgrep -f "python DominoServer.py" || return 0
40 kill $(pgrep -f "python DominoServer.py")
45 #pgrep -f "python DominoClient.py -p $CLIENT1_PORT" && return 0
46 python DominoClient.py -p $CLIENT1_PORT --cliport $CLIENT1_CLIPORT \
47 --log "$LOGLEVEL" > "$client1_log" 2>&1 &
51 #pgrep -f "python DominoClient.py -p $CLIENT2_PORT" && return 0
52 python DominoClient.py -p $CLIENT2_PORT --cliport $CLIENT2_CLIPORT \
53 --log "$LOGLEVEL" > "$client2_log" 2>&1 &
57 pgrep -f "python DominoClient.py" || return 0
58 kill $(pgrep -f "python DominoClient.py")
63 if [ -f dominoserver.db ]; then
67 if [ -d toscafiles ]; then
76 echo "Stopping Domino Clients..."
79 echo "Stopping Domino Server..."
91 echo "domino/tests/run.sh has been executed."
95 echo "Terminating any running Domino Clients..."
98 echo "Terminating any running Domino Servers..."
102 echo "Cleaning residue files and folders from previous runs..."
106 echo "Installing dependencies..."
110 echo "Launching Domino Server..."
114 echo "Launching Domino Client 1..."
118 echo "Launching Domino Client 2..."
122 echo "Test Heartbeat"
123 python domino-cli.py $CLIENT1_CLIPORT heartbeat
126 echo "Test Subscribe API"
127 python domino-cli.py $CLIENT1_CLIPORT subscribe -t hot \
128 -l tosca.policies.Placement:properties:region:nova-1
130 python domino-cli.py $CLIENT1_CLIPORT subscribe -t dummy1,dummy2 --top OVERWRITE
132 python domino-cli.py $CLIENT1_CLIPORT subscribe -t dummy1,dummy2 --top DELETE
134 python domino-cli.py $CLIENT1_CLIPORT subscribe \
135 -l tosca.policies.Placement:properties:region:nova-2
137 python domino-cli.py $CLIENT1_CLIPORT subscribe \
138 -l tosca.policies.Placement:properties:region:nova-3 \
141 python domino-cli.py $CLIENT1_CLIPORT subscribe \
142 -l tosca.policies.Placement:properties:region:nova-3 \
146 echo "Test Publish API"
147 python domino-cli.py $CLIENT1_CLIPORT publish -t "$toscafile_test1"
150 python domino-cli.py $CLIENT1_CLIPORT subscribe \
151 -l tosca.policies.Placement.Geolocation:properties:region:us-west-1
153 python domino-cli.py $CLIENT2_CLIPORT publish -t "$toscafile_test1"
155 TUID=$(python domino-cli.py $CLIENT2_CLIPORT list-tuids | cut -c3-34)
158 python domino-cli.py $CLIENT2_CLIPORT publish -t "$toscafile_test1" -k "$TUID"
160 #echo "Stopping Domino Client 1..."
163 #echo "Stopping Domino Server..."
166 cut -d " " -f 4- "$client1_log" > file1
167 cut -d " " -f 4- "$client2_log" > file2
168 #will use the form below to declare success or failure
171 diff -q file1 "$test1_reffile1" 1>/dev/null
179 diff -q file2 "$test1_reffile2" 1>/dev/null