summaryrefslogtreecommitdiffstats
path: root/lib/common-functions.sh
diff options
context:
space:
mode:
authorTim Rozet <trozet@redhat.com>2016-01-11 15:52:48 -0500
committerTim Rozet <trozet@redhat.com>2016-01-12 23:40:21 -0500
commite8231a61f36ce55465890d681fe1c1dfcbd5b6e9 (patch)
tree94587d0ab82e45ad30307190e8fb544f013093f4 /lib/common-functions.sh
parent85485bca140826c2302b5c5a789de9328c3caec8 (diff)
Enables private and storage networks
Fixes issues with common-functions: - ipcalc in epel is old and does not support HOSTMIN,HOSTMAX. Now BROADCAST and NETWORK values used to find first and last IP in subnet. - fixes to auto-generation where values conflicted for IP ranges - provisioner_ip now generated correctly Change-Id: I03c7f841d2e1edb1a50041f53970318b6a718cd9 Signed-off-by: Tim Rozet <trozet@redhat.com>
Diffstat (limited to 'lib/common-functions.sh')
-rw-r--r--lib/common-functions.sh58
1 files changed, 48 insertions, 10 deletions
diff --git a/lib/common-functions.sh b/lib/common-functions.sh
index 6738ddf4..edf06cff 100644
--- a/lib/common-functions.sh
+++ b/lib/common-functions.sh
@@ -140,6 +140,9 @@ function increment_ip {
##find_gateway em1
function find_gateway {
local gw gw_interface
+ if [ -z "$1" ]; then
+ return 1
+ fi
gw=$(ip route | grep default | awk '{print $3}')
gw_interface=$(ip route get $gw | awk '{print $3}')
if [ -n "$1" ]; then
@@ -153,6 +156,9 @@ function find_gateway {
##params: interface to find CIDR
function find_cidr {
local cidr network ip netmask short_mask
+ if [ -z "$1" ]; then
+ return 1
+ fi
ip=$(find_ip $1)
netmask=$(find_netmask $1)
if [[ -z "$ip" || -z "$netmask" ]]; then
@@ -173,6 +179,9 @@ function find_cidr {
##params: interface to find IP
function find_usable_ip_range {
local interface_ip subnet_mask first_block_ip last_block_ip
+ if [ -z "$1" ]; then
+ return 1
+ fi
interface_ip=$(find_ip $1)
subnet_mask=$(find_netmask $1)
if [[ -z "$interface_ip" || -z "$subnet_mask" ]]; then
@@ -187,7 +196,7 @@ function find_usable_ip_range {
if [ -z "$last_block_ip" ]; then
return 1
else
- last_block_ip=$(subtract_ip ${last_block_ip} 20)
+ last_block_ip=$(subtract_ip ${last_block_ip} 21)
echo "${first_block_ip},${last_block_ip}"
fi
@@ -198,13 +207,17 @@ function find_usable_ip_range {
##params: cidr
function generate_usable_ip_range {
local first_ip first_block_ip last_block_ip
- first_ip=$(ipcalc -nb $1 | grep HostMin: | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
+ #first_ip=$(ipcalc -nb $1 | grep HostMin: | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
+ first_ip=$(ipcalc -nmpb $1 | grep NETWORK= | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
+ first_ip=$(increment_ip ${first_ip} 1)
first_block_ip=$(increment_ip ${first_ip} 20)
- last_block_ip=$(ipcalc -nb $1 | grep HostMax: | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
+ #last_block_ip=$(ipcalc -nb $1 | grep HostMax: | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
+ last_block_ip=$(ipcalc -nmpb $1 | grep BROADCAST= | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
+ last_block_ip=$(subtract_ip ${last_block_ip} 1)
if [[ -z "$first_block_ip" || -z "$last_block_ip" ]]; then
return 1
else
- last_block_ip=$(subtract_ip ${last_block_ip} 20)
+ last_block_ip=$(subtract_ip ${last_block_ip} 21)
echo "${first_block_ip},${last_block_ip}"
fi
}
@@ -214,6 +227,9 @@ function generate_usable_ip_range {
##params: interface
function find_provisioner_ip {
local interface_ip
+ if [ -z "$1" ]; then
+ return 1
+ fi
interface_ip=$(find_ip $1)
if [ -z "$interface_ip" ]; then
return 1
@@ -225,7 +241,13 @@ function find_provisioner_ip {
##params: cidr
function generate_provisioner_ip {
local provisioner_ip
- provisioner_ip=$(ipcalc -nb $1 | grep HostMin: | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
+ #provisioner_ip=$(ipcalc -nb $1 | grep HostMin: | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
+ provisioner_ip=$(ipcalc -nmpb $1 | grep NETWORK= | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
+ if [ -z "$provisioner_ip" ]; then
+ return 1
+ fi
+ provisioner_ip=$(increment_ip ${provisioner_ip} 1)
+ echo "$provisioner_ip"
}
##finds the dhcp range available via interface
@@ -233,6 +255,9 @@ function generate_provisioner_ip {
##params: interface
function find_dhcp_range {
local dhcp_range_start dhcp_range_end interface_ip
+ if [ -z "$1" ]; then
+ return 1
+ fi
interface_ip=$(find_ip $1)
if [ -z "$interface_ip" ]; then
return 1
@@ -247,10 +272,12 @@ function find_dhcp_range {
##params: cidr
function generate_dhcp_range {
local dhcp_range_start dhcp_range_end first_ip
- first_ip=$(ipcalc -nb $1 | grep HostMin: | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
+ #first_ip=$(ipcalc -nb $1 | grep HostMin: | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
+ first_ip=$(ipcalc -nmpb $1 | grep NETWORK= | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
if [ -z "$first_ip" ]; then
return 1
fi
+ first_ip=$(increment_ip ${first_ip} 1)
dhcp_range_start=$(increment_ip ${first_ip} 1)
dhcp_range_end=$(increment_ip ${dhcp_range_start} 8)
echo "${dhcp_range_start},${dhcp_range_end}"
@@ -261,6 +288,9 @@ function generate_dhcp_range {
##params: interface
function find_introspection_range {
local inspect_range_start inspect_range_end interface_ip
+ if [ -z "$1" ]; then
+ return 1
+ fi
interface_ip=$(find_ip $1)
if [ -z "$interface_ip" ]; then
return 1
@@ -275,39 +305,47 @@ function find_introspection_range {
##params: cidr
function generate_introspection_range {
local inspect_range_start inspect_range_end first_ip
- first_ip=$(ipcalc -nb $1 | grep HostMin: | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
+ #first_ip=$(ipcalc -nb $1 | grep HostMin: | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
+ first_ip=$(ipcalc -nmpb $1 | grep NETWORK= | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
if [ -z "$first_ip" ]; then
return 1
fi
+ first_ip=$(increment_ip ${first_ip} 1)
inspect_range_start=$(increment_ip ${first_ip} 10)
inspect_range_end=$(increment_ip ${inspect_range_start} 8)
echo "${inspect_range_start},${inspect_range_end}"
}
##finds the floating ip range available via interface
-##uses last 20 IPs of a subnet
+##uses last 20 IPs of a subnet, minus last IP
##params: interface
function find_floating_ip_range {
local float_range_start float_range_end interface_ip subnet_mask
+ if [ -z "$1" ]; then
+ return 1
+ fi
interface_ip=$(find_ip $1)
subnet_mask=$(find_netmask $1)
if [[ -z "$interface_ip" || -z "$subnet_mask" ]]; then
return 1
fi
float_range_end=$(find_last_ip_subnet ${interface_ip} ${subnet_mask})
+ float_range_end=$(subtract_ip ${float_range_end} 1)
float_range_start=$(subtract_ip ${float_range_end} 19)
echo "${float_range_start},${float_range_end}"
}
##generate the floating range available via CIDR
-##uses last 20 IPs of subnet
+##uses last 20 IPs of subnet, minus last IP
##params: cidr
function generate_floating_ip_range {
local float_range_start float_range_end last_ip
- last_ip=$(ipcalc -nb $1 | grep HostMax: | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
+ #last_ip=$(ipcalc -nb $1 | grep HostMax: | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
+ last_ip=$(ipcalc -nmpb $1 | grep BROADCAST= | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
if [ -z "$last_ip" ]; then
return 1
fi
+ last_ip=$(subtract_ip ${last_ip} 2)
float_range_start=$(subtract_ip ${last_ip} 19)
float_range_end=${last_ip}
echo "${float_range_start},${float_range_end}"