Merge "Move dlux Sonar scan to Sonarcloud"
[releng/builder.git] / jjb / packaging / test-ports-nofeature.sh
1 #!/bin/bash
2
3 # Options:
4 #   -x: Echo commands
5 #   -e: Fail on errors
6 #   -o pipefail: Fail on errors in scripts this calls, give stacktrace
7 set -ex -o pipefail
8
9 # Ports that should be open after ODL is started with default features
10 # Port 1099: Karaf rmiRegistryPort
11 # Port 8101: Karaf SSH Shell port
12 # Port 44444: Karaf rmiServerPort
13 declare -a expected_ports=("1099" "8101" "44444")
14
15 # Ports that should only be open after odl-nevirt-openstack is installed
16 declare -a unexpected_ports=("2550" "6633" "6640" "6644" "6653" "8181" "8185")
17
18 # Make sure expected ports open
19 COUNT="0"
20 while true; do
21     open_ports=()
22     closed_ports=()
23     for port in "${expected_ports[@]}"
24     do
25         if nmap -Pn -p"$port" localhost | grep -q open; then
26             echo "Port $port is open"
27             open_ports+=("$port")
28         else
29             echo "Port $port is not yet open"
30             closed_ports+=("$port")
31         fi
32     done
33     if [[ ${#open_ports[@]} -eq ${#expected_ports[@]} && ${#closed_ports[@]} -eq 0 ]]; then
34         echo "All expected ports are open"
35         echo "Open ports:"
36         printf '%s\n' "${open_ports[@]}"
37         echo "Closed ports:"
38         printf '%s\n' "${closed_ports[@]}"
39         break
40     elif [ $COUNT -gt 300 ]; then
41         echo "Timeout waiting ports to open"
42         echo "Open ports:"
43         printf '%s\n' "${open_ports[@]}"
44         echo "Closed ports:"
45         printf '%s\n' "${closed_ports[@]}"
46         exit 1
47     else
48         ((COUNT+=5))
49         sleep 5
50     fi
51 done
52
53 # Make sure unexpected ports are not open
54 open_ports=()
55 closed_ports=()
56 for port in "${unexpected_ports[@]}"
57 do
58     if nmap -Pn -p"$port" localhost | grep -q open; then
59         echo "Port $port is open"
60         open_ports+=("$port")
61     else
62         echo "Port $port is not open"
63         closed_ports+=("$port")
64     fi
65 done
66 if [[ ${#closed_ports[@]} -eq ${#unexpected_ports[@]} && ${#open_ports[@]} -eq 0 ]]; then
67     echo "No unexpected ports are open"
68     echo "Open ports:"
69     printf '%s\n' "${open_ports[@]}"
70     echo "Closed ports:"
71     printf '%s\n' "${closed_ports[@]}"
72 fi