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.
- checksums.yaml +7 -0
- data/.gitignore +22 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/CONTRIBUTING.md +18 -0
- data/CONTRIBUTORS.md +1 -0
- data/Gemfile +4 -0
- data/LICENSE.md +20 -0
- data/README.md +29 -0
- data/Rakefile +2 -0
- data/fog-xenserver.gemspec +26 -0
- data/lib/fog.rb +3 -0
- data/lib/fog/compute.rb +7 -0
- data/lib/fog/xenserver.rb +1 -0
- data/lib/fog/xenserver/compute.rb +176 -0
- data/lib/fog/xenserver/core.rb +84 -0
- data/lib/fog/xenserver/examples/README.md +11 -0
- data/lib/fog/xenserver/examples/chage_default_storage_repository.md +99 -0
- data/lib/fog/xenserver/examples/creating_servers.md +168 -0
- data/lib/fog/xenserver/examples/getting_started.md +163 -0
- data/lib/fog/xenserver/examples/networks-and-vlans.rb +45 -0
- data/lib/fog/xenserver/examples/storage_repositories.md +94 -0
- data/lib/fog/xenserver/models/compute/blob.rb +22 -0
- data/lib/fog/xenserver/models/compute/blobs.rb +25 -0
- data/lib/fog/xenserver/models/compute/bond.rb +23 -0
- data/lib/fog/xenserver/models/compute/bonds.rb +25 -0
- data/lib/fog/xenserver/models/compute/console.rb +29 -0
- data/lib/fog/xenserver/models/compute/consoles.rb +25 -0
- data/lib/fog/xenserver/models/compute/crash_dump.rb +19 -0
- data/lib/fog/xenserver/models/compute/crash_dumps.rb +25 -0
- data/lib/fog/xenserver/models/compute/dr_task.rb +17 -0
- data/lib/fog/xenserver/models/compute/dr_tasks.rb +25 -0
- data/lib/fog/xenserver/models/compute/gpu_group.rb +22 -0
- data/lib/fog/xenserver/models/compute/gpu_groups.rb +25 -0
- data/lib/fog/xenserver/models/compute/guest_metrics.rb +29 -0
- data/lib/fog/xenserver/models/compute/host.rb +159 -0
- data/lib/fog/xenserver/models/compute/host_cpu.rb +38 -0
- data/lib/fog/xenserver/models/compute/host_crash_dump.rb +20 -0
- data/lib/fog/xenserver/models/compute/host_crash_dumps.rb +25 -0
- data/lib/fog/xenserver/models/compute/host_metrics.rb +29 -0
- data/lib/fog/xenserver/models/compute/host_patch.rb +25 -0
- data/lib/fog/xenserver/models/compute/host_patchs.rb +25 -0
- data/lib/fog/xenserver/models/compute/hosts.rb +29 -0
- data/lib/fog/xenserver/models/compute/network.rb +92 -0
- data/lib/fog/xenserver/models/compute/networks.rb +33 -0
- data/lib/fog/xenserver/models/compute/pbd.rb +40 -0
- data/lib/fog/xenserver/models/compute/pbds.rb +33 -0
- data/lib/fog/xenserver/models/compute/pci.rb +22 -0
- data/lib/fog/xenserver/models/compute/pcis.rb +25 -0
- data/lib/fog/xenserver/models/compute/pgpu.rb +20 -0
- data/lib/fog/xenserver/models/compute/pgpus.rb +25 -0
- data/lib/fog/xenserver/models/compute/pif.rb +57 -0
- data/lib/fog/xenserver/models/compute/pif_metrics.rb +28 -0
- data/lib/fog/xenserver/models/compute/pifs.rb +33 -0
- data/lib/fog/xenserver/models/compute/pifs_metrics.rb +25 -0
- data/lib/fog/xenserver/models/compute/pool.rb +79 -0
- data/lib/fog/xenserver/models/compute/pool_patch.rb +24 -0
- data/lib/fog/xenserver/models/compute/pool_patchs.rb +25 -0
- data/lib/fog/xenserver/models/compute/pools.rb +33 -0
- data/lib/fog/xenserver/models/compute/role.rb +19 -0
- data/lib/fog/xenserver/models/compute/roles.rb +25 -0
- data/lib/fog/xenserver/models/compute/server.rb +250 -0
- data/lib/fog/xenserver/models/compute/server_appliance.rb +21 -0
- data/lib/fog/xenserver/models/compute/server_appliances.rb +25 -0
- data/lib/fog/xenserver/models/compute/servers.rb +68 -0
- data/lib/fog/xenserver/models/compute/storage_manager.rb +28 -0
- data/lib/fog/xenserver/models/compute/storage_managers.rb +25 -0
- data/lib/fog/xenserver/models/compute/storage_repositories.rb +31 -0
- data/lib/fog/xenserver/models/compute/storage_repository.rb +93 -0
- data/lib/fog/xenserver/models/compute/tunnel.rb +20 -0
- data/lib/fog/xenserver/models/compute/tunnels.rb +25 -0
- data/lib/fog/xenserver/models/compute/vbd.rb +91 -0
- data/lib/fog/xenserver/models/compute/vbd_metrics.rb +27 -0
- data/lib/fog/xenserver/models/compute/vbds.rb +33 -0
- data/lib/fog/xenserver/models/compute/vdi.rb +105 -0
- data/lib/fog/xenserver/models/compute/vdis.rb +29 -0
- data/lib/fog/xenserver/models/compute/vif.rb +60 -0
- data/lib/fog/xenserver/models/compute/vifs.rb +29 -0
- data/lib/fog/xenserver/models/compute/vlan.rb +81 -0
- data/lib/fog/xenserver/models/compute/vlans.rb +39 -0
- data/lib/fog/xenserver/models/compute/vmpp.rb +35 -0
- data/lib/fog/xenserver/models/compute/vmpps.rb +25 -0
- data/lib/fog/xenserver/models/compute/vtpm.rb +18 -0
- data/lib/fog/xenserver/models/compute/vtpms.rb +25 -0
- data/lib/fog/xenserver/parser.rb +36 -0
- data/lib/fog/xenserver/parsers/get_hosts.rb +19 -0
- data/lib/fog/xenserver/parsers/get_networks.rb +19 -0
- data/lib/fog/xenserver/parsers/get_pools.rb +19 -0
- data/lib/fog/xenserver/parsers/get_records.rb +19 -0
- data/lib/fog/xenserver/parsers/get_storage_repositories.rb +19 -0
- data/lib/fog/xenserver/parsers/get_vbds.rb +19 -0
- data/lib/fog/xenserver/parsers/get_vifs.rb +19 -0
- data/lib/fog/xenserver/parsers/get_vms.rb +20 -0
- data/lib/fog/xenserver/requests/compute/clone_server.rb +31 -0
- data/lib/fog/xenserver/requests/compute/create_network.rb +42 -0
- data/lib/fog/xenserver/requests/compute/create_server.rb +130 -0
- data/lib/fog/xenserver/requests/compute/create_sr.rb +72 -0
- data/lib/fog/xenserver/requests/compute/create_vbd.rb +40 -0
- data/lib/fog/xenserver/requests/compute/create_vdi.rb +33 -0
- data/lib/fog/xenserver/requests/compute/create_vif.rb +57 -0
- data/lib/fog/xenserver/requests/compute/create_vlan.rb +35 -0
- data/lib/fog/xenserver/requests/compute/destroy_network.rb +33 -0
- data/lib/fog/xenserver/requests/compute/destroy_server.rb +22 -0
- data/lib/fog/xenserver/requests/compute/destroy_sr.rb +30 -0
- data/lib/fog/xenserver/requests/compute/destroy_vdi.rb +22 -0
- data/lib/fog/xenserver/requests/compute/destroy_vif.rb +22 -0
- data/lib/fog/xenserver/requests/compute/destroy_vlan.rb +32 -0
- data/lib/fog/xenserver/requests/compute/disable_host.rb +29 -0
- data/lib/fog/xenserver/requests/compute/eject_vbd.rb +22 -0
- data/lib/fog/xenserver/requests/compute/enable_host.rb +28 -0
- data/lib/fog/xenserver/requests/compute/get_record.rb +29 -0
- data/lib/fog/xenserver/requests/compute/get_records.rb +30 -0
- data/lib/fog/xenserver/requests/compute/insert_vbd.rb +22 -0
- data/lib/fog/xenserver/requests/compute/provision_server.rb +21 -0
- data/lib/fog/xenserver/requests/compute/reboot_host.rb +23 -0
- data/lib/fog/xenserver/requests/compute/reboot_server.rb +23 -0
- data/lib/fog/xenserver/requests/compute/scan_sr.rb +22 -0
- data/lib/fog/xenserver/requests/compute/set_affinity.rb +25 -0
- data/lib/fog/xenserver/requests/compute/set_attribute.rb +25 -0
- data/lib/fog/xenserver/requests/compute/shutdown_host.rb +23 -0
- data/lib/fog/xenserver/requests/compute/shutdown_server.rb +23 -0
- data/lib/fog/xenserver/requests/compute/snapshot_revert.rb +22 -0
- data/lib/fog/xenserver/requests/compute/snapshot_server.rb +22 -0
- data/lib/fog/xenserver/requests/compute/start_server.rb +23 -0
- data/lib/fog/xenserver/requests/compute/start_vm.rb +25 -0
- data/lib/fog/xenserver/requests/compute/unplug_pbd.rb +25 -0
- data/lib/fog/xenserver/requests/compute/unplug_vbd.rb +30 -0
- data/lib/fog/xenserver/utilities.rb +8 -0
- data/lib/fog/xenserver/version.rb +5 -0
- metadata +228 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class XenServer
|
|
4
|
+
|
|
5
|
+
class Real
|
|
6
|
+
|
|
7
|
+
#
|
|
8
|
+
# Create a storage repository (SR)
|
|
9
|
+
#
|
|
10
|
+
# @see http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/api/?c=SR
|
|
11
|
+
#
|
|
12
|
+
# @param [String] host_ref host reference
|
|
13
|
+
# @param [String] name_label repository label
|
|
14
|
+
# @param [String] type storage repository type
|
|
15
|
+
# @param [String] name_description storage repository description
|
|
16
|
+
# @param [Hash] device_config used to specify block device path, like
|
|
17
|
+
# { :device => /dev/sdb } for example
|
|
18
|
+
# @param [String] physical_size '0' will use the whole device (FIXME
|
|
19
|
+
# needs confirmation)
|
|
20
|
+
# @param [String] content_type the type of the SR's content.
|
|
21
|
+
# According to Citrix documentation, used only to distinguish ISO
|
|
22
|
+
# libraries from other SRs. Set it to 'iso' for storage repositories
|
|
23
|
+
# that store a library of ISOs, 'user' or '' (empty) otherwise.
|
|
24
|
+
# @see http://docs.vmd.citrix.com/XenServer/6.1.0/1.0/en_gb/reference.html#cli-xe-commands_sr
|
|
25
|
+
# @param [String] shared
|
|
26
|
+
#
|
|
27
|
+
# @return [String] an OpaqueRef to the storage repository
|
|
28
|
+
def create_sr( host_ref,
|
|
29
|
+
name_label,
|
|
30
|
+
type,
|
|
31
|
+
name_description = '',
|
|
32
|
+
device_config = {},
|
|
33
|
+
physical_size = '0',
|
|
34
|
+
content_type = 'user',
|
|
35
|
+
shared = false,
|
|
36
|
+
sm_config = {} )
|
|
37
|
+
|
|
38
|
+
@connection.request(
|
|
39
|
+
{:parser => Fog::Parsers::XenServer::Base.new, :method => 'SR.create'},
|
|
40
|
+
host_ref,
|
|
41
|
+
device_config || {},
|
|
42
|
+
physical_size || '0',
|
|
43
|
+
name_label,
|
|
44
|
+
name_description || '',
|
|
45
|
+
type,
|
|
46
|
+
content_type,
|
|
47
|
+
shared || false,
|
|
48
|
+
sm_config || {}
|
|
49
|
+
)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
class Mock
|
|
55
|
+
|
|
56
|
+
def create_sr( host_ref,
|
|
57
|
+
name_label,
|
|
58
|
+
type,
|
|
59
|
+
name_description = nil,
|
|
60
|
+
device_config = {},
|
|
61
|
+
physical_size = '0',
|
|
62
|
+
content_type = nil,
|
|
63
|
+
shared = false,
|
|
64
|
+
sm_config = {} )
|
|
65
|
+
Fog::Mock.not_implemented
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class XenServer
|
|
4
|
+
|
|
5
|
+
class Real
|
|
6
|
+
|
|
7
|
+
def create_vbd( vm_ref, vdi_ref, config = {} )
|
|
8
|
+
raise ArgumentError.new('Invalid config') if config.nil?
|
|
9
|
+
vm_ref = vm_ref.reference if vm_ref.kind_of? Fog::Compute::XenServer::Server
|
|
10
|
+
vdi_ref = vdi_ref.reference if vdi_ref.kind_of? Fog::Compute::XenServer::VDI
|
|
11
|
+
config.reject! { |k,v| (k == :server) or (k == :vdi) }
|
|
12
|
+
default_config = {
|
|
13
|
+
:VM => vm_ref,
|
|
14
|
+
:VDI => vdi_ref,
|
|
15
|
+
:empty => false,
|
|
16
|
+
:other_config => {'owner' => ''},
|
|
17
|
+
:userdevice => "0",
|
|
18
|
+
:bootable => true,
|
|
19
|
+
:mode => 'RW',
|
|
20
|
+
:qos_algorithm_type=> '',
|
|
21
|
+
:qos_algorithm_params=> {},
|
|
22
|
+
:qos_supported_algorithms=> [],
|
|
23
|
+
:type => 'Disk'
|
|
24
|
+
}.merge config
|
|
25
|
+
|
|
26
|
+
@connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VBD.create'}, default_config )
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
class Mock
|
|
31
|
+
|
|
32
|
+
def create_vbd( config )
|
|
33
|
+
Fog::Mock.not_implemented
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class XenServer
|
|
4
|
+
|
|
5
|
+
class Real
|
|
6
|
+
|
|
7
|
+
def create_vdi( config )
|
|
8
|
+
raise ArgumentError.new('Invalid config') if config.nil?
|
|
9
|
+
raise ArgumentError.new('Missing virtual_size attribute') if config[:virtual_size].nil?
|
|
10
|
+
raise ArgumentError.new('Missing read_only attribute') if config[:read_only].nil?
|
|
11
|
+
raise ArgumentError.new('Missing type attribute') if config[:type].nil?
|
|
12
|
+
raise ArgumentError.new('Missing sharable attribute') if config[:sharable].nil?
|
|
13
|
+
raise ArgumentError.new('Missing other_config attribute') if config[:other_config].nil?
|
|
14
|
+
raise ArgumentError.new('Missing storage_repository attribute') if config[:storage_repository].nil?
|
|
15
|
+
config[:SR] = config[:storage_repository].reference
|
|
16
|
+
config[:name_label] = config[:name]
|
|
17
|
+
config[:name_description] = config[:description] if config[:description]
|
|
18
|
+
config.reject! { |k,v| (k == :__sr) or (k == :storage_repository) }
|
|
19
|
+
@connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VDI.create'}, config )
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
class Mock
|
|
24
|
+
|
|
25
|
+
def create_vdi( ref )
|
|
26
|
+
Fog::Mock.not_implemented
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class XenServer
|
|
4
|
+
|
|
5
|
+
class Real
|
|
6
|
+
|
|
7
|
+
def create_vif( vm_ref, network_ref, device = -1)
|
|
8
|
+
raise ArgumentError.new('Invalid vm_ref') if vm_ref.nil?
|
|
9
|
+
raise ArgumentError.new('Invalid network_ref') if network_ref.nil?
|
|
10
|
+
vm_ref = vm_ref.reference if vm_ref.kind_of? Fog::Model
|
|
11
|
+
network_ref = network_ref.reference if network_ref.kind_of? Fog::Model
|
|
12
|
+
vif_config = default_vif_config(vm_ref, network_ref, device.to_s)
|
|
13
|
+
@connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VIF.create'}, vif_config )
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def create_vif_custom( conf )
|
|
17
|
+
raise ArgumentError.new('VIF config is not a Hash') if not conf.kind_of?(Hash)
|
|
18
|
+
@connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VIF.create'}, conf )
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def default_vif_config( vm_ref, network_ref, device_number = '-1' )
|
|
22
|
+
conf = {
|
|
23
|
+
'MAC_autogenerated' => 'True',
|
|
24
|
+
'VM' => vm_ref,
|
|
25
|
+
'network' => network_ref,
|
|
26
|
+
'MAC' => '',
|
|
27
|
+
'MTU' => '0',
|
|
28
|
+
'other_config' => {},
|
|
29
|
+
'qos_algorithm_type' => 'ratelimit',
|
|
30
|
+
'qos_algorithm_params' => {}
|
|
31
|
+
}
|
|
32
|
+
if device_number.to_i >= 0
|
|
33
|
+
conf['device'] = device_number
|
|
34
|
+
else
|
|
35
|
+
highest_dev = 0
|
|
36
|
+
server = servers.get vm_ref
|
|
37
|
+
server.vifs.each do |vif|
|
|
38
|
+
dev = vif.device.to_i
|
|
39
|
+
highest_dev = dev if dev > highest_dev
|
|
40
|
+
end
|
|
41
|
+
conf['device'] = (highest_dev + 1).to_s
|
|
42
|
+
end
|
|
43
|
+
conf
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
class Mock
|
|
48
|
+
|
|
49
|
+
def create_vif( vm_ref, network_ref )
|
|
50
|
+
Fog::Mock.not_implemented
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class XenServer
|
|
4
|
+
|
|
5
|
+
class Real
|
|
6
|
+
|
|
7
|
+
#
|
|
8
|
+
# Create a VLAN
|
|
9
|
+
#
|
|
10
|
+
# @see http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/api/?c=VLAN
|
|
11
|
+
#
|
|
12
|
+
def create_vlan( pif_ref, vlan_id, network_ref )
|
|
13
|
+
@connection.request(
|
|
14
|
+
{
|
|
15
|
+
:parser => Fog::Parsers::XenServer::Base.new,
|
|
16
|
+
:method => 'VLAN.create'
|
|
17
|
+
},
|
|
18
|
+
pif_ref,
|
|
19
|
+
vlan_id.to_s,
|
|
20
|
+
network_ref
|
|
21
|
+
)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
class Mock
|
|
26
|
+
|
|
27
|
+
def create_vlan( pif_ref, vlan_id, network_ref )
|
|
28
|
+
Fog::Mock.not_implemented
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class XenServer
|
|
4
|
+
|
|
5
|
+
class Real
|
|
6
|
+
|
|
7
|
+
#
|
|
8
|
+
# Destroy a Network
|
|
9
|
+
#
|
|
10
|
+
# @see http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/api/?c=network
|
|
11
|
+
#
|
|
12
|
+
def destroy_network( ref )
|
|
13
|
+
@connection.request(
|
|
14
|
+
{
|
|
15
|
+
:parser => Fog::Parsers::XenServer::Base.new,
|
|
16
|
+
:method => 'network.destroy'
|
|
17
|
+
},
|
|
18
|
+
ref
|
|
19
|
+
)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
class Mock
|
|
25
|
+
|
|
26
|
+
def destroy_network( ref )
|
|
27
|
+
Fog::Mock.not_implemented
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class XenServer
|
|
4
|
+
|
|
5
|
+
class Real
|
|
6
|
+
|
|
7
|
+
def destroy_server( vm_ref , extra_args = {})
|
|
8
|
+
@connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VM.destroy'}, vm_ref)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class Mock
|
|
14
|
+
|
|
15
|
+
def destroy_server()
|
|
16
|
+
Fog::Mock.not_implemented
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class XenServer
|
|
4
|
+
|
|
5
|
+
class Real
|
|
6
|
+
|
|
7
|
+
#
|
|
8
|
+
# Destroy a Storage Repository
|
|
9
|
+
#
|
|
10
|
+
# http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/api/?c=SR
|
|
11
|
+
#
|
|
12
|
+
def destroy_sr( sr_ref )
|
|
13
|
+
@connection.request(
|
|
14
|
+
{:parser => Fog::Parsers::XenServer::Base.new, :method => 'SR.destroy'},
|
|
15
|
+
sr_ref
|
|
16
|
+
)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
class Mock
|
|
22
|
+
|
|
23
|
+
def destroy_sr( sr_ref )
|
|
24
|
+
Fog::Mock.not_implemented
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
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 destroy_vdi( vdi_ref, extra_args = {})
|
|
8
|
+
@connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VDI.destroy'}, vdi_ref)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class Mock
|
|
14
|
+
|
|
15
|
+
def destroy_vdi()
|
|
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 destroy_vif( ref, extra_args = {})
|
|
8
|
+
@connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VIF.destroy'}, ref)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class Mock
|
|
14
|
+
|
|
15
|
+
def destroy_vif()
|
|
16
|
+
Fog::Mock.not_implemented
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class XenServer
|
|
4
|
+
|
|
5
|
+
class Real
|
|
6
|
+
|
|
7
|
+
# Destroy a VLAN
|
|
8
|
+
#
|
|
9
|
+
# @see http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/api/?c=VLAN
|
|
10
|
+
#
|
|
11
|
+
def destroy_vlan( ref )
|
|
12
|
+
@connection.request(
|
|
13
|
+
{
|
|
14
|
+
:parser => Fog::Parsers::XenServer::Base.new,
|
|
15
|
+
:method => 'VLAN.destroy'
|
|
16
|
+
},
|
|
17
|
+
ref
|
|
18
|
+
)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
class Mock
|
|
24
|
+
|
|
25
|
+
def destroy_vlan( ref )
|
|
26
|
+
Fog::Mock.not_implemented
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class XenServer
|
|
4
|
+
|
|
5
|
+
class Real
|
|
6
|
+
|
|
7
|
+
#
|
|
8
|
+
# Puts the host into a state in which no new VMs can be started.
|
|
9
|
+
# Currently active VMs on the host continue to execute.
|
|
10
|
+
#
|
|
11
|
+
# @see http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/api/?c=host
|
|
12
|
+
#
|
|
13
|
+
def disable_host( ref )
|
|
14
|
+
@connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => "host.disable"}, ref)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
class Mock
|
|
20
|
+
|
|
21
|
+
def disable_host( ref )
|
|
22
|
+
Fog::Mock.not_implemented
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|