Better way of calculating prefix. Fix bad sub.

This commit is contained in:
Aimon Bustardo 2012-04-18 04:18:44 -07:00
parent 5da5a28be9
commit b6afcb94f9
3 changed files with 6 additions and 13 deletions

View File

@ -7,16 +7,10 @@ Puppet::Type.type(:nova_floating).provide(:nova_manage) do
def exists?
begin
# Calculate num quads to grab for prefix
mask=resource[:network].sub(/.*\/([1-3][0-9]?)/)
case
when mask <= 8
num_quads=1
when mask <=16
num_quads=2
when mask <=24
num_quads=3
when mask <=32
num_quads=3
mask=resource[:network].sub(/.*\/([0-9][0-9]?)/, '\1')
num_quads=32/$mask
if num_quads == 4
num_quads=3
end
prefix=resource[:network].sub(/(\.[0-9]{1,3}){#{num_quads}}(\/[0-9]{1,2})?$/, '') + "."
return nova_manage("floating", "list").match(/#{prefix}/)

View File

@ -22,7 +22,6 @@ Puppet::Type.type(:nova_network).provide(:nova_manage) do
end.compact
end
def exists?
begin
network_list = nova_manage("network", "list")
@ -36,7 +35,7 @@ Puppet::Type.type(:nova_network).provide(:nova_manage) do
end
def create
mask=resource[:network].sub(/.*\/([1-3][0-9]?)/)
mask=resource[:network].sub(/.*\/([1-3][0-9]?)/, '\1')
available_ips=2**(32-mask.to_i)
nova_manage("network", "create", resource[:label], resource[:network], "1", available_ips, "--bridge=#{resource[:bridge]}")
end

View File

@ -5,7 +5,7 @@ Puppet::Type.newtype(:nova_floating) do
ensurable
newparam(:network, :namevar => true) do
desc "Network (ie, 192.168.1.0/24 or 192.168.1.128/25 etc.)"
desc "Network (ie, 192.168.1.0/24 or 192.168.1.128/25 etc.)"
newvalues(/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[1-9][0-9]{0,2}\/[0-9]{1,2}$/)
end