module Cloudkeeper::Utils::Appliance

Public Instance Methods

clean_image_file(filename) click to toggle source
# File lib/cloudkeeper/utils/appliance.rb, line 17
def clean_image_file(filename)
  File.delete(filename) if File.exist?(filename)
end
clean_image_files(appliance) click to toggle source
# File lib/cloudkeeper/utils/appliance.rb, line 8
def clean_image_files(appliance)
  return unless appliance && appliance.image

  logger.debug "Cleaning downloaded image files for appliance #{appliance.identifier.inspect}"
  appliance.image.image_files.each { |image_file| clean_image_file image_file.file }
rescue ::IOError => ex
  logger.warn "Appliance cleanup error: #{ex.message}"
end
convert_image!(appliance, image_file) click to toggle source
# File lib/cloudkeeper/utils/appliance.rb, line 37
def convert_image!(appliance, image_file)
  format = acceptable_formats.find { |acceptable_format| image_file.respond_to? "to_#{acceptable_format}".to_sym }
  unless format
    raise Cloudkeeper::Errors::Image::Format::NoRequiredFormatAvailableError,
          "image #{image_file.inspect} cannot be converted to any acceptable format"
  end

  appliance.image.add_image_file image_file.send("to_#{format}".to_sym)
rescue Cloudkeeper::Errors::Image::Format::NoRequiredFormatAvailableError, Cloudkeeper::Errors::CommandExecutionError,
       Cloudkeeper::Errors::ArgumentError, ::IOError, ::SystemCallError => ex
  raise Cloudkeeper::Errors::Image::ConversionError, "Image #{appliance.image.uri.inspect} conversion error: #{ex.message}"
end
log_expired(expirable, message) click to toggle source
# File lib/cloudkeeper/utils/appliance.rb, line 4
def log_expired(expirable, message)
  logger.info "#{message} #{expirable.identifier.inspect}"
end
prepare_image!(appliance) click to toggle source
# File lib/cloudkeeper/utils/appliance.rb, line 29
def prepare_image!(appliance)
  image_file = Cloudkeeper::Managers::ImageManager.secure_download_image(appliance.image.uri, appliance.image.checksum)
  appliance.image.add_image_file image_file
  return if acceptable_formats.include? image_file.format

  convert_image! appliance, image_file
end
update_image?(image_list_appliance, backend_appliance) click to toggle source
# File lib/cloudkeeper/utils/appliance.rb, line 21
def update_image?(image_list_appliance, backend_appliance)
  image_list_appliance.image.digest != backend_appliance.image.digest
end
update_metadata?(image_list_appliance, backend_appliance) click to toggle source
# File lib/cloudkeeper/utils/appliance.rb, line 25
def update_metadata?(image_list_appliance, backend_appliance)
  image_list_appliance.digest != backend_appliance.digest
end