forked from arainho/openstack-manage
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcheck-network-id
executable file
·81 lines (58 loc) · 1.58 KB
/
check-network-id
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/bin/bash
# find unused network ids
NETWORK_ID_START="192.168.0.0"
NETWORK_ID_END="192.168.254.0"
NETWORK="192.168"
NETMASK="0/24"
START_NUMBER=0
END_NUMBER=254
find_unused_networks(){
NET_EXIST=""
INCREMENT_NUMBER=$START_NUMBER
NETWORK_ID="$NETWORK.$INCREMENT_NUMBER.$NETMASK"
GATEWAY="$NETWORK.$INCREMENT_NUMBER.1"
NETWORK_LIST=()
# increment end number
let END_NUMBER+=1
# set network id list
NETWORK_ID_LIST=($(neutron subnet-list | grep $NETWORK | awk '{print $6}' | sort))
ARRAY_SIZE=${#NETWORK_ID_LIST[@]}
let "ARRAY_SIZE-=1"
LAST_NETWORK_ID=${NETWORK_ID_LIST[ARRAY_SIZE]}
# check id_start
while [[ $INCREMENT_NUMBER -ne $END_NUMBER ]]; do
echo -n '['
echo -n ' '
NETWORK_ID="$NETWORK.$INCREMENT_NUMBER.0/24"
GATEWAY="$NETWORK.$INCREMENT_NUMBER.1"
neutron subnet-list | grep "$NETWORK_ID" > /dev/null
if [[ $? -eq 0 ]]; then
# network id exits
NET_EXIST="YES"
elif [[ $? -eq 1 ]]; then
# network not found
NET_EXIST="NO"
NETWORK_LIST+=($NETWORK_ID)
fi
# incrementing network to: $INCREMENT_NUMBER
let INCREMENT_NUMBER=$INCREMENT_NUMBER+1
# print progress
echo -n '=>'
echo -n ' '
echo -n "] $NETWORK_ID" $'\r'
done
echo "+------+ DONE +-------+"
echo ${NETWORK_LIST[@]}
if [[ $NET_EXIST == "NO" ]]; then
for my_net in ${NETWORK_LIST[@]}; do
neutron subnet-list | grep "$my_net" > /dev/null
if [[ $? -eq 1 ]]; then
echo ' '
echo "creating network: $my_net"
NEW_NETWORK_2_CREATE=$my_net
break
fi
done
fi
}
find_unused_networks