module Cloudkeeper::One::ApplianceActions::Registration
Public Instance Methods
register_or_update_appliance(proto_appliance)
click to toggle source
# File lib/cloudkeeper/one/appliance_actions/registration.rb, line 10 def register_or_update_appliance(proto_appliance) raise Cloudkeeper::One::Errors::ArgumentError, 'appliance cannot be nil' unless proto_appliance discard_images :find_by_appliance_id, proto_appliance.identifier datastore = datastore_handler.find_by_name Cloudkeeper::One::Settings[:'opennebula-datastore'] image = register_image proto_appliance, datastore register_or_update_template proto_appliance, image end
Private Instance Methods
prepare_image(proto_appliance)
click to toggle source
# File lib/cloudkeeper/one/appliance_actions/registration.rb, line 56 def prepare_image(proto_appliance) proto_image = proto_appliance.image proto_image.location = download_image(proto_image.location, proto_image.username, proto_image.password) \ if proto_image.mode == :REMOTE proto_image end
register_image(proto_appliance, datastore)
click to toggle source
# File lib/cloudkeeper/one/appliance_actions/registration.rb, line 32 def register_image(proto_appliance, datastore) raise Cloudkeeper::One::Errors::ArgumentError, 'appliance and image cannot be nil' \ unless proto_appliance && proto_appliance.image logger.debug "Registering image for appliance #{proto_appliance.identifier} and datastore #{datastore.name.inspect}" proto_image = prepare_image proto_appliance name = "#{proto_appliance.identifier}@#{datastore.name}" template = prepare_template 'image.erb', appliance: proto_appliance, image: proto_image, name: name image_handler.register template, datastore end
register_or_update_template(proto_appliance, image)
click to toggle source
# File lib/cloudkeeper/one/appliance_actions/registration.rb, line 22 def register_or_update_template(proto_appliance, image) template = template_handler.find_by_name image.name if template update_template template, image, proto_appliance return end register_template proto_appliance, image.id, image.name end
register_template(proto_appliance, image_id, name)
click to toggle source
# File lib/cloudkeeper/one/appliance_actions/registration.rb, line 44 def register_template(proto_appliance, image_id, name) raise Cloudkeeper::One::Errors::ArgumentError, 'appliance cannot be nil' \ unless proto_appliance logger.debug "Registering template for appliance #{proto_appliance.identifier} and image #{image_id.inspect}" proto_image = proto_appliance.image template = prepare_template 'template.erb', appliance: proto_appliance, image: proto_image, name: name, image_id: image_id template_handler.register template end