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,33 @@
|
|
|
1
|
+
require 'fog/core/collection'
|
|
2
|
+
require 'fog/xenserver/models/compute/vbd'
|
|
3
|
+
|
|
4
|
+
module Fog
|
|
5
|
+
module Compute
|
|
6
|
+
class XenServer
|
|
7
|
+
|
|
8
|
+
class Vbds < Fog::Collection
|
|
9
|
+
|
|
10
|
+
model Fog::Compute::XenServer::VBD
|
|
11
|
+
|
|
12
|
+
def initialize(attributes)
|
|
13
|
+
super
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def all(options = {})
|
|
17
|
+
data = service.get_records 'VBD'
|
|
18
|
+
load(data)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def get( vbd_ref )
|
|
22
|
+
if vbd_ref && vbd = service.get_record( vbd_ref, 'VBD' )
|
|
23
|
+
new(vbd)
|
|
24
|
+
end
|
|
25
|
+
rescue Fog::XenServer::NotFound
|
|
26
|
+
nil
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
require 'fog/core/model'
|
|
2
|
+
|
|
3
|
+
module Fog
|
|
4
|
+
module Compute
|
|
5
|
+
class XenServer
|
|
6
|
+
|
|
7
|
+
class VDI < Fog::Model
|
|
8
|
+
# API Reference here:
|
|
9
|
+
# http://docs.vmd.citrix.com/XenServer/6.2.0/1.0/en_gb/api/?c=VDI
|
|
10
|
+
|
|
11
|
+
identity :reference
|
|
12
|
+
|
|
13
|
+
attribute :uuid
|
|
14
|
+
attribute :is_a_snapshot
|
|
15
|
+
attribute :name, :aliases => :name_label
|
|
16
|
+
attribute :description, :aliases => :name_description
|
|
17
|
+
attribute :__parent, :aliases => :parent
|
|
18
|
+
attribute :virtual_size
|
|
19
|
+
attribute :__vbds, :aliases => :VBDs
|
|
20
|
+
attribute :__sr, :aliases => :SR
|
|
21
|
+
attribute :sharable
|
|
22
|
+
attribute :read_only
|
|
23
|
+
attribute :current_operations
|
|
24
|
+
attribute :allowed_operations
|
|
25
|
+
attribute :__crash_dumps, :aliases => :crash_dumps
|
|
26
|
+
attribute :type
|
|
27
|
+
attribute :other_config
|
|
28
|
+
attribute :tags
|
|
29
|
+
attribute :storage_lock
|
|
30
|
+
attribute :physical_utilisation
|
|
31
|
+
attribute :missing
|
|
32
|
+
attribute :location
|
|
33
|
+
attribute :managed
|
|
34
|
+
attribute :metadata_latest
|
|
35
|
+
attribute :metadata_of_pool
|
|
36
|
+
attribute :allow_caching
|
|
37
|
+
attribute :on_boot
|
|
38
|
+
attribute :sm_config
|
|
39
|
+
attribute :snapshot_time
|
|
40
|
+
attribute :__snapshots, :aliases => :snapshots
|
|
41
|
+
attribute :__snapshot_of, :aliases => :snapshot_of
|
|
42
|
+
attribute :xenstore_data
|
|
43
|
+
|
|
44
|
+
#
|
|
45
|
+
# Default VDI type is system
|
|
46
|
+
# Default size 8GB
|
|
47
|
+
# Sharable is false by default
|
|
48
|
+
# read_only is false by default
|
|
49
|
+
#
|
|
50
|
+
def initialize(attributes = {})
|
|
51
|
+
self.virtual_size ||= '8589934592' unless attributes[:virtual_size]
|
|
52
|
+
self.type ||= 'system' unless attributes[:type]
|
|
53
|
+
self.read_only ||= false unless attributes[:read_only]
|
|
54
|
+
self.sharable ||= false unless attributes[:sharable]
|
|
55
|
+
self.other_config ||= {} unless attributes[:other_config]
|
|
56
|
+
super
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def set_attribute(name, *val)
|
|
60
|
+
data = service.set_attribute( 'VDI', reference, name, *val )
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def snapshot_of
|
|
64
|
+
service.vdis.get __sr
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def parent
|
|
68
|
+
service.vdis.get __parent
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def snapshots
|
|
72
|
+
__snapshots.collect do |ref|
|
|
73
|
+
service.vdis.get ref
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def vbds
|
|
78
|
+
__vbds.collect do |ref|
|
|
79
|
+
service.vbds.get ref
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def save
|
|
84
|
+
requires :name, :storage_repository
|
|
85
|
+
ref = service.create_vdi attributes
|
|
86
|
+
merge_attributes service.vdis.get(ref).attributes
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def destroy
|
|
90
|
+
service.destroy_vdi reference
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def storage_repository
|
|
94
|
+
service.storage_repositories.get __sr
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def sr
|
|
98
|
+
storage_repository
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
require 'fog/core/collection'
|
|
2
|
+
require 'fog/xenserver/models/compute/vdi'
|
|
3
|
+
|
|
4
|
+
module Fog
|
|
5
|
+
module Compute
|
|
6
|
+
class XenServer
|
|
7
|
+
|
|
8
|
+
class Vdis < Fog::Collection
|
|
9
|
+
|
|
10
|
+
model Fog::Compute::XenServer::VDI
|
|
11
|
+
|
|
12
|
+
def all(options = {})
|
|
13
|
+
data = service.get_records 'VDI'
|
|
14
|
+
load(data)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def get( vdi_ref )
|
|
18
|
+
if vdi_ref && vdi = service.get_record( vdi_ref, 'VDI' )
|
|
19
|
+
new(vdi)
|
|
20
|
+
end
|
|
21
|
+
rescue Fog::XenServer::NotFound
|
|
22
|
+
nil
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
require 'fog/core/model'
|
|
2
|
+
|
|
3
|
+
module Fog
|
|
4
|
+
module Compute
|
|
5
|
+
class XenServer
|
|
6
|
+
|
|
7
|
+
class VIF < Fog::Model
|
|
8
|
+
# API Reference here:
|
|
9
|
+
# http://docs.vmd.citrix.com/XenServer/6.2.0/1.0/en_gb/api/?c=VIF
|
|
10
|
+
|
|
11
|
+
identity :reference
|
|
12
|
+
|
|
13
|
+
attribute :mac, :aliases => :MAC
|
|
14
|
+
attribute :uuid
|
|
15
|
+
attribute :allowed_operations
|
|
16
|
+
attribute :current_operations
|
|
17
|
+
attribute :currently_attached
|
|
18
|
+
attribute :device
|
|
19
|
+
attribute :ipv4_allowed
|
|
20
|
+
attribute :ipv6_allowed
|
|
21
|
+
attribute :locking_mode
|
|
22
|
+
attribute :mac_autogenerated, :aliases => :MAC_autogenerated
|
|
23
|
+
attribute :__metrics, :aliases => :metrics
|
|
24
|
+
attribute :other_config
|
|
25
|
+
attribute :qos_algorithm_params
|
|
26
|
+
attribute :qos_algorithm_type
|
|
27
|
+
attribute :qos_supported_algorithms
|
|
28
|
+
attribute :runtime_properties
|
|
29
|
+
attribute :mtu, :aliases => :MTU
|
|
30
|
+
attribute :__network, :aliases => :network
|
|
31
|
+
attribute :status_code
|
|
32
|
+
attribute :status_detail
|
|
33
|
+
attribute :__vm, :aliases => :VM
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def destroy
|
|
37
|
+
service.destroy_vif reference
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def network
|
|
41
|
+
service.networks.get __network
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def server
|
|
45
|
+
service.servers.get __vm
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def save
|
|
49
|
+
requires :server
|
|
50
|
+
raise ArgumentError.new('network is required for this operation') \
|
|
51
|
+
unless attributes[:__network]
|
|
52
|
+
ref = service.create_vif attributes[:server], attributes[:__network]
|
|
53
|
+
merge_attributes service.vifs.get(ref).attributes
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
require 'fog/core/collection'
|
|
2
|
+
require 'fog/xenserver/models/compute/vif'
|
|
3
|
+
|
|
4
|
+
module Fog
|
|
5
|
+
module Compute
|
|
6
|
+
class XenServer
|
|
7
|
+
|
|
8
|
+
class Vifs < Fog::Collection
|
|
9
|
+
|
|
10
|
+
model Fog::Compute::XenServer::VIF
|
|
11
|
+
|
|
12
|
+
def all(options = {})
|
|
13
|
+
data = service.get_records 'VIF'
|
|
14
|
+
load(data)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def get( ref )
|
|
18
|
+
if ref && obj = service.get_record( ref, 'VIF' )
|
|
19
|
+
new(obj)
|
|
20
|
+
end
|
|
21
|
+
rescue Fog::XenServer::NotFound
|
|
22
|
+
nil
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
require 'fog/core/model'
|
|
2
|
+
|
|
3
|
+
module Fog
|
|
4
|
+
module Compute
|
|
5
|
+
class XenServer
|
|
6
|
+
|
|
7
|
+
class VLAN < Fog::Model
|
|
8
|
+
# API Reference here:
|
|
9
|
+
# @see http://docs.vmd.citrix.com/XenServer/6.2.0/1.0/en_gb/api/?c=VLAN
|
|
10
|
+
|
|
11
|
+
identity :reference
|
|
12
|
+
|
|
13
|
+
attribute :uuid
|
|
14
|
+
attribute :tag, :type => :integer
|
|
15
|
+
attribute :other_config
|
|
16
|
+
attribute :__untagged_pif, :aliases => :untagged_PIF
|
|
17
|
+
attribute :__tagged_pif, :aliases => :tagged_PIF
|
|
18
|
+
|
|
19
|
+
# @return [Fog::Compute::XenServer::PIF] interface on which traffic is tagged
|
|
20
|
+
#
|
|
21
|
+
# @see http://docs.vmd.citrix.com/XenServer/6.1.0/1.0/en_gb/api/?c=VLAN
|
|
22
|
+
#
|
|
23
|
+
def untagged_pif
|
|
24
|
+
service.pifs.get __untagged_pif
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# @return [Fog::Compute::XenServer::PIF] interface on which traffic is untagged
|
|
28
|
+
#
|
|
29
|
+
# @see http://docs.vmd.citrix.com/XenServer/6.1.0/1.0/en_gb/api/?c=VLAN
|
|
30
|
+
#
|
|
31
|
+
def tagged_pif
|
|
32
|
+
service.pifs.get __tagged_pif
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Creates a new VLAN.
|
|
36
|
+
#
|
|
37
|
+
# service = Fog::Compute[:xenserver]
|
|
38
|
+
#
|
|
39
|
+
# # create a network 'foo-net'
|
|
40
|
+
# net = service.networks.create :name => 'foo-net'
|
|
41
|
+
#
|
|
42
|
+
# # get the eth0 physical interface where the
|
|
43
|
+
# # VLAN subinterface will be added
|
|
44
|
+
# pif = service.pifs.find { |p| p.device == 'eth0' and p.physical }
|
|
45
|
+
#
|
|
46
|
+
# Fog::Compute[:xenserver].vlans.create :tag => 123,
|
|
47
|
+
# :network => net,
|
|
48
|
+
# :pif => pif
|
|
49
|
+
def save
|
|
50
|
+
requires :tag
|
|
51
|
+
pif = attributes[:pif]
|
|
52
|
+
net = attributes[:network]
|
|
53
|
+
unless pif and net
|
|
54
|
+
raise Fog::Error.new 'save requires :pif and :network attributes'
|
|
55
|
+
end
|
|
56
|
+
ref = service.create_vlan attributes[:pif].reference,
|
|
57
|
+
tag,
|
|
58
|
+
attributes[:network].reference
|
|
59
|
+
data = service.get_record ref, 'VLAN'
|
|
60
|
+
merge_attributes data
|
|
61
|
+
true
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# Destroys a VLAN.
|
|
65
|
+
#
|
|
66
|
+
# service = Fog::Compute[:xenserver]
|
|
67
|
+
#
|
|
68
|
+
# # Find VLAN 123 and destroy it
|
|
69
|
+
# (service.vlans.find { |v| v.tag == 123 }).destroy
|
|
70
|
+
#
|
|
71
|
+
def destroy
|
|
72
|
+
requires :reference
|
|
73
|
+
service.destroy_vlan reference
|
|
74
|
+
true
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
require 'fog/core/collection'
|
|
2
|
+
require 'fog/xenserver/models/compute/vlan'
|
|
3
|
+
|
|
4
|
+
module Fog
|
|
5
|
+
module Compute
|
|
6
|
+
class XenServer
|
|
7
|
+
|
|
8
|
+
class Vlans < Fog::Collection
|
|
9
|
+
|
|
10
|
+
model Fog::Compute::XenServer::VLAN
|
|
11
|
+
|
|
12
|
+
# Return the list of VLANs available
|
|
13
|
+
#
|
|
14
|
+
# @return [Array] a list of Fog::Compute::XenServer::VLAN
|
|
15
|
+
#
|
|
16
|
+
def all(options = {})
|
|
17
|
+
data = service.get_records 'VLAN'
|
|
18
|
+
load(data)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Retrieve a VLAN object by by reference.
|
|
22
|
+
#
|
|
23
|
+
# @return [Fog::Compute::XenServer::VLAN]
|
|
24
|
+
#
|
|
25
|
+
# Returns nil if not found
|
|
26
|
+
#
|
|
27
|
+
def get( ref )
|
|
28
|
+
if ref && obj = service.get_record( ref, 'VLAN' )
|
|
29
|
+
new(obj)
|
|
30
|
+
end
|
|
31
|
+
rescue Fog::XenServer::NotFound
|
|
32
|
+
nil
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
require 'fog/core/model'
|
|
2
|
+
|
|
3
|
+
module Fog
|
|
4
|
+
module Compute
|
|
5
|
+
class XenServer
|
|
6
|
+
class Vmpp < Fog::Model
|
|
7
|
+
# API Reference here:
|
|
8
|
+
# http://docs.vmd.citrix.com/XenServer/6.2.0/1.0/en_gb/api/?c=VMPP
|
|
9
|
+
|
|
10
|
+
identity :reference
|
|
11
|
+
|
|
12
|
+
attribute :alarm_config
|
|
13
|
+
attribute :archive_frequency
|
|
14
|
+
attribute :archive_last_run_time
|
|
15
|
+
attribute :archive_schedule
|
|
16
|
+
attribute :archive_target_config
|
|
17
|
+
attribute :archive_target_type
|
|
18
|
+
attribute :backup_frequency
|
|
19
|
+
attribute :backup_last_run_time
|
|
20
|
+
attribute :backup_retention_value
|
|
21
|
+
attribute :backup_schedule
|
|
22
|
+
attribute :backup_type
|
|
23
|
+
attribute :is_alarm_enabled
|
|
24
|
+
attribute :is_archive_running
|
|
25
|
+
attribute :is_backup_running
|
|
26
|
+
attribute :is_policy_enabled
|
|
27
|
+
attribute :description, :aliases => :name_description
|
|
28
|
+
attribute :name, :aliases => :name_label
|
|
29
|
+
attribute :recent_alerts
|
|
30
|
+
attribute :uuid
|
|
31
|
+
attribute :__vms, :aliases => :VMs
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
require 'fog/core/collection'
|
|
2
|
+
require 'fog/xenserver/models/compute/vmpp'
|
|
3
|
+
|
|
4
|
+
module Fog
|
|
5
|
+
module Compute
|
|
6
|
+
class XenServer
|
|
7
|
+
class Vmpps < Fog::Collection
|
|
8
|
+
model Fog::Compute::XenServer::Vmpp
|
|
9
|
+
|
|
10
|
+
def all(options={})
|
|
11
|
+
data = service.get_records 'VMPP'
|
|
12
|
+
load(data)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def get( vmpp_ref )
|
|
16
|
+
if vmpp_ref && vmpp = service.get_record( vmpp_ref, 'VMPP' )
|
|
17
|
+
new(vmpp)
|
|
18
|
+
else
|
|
19
|
+
nil
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|