module Cloudkeeper::One::ApplianceActions::Discard

Public Instance Methods

discard_appliance(appliance_id) click to toggle source
# File lib/cloudkeeper/one/appliance_actions/discard.rb, line 5
def discard_appliance(appliance_id)
  logger.debug "Removing templates for appliance #{appliance_id.inspect}"
  discard_templates :find_by_appliance_id, appliance_id
  logger.debug "Removing images for appliance #{appliance_id.inspect}"
  discard_images :find_by_appliance_id, appliance_id
end
discard_expired() click to toggle source
# File lib/cloudkeeper/one/appliance_actions/discard.rb, line 19
def discard_expired
  logger.debug 'Removing expired images...'
  handle_iteration(image_handler.expired) { |item| image_handler.delete item }
end
discard_image_list(image_list_id) click to toggle source
# File lib/cloudkeeper/one/appliance_actions/discard.rb, line 12
def discard_image_list(image_list_id)
  logger.debug "Removing templates for image list #{image_list_id.inspect}"
  discard_templates :find_by_image_list_id, image_list_id
  logger.debug "Removing images for image list #{image_list_id.inspect}"
  discard_images :find_by_image_list_id, image_list_id
end
discard_images(method, value) click to toggle source
# File lib/cloudkeeper/one/appliance_actions/discard.rb, line 28
def discard_images(method, value)
  handle_iteration(image_handler.send(method, value)) do |item|
    image_handler.expire item
    image_handler.delete item
  end
end
discard_templates(method, value) click to toggle source
# File lib/cloudkeeper/one/appliance_actions/discard.rb, line 24
def discard_templates(method, value)
  handle_iteration(template_handler.send(method, value)) { |item| template_handler.delete item }
end

Private Instance Methods

handle_iteration(items) { |item| ... } click to toggle source
# File lib/cloudkeeper/one/appliance_actions/discard.rb, line 37
def handle_iteration(items)
  raise Cloudkeeper::One::Errors::ArgumentError, 'Iteration error handler was called without a block!' unless block_given?

  error = nil
  items.each do |item|
    begin
      yield item
    rescue Cloudkeeper::One::Errors::StandardError => ex
      error ||= Cloudkeeper::One::Errors::MultiError.new
      error << ex
      logger.error ex.message
      next
    end
  end

  raise error if error
end