Class: Deltacloud::Drivers::Opennebula::OpennebulaDriver
- Inherits:
-
BaseDriver
- Object
- BaseDriver
- Deltacloud::Drivers::Opennebula::OpennebulaDriver
show all
- Defined in:
- lib/deltacloud/drivers/opennebula/opennebula_driver.rb
Instance Method Summary
collapse
Methods inherited from BaseDriver
#catched_exceptions_list, declare_feature, define_hardware_profile, define_instance_states, feature, feature_decl_for, feature_decls, #features, features, #filter_hardware_profiles, #filter_on, #find_hardware_profile, #hardware_profile, hardware_profiles, #hardware_profiles, #has_collection?, #image, #instance, #instance_actions_for, instance_state_machine, #instance_state_machine, #realm, #reboot_instance, #safely, #storage_snapshot, #storage_snapshots, #storage_volume, #storage_volumes, #supported_collections
Instance Method Details
#create_instance(credentials, image_id, opts = nil) ⇒ Object
126
127
128
129
130
131
132
133
134
135
136
137
|
# File 'lib/deltacloud/drivers/opennebula/opennebula_driver.rb', line 126
def create_instance(credentials, image_id, opts=nil)
occi_client = new_client(credentials)
hwp_id = opts[:hwp_id] || 'small'
instancexml = ERB.new(OCCI_VM).result(binding)
instancefile = "|echo '#{instancexml}'"
xmlvm = occi_client.post_vms(instancefile)
convert_instance(xmlvm.to_s(), credentials)
end
|
#destroy_instance(credentials, id) ⇒ Object
150
151
152
|
# File 'lib/deltacloud/drivers/opennebula/opennebula_driver.rb', line 150
def destroy_instance(credentials, id)
occi_action(credentials, id, 'DONE')
end
|
#images(credentials, opts = nil) ⇒ Object
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
# File 'lib/deltacloud/drivers/opennebula/opennebula_driver.rb', line 72
def images(credentials, opts=nil)
occi_client = new_client(credentials)
images = []
imagesxml = occi_client.get_images
storage = REXML::Document.new(imagesxml)
storage.root.elements.each do |d|
id = d.attributes['href'].split("/").last
diskxml = occi_client.get_image(id)
images << convert_image(diskxml.to_s(), credentials)
end
images
end
|
#instances(credentials, opts = nil) ⇒ Object
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
# File 'lib/deltacloud/drivers/opennebula/opennebula_driver.rb', line 106
def instances(credentials, opts=nil)
occi_client = new_client(credentials)
instances = []
instancesxml = occi_client.get_vms
computes = REXML::Document.new(instancesxml)
computes.root.elements.each do |d|
vm_id = d.attributes['href'].split("/").last
computexml = occi_client.get_vm(vm_id)
instances << convert_instance(computexml.to_s(), credentials)
end
instances = filter_on( instances, :id, opts )
instances = filter_on( instances, :state, opts )
instances
end
|
#realms(credentials, opts = nil) ⇒ Object
60
61
62
63
64
65
|
# File 'lib/deltacloud/drivers/opennebula/opennebula_driver.rb', line 60
def realms(credentials, opts=nil)
return REALMS if ( opts.nil? )
results = REALMS
results = filter_on( results, :id, opts )
results
end
|
#start_instance(credentials, id) ⇒ Object
140
141
142
|
# File 'lib/deltacloud/drivers/opennebula/opennebula_driver.rb', line 140
def start_instance(credentials, id)
occi_action(credentials, id, 'RESUME')
end
|
#stop_instance(credentials, id) ⇒ Object
145
146
147
|
# File 'lib/deltacloud/drivers/opennebula/opennebula_driver.rb', line 145
def stop_instance(credentials, id)
occi_action(credentials, id, 'STOPPED')
end
|