Class: Fog::Compute::Terremark::Real
- Inherits:
-
Object
- Object
- Fog::Compute::Terremark::Real
- Includes:
- Common
- Defined in:
- lib/fog/compute/terremark/real.rb,
lib/fog/compute/terremark/requests/get_vdc.rb,
lib/fog/compute/terremark/requests/get_task.rb,
lib/fog/compute/terremark/requests/get_vapp.rb,
lib/fog/compute/terremark/requests/power_on.rb,
lib/fog/compute/terremark/requests/power_off.rb,
lib/fog/compute/terremark/requests/delete_vapp.rb,
lib/fog/compute/terremark/requests/deploy_vapp.rb,
lib/fog/compute/terremark/requests/get_catalog.rb,
lib/fog/compute/terremark/requests/get_network.rb,
lib/fog/compute/terremark/requests/power_reset.rb,
lib/fog/compute/terremark/requests/get_keys_list.rb,
lib/fog/compute/terremark/requests/get_public_ip.rb,
lib/fog/compute/terremark/requests/configure_vapp.rb,
lib/fog/compute/terremark/requests/get_public_ips.rb,
lib/fog/compute/terremark/requests/get_tasks_list.rb,
lib/fog/compute/terremark/requests/power_shutdown.rb,
lib/fog/compute/terremark/requests/get_network_ips.rb,
lib/fog/compute/terremark/requests/add_node_service.rb,
lib/fog/compute/terremark/requests/delete_public_ip.rb,
lib/fog/compute/terremark/requests/get_catalog_item.rb,
lib/fog/compute/terremark/requests/get_organization.rb,
lib/fog/compute/terremark/requests/get_node_services.rb,
lib/fog/compute/terremark/requests/get_organizations.rb,
lib/fog/compute/terremark/requests/get_vapp_template.rb,
lib/fog/compute/terremark/requests/delete_node_service.rb,
lib/fog/compute/terremark/requests/add_internet_service.rb,
lib/fog/compute/terremark/requests/get_internet_services.rb,
lib/fog/compute/terremark/requests/create_internet_service.rb,
lib/fog/compute/terremark/requests/delete_internet_service.rb,
lib/fog/compute/terremark/requests/instantiate_vapp_template.rb
Overview
doc stub
Direct Known Subclasses
Instance Method Summary collapse
-
#add_internet_service(ip_id, name, protocol, port, options = {}) ⇒ Object
Reserve requested resources and deploy vApp.
-
#add_node_service(service_id, ip, name, port, options = {}) ⇒ Object
Reserve requested resources and deploy vApp.
- #configure_vapp(vapp_id, vapp_name, options = {}) ⇒ Object
-
#create_internet_service(vdc_id, name, protocol, port, options = {}) ⇒ Object
Reserve requested resources and deploy vApp.
-
#delete_internet_service(internet_service_id) ⇒ Object
Destroy an internet service.
-
#delete_node_service(node_service_id) ⇒ Object
Destroy a node.
-
#delete_public_ip(public_ip_id) ⇒ Object
Destroy a public ip.
-
#delete_vapp(vapp_id) ⇒ Object
Destroy a vapp.
-
#deploy_vapp(vapp_id) ⇒ Object
Reserve requested resources and deploy vApp.
-
#get_catalog(vdc_id) ⇒ Object
Get details of a catalog.
-
#get_catalog_item(catalog_item_id) ⇒ Object
-
“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.
-
-
#get_internet_services(vdc_id) ⇒ Object
Get a list of all internet services for a vdc.
-
#get_keys_list(organization_id) ⇒ Object
Get list of SSH keys for an organization.
-
#get_network(network_id) ⇒ Object
Get details for a Network.
-
#get_network_ips(network_id) ⇒ Object
Get details for a Network.
- #get_node_services(service_id) ⇒ Object
-
#get_organization(organization_id) ⇒ Object
Get details of an organization.
-
#get_public_ip(public_ip_id) ⇒ Object
Get details for a public ip.
-
#get_public_ips(vdc_id) ⇒ Object
Get list of public ips.
-
#get_task(task_id) ⇒ Object
Get details of a task.
-
#get_tasks_list(tasks_list_id) ⇒ Object
Get list of tasks.
-
#get_vapp(vapp_id) ⇒ Object
-
“endTime”<~String> - endTime of task * “href”<~String> - link to task * “startTime”<~String> - startTime of task * “status”<~String> - status of task * “type”<~String> - type of task * “Owner”<~String> - * “href”<~String> - href of owner * “name”<~String> - name of owner * “type”<~String> - type of owner * “Result”<~String> - * “href”<~String> - href of result * “name”<~String> - name of result * “type”<~String> - type of result.
-
-
#get_vapp_template(vapp_template_id) ⇒ Object
-
“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.
-
-
#get_vdc(vdc_id) ⇒ Object
-
“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.
-
-
#initialize(options = {}) ⇒ Real
constructor
A new instance of Real.
-
#instantiate_vapp_template(name, vapp_template, options = {}) ⇒ Object
Instatiate a vapp template.
-
#organizations ⇒ Object
Get list of organizations.
-
#power_off(vapp_id) ⇒ Object
Power off a vapp.
-
#power_on(vapp_id) ⇒ Object
Power on a vapp.
-
#power_reset(vapp_id) ⇒ Object
Reset a vapp.
-
#power_shutdown(vapp_id) ⇒ Object
Shutdown a vapp.
Methods included from Common
Constructor Details
#initialize(options = {}) ⇒ Real
Returns a new instance of Real.
8 9 10 11 |
# File 'lib/fog/compute/terremark/real.rb', line 8 def initialize( = {}) @terremark_username = [:terremark_vcloud_username] @terremark_password = [:terremark_vcloud_password] end |
Instance Method Details
#add_internet_service(ip_id, name, protocol, port, options = {}) ⇒ Object
Reserve requested resources and deploy vApp
Parameters
-
ip_id<~Integer> - Id of ip to add service to
-
name<~String> - Name of service
-
protocol<~String> - Protocol of service
-
port<~Integer> - Port of service
-
options<~Hash>:
-
Enabled<~Boolean>: defaults to true
-
Description<~String>: optional description
-
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
-
“endTime”<~String> - endTime of task
-
“href”<~String> - link to task
-
“startTime”<~String> - startTime of task
-
“status”<~String> - status of task
-
“type”<~String> - type of task
-
“Owner”<~String> -
-
“href”<~String> - href of owner
-
“name”<~String> - name of owner
-
“type”<~String> - type of owner
-
-
-
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/fog/compute/terremark/requests/add_internet_service.rb', line 28 def add_internet_service(ip_id, name, protocol, port, = {}) unless .key?("Enabled") ["Enabled"] = true end data = <<-DATA <CreateInternetServiceRequest xml:lang="en" xmlns="urn:tmrk:vCloudExpressExtensions-1.6" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Name>#{name}</Name> <Protocol>#{protocol.upcase}</Protocol> <Port>#{port}</Port> <Enabled>#{['Enabled']}</Enabled> <Description>#{['Description']}</Description> </CreateInternetServiceRequest> DATA request( :body => data, :expects => 200, :headers => { "Content-Type" => "application/xml" }, :method => "POST", :parser => Fog::Parsers::Terremark::InternetService.new, :path => "api/extensions/v1.6/publicIp/#{ip_id}/internetServices", :override_path => true ) end |
#add_node_service(service_id, ip, name, port, options = {}) ⇒ Object
Reserve requested resources and deploy vApp
Parameters
-
service_id<~String> - Id of service to add node to
-
ip<~String> - Private ip of server to add to node
-
name<~String> - Name of service
-
port<~Integer> - Port of service
-
options<~Hash>:
-
Enabled<~Boolean>: defaults to true
-
Description<~String>: optional description
-
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
-
“endTime”<~String> - endTime of task
-
“href”<~String> - link to task
-
“startTime”<~String> - startTime of task
-
“status”<~String> - status of task
-
“type”<~String> - type of task
-
“Owner”<~String> -
-
“href”<~String> - href of owner
-
“name”<~String> - name of owner
-
“type”<~String> - type of owner
-
-
-
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/fog/compute/terremark/requests/add_node_service.rb', line 28 def add_node_service(service_id, ip, name, port, = {}) unless .key?("Enabled") ["Enabled"] = true end data = <<-DATA <CreateNodeServiceRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:tmrk:vCloudExpressExtensions-1.6"><IpAddress>#{ip}</IpAddress><Name>#{name}</Name><Port>#{port}</Port><Enabled>#{['Enabled']}</Enabled><Description>#{['Description']}</Description></CreateNodeServiceRequest> DATA response = request( :body => data, :expects => 200, :headers => { "Content-Type" => "application/vnd.tmrk.vCloud.nodeService+xml" }, :method => "POST", :parser => Fog::Parsers::Terremark::NodeService.new, :path => "api/extensions/v1.6/internetService/#{service_id}/nodeServices", :override_path => true ) response end |
#configure_vapp(vapp_id, vapp_name, options = {}) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/fog/compute/terremark/requests/configure_vapp.rb', line 5 def configure_vapp(vapp_id, vapp_name, = {}) items = "" vapp_uri = [@host, @path, "vApp", vapp_id.to_s].join("/") if ["vcpus"] vcpu_item = <<-DATA <Item xmlns="http://schemas.dmtf.org/ovf/envelope/1"> <InstanceID xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">1</InstanceID><ResourceType xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">3</ResourceType><VirtualQuantity xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">#{['vcpus']}</VirtualQuantity></Item> DATA items << vcpu_item end if ["memory"] memory_item = <<-DATA <Item xmlns="http://schemas.dmtf.org/ovf/envelope/1"><InstanceID xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">2</InstanceID><ResourceType xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">4</ResourceType>38<VirtualQuantity xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">#{['memory']}</VirtualQuantity></Item> DATA items << memory_item end #Default root disk virtual_disk_item = <<-DATA <Item> <AddressOnParent xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">0</AddressOnParent> <HostResource xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">1048576</HostResource><InstanceID xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">9</InstanceID><ResourceType xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">17</ResourceType><VirtualQuantity xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">1048576</VirtualQuantity></Item> DATA items << virtual_disk_item #Additional disks if ["virtual_disks"] ["virtual_disks"].each do |disk| actual_size = disk.to_i * 1024 * 1024 virtual_disk_item = <<-DATA <Item> <AddressOnParent xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">-1</AddressOnParent><HostResource xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">#{actual_size}</HostResource><InstanceID xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">9</InstanceID><ResourceType xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">17</ResourceType><VirtualQuantity xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">#{actual_size}</VirtualQuantity></Item> DATA items << virtual_disk_item end end data = <<-DATA <VApp href="#{vapp_uri}" type="application/vnd.vmware.vcloud.vApp+xml" name="#{vapp_name}" status="2" size="10485760" xmlns="http://www.vmware.com/vcloud/v0.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <VirtualHardwareSection xmlns="http://schemas.dmtf.org/ovf/envelope/1"><Info>Virtual Hardware</Info>#{items} </VirtualHardwareSection> </VApp> DATA request( :body => data, :expects => 202, :headers => { "Content-Type" => "application/vnd.vmware.vCloud.vApp+xml" }, :method => "PUT", :path => "vapp/#{vapp_id}" ) end |
#create_internet_service(vdc_id, name, protocol, port, options = {}) ⇒ Object
Reserve requested resources and deploy vApp
Parameters
-
vdc_id<~Integer> - Id of vDc to add internet service to
-
name<~String> - Name of service
-
protocol<~String> - Protocol of service
-
port<~Integer> - Port of service
-
options<~Hash>:
-
Enabled<~Boolean>: defaults to true
-
Description<~String>: optional description
-
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
-
“endTime”<~String> - endTime of task
-
“href”<~String> - link to task
-
“startTime”<~String> - startTime of task
-
“status”<~String> - status of task
-
“type”<~String> - type of task
-
“Owner”<~String> -
-
“href”<~String> - href of owner
-
“name”<~String> - name of owner
-
“type”<~String> - type of owner
-
-
-
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/fog/compute/terremark/requests/create_internet_service.rb', line 28 def create_internet_service(vdc_id, name, protocol, port, = {}) unless .key?("Enabled") ["Enabled"] = true end #Sample: "https://services.vcloudexpress.terremark.com/api/extensions/v1.6/vdc/3142/internetServices" path = vdcs.get(vdc_id).links.detect { |item| item["name"] == "Internet Services" }["href"].split(@host)[1] data = <<-DATA <CreateInternetServiceRequest xml:lang="en" xmlns="urn:tmrk:vCloudExpressExtensions-1.6" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Name>#{name}</Name> <Protocol>#{protocol.upcase}</Protocol> <Port>#{port}</Port> <Enabled>#{['Enabled']}</Enabled> <Description>#{['Description']}</Description> </CreateInternetServiceRequest> DATA response = request( :body => data, :expects => 200, :headers => { "Content-Type" => "application/vnd.tmrk.vCloud.internetService+xml" }, :method => "POST", :parser => Fog::Parsers::Terremark::InternetService.new, :path => path, :override_path => true ) response end |
#delete_internet_service(internet_service_id) ⇒ Object
Destroy an internet service
Parameters
-
internet_service_id<~Integer> - Id of service to destroy
10 11 12 13 14 15 16 17 |
# File 'lib/fog/compute/terremark/requests/delete_internet_service.rb', line 10 def delete_internet_service(internet_service_id) request( :expects => 200, :method => "DELETE", :path => "api/extensions/v1.6/internetService/#{internet_service_id}", :override_path => true ) end |
#delete_node_service(node_service_id) ⇒ Object
Destroy a node
Parameters
-
node_service_id<~Integer> - Id of node to destroy
10 11 12 13 14 15 16 17 |
# File 'lib/fog/compute/terremark/requests/delete_node_service.rb', line 10 def delete_node_service(node_service_id) request( :expects => 200, :method => "DELETE", :path => "api/extensions/v1.6/nodeService/#{node_service_id}", :override_path => true ) end |
#delete_public_ip(public_ip_id) ⇒ Object
Destroy a public ip
Parameters
-
public_ip_id<~Integer> - Id of public ip to destroy
10 11 12 13 14 15 16 17 |
# File 'lib/fog/compute/terremark/requests/delete_public_ip.rb', line 10 def delete_public_ip(public_ip_id) request( :expects => 200, :method => "DELETE", :path => "api/extensions/v1.6/publicIp/#{public_ip_id}", :override_path => true ) end |
#delete_vapp(vapp_id) ⇒ Object
Destroy a vapp
Parameters
-
vapp_id<~Integer> - Id of vapp to destroy
10 11 12 13 14 15 16 |
# File 'lib/fog/compute/terremark/requests/delete_vapp.rb', line 10 def delete_vapp(vapp_id) request( :expects => 202, :method => "DELETE", :path => "vApp/#{vapp_id}" ) end |
#deploy_vapp(vapp_id) ⇒ Object
Reserve requested resources and deploy vApp
Parameters
-
vapp_id<~Integer> - Id of vApp to deploy
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
-
“endTime”<~String> - endTime of task
-
“href”<~String> - link to task
-
“startTime”<~String> - startTime of task
-
“status”<~String> - status of task
-
“type”<~String> - type of task
-
“Owner”<~String> -
-
“href”<~String> - href of owner
-
“name”<~String> - name of owner
-
“type”<~String> - type of owner
-
-
-
22 23 24 25 26 27 28 29 |
# File 'lib/fog/compute/terremark/requests/deploy_vapp.rb', line 22 def deploy_vapp(vapp_id) request( :expects => 202, :method => "POST", :parser => Fog::Parsers::Terremark::Task.new, :path => "vApp/#{vapp_id}/action/deploy" ) end |
#get_catalog(vdc_id) ⇒ Object
Get details of a catalog
Parameters
-
vdc_id<~Integer> - Id of vdc to view catalog for
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
-
“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
-
-
19 20 21 22 23 24 25 26 |
# File 'lib/fog/compute/terremark/requests/get_catalog.rb', line 19 def get_catalog(vdc_id) request( :expects => 200, :method => "GET", :parser => Fog::Parsers::Terremark::GetCatalog.new, :path => "vdc/#{vdc_id}/catalog" ) end |
#get_catalog_item(catalog_item_id) ⇒ Object
-
“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
22 23 24 25 26 27 28 29 |
# File 'lib/fog/compute/terremark/requests/get_catalog_item.rb', line 22 def get_catalog_item(catalog_item_id) request( :expects => 200, :method => "GET", :parser => Fog::Parsers::Terremark::GetCatalogItem.new, :path => "catalogItem/#{catalog_item_id}" ) end |
#get_internet_services(vdc_id) ⇒ Object
Get a list of all internet services for a vdc
Parameters
-
vdc_id<~Integer> - Id of vDc to get list of internet services for
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
-
“InternetServices”<~Array>
-
“id”<~String> => id of the internet service
-
“name”<~String> => name of service
-
“PublicIPAddress”<~Hash>
-
“Id”<~String> => id of the public IP
-
“name”<~String> => actual ip address
-
-
-
20 21 22 23 24 25 26 27 28 |
# File 'lib/fog/compute/terremark/requests/get_internet_services.rb', line 20 def get_internet_services(vdc_id) request( :expects => 200, :method => "GET", :parser => Fog::Parsers::Terremark::GetInternetServices.new, :path => "api/extensions/v1.6/vdc/#{vdc_id}/internetServices", :override_path => true ) end |
#get_keys_list(organization_id) ⇒ Object
Get list of SSH keys for an organization
Parameters
-
organization_id<~Integer> - Id of organization to lookup
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
-
“description”<~String> - Description of organization
-
“links”<~Array> - An array of links to entities in the organization
-
“href”<~String> - location of link
-
“name”<~String> - name of link
-
“rel”<~String> - action to perform
-
“type”<~String> - type of link
-
-
-
19 20 21 22 23 24 25 26 27 28 |
# File 'lib/fog/compute/terremark/requests/get_keys_list.rb', line 19 def get_keys_list(organization_id) response = request( :expects => 200, :method => "GET", :parser => Fog::Parsers::Terremark::GetKeysList.new, :path => "api/extensions/v1.6/org/#{organization_id}/keys", :override_path => true ) response end |
#get_network(network_id) ⇒ Object
Get details for a Network
Parameters
-
network_id<~Integer> - Id of the network to look up
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
FIXME
-
14 15 16 17 18 19 20 21 |
# File 'lib/fog/compute/terremark/requests/get_network.rb', line 14 def get_network(network_id) request( :expects => 200, :method => "GET", :parser => Fog::Parsers::Terremark::Network.new, :path => "network/#{network_id}" ) end |
#get_network_ips(network_id) ⇒ Object
Get details for a Network
Parameters
-
network_id<~Integer> - Id of the network to look up
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
FIXME
-
14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/fog/compute/terremark/requests/get_network_ips.rb', line 14 def get_network_ips(network_id) opts = { :expects => 200, :method => "GET", :parser => Fog::Parsers::Terremark::GetNetworkIps.new, :path => "network/#{network_id}/ipAddresses" } if self.is_a?(Fog::Terremark::Ecloud::Real) opts[:path] = "/extensions/network/#{network_id}/ips" end request(opts) end |
#get_node_services(service_id) ⇒ Object
15 16 17 18 19 20 21 22 23 |
# File 'lib/fog/compute/terremark/requests/get_node_services.rb', line 15 def get_node_services(service_id) request( :expects => 200, :method => "GET", :parser => Fog::Parsers::Terremark::GetNodeServices.new, :path => "api/extensions/v1.6/internetService/#{service_id}/nodeServices", :override_path => true ) end |
#get_organization(organization_id) ⇒ Object
Get details of an organization
Parameters
-
organization_id<~Integer> - Id of organization to lookup
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
-
“description”<~String> - Description of organization
-
“links”<~Array> - An array of links to entities in the organization
-
“href”<~String> - location of link
-
“name”<~String> - name of link
-
“rel”<~String> - action to perform
-
“type”<~String> - type of link
-
-
“name”<~String> - Name of organization
-
-
20 21 22 23 24 25 26 27 28 |
# File 'lib/fog/compute/terremark/requests/get_organization.rb', line 20 def get_organization(organization_id) response = request( :expects => 200, :method => "GET", :parser => Fog::Parsers::Terremark::GetOrganization.new, :path => "org/#{organization_id}" ) response end |
#get_public_ip(public_ip_id) ⇒ Object
Get details for a public ip
Parameters
-
public_ip_id<~Integer> - Id of public ip to look up
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
-
“PublicIpAddresses”<~Array>
-
“href”<~String> - linke to item
-
“name”<~String> - name of item
-
-
-
16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/fog/compute/terremark/requests/get_public_ip.rb', line 16 def get_public_ip(public_ip_id) opts = { :expects => 200, :method => "GET", :parser => Fog::Parsers::Terremark::PublicIp.new, :path => "publicIps/#{public_ip_id}" } if self.class == Fog::Terremark::Ecloud::Real opts[:path] = "extensions/publicIp/#{public_ip_id}" end request(opts) end |
#get_public_ips(vdc_id) ⇒ Object
Get list of public ips
Parameters
-
vdc_id<~Integer> - Id of vdc to find public ips for
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
-
“PublicIpAddresses”<~Array>
-
“href”<~String> - link to item
-
“name”<~String> - name of item
-
-
-
16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/fog/compute/terremark/requests/get_public_ips.rb', line 16 def get_public_ips(vdc_id) opts = { :expects => 200, :method => "GET", :parser => Fog::Parsers::Terremark::GetPublicIps.new, :path => "vdc/#{vdc_id}/publicIps" } if self.class == Fog::Terremark::Ecloud::Real opts[:path] = "extensions/vdc/#{vdc_id}/publicIps" end request(opts) end |
#get_task(task_id) ⇒ Object
Get details of a task
Parameters
-
task_id<~Integer> - Id of task to lookup
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
-
“endTime”<~String> - endTime of task
-
“href”<~String> - link to task
-
“startTime”<~String> - startTime of task
-
“status”<~String> - status of task
-
“type”<~String> - type of task
-
“Owner”<~String> -
-
“href”<~String> - href of owner
-
“name”<~String> - name of owner
-
“type”<~String> - type of owner
-
-
“Result”<~String> -
-
“href”<~String> - href of result
-
“name”<~String> - name of result
-
“type”<~String> - type of result
-
-
-
26 27 28 29 30 31 32 33 |
# File 'lib/fog/compute/terremark/requests/get_task.rb', line 26 def get_task(task_id) request( :expects => 200, :method => "GET", :parser => Fog::Parsers::Terremark::Task.new, :path => "task/#{task_id}" ) end |
#get_tasks_list(tasks_list_id) ⇒ Object
Get list of tasks
Parameters
-
tasks_list_id<~Integer> - Id of tasks lists to view
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
-
“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
-
-
19 20 21 22 23 24 25 26 |
# File 'lib/fog/compute/terremark/requests/get_tasks_list.rb', line 19 def get_tasks_list(tasks_list_id) request( :expects => 200, :method => "GET", :parser => Fog::Parsers::Terremark::GetTasksList.new, :path => "tasksList/#{tasks_list_id}" ) end |
#get_vapp(vapp_id) ⇒ Object
-
“endTime”<~String> - endTime of task
* "href"<~String> - link to task * "startTime"<~String> - startTime of task * "status"<~String> - status of task * "type"<~String> - type of task * "Owner"<~String> - * "href"<~String> - href of owner * "name"<~String> - name of owner * "type"<~String> - type of owner * "Result"<~String> - * "href"<~String> - href of result * "name"<~String> - name of result * "type"<~String> - type of result
29 30 31 32 33 34 35 36 |
# File 'lib/fog/compute/terremark/requests/get_vapp.rb', line 29 def get_vapp(vapp_id) request( :expects => 200, :method => "GET", :parser => Fog::Parsers::Terremark::Vapp.new, :path => "vapp/#{vapp_id}" ) end |
#get_vapp_template(vapp_template_id) ⇒ Object
-
“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
22 23 24 25 26 27 28 29 |
# File 'lib/fog/compute/terremark/requests/get_vapp_template.rb', line 22 def get_vapp_template(vapp_template_id) request( :expects => 200, :method => "GET", :parser => Fog::Parsers::Terremark::GetVappTemplate.new, :path => "vAppTemplate/#{vapp_template_id}" ) end |
#get_vdc(vdc_id) ⇒ Object
-
“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
22 23 24 25 26 27 28 29 |
# File 'lib/fog/compute/terremark/requests/get_vdc.rb', line 22 def get_vdc(vdc_id) request( :expects => 200, :method => "GET", :parser => Fog::Parsers::Terremark::GetVdc.new, :path => "vdc/#{vdc_id}" ) end |
#instantiate_vapp_template(name, vapp_template, options = {}) ⇒ Object
Instatiate a vapp template
Parameters
-
name<~String>: Name of the resulting vapp .. must start with letter, up to 15 chars alphanumeric.
-
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
-
vapp_template<~String>: id of the vapp template to be instantiated
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
-
“Links;<~Array> (e.g. up to vdc)
-
“href”<~String> Link to the resulting vapp
-
“name”<~String> - name of item
-
“type”<~String> - type of item
-
“status”<~String> - 0(pending) –> 2(off) –>4(on)
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/fog/compute/terremark/requests/instantiate_vapp_template.rb', line 21 def instantiate_vapp_template(name, vapp_template, = {}) raise ArgumentError.new("Name must be fewer than 15 characters") unless name.length < 15 raise ArgumentError.new("vApp Image Template is a compulsary parameter") unless vapp_template ["ssh_key_fingerprint"] ||= default_ssh_key["FingerPrint"] ["cpus"] ||= 1 ["memory"] ||= 512 ["network_id"] ||= default_network_id ["vdc_id"] ||= default_vdc_id ["primary_dns"] ||= "208.67.222.222" ["secondary_dns"] ||= "208.67.220.220" data = <<-DATA <?xml version="1.0" encoding="UTF-8"?> <InstantiateVAppTemplateParams name="#{name}" xmlns="http://www.vmware.com/vcloud/v0.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vmware.com/vcloud/v0.8 http://services.vcloudexpress.terremark.com/api/v0.8/ns/vcloud.xsd"> <VAppTemplate href="#{@scheme}://#{@host}/#{@path}/vAppTemplate/#{vapp_template}" /> <InstantiationParams xmlns:vmw="http://www.vmware.com/schema/ovf"> <ProductSection xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:q1="http://www.vmware.com/vcloud/v0.8"> <Property xmlns="http://schemas.dmtf.org/ovf/envelope/1" ovf:key="primaryDNS" ovf:value="#{['primary_dns']}" /> <Property xmlns="http://schemas.dmtf.org/ovf/envelope/1" ovf:key="secondaryDNS" ovf:value="#{['secondary_dns']}" /> <Property xmlns="http://schemas.dmtf.org/ovf/envelope/1" ovf:key="sshKeyFingerprint" ovf:value="#{['ssh_key_fingerprint']}" /> </ProductSection> <VirtualHardwareSection xmlns:q1="http://www.vmware.com/vcloud/v0.8"> <Item xmlns="http://schemas.dmtf.org/ovf/envelope/1"> <InstanceID xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">1</InstanceID> <ResourceType xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">3</ResourceType> <VirtualQuantity xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">#{['cpus']}</VirtualQuantity> </Item> <Item xmlns="http://schemas.dmtf.org/ovf/envelope/1"> <InstanceID xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">2</InstanceID> <ResourceType xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">4</ResourceType> <VirtualQuantity xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">#{['memory']}</VirtualQuantity> </Item> </VirtualHardwareSection> <NetworkConfigSection> <NetworkConfig> <NetworkAssociation href="#{@scheme}://#{@host}/#{@path}/network/#{['network_id']}"/> </NetworkConfig> </NetworkConfigSection> </InstantiationParams> </InstantiateVAppTemplateParams> DATA request( :body => data, :expects => 200, :headers => { "Content-Type" => "application/vnd.vmware.vcloud.instantiateVAppTemplateParams+xml" }, :method => "POST", :parser => Fog::Parsers::Terremark::InstantiateVappTemplate.new, :path => "vdc/#{['vdc_id']}/action/instantiatevAppTemplate" ) end |
#organizations ⇒ Object
Get list of organizations
Returns
-
response<~Excon::Response>:
-
body<~Array>:
-
“description”<~String> - Description of organization
-
“links”<~Array> - An array of links to entities in the organization
-
“name”<~String> - Name of organization
-
-
14 15 16 17 18 19 20 21 22 |
# File 'lib/fog/compute/terremark/requests/get_organizations.rb', line 14 def organizations request( :expects => 200, :headers => auth_headers, :method => "POST", :parser => Fog::Parsers::Terremark::GetOrganizations.new, :path => "login" ) end |
#power_off(vapp_id) ⇒ Object
Power off a vapp
Parameters
-
vapp_id<~Integer> - Id of vapp to power off
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
-
“endTime”<~String> - endTime of task
-
“href”<~String> - link to task
-
“startTime”<~String> - startTime of task
-
“status”<~String> - status of task
-
“type”<~String> - type of task
-
“Owner”<~String> -
-
“href”<~String> - href of owner
-
“name”<~String> - name of owner
-
“type”<~String> - type of owner
-
-
-
22 23 24 25 26 27 28 29 |
# File 'lib/fog/compute/terremark/requests/power_off.rb', line 22 def power_off(vapp_id) request( :expects => 202, :method => "POST", :parser => Fog::Parsers::Terremark::Task.new, :path => "vApp/#{vapp_id}/power/action/powerOff" ) end |
#power_on(vapp_id) ⇒ Object
Power on a vapp
Parameters
-
vapp_id<~Integer> - Id of vapp to power on
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
-
“endTime”<~String> - endTime of task
-
“href”<~String> - link to task
-
“startTime”<~String> - startTime of task
-
“status”<~String> - status of task
-
“type”<~String> - type of task
-
“Owner”<~String> -
-
“href”<~String> - href of owner
-
“name”<~String> - name of owner
-
“type”<~String> - type of owner
-
-
-
22 23 24 25 26 27 28 29 |
# File 'lib/fog/compute/terremark/requests/power_on.rb', line 22 def power_on(vapp_id) request( :expects => 202, :method => "POST", :parser => Fog::Parsers::Terremark::Task.new, :path => "vApp/#{vapp_id}/power/action/powerOn" ) end |
#power_reset(vapp_id) ⇒ Object
Reset a vapp
Parameters
-
vapp_id<~Integer> - Id of vapp to reset
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
-
“endTime”<~String> - endTime of task
-
“href”<~String> - link to task
-
“startTime”<~String> - startTime of task
-
“status”<~String> - status of task
-
“type”<~String> - type of task
-
“Owner”<~String> -
-
“href”<~String> - href of owner
-
“name”<~String> - name of owner
-
“type”<~String> - type of owner
-
-
-
22 23 24 25 26 27 28 29 |
# File 'lib/fog/compute/terremark/requests/power_reset.rb', line 22 def power_reset(vapp_id) request( :expects => 202, :method => "POST", :parser => Fog::Parsers::Terremark::Task.new, :path => "vApp/#{vapp_id}/power/action/reset" ) end |
#power_shutdown(vapp_id) ⇒ Object
Shutdown a vapp
Parameters
-
vapp_id<~Integer> - Id of vapp to shutdown
Returns
Nothing
12 13 14 15 16 17 18 |
# File 'lib/fog/compute/terremark/requests/power_shutdown.rb', line 12 def power_shutdown(vapp_id) request( :expects => 204, :method => "POST", :path => "vApp/#{vapp_id}/power/action/shutdown" ) end |