Update Ubuntu docker image
[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 # 8080 is Nitrogen and Carbon only, not Oxygen
17 declare -a unexpected_ports=("2550" "6633" "6640" "6644" "6653" "8080" "8181" "8185")
18
19 # Make sure expected ports open
20 COUNT="0"
21 while true; do
22     open_ports=()
23     closed_ports=()
24     for port in "${expected_ports[@]}"
25     do
26         if nmap -Pn -p$port localhost | grep -q open; then
27             echo "Port $port is open"
28             open_ports+=("$port")
29         else
30             echo "Port $port is not yet open"
31             closed_ports+=("$port")
32         fi
33     done
34     if [[ ${#open_ports[@]} -eq ${#expected_ports[@]} && ${#closed_ports[@]} -eq 0 ]]; then
35         echo "All expected ports are open"
36         echo "Open ports:"
37         printf '%s\n' "${open_ports[@]}"
38         echo "Closed ports:"
39         printf '%s\n' "${closed_ports[@]}"
40         break
41     elif [ $COUNT -gt 300 ]; then
42         echo "Timeout waiting ports to open"
43         echo "Open ports:"
44         printf '%s\n' "${open_ports[@]}"
45         echo "Closed ports:"
46         printf '%s\n' "${closed_ports[@]}"
47         exit 1
48     else
49         ((COUNT+=5))
50         sleep 5
51     fi
52 done
53
54 # Make sure unexpected ports are not open
55 open_ports=()
56 closed_ports=()
57 for port in "${unexpected_ports[@]}"
58 do
59     if nmap -Pn -p$port localhost | grep -q open; then
60         echo "Port $port is open"
61         open_ports+=("$port")
62     else
63         echo "Port $port is not open"
64         closed_ports+=("$port")
65     fi
66 done
67 if [[ ${#closed_ports[@]} -eq ${#unexpected_ports[@]} && ${#open_ports[@]} -eq 0 ]]; then
68     echo "No unexpected ports are open"
69     echo "Open ports:"
70     printf '%s\n' "${open_ports[@]}"
71     echo "Closed ports:"
72     printf '%s\n' "${closed_ports[@]}"
73 fi