fog-xenserver 0.0.1.alpha
Sign up to get free protection for your applications and to get access to all the features.
- 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
|