class Vcloud::Core::Fog::ServiceInterface::FogFacade
FogFacade
Inner class to represent a logic free facade over our interactions with Fog
Public Class Methods
new()
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 28 def initialize @vcloud = ::Fog::Compute::VcloudDirector.new end
Public Instance Methods
delete_disk(id)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 139 def delete_disk(id) task = @vcloud.delete_disk(id).body @vcloud.process_task(task) end
delete_network(id)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 130 def delete_network(id) task = @vcloud.delete_network(id).body @vcloud.process_task(task) end
delete_vapp(vapp_id)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 121 def delete_vapp(vapp_id) task = @vcloud.delete_vapp(vapp_id).body @vcloud.process_task(task) end
end_point()
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 90 def end_point @vcloud.end_point end
get_disk(id)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 135 def get_disk(id) @vcloud.get_disk(id).body end
get_edge_gateway(id)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 207 def get_edge_gateway(id) @vcloud.get_edge_gateway(id).body end
get_execute_query(type=nil, options={})
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 99 def get_execute_query(type=nil, options={}) @vcloud.get_execute_query(type, options).body end
get_network_complete(id)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 126 def get_network_complete(id) @vcloud.get_network_complete(id).body end
get_organization(id)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 36 def get_organization (id) @vcloud.get_organization(id).body end
get_vapp(id)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 65 def get_vapp(id) @vcloud.get_vapp(id).body end
get_vapp_metadata(id)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 103 def get_vapp_metadata(id) @vcloud.get_vapp_metadata(id).body end
get_vapps_in_lease_from_query(options)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 48 def get_vapps_in_lease_from_query(options) @vcloud.get_vapps_in_lease_from_query(options).body end
get_vdc(id)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 32 def get_vdc(id) @vcloud.get_vdc(id).body end
get_vms_disk_attached_to(disk_id)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 162 def get_vms_disk_attached_to(disk_id) @vcloud.get_vms_disk_attached_to(disk_id).body end
logout()
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 44 def logout @vcloud.delete_logout end
org_name()
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 112 def org_name @vcloud.org_name end
organizations()
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 108 def organizations @vcloud.organizations end
post_attach_disk(vm_id, disk_id, options = {})
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 152 def post_attach_disk(vm_id, disk_id, options = {}) task = @vcloud.post_attach_disk(vm_id, disk_id, options).body @vcloud.process_task(task) end
post_configure_edge_gateway_services(edgegw_id, config)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 173 def post_configure_edge_gateway_services(edgegw_id, config) Vcloud::Core.logger.info("Updating EdgeGateway #{edgegw_id}") begin task = @vcloud.post_configure_edge_gateway_services(edgegw_id, config).body @vcloud.process_task(task) rescue => ex Vcloud::Core.logger.error("Could not update EdgeGateway #{edgegw_id} : #{ex}") raise end end
post_create_disk(vdc_id, disk_id, size_in_bytes, options = {})
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 144 def post_create_disk(vdc_id, disk_id, size_in_bytes, options = {}) # Fog method is incorrectly named 'post_upload_disk', and will be fixed # in a future version to match our post_create_disk method name. attrs = @vcloud.post_upload_disk(vdc_id, disk_id, size_in_bytes, options).body @vcloud.process_task(attrs[:Tasks][:Task]) get_disk(extract_id(attrs)) end
post_create_org_vdc_network(vdc_id, name, options)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 166 def post_create_org_vdc_network(vdc_id, name, options) Vcloud::Core.logger.debug("creating #{options[:fence_mode]} OrgVdcNetwork #{name} in vDC #{vdc_id}") attrs = @vcloud.post_create_org_vdc_network(vdc_id, name, options).body @vcloud.process_task(attrs[:Tasks][:Task]) get_network_complete(extract_id(attrs)) end
post_detach_disk(vm_id, disk_id)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 157 def post_detach_disk(vm_id, disk_id) task = @vcloud.post_detach_disk(vm_id, disk_id).body @vcloud.process_task(task) end
post_instantiate_vapp_template(vdc, template, name, params)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 52 def post_instantiate_vapp_template(vdc, template, name, params) Vcloud::Core.logger.debug("instantiating #{name} vapp in #{vdc[:name]}") vapp = @vcloud.post_instantiate_vapp_template(extract_id(vdc), template, name, params).body @vcloud.process_task(vapp[:Tasks][:Task]) @vcloud.get_vapp(extract_id(vapp)).body end
post_undeploy_vapp(vapp_id)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 116 def post_undeploy_vapp(vapp_id) task = @vcloud.post_undeploy_vapp(vapp_id).body @vcloud.process_task(task) end
power_off_vapp(vapp_id)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 184 def power_off_vapp(vapp_id) task = @vcloud.post_power_off_vapp(vapp_id).body @vcloud.process_task(task) end
power_on_vapp(vapp_id)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 189 def power_on_vapp(vapp_id) Vcloud::Core.logger.debug("Powering on vApp #{vapp_id}") task = @vcloud.post_power_on_vapp(vapp_id).body @vcloud.process_task(task) end
put_cpu(vm_id, cpu)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 74 def put_cpu(vm_id, cpu) Vcloud::Core.logger.debug("putting #{cpu} CPU(s) into VM #{vm_id}") task = @vcloud.put_cpu(vm_id, cpu).body @vcloud.process_task(task) end
put_guest_customization_section_vapp(vm_id, customization_req)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 94 def put_guest_customization_section_vapp(vm_id, customization_req) task = @vcloud.put_guest_customization_section_vapp(vm_id, customization_req).body @vcloud.process_task(task) end
put_memory(vm_id, memory)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 59 def put_memory(vm_id, memory) Vcloud::Core.logger.debug("putting #{memory}MB memory into VM #{vm_id}") task = @vcloud.put_memory(vm_id, memory).body @vcloud.process_task(task) end
put_network_connection_system_section_vapp(vm_id, section)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 69 def put_network_connection_system_section_vapp(vm_id, section) task = @vcloud.put_network_connection_system_section_vapp(vm_id, section).body @vcloud.process_task(task) end
put_product_sections(id, items)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 211 def put_product_sections(id, items) task = @vcloud.put_product_sections(id, items).body @vcloud.process_task(task) end
put_vapp_metadata_value(id, k, v)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 200 def put_vapp_metadata_value(id, k, v) Vcloud::Core.logger.debug("putting metadata pair '#{k}'=>'#{v}' to #{id}") # need to convert key to_s since Fog 0.17 borks on symbol key task = @vcloud.put_vapp_metadata_item_metadata(id, k.to_s, v).body @vcloud.process_task(task) end
put_vm(id, name, options={})
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 80 def put_vm(id, name, options={}) Vcloud::Core.logger.debug("updating name : #{name}, :options => #{options} in vm : #{id}") task = @vcloud.put_vm(id, name, options).body @vcloud.process_task(task) end
session()
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 40 def session @vcloud.get_current_session.body end
shutdown_vapp(vapp_id)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 195 def shutdown_vapp(vapp_id) task = @vcloud.post_shutdown_vapp(vapp_id).body @vcloud.process_task(task) end
vcloud_token()
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 86 def vcloud_token @vcloud.vcloud_token end
Private Instance Methods
extract_id(link)
click to toggle source
# File lib/vcloud/core/fog/service_interface.rb, line 217 def extract_id(link) link[:href].split('/').last end