nova.rb 853 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. require File.join(File.dirname(__FILE__), '..','..','..',
  2. 'puppet/provider/nova')
  3. Puppet::Type.type(:nova_security_group).provide(
  4. :nova,
  5. :parent => Puppet::Provider::Nova
  6. ) do
  7. desc "Manage nova security groups"
  8. commands :nova => 'nova'
  9. mk_resource_methods
  10. def exists?
  11. sec_groups = self.class.cliout2list(auth_nova('secgroup-list'))
  12. return sec_groups.detect do |n|
  13. n['Name'] == resource['name']
  14. end
  15. end
  16. def destroy
  17. auth_nova("secgroup-delete", name)
  18. @property_hash[:ensure] = :absent
  19. end
  20. def create
  21. result = self.class.cliout2list(auth_nova("secgroup-create", resource[:name], resource[:description]))
  22. @property_hash = {
  23. :ensure => :present,
  24. :name => resource[:name],
  25. :id => result[0]['Id'],
  26. :description => resource[:description]
  27. }
  28. end
  29. end