make it all work correctly
This commit is contained in:
parent
ad8dbeaceb
commit
9726119a4a
|
@ -5,22 +5,15 @@ Puppet::Type.type(:nova_floating).provide(:nova_manage) do
|
||||||
optional_commands :nova_manage => 'nova-manage'
|
optional_commands :nova_manage => 'nova-manage'
|
||||||
|
|
||||||
def exists?
|
def exists?
|
||||||
begin
|
# Calculate num quads to grab for prefix
|
||||||
# Calculate num quads to grab for prefix
|
mask=resource[:network].sub(/.*\/([0-9][0-9]?)/, '\1').to_i
|
||||||
mask=resource[:network].sub(/.*\/([0-9][0-9]?)/, '\1')
|
num_quads = 4 - mask / 8
|
||||||
num_quads=32/$mask
|
prefix=resource[:network].sub(/(\.[0-9]{1,3}){#{num_quads}}(\/[0-9]{1,2})?$/, '') + "."
|
||||||
if num_quads == 4
|
return nova_manage("floating", "list").match(/#{prefix}/)
|
||||||
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}/)
|
|
||||||
rescue
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
nova_manage("floating", "create", resource[:network]) if exists? == false
|
nova_manage("floating", "create", resource[:network])
|
||||||
end
|
end
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
|
|
|
@ -6,7 +6,7 @@ Puppet::Type.newtype(:nova_floating) do
|
||||||
|
|
||||||
newparam(:network, :namevar => true) do
|
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}$/)
|
newvalues(/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\/[0-9]{1,2}$/)
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue