module Fog module Terremark module Shared module Real # Instatiate a vapp template # # ==== Parameters # * vdc_id<~Integer> - Id of vdc to instantiate template in # * options<~Hash>: # * cpus<~Integer>: Number of cpus in [1, 2, 4, 8], defaults to 1 # * memory<~Integer>: Amount of memory either 512 or a multiple of 1024, defaults to 512 # ==== Returns # * response<~Excon::Response>: # * body<~Hash>: # FIXME # * 'CatalogItems'<~Array> # * 'href'<~String> - linke to item # * 'name'<~String> - name of item # * 'type'<~String> - type of item # * 'description'<~String> - Description of catalog # * 'name'<~String> - Name of catalog def instantiate_vapp_template(name, options = {}) options['cpus'] ||= 1 options['memory'] ||= 512 # FIXME: much cheating to commence vdc_id = default_vdc_id network_id = default_network_id catalog_item = 12 # Ubuntu JeOS 9.10 (64-bit) # case UNRESOLVED: # return "0"; # case RESOLVED: # return "1"; # case OFF: # return "2"; # case SUSPENDED: # return "3"; # case ON: # return "4"; # default: # # /** # * The vApp is unresolved (one or more file references are unavailable in the cloud) # */ # UNRESOLVED, # /** # * The vApp is resolved (all file references are available in the cloud) but not deployed # */ # RESOLVED, # /** # * The vApp is deployed and powered off # */ # OFF, # /** # * The vApp is deployed and suspended # */ # SUSPENDED, # /** # * The vApp is deployed and powered on # */ # ON; data = <<-DATA 1 3 #{options['cpus']} 2 4 #{options['memory']} allowInOut true DATA request( :body => data, :expects => 200, :headers => { 'Content-Type' => 'application/vnd.vmware.vcloud.instantiateVAppTemplateParams+xml' }, :method => 'POST', :parser => Fog::Parsers::Terremark::Shared::InstantiateVappTemplate.new, :path => "vdc/#{vdc_id}/action/instantiatevAppTemplate" ) end end module Mock def instatiate_vapp_template(vapp_template_id) raise MockNotImplemented.new("Contributions welcome!") end end end end end