Module: Cloudkeeper::One::ApplianceActions::Update

Includes:
Cloudkeeper::One::ApplianceActions::Utils::TemplatePreparation
Included in:
Registration, CoreConnector
Defined in:
lib/cloudkeeper/one/appliance_actions/update.rb

Instance Method Summary collapse

Methods included from Cloudkeeper::One::ApplianceActions::Utils::TemplatePreparation

#prepare_template, #render_templates

Instance Method Details

#update_appliance_metadata(proto_appliance) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/cloudkeeper/one/appliance_actions/update.rb', line 7

def (proto_appliance)
  raise Cloudkeeper::One::Errors::ArgumentError, 'appliance cannot be nil' unless proto_appliance

  templates = template_handler.find_by_appliance_id proto_appliance.identifier
  templates.each do |template|
    image = image_handler.find_by_name template.name
    raise Cloudkeeper::One::Errors::Actions::UpdateError, "Missing coresponding image for template #{template.id.inspect}"\
      unless image
    update_image image, proto_appliance
    update_template template, image, proto_appliance
  end
end

#update_image(image, proto_appliance) ⇒ Object



20
21
22
23
24
# File 'lib/cloudkeeper/one/appliance_actions/update.rb', line 20

def update_image(image, proto_appliance)
  logger.debug "Updating image metadata for appliance #{proto_appliance.identifier.inspect}"
  image_template = prepare_template 'image.erb', appliance: proto_appliance, name: image.name
  image_handler.update image, image_template
end

#update_template(template, image, proto_appliance) ⇒ Object



26
27
28
29
30
# File 'lib/cloudkeeper/one/appliance_actions/update.rb', line 26

def update_template(template, image, proto_appliance)
  logger.debug "Updating template metadata for appliance #{proto_appliance.identifier.inspect}"
  template_template = prepare_template 'template.erb', appliance: proto_appliance, name: template.name, image_id: image.id
  template_handler.update template, template_template
end