module Nifty::Events::Opennebula::Utils::EventsCommon

Namespace for method common among multiple OpenNebula event types

Public Instance Methods

expire_appliance(template_handler, image_handler, appliance, parameters) click to toggle source

Expires whole appliance (both images and template)

@param [Nifty::Backends::Utils::Opennebula::TemplateHandler] template_handler @param [Nifty::Backends::Utils::Opennebula::ImageHandler] image_handler @param [Cloud::Appliance::Descriptor::Appliance] appliance @param [Hash] parameters

# File lib/nifty/events/opennebula/utils/events_common.rb, line 9
def expire_appliance(template_handler, image_handler, appliance, parameters)
  delete_appliance(template_handler, appliance.identifier, parameters[:users])
  outdate_disks(image_handler, appliance.identifier, parameters[:users])
  expire_disks(image_handler, appliance, parameters[:"disk-expiration"], parameters[:users])
end
groups(group_handler, appliance, prior_groups) click to toggle source

Returns OpenNebula groups specified in appliance

@param [Nifty::Backends::Utils::Opennebula::GroupHandler] group_handler @param [Cloud::Appliance::Descriptor::Appliance] appliance @param [Array] prior_groups groups from configuration file that if exist will be used instead of the groups in appliance @return [Array] Array of groups

# File lib/nifty/events/opennebula/utils/events_common.rb, line 21
def groups(group_handler, appliance, prior_groups)
  groups = []
  group_names = prior_groups || appliance.groups
  group_names.each do |group_name|
    group = group_handler.group(group_name)
    fail Nifty::Errors::Backends::Opennebula::ResourceNotFoundError, "No such group with name #{group_name.inspect}" unless group

    groups << group
  end

  groups
end

Private Instance Methods

delete_appliance(template_handler, appliance_id, users) click to toggle source

Deletes template with specified appliance ID

@param [Nifty::Backends::Utils::Opennebula::TemplateHandler] template_handler @param [String] appliance_id

# File lib/nifty/events/opennebula/utils/events_common.rb, line 66
def delete_appliance(template_handler, appliance_id, users)
  registered_appliances = template_handler.templates(appliance_id, users)
  logger.debug('Deleting registered templates...')
  registered_appliances.each { |template| template_handler.delete_template template }
end
expire_disks(image_handler, appliance, disk_expiration, users) click to toggle source

Expires disks with specified appliance ID Depending on the settings expires all disks or only disks with old version

@param [Nifty::Backends::Utils::Opennebula::ImageHandler] image_handler @param [Cloud::Appliance::Descriptor::Appliance] appliance @param [TrueClass,FalseClass] disk_expiration whether expire all disks or just outdated ones

# File lib/nifty/events/opennebula/utils/events_common.rb, line 52
def expire_disks(image_handler, appliance, disk_expiration, users)
  registered_disks = disk_expiration ? image_handler.images(appliance.identifier, users) : image_handler.images_by_version(appliance.version, users)
  logger.debug('Expiring registered disks...')
  registered_disks.each do |disk|
    image_handler.expire_image(disk)
    Nifty::Backends::Utils::Opennebula::Handler.chown(disk, Nifty::Backends::Utils::Opennebula::Handler::ONEADMIN_ID, Nifty::Backends::Utils::Opennebula::Handler::ONEADMIN_ID)
    Nifty::Backends::Utils::Opennebula::Handler.chmod(disk, Nifty::Backends::Utils::Opennebula::Handler::OWNER_OCTET)
  end
end
outdate_disks(image_handler, appliance_id, users) click to toggle source

Outdates disks with specified appliance ID

@param [Nifty::Backends::Utils::Opennebula::ImageHandler] image_handler @param [String] appliance_id

# File lib/nifty/events/opennebula/utils/events_common.rb, line 40
def outdate_disks(image_handler, appliance_id, users)
  registered_disks = image_handler.images(appliance_id, users)
  logger.debug('Outdating registered disks...')
  registered_disks.each { |disk| image_handler.outdate_image(disk) }
end