Module: Cloudkeeper::One::ApplianceActions::Update
Instance Method Summary
collapse
#prepare_template, #render_templates
Instance Method Details
7
8
9
10
11
12
13
14
15
16
17
18
|
# File 'lib/cloudkeeper/one/appliance_actions/update.rb', line 7
def update_appliance_metadata(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
|