From 9726119a4a7964d1af6b2756f96eb77741b400ed Mon Sep 17 00:00:00 2001 From: Branan Purvine-Riley Date: Tue, 1 May 2012 15:15:05 -0700 Subject: [PATCH] make it all work correctly --- .../provider/nova_floating/nova_manage.rb | 19 ++++++------------- lib/puppet/type/nova_floating.rb | 2 +- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/lib/puppet/provider/nova_floating/nova_manage.rb b/lib/puppet/provider/nova_floating/nova_manage.rb index 51f6c0cb8..d21c7e4e6 100644 --- a/lib/puppet/provider/nova_floating/nova_manage.rb +++ b/lib/puppet/provider/nova_floating/nova_manage.rb @@ -5,22 +5,15 @@ Puppet::Type.type(:nova_floating).provide(:nova_manage) do optional_commands :nova_manage => 'nova-manage' def exists? - begin - # Calculate num quads to grab for prefix - 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}/) - rescue - return false - end + # Calculate num quads to grab for prefix + mask=resource[:network].sub(/.*\/([0-9][0-9]?)/, '\1').to_i + num_quads = 4 - mask / 8 + prefix=resource[:network].sub(/(\.[0-9]{1,3}){#{num_quads}}(\/[0-9]{1,2})?$/, '') + "." + return nova_manage("floating", "list").match(/#{prefix}/) end def create - nova_manage("floating", "create", resource[:network]) if exists? == false + nova_manage("floating", "create", resource[:network]) end def destroy diff --git a/lib/puppet/type/nova_floating.rb b/lib/puppet/type/nova_floating.rb index 4c51f4d46..4a497883a 100644 --- a/lib/puppet/type/nova_floating.rb +++ b/lib/puppet/type/nova_floating.rb @@ -6,7 +6,7 @@ Puppet::Type.newtype(:nova_floating) do newparam(:network, :namevar => true) do 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