class Cloudkeeper::One::Opennebula::ApplianceHandler
Constants
- LEAVE_ID_AS_IS
- ONEADMIN_ID
Attributes
identifier[R]
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/cloudkeeper/one/opennebula/appliance_handler.rb, line 12 def initialize super @identifier = Cloudkeeper::One::Settings[:identifier] end
Public Instance Methods
chmod(element, permissions)
click to toggle source
# File lib/cloudkeeper/one/opennebula/appliance_handler.rb, line 35 def chmod(element, permissions) raise Cloudkeeper::One::Errors::ArgumentError, 'element cannot be nil' unless element handle_opennebula_error do element.chmod_octet permissions element.info! end end
delete(element)
click to toggle source
# File lib/cloudkeeper/one/opennebula/appliance_handler.rb, line 26 def delete(element) raise Cloudkeeper::One::Errors::ArgumentError, 'element cannot be nil' unless element id = element.id handle_opennebula_error { element.delete } timeout { sleep(Cloudkeeper::One::Opennebula::Handler::API_POLLING_WAIT) while exist? id } end
find_by_appliance_id(appliance_id)
click to toggle source
# File lib/cloudkeeper/one/opennebula/appliance_handler.rb, line 18 def find_by_appliance_id(appliance_id) find_all_by "TEMPLATE/#{Tags::APPLIANCE_ID}" => appliance_id end
find_by_image_list_id(image_list_id)
click to toggle source
# File lib/cloudkeeper/one/opennebula/appliance_handler.rb, line 22 def find_by_image_list_id(image_list_id) find_all_by "TEMPLATE/#{Tags::APPLIANCE_IMAGE_LIST_ID}" => image_list_id end
update(element, template)
click to toggle source
# File lib/cloudkeeper/one/opennebula/appliance_handler.rb, line 44 def update(element, template) raise Cloudkeeper::One::Errors::ArgumentError, 'element cannot be nil' unless element handle_opennebula_error do element.update template, true element.info! end end
Private Instance Methods
find(method, xpaths = {})
click to toggle source
# File lib/cloudkeeper/one/opennebula/appliance_handler.rb, line 69 def find(method, xpaths = {}) reload! pool.send(method) { |element| element["TEMPLATE/#{Tags::ID}"] == identifier && evaluate_xpaths(element, xpaths) } end
find_all_by(attributes)
click to toggle source
# File lib/cloudkeeper/one/opennebula/appliance_handler.rb, line 55 def find_all_by(attributes) xpaths = attributes.clone find_all xpaths end
timeout() { || ... }
click to toggle source
# File lib/cloudkeeper/one/opennebula/appliance_handler.rb, line 61 def timeout raise Cloudkeeper::One::Errors::ArgumentError, 'Timeout called without a block!' unless block_given? Timeout.timeout(Cloudkeeper::One::Settings[:'opennebula-api-call-timeout']) { yield } rescue Timeout::Error raise Cloudkeeper::One::Errors::Opennebula::ApiCallTimeoutError, 'Operation was not successful within the timeout' end