fog-xenserver 0.0.1.alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +22 -0
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/CONTRIBUTING.md +18 -0
  6. data/CONTRIBUTORS.md +1 -0
  7. data/Gemfile +4 -0
  8. data/LICENSE.md +20 -0
  9. data/README.md +29 -0
  10. data/Rakefile +2 -0
  11. data/fog-xenserver.gemspec +26 -0
  12. data/lib/fog.rb +3 -0
  13. data/lib/fog/compute.rb +7 -0
  14. data/lib/fog/xenserver.rb +1 -0
  15. data/lib/fog/xenserver/compute.rb +176 -0
  16. data/lib/fog/xenserver/core.rb +84 -0
  17. data/lib/fog/xenserver/examples/README.md +11 -0
  18. data/lib/fog/xenserver/examples/chage_default_storage_repository.md +99 -0
  19. data/lib/fog/xenserver/examples/creating_servers.md +168 -0
  20. data/lib/fog/xenserver/examples/getting_started.md +163 -0
  21. data/lib/fog/xenserver/examples/networks-and-vlans.rb +45 -0
  22. data/lib/fog/xenserver/examples/storage_repositories.md +94 -0
  23. data/lib/fog/xenserver/models/compute/blob.rb +22 -0
  24. data/lib/fog/xenserver/models/compute/blobs.rb +25 -0
  25. data/lib/fog/xenserver/models/compute/bond.rb +23 -0
  26. data/lib/fog/xenserver/models/compute/bonds.rb +25 -0
  27. data/lib/fog/xenserver/models/compute/console.rb +29 -0
  28. data/lib/fog/xenserver/models/compute/consoles.rb +25 -0
  29. data/lib/fog/xenserver/models/compute/crash_dump.rb +19 -0
  30. data/lib/fog/xenserver/models/compute/crash_dumps.rb +25 -0
  31. data/lib/fog/xenserver/models/compute/dr_task.rb +17 -0
  32. data/lib/fog/xenserver/models/compute/dr_tasks.rb +25 -0
  33. data/lib/fog/xenserver/models/compute/gpu_group.rb +22 -0
  34. data/lib/fog/xenserver/models/compute/gpu_groups.rb +25 -0
  35. data/lib/fog/xenserver/models/compute/guest_metrics.rb +29 -0
  36. data/lib/fog/xenserver/models/compute/host.rb +159 -0
  37. data/lib/fog/xenserver/models/compute/host_cpu.rb +38 -0
  38. data/lib/fog/xenserver/models/compute/host_crash_dump.rb +20 -0
  39. data/lib/fog/xenserver/models/compute/host_crash_dumps.rb +25 -0
  40. data/lib/fog/xenserver/models/compute/host_metrics.rb +29 -0
  41. data/lib/fog/xenserver/models/compute/host_patch.rb +25 -0
  42. data/lib/fog/xenserver/models/compute/host_patchs.rb +25 -0
  43. data/lib/fog/xenserver/models/compute/hosts.rb +29 -0
  44. data/lib/fog/xenserver/models/compute/network.rb +92 -0
  45. data/lib/fog/xenserver/models/compute/networks.rb +33 -0
  46. data/lib/fog/xenserver/models/compute/pbd.rb +40 -0
  47. data/lib/fog/xenserver/models/compute/pbds.rb +33 -0
  48. data/lib/fog/xenserver/models/compute/pci.rb +22 -0
  49. data/lib/fog/xenserver/models/compute/pcis.rb +25 -0
  50. data/lib/fog/xenserver/models/compute/pgpu.rb +20 -0
  51. data/lib/fog/xenserver/models/compute/pgpus.rb +25 -0
  52. data/lib/fog/xenserver/models/compute/pif.rb +57 -0
  53. data/lib/fog/xenserver/models/compute/pif_metrics.rb +28 -0
  54. data/lib/fog/xenserver/models/compute/pifs.rb +33 -0
  55. data/lib/fog/xenserver/models/compute/pifs_metrics.rb +25 -0
  56. data/lib/fog/xenserver/models/compute/pool.rb +79 -0
  57. data/lib/fog/xenserver/models/compute/pool_patch.rb +24 -0
  58. data/lib/fog/xenserver/models/compute/pool_patchs.rb +25 -0
  59. data/lib/fog/xenserver/models/compute/pools.rb +33 -0
  60. data/lib/fog/xenserver/models/compute/role.rb +19 -0
  61. data/lib/fog/xenserver/models/compute/roles.rb +25 -0
  62. data/lib/fog/xenserver/models/compute/server.rb +250 -0
  63. data/lib/fog/xenserver/models/compute/server_appliance.rb +21 -0
  64. data/lib/fog/xenserver/models/compute/server_appliances.rb +25 -0
  65. data/lib/fog/xenserver/models/compute/servers.rb +68 -0
  66. data/lib/fog/xenserver/models/compute/storage_manager.rb +28 -0
  67. data/lib/fog/xenserver/models/compute/storage_managers.rb +25 -0
  68. data/lib/fog/xenserver/models/compute/storage_repositories.rb +31 -0
  69. data/lib/fog/xenserver/models/compute/storage_repository.rb +93 -0
  70. data/lib/fog/xenserver/models/compute/tunnel.rb +20 -0
  71. data/lib/fog/xenserver/models/compute/tunnels.rb +25 -0
  72. data/lib/fog/xenserver/models/compute/vbd.rb +91 -0
  73. data/lib/fog/xenserver/models/compute/vbd_metrics.rb +27 -0
  74. data/lib/fog/xenserver/models/compute/vbds.rb +33 -0
  75. data/lib/fog/xenserver/models/compute/vdi.rb +105 -0
  76. data/lib/fog/xenserver/models/compute/vdis.rb +29 -0
  77. data/lib/fog/xenserver/models/compute/vif.rb +60 -0
  78. data/lib/fog/xenserver/models/compute/vifs.rb +29 -0
  79. data/lib/fog/xenserver/models/compute/vlan.rb +81 -0
  80. data/lib/fog/xenserver/models/compute/vlans.rb +39 -0
  81. data/lib/fog/xenserver/models/compute/vmpp.rb +35 -0
  82. data/lib/fog/xenserver/models/compute/vmpps.rb +25 -0
  83. data/lib/fog/xenserver/models/compute/vtpm.rb +18 -0
  84. data/lib/fog/xenserver/models/compute/vtpms.rb +25 -0
  85. data/lib/fog/xenserver/parser.rb +36 -0
  86. data/lib/fog/xenserver/parsers/get_hosts.rb +19 -0
  87. data/lib/fog/xenserver/parsers/get_networks.rb +19 -0
  88. data/lib/fog/xenserver/parsers/get_pools.rb +19 -0
  89. data/lib/fog/xenserver/parsers/get_records.rb +19 -0
  90. data/lib/fog/xenserver/parsers/get_storage_repositories.rb +19 -0
  91. data/lib/fog/xenserver/parsers/get_vbds.rb +19 -0
  92. data/lib/fog/xenserver/parsers/get_vifs.rb +19 -0
  93. data/lib/fog/xenserver/parsers/get_vms.rb +20 -0
  94. data/lib/fog/xenserver/requests/compute/clone_server.rb +31 -0
  95. data/lib/fog/xenserver/requests/compute/create_network.rb +42 -0
  96. data/lib/fog/xenserver/requests/compute/create_server.rb +130 -0
  97. data/lib/fog/xenserver/requests/compute/create_sr.rb +72 -0
  98. data/lib/fog/xenserver/requests/compute/create_vbd.rb +40 -0
  99. data/lib/fog/xenserver/requests/compute/create_vdi.rb +33 -0
  100. data/lib/fog/xenserver/requests/compute/create_vif.rb +57 -0
  101. data/lib/fog/xenserver/requests/compute/create_vlan.rb +35 -0
  102. data/lib/fog/xenserver/requests/compute/destroy_network.rb +33 -0
  103. data/lib/fog/xenserver/requests/compute/destroy_server.rb +22 -0
  104. data/lib/fog/xenserver/requests/compute/destroy_sr.rb +30 -0
  105. data/lib/fog/xenserver/requests/compute/destroy_vdi.rb +22 -0
  106. data/lib/fog/xenserver/requests/compute/destroy_vif.rb +22 -0
  107. data/lib/fog/xenserver/requests/compute/destroy_vlan.rb +32 -0
  108. data/lib/fog/xenserver/requests/compute/disable_host.rb +29 -0
  109. data/lib/fog/xenserver/requests/compute/eject_vbd.rb +22 -0
  110. data/lib/fog/xenserver/requests/compute/enable_host.rb +28 -0
  111. data/lib/fog/xenserver/requests/compute/get_record.rb +29 -0
  112. data/lib/fog/xenserver/requests/compute/get_records.rb +30 -0
  113. data/lib/fog/xenserver/requests/compute/insert_vbd.rb +22 -0
  114. data/lib/fog/xenserver/requests/compute/provision_server.rb +21 -0
  115. data/lib/fog/xenserver/requests/compute/reboot_host.rb +23 -0
  116. data/lib/fog/xenserver/requests/compute/reboot_server.rb +23 -0
  117. data/lib/fog/xenserver/requests/compute/scan_sr.rb +22 -0
  118. data/lib/fog/xenserver/requests/compute/set_affinity.rb +25 -0
  119. data/lib/fog/xenserver/requests/compute/set_attribute.rb +25 -0
  120. data/lib/fog/xenserver/requests/compute/shutdown_host.rb +23 -0
  121. data/lib/fog/xenserver/requests/compute/shutdown_server.rb +23 -0
  122. data/lib/fog/xenserver/requests/compute/snapshot_revert.rb +22 -0
  123. data/lib/fog/xenserver/requests/compute/snapshot_server.rb +22 -0
  124. data/lib/fog/xenserver/requests/compute/start_server.rb +23 -0
  125. data/lib/fog/xenserver/requests/compute/start_vm.rb +25 -0
  126. data/lib/fog/xenserver/requests/compute/unplug_pbd.rb +25 -0
  127. data/lib/fog/xenserver/requests/compute/unplug_vbd.rb +30 -0
  128. data/lib/fog/xenserver/utilities.rb +8 -0
  129. data/lib/fog/xenserver/version.rb +5 -0
  130. metadata +228 -0
@@ -0,0 +1,22 @@
1
+ module Fog
2
+ module Compute
3
+ class XenServer
4
+
5
+ class Real
6
+
7
+ def eject_vbd(ref, extra_args = {})
8
+ @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VBD.eject'}, ref)
9
+ end
10
+
11
+ end
12
+
13
+ class Mock
14
+
15
+ def eject_vbd(ref, extra_args = {})
16
+ Fog::Mock.not_implemented
17
+ end
18
+
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,28 @@
1
+ module Fog
2
+ module Compute
3
+ class XenServer
4
+
5
+ class Real
6
+
7
+ #
8
+ # Puts the host into a state in which VMs can be started.
9
+ #
10
+ # @see http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/api/?c=host
11
+ #
12
+ def enable_host( ref )
13
+ @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => "host.enable"}, ref)
14
+ end
15
+
16
+ end
17
+
18
+ class Mock
19
+
20
+ def enable_host( ref )
21
+ Fog::Mock.not_implemented
22
+ end
23
+
24
+ end
25
+
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,29 @@
1
+ module Fog
2
+ module Compute
3
+ class XenServer
4
+
5
+ class Real
6
+
7
+ require 'fog/xenserver/parser'
8
+
9
+ def get_record( ref, klass, options = {} )
10
+ get_record_by_ref ref, klass, options
11
+ end
12
+
13
+ def get_record_by_ref( ref, klass, options = {} )
14
+ @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => "#{klass}.get_record"}, ref).merge(:reference => ref)
15
+ end
16
+
17
+ end
18
+
19
+ class Mock
20
+
21
+ def get_record_by_ref
22
+ Fog::Mock.not_implemented
23
+ end
24
+
25
+ end
26
+
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,30 @@
1
+ module Fog
2
+ module Compute
3
+ class XenServer
4
+
5
+ class Real
6
+
7
+ require 'fog/xenserver/parsers/get_records'
8
+
9
+ def get_records( klass, options = {} )
10
+ begin
11
+ res = @connection.request(:parser => Fog::Parsers::XenServer::GetRecords.new, :method => "#{klass}.get_all_records")
12
+ res
13
+ rescue Fog::XenServer::RequestFailed => e
14
+ []
15
+ end
16
+ end
17
+
18
+ end
19
+
20
+ class Mock
21
+
22
+ def get_vms
23
+ Fog::Mock.not_implemented
24
+ end
25
+
26
+ end
27
+
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,22 @@
1
+ module Fog
2
+ module Compute
3
+ class XenServer
4
+
5
+ class Real
6
+
7
+ def insert_vbd(ref, vdi_ref, extra_args = {})
8
+ @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VBD.insert'}, ref, vdi_ref)
9
+ end
10
+
11
+ end
12
+
13
+ class Mock
14
+
15
+ def insert_vbd(ref, vdi_ref, extra_args = {})
16
+ Fog::Mock.not_implemented
17
+ end
18
+
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,21 @@
1
+ module Fog
2
+ module Compute
3
+ class XenServer
4
+ class Real
5
+
6
+ def provision_server( ref )
7
+ @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VM.provision'}, ref)
8
+ end
9
+
10
+ end
11
+
12
+ class Mock
13
+
14
+ def provision_server( ref )
15
+ Fog::Mock.not_implemented
16
+ end
17
+ end
18
+
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,23 @@
1
+ module Fog
2
+ module Compute
3
+ class XenServer
4
+
5
+ class Real
6
+
7
+ def reboot_host( ref )
8
+ @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => "host.reboot"}, ref)
9
+ end
10
+
11
+ end
12
+
13
+ class Mock
14
+
15
+ def reboot_host( ref )
16
+ Fog::Mock.not_implemented
17
+ end
18
+
19
+ end
20
+
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,23 @@
1
+ module Fog
2
+ module Compute
3
+ class XenServer
4
+
5
+ class Real
6
+
7
+ def reboot_server( ref, stype = 'clean' )
8
+ @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => "VM.#{stype}_reboot"}, ref)
9
+ end
10
+
11
+ end
12
+
13
+ class Mock
14
+
15
+ def reboot_server( ref, stype )
16
+ Fog::Mock.not_implemented
17
+ end
18
+
19
+ end
20
+
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,22 @@
1
+ module Fog
2
+ module Compute
3
+ class XenServer
4
+
5
+ class Real
6
+
7
+ def scan_sr( ref, extra_args = {})
8
+ @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'SR.scan'}, ref)
9
+ end
10
+
11
+ end
12
+
13
+ class Mock
14
+
15
+ def scan_sr(ref, extra_args = {})
16
+ Fog::Mock.not_implemented
17
+ end
18
+
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,25 @@
1
+ module Fog
2
+ module Compute
3
+ class XenServer
4
+
5
+ class Real
6
+
7
+ require 'fog/xenserver/parser'
8
+
9
+ def set_affinity( host_ref )
10
+ @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VM.set_affinity'}, host_ref)
11
+ end
12
+
13
+ end
14
+
15
+ class Mock
16
+
17
+ def set_affinity( uuid )
18
+ Fog::Mock.not_implemented
19
+ end
20
+
21
+ end
22
+
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ module Fog
2
+ module Compute
3
+ class XenServer
4
+
5
+ class Real
6
+
7
+ require 'fog/xenserver/parser'
8
+
9
+ def set_attribute( klass, ref, attr_name, *value )
10
+ @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => "#{klass}.set_#{attr_name.gsub('-','_')}"}, ref, *value)
11
+ end
12
+
13
+ end
14
+
15
+ class Mock
16
+
17
+ def set_attribute( klass, ref, attr_name, value )
18
+ Fog::Mock.not_implemented
19
+ end
20
+
21
+ end
22
+
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,23 @@
1
+ module Fog
2
+ module Compute
3
+ class XenServer
4
+
5
+ class Real
6
+
7
+ def shutdown_host( ref )
8
+ @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => "host.shutdown"}, ref)
9
+ end
10
+
11
+ end
12
+
13
+ class Mock
14
+
15
+ def shutdown_host( ref )
16
+ Fog::Mock.not_implemented
17
+ end
18
+
19
+ end
20
+
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,23 @@
1
+ module Fog
2
+ module Compute
3
+ class XenServer
4
+
5
+ class Real
6
+
7
+ def shutdown_server( vm_ref, stype = 'clean' )
8
+ @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => "VM.#{stype}_shutdown"}, vm_ref)
9
+ end
10
+
11
+ end
12
+
13
+ class Mock
14
+
15
+ def shutdown_server( vm_ref )
16
+ Fog::Mock.not_implemented
17
+ end
18
+
19
+ end
20
+
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,22 @@
1
+ module Fog
2
+ module Compute
3
+ class XenServer
4
+
5
+ class Real
6
+
7
+ def snapshot_revert( snapshot_ref, extra_args = {})
8
+ @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VM.revert'}, snapshot_ref)
9
+ end
10
+
11
+ end
12
+
13
+ class Mock
14
+
15
+ def snapshot_revert()
16
+ Fog::Mock.not_implemented
17
+ end
18
+
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ module Fog
2
+ module Compute
3
+ class XenServer
4
+
5
+ class Real
6
+
7
+ def snapshot_server( vm_ref , name, extra_args = {})
8
+ @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VM.snapshot'}, vm_ref, name)
9
+ end
10
+
11
+ end
12
+
13
+ class Mock
14
+
15
+ def snapshot_server()
16
+ Fog::Mock.not_implemented
17
+ end
18
+
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,23 @@
1
+ module Fog
2
+ module Compute
3
+
4
+ class XenServer
5
+ class Real
6
+
7
+ def start_server( vm_ref )
8
+ start_vm( vm_ref )
9
+ end
10
+
11
+ end
12
+
13
+ class Mock
14
+
15
+ def start_server( vm_ref )
16
+ Fog::Mock.not_implemented
17
+ end
18
+
19
+ end
20
+
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,25 @@
1
+ module Fog
2
+ module Compute
3
+ class XenServer
4
+
5
+ class Real
6
+
7
+ # http://bit.ly/8ZPyCN
8
+ # VM.start( session, VM_ref, start_paused, force)
9
+ def start_vm( vm_ref )
10
+ @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VM.start'}, vm_ref, false, false)
11
+ end
12
+
13
+ end
14
+
15
+ class Mock
16
+
17
+ def start_vm( vm_ref )
18
+ Fog::Mock.not_implemented
19
+ end
20
+
21
+ end
22
+
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ module Fog
2
+ module Compute
3
+ class XenServer
4
+
5
+ class Real
6
+
7
+ def unplug_pbd( ref )
8
+ @connection.request(
9
+ {:parser => Fog::Parsers::XenServer::Base.new, :method => 'PBD.unplug'},
10
+ ref
11
+ )
12
+ end
13
+
14
+ end
15
+
16
+ class Mock
17
+
18
+ def unplug_pbd( ref )
19
+ Fog::Mock.not_implemented
20
+ end
21
+
22
+ end
23
+ end
24
+ end
25
+ end