Guest User

Untitled

a guest
Sep 21st, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  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. # List all servers (VMs)
  24. # including templates but not snapshots
  25. #
  26. conn.servers.all :include_templates => true,
  27. :name_matches => "Ubuntu",
  28. :include_snapshots => false
  29.  
  30. #
  31. # First server available
  32. #
  33. # Templates aren't included by default
  34. # in listing
  35. server = conn.servers.all.first
  36.  
  37. #
  38. # Get server VIFs
  39. #
  40. server.networks
  41. # or server.vifs
  42.  
  43. #
  44. # List the hypervisors
  45. #
  46. conn.hosts
  47.  
  48. #
  49. # Listing Storage Repositories (Xen SRs)
  50. conn.storage_repositories.all
  51.  
  52. #
  53. # XenServer Pools
  54. #
  55. conn.pools
  56.  
  57. # Default Storage repository in a Pool
  58. conn.pools.all.first.default_sr
  59. # or
  60. # conn.pools.all.first.default_storage_repository
  61.  
  62. #
  63. # Create server from template
  64. # conn.default_template
  65. #
  66. # :template_name overrides default template in
  67. # xenserver_defaults
  68. #
  69. # The server is automatically started
  70. #
  71. # vm = conn.servers.create :name => 'foobar' + "#{i}"
  72.  
  73. vm = conn.servers.create :name => 'foobar2',
  74. :template_name => 'squeeze-test'
  75.  
  76. #
  77. # If you don't want to automatically start the server
  78. #vm = conn.servers.new :name => 'foobar',
  79. # :template_name => 'test_template'
  80. ## Saving will start it
  81. #vm.save(:auto_start => false)
  82.  
  83. #
  84. # List all XenServer VBDs
  85. conn.vbds.all
  86.  
  87. #
  88. # Get a VM VBDs
  89. vm.vbds
  90.  
  91. #
  92. # Get VDIs for every VM VBD
  93. vm.vbds.each do |vbd|
  94. vbd.vdi
  95. end
  96.  
  97. #
  98. # List all XenServer VDIs
  99. conn.vdis.all
  100.  
  101. #
  102. # Force shutdown
  103. vm.stop 'hard'
  104. # vm.hard_shutdown is equivalent
  105.  
  106. #
  107. # Clean shutdown
  108. vm.stop 'clean'
  109. # also vm.clean_shutdown
  110.  
  111. # Destroy the foobar2 VM
  112. vm.destroy
Add Comment
Please, Sign In to add comment