de3d71b6714bbeb291431f64068433504bbf373a
[mirror/dsa-puppet.git] / 3rdparty / modules / nova / lib / puppet / provider / nova_floating / nova_manage.rb
1 Puppet::Type.type(:nova_floating).provide(:nova_manage) do
2
3   desc "Manage nova floating"
4
5   optional_commands :nova_manage => 'nova-manage'
6
7   def exists?
8     # Calculate num quads to grab for prefix
9     mask=resource[:network].sub(/.*\/([0-9][0-9]?)/, '\1').to_i
10     num_quads = 4 - mask / 8
11     prefix=resource[:network].sub(/(\.[0-9]{1,3}){#{num_quads}}(\/[0-9]{1,2})?$/, '') + "."
12     return nova_manage("floating", "list").match(/#{prefix}/)
13   end
14
15   def create
16      nova_manage("floating", "create", '--pool', resource[:pool], resource[:network])
17   end
18
19   def destroy
20     nova_manage("floating", "delete", resource[:network])
21   end
22
23 end