Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 19th, 2012  |  syntax: None  |  size: 1.29 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. require 'fog'
  2. require 'pp'
  3.  
  4. conn = Fog::Compute.new({
  5.   :provider => 'XenServer',
  6.   :xenserver_url => 'xenserver-test',
  7.   :xenserver_username => 'root',
  8.   :xenserver_password => 'changeme',
  9.   :xenserver_defaults => {
  10.     :template => "squeeze-test"
  11.   }
  12. })
  13.  
  14. #
  15. # A Fog::Compute::XenServer::Server
  16. # is a XenServer VM
  17. #
  18. # a Fog::Compute::XenServer::Host
  19. # is a Hypervisor
  20. #
  21.  
  22.  
  23. #
  24. # List all servers (VMs) templates
  25. # excluding custom templates
  26. servers = conn.servers.all(:include_templates => true,          # false by default
  27.                            :include_custom_templates => false)   # false by default
  28. builtin_templates = servers.delete_if { |s| !s.is_a_template }
  29.  
  30. #
  31. # All the "custom" templates, i.e. created by us.
  32. servers = conn.servers.all(:include_templates => false,        # false by default
  33.                            :include_custom_templates => true) # false by default
  34. custom_templates = servers.delete_if { |s| !s.is_a_template }
  35. # Print the names
  36. custom_templates.each do |t|
  37.   puts t.name
  38.   # We can destroy them too
  39.   #
  40.   # t.destroy
  41. end
  42.  
  43. #
  44. # Only 'real' servers, no templates, no snapshots
  45. servers = conn.servers.all
  46. servers.each do |s|
  47.   #puts s.name
  48. end
  49.  
  50. # 'real' + snaphots
  51. servers = conn.servers.all(:include_snapshots => true)
  52. servers.each do |s|
  53.   #puts s.name
  54.   #puts s.is_a_snapshot
  55. end