module Nifty::Events::Opennebula::Utils::EventsCommon
Namespace for method common among multiple OpenNebula event types
Public Instance Methods
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
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
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
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
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