12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- require File.join(File.dirname(__FILE__), '..','..','..',
- 'puppet/provider/nova')
- Puppet::Type.type(:nova_security_rule).provide(
- :nova,
- :parent => Puppet::Provider::Nova
- ) do
- desc "Manage nova security rules"
- commands :nova => 'nova'
- mk_resource_methods
- def exists?
- @property_hash[:ensure] == :present
- end
- def destroy
- args = Array.new
- args << "#{@resource[:security_group]}"
- args << "#{@resource[:ip_protocol]}"
- args << "#{@resource[:from_port]}"
- args << "#{@resource[:to_port]}"
- if not @resource[:ip_range].nil?
- args << "#{@resource[:ip_range]}"
- else
- args << "#{@resource[:source_group]}"
- end
- auth_nova("secgroup-delete-rule", args)
- @property_hash[:ensure] = :absent
- end
- def create
- args = Array.new
- args << "#{@resource[:security_group]}"
- args << "#{@resource[:ip_protocol]}"
- args << "#{@resource[:from_port]}"
- args << "#{@resource[:to_port]}"
- if not @resource[:ip_range].nil?
- args << "#{@resource[:ip_range]}"
- else
- args << "#{@resource[:source_group]}"
- end
- result = auth_nova("secgroup-add-rule", args)
- end
- end
|