Class/Module Index [+]

Quicksearch

Deltacloud::Drivers::Terremark::TerremarkDriver

Public Instance Methods

create_instance(credentials, image_id, opts) click to toggle source
# File lib/deltacloud/drivers/terremark/terremark_driver.rb, line 131
  def create_instance(credentials, image_id, opts)
    new_vapp = nil
    vapp_opts = {} #assemble options to pass to Fog::Terremark::Real.instantiate_vapp_template
    terremark_hwp = hardware_profiles(credentials, {:name => 'default'}).first #sanity check values against default
    name = opts[:name]
    if not name
      name = "inst#{Time.now.to_i}"
    end
    if name.length > USER_NAME_MAX
      raise "Parameter name must be #{USER_NAME_MAX} characters or less"
    end
    unless ( (terremark_hwp.include?(:cpu, opts[:hwp_cpu].to_i)) &&
              (terremark_hwp.include?(:memory, opts[:hwp_memory].to_i)) ) then
       raise Deltacloud::Validation::Failure.new(Deltacloud::Validation::Param.new(["cpu"]), "Error with cpu and/or memory values. you said cpu->#{opts[:hwp_cpu]} and mem->#{opts[:hwp_memory]}")
    end
    vapp_opts['cpus'] = opts[:hwp_cpu]
    vapp_opts['memory'] =  opts[:hwp_memory]
    safely do
      terremark_client = new_client(credentials)
#######
#FIXME#  what happens if there is an issue getting the new vapp id? (eg even though created succesfully)
#######
      vapp_id = terremark_client.instantiate_vapp_template(name, image_id, vapp_opts).body['href'].split('/').last
      new_vapp = terremark_client.get_vapp(vapp_id)
      return convert_instance(new_vapp, terremark_client, credentials.user) #return an Instance object
    end
  end
destroy_instance(credentials, id) click to toggle source
# File lib/deltacloud/drivers/terremark/terremark_driver.rb, line 193
def destroy_instance(credentials, id)
  safely do
    terremark_client = new_client(credentials)
    return terremark_client.delete_vapp(id)
  end
end
images(credentials, opts=nil) click to toggle source
# File lib/deltacloud/drivers/terremark/terremark_driver.rb, line 59
def images(credentials, opts=nil)
    image_list = []
    terremark_client = new_client(credentials)
    safely do
      vdc_id = terremark_client.default_vdc_id
      catalogItems = terremark_client.get_catalog(vdc_id).body['CatalogItems']
      catalogItems.each{ |catalog_item|
        current_item_id = catalog_item['href'].split('/').last
        current_item = terremark_client.get_catalog_item(current_item_id).body['Entity']
          if(current_item['type'] == 'application/vnd.vmware.vcloud.vAppTemplate+xml')
            image_list << convert_image(current_item, credentials.user)
          end
      } #end of catalogItems.each
    end
    image_list = filter_on( image_list, :id, opts )
    image_list = filter_on( image_list, :architecture, opts )
    image_list = filter_on( image_list, :owner_id, opts )
    image_list
end
instances(credentials, opts=nil) click to toggle source
# File lib/deltacloud/drivers/terremark/terremark_driver.rb, line 95
def instances(credentials, opts=nil)
    instances = []
    terremark_client = new_client(credentials)
    safely do
      vdc_items = terremark_client.get_vdc(terremark_client.default_vdc_id()).body['ResourceEntities']
      vdc_items.each{|current_item|
        if(current_item['type'] == 'application/vnd.vmware.vcloud.vApp+xml')
           vapp_id =  current_item['href'].split('/').last
           vapp = terremark_client.get_vapp(vapp_id)
           instances  << convert_instance(vapp, terremark_client, credentials.user)
        end
      }#end vdc_items.each
    end
    instances = filter_on( instances, :id, opts )
    instances
end
realms(credentials, opts=nil) click to toggle source
# File lib/deltacloud/drivers/terremark/terremark_driver.rb, line 83
def realms(credentials, opts=nil)
   [Realm.new( {
    :id=>"US-Miami",
    :name=>"United States - Miami",
    :state=> "AVAILABLE"
  } )]
end
reboot_instance(credentials, id) click to toggle source
# File lib/deltacloud/drivers/terremark/terremark_driver.rb, line 162
def reboot_instance(credentials, id)
  safely do
    terremark_client =  new_client(credentials)
    return terremark_client.power_reset(id)
  end
end
start_instance(credentials, id) click to toggle source
# File lib/deltacloud/drivers/terremark/terremark_driver.rb, line 172
def start_instance(credentials, id)
  safely do
    terremark_client =  new_client(credentials)
    return terremark_client.power_on(id)
  end
end
stop_instance(credentials, id) click to toggle source
# File lib/deltacloud/drivers/terremark/terremark_driver.rb, line 182
def stop_instance(credentials, id)
  safely do
    terremark_client = new_client(credentials)
    return terremark_client.power_shutdown(id)
  end
end
valid_credentials?(credentials) click to toggle source
# File lib/deltacloud/drivers/terremark/terremark_driver.rb, line 200
def valid_credentials?(credentials)
  begin
    new_client(credentials)
  rescue
    return false
  end
  true
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.