module Cloudkeeper::Aws::BackendExecutor
Module handling complex operations on cloud backend
Public Instance Methods
deregister_expired_appliances()
click to toggle source
# File lib/cloudkeeper/aws/backend_executor.rb, line 66 def deregister_expired_appliances images = cloud.search_images(FilterHelper.cloudkeeper_instance) appliances = images.map { |image| ProtoHelper.appliance_from_tags(image.tags) } appliances.keep_if { |appliance| appliance.expiration_date <= Time.now.to_i } logger.debug { "Expired appliances #{appliances.map(&:identifier).inspect}" } appliances.each { |expired| deregister_image(expired) } end
deregister_image(appliance)
click to toggle source
# File lib/cloudkeeper/aws/backend_executor.rb, line 32 def deregister_image(appliance) logger.debug { "Deregistering appliance #{appliance.identifier}" } image = cloud.find_appliance(appliance.identifier) cloud.deregister_image(image.image_id) end
deregister_image_list(image_list_identifier)
click to toggle source
# File lib/cloudkeeper/aws/backend_executor.rb, line 48 def deregister_image_list(image_list_identifier) images = cloud.search_images(FilterHelper.image_list(image_list_identifier.image_list_identifier)) images.each { |image| cloud.deregister_image(image.image_id) } end
fetch_appliances(image_list_identifier)
click to toggle source
# File lib/cloudkeeper/aws/backend_executor.rb, line 61 def fetch_appliances(image_list_identifier) images = cloud.search_images(FilterHelper.image_list(image_list_identifier.image_list_identifier)) images.map { |image| ProtoHelper.appliance_from_tags(image.tags) } end
list_image_lists()
click to toggle source
# File lib/cloudkeeper/aws/backend_executor.rb, line 53 def list_image_lists images = cloud.search_images(FilterHelper.all_image_lists) image_list_identifiers = images.map do |image| image.tags.find { |tag| tag['key'] == FilterHelper::TAG_APPLIANCE_IMAGE_LIST_IDENTIFIER }['value'] end image_list_identifiers.uniq.map { |ili| CloudkeeperGrpc::ImageListIdentifier.new(image_list_identifier: ili) } end
modify_appliance(appliance)
click to toggle source
# File lib/cloudkeeper/aws/backend_executor.rb, line 38 def modify_appliance(appliance) deregister_image(appliance) register_appliance(appliance) end
register_appliance(appliance)
click to toggle source
# File lib/cloudkeeper/aws/backend_executor.rb, line 24 def register_appliance(appliance) upload_appliance(appliance) image_id = cloud.poll_import_task(cloud.start_import_image(appliance)) cloud.set_tags(ProtoHelper.appliance_to_tags(appliance), image_id) ensure cloud.delete_data(appliance.identifier) end
upload_appliance(appliance)
click to toggle source
# File lib/cloudkeeper/aws/backend_executor.rb, line 19 def upload_appliance(appliance) upload_remote_appliance(appliance) if appliance.image.mode == :REMOTE upload_local_appliance(appliance) if appliance.image.mode == :LOCAL end
upload_local_appliance(appliance)
click to toggle source
# File lib/cloudkeeper/aws/backend_executor.rb, line 5 def upload_local_appliance(appliance) cloud.upload_file(appliance.identifier, appliance.image.location) end
upload_remote_appliance(appliance)
click to toggle source
# File lib/cloudkeeper/aws/backend_executor.rb, line 9 def upload_remote_appliance(appliance) cloud.upload_data(appliance.identifier) do |write_stream| ImageDownloader.download(appliance.image.location, appliance.image.username, appliance.image.password) do |image_segment| write_stream << image_segment end end end