fog 0.0.77 → 0.0.78

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. data/Gemfile.lock +2 -2
  2. data/fog.gemspec +59 -48
  3. data/lib/fog.rb +2 -1
  4. data/lib/fog/aws/models/ec2/snapshot.rb +3 -1
  5. data/lib/fog/aws/models/ec2/volume.rb +4 -2
  6. data/lib/fog/aws/s3.rb +1 -1
  7. data/lib/fog/deprecation.rb +14 -0
  8. data/lib/fog/terremark.rb +7 -220
  9. data/lib/fog/terremark/bin.rb +24 -14
  10. data/lib/fog/terremark/ecloud.rb +51 -0
  11. data/lib/fog/terremark/models/shared/address.rb +29 -0
  12. data/lib/fog/terremark/models/shared/addresses.rb +49 -0
  13. data/lib/fog/terremark/models/shared/network.rb +30 -0
  14. data/lib/fog/terremark/models/shared/networks.rb +52 -0
  15. data/lib/fog/terremark/models/shared/server.rb +57 -0
  16. data/lib/fog/terremark/models/shared/servers.rb +55 -0
  17. data/lib/fog/terremark/models/shared/task.rb +43 -0
  18. data/lib/fog/terremark/models/shared/tasks.rb +58 -0
  19. data/lib/fog/terremark/parser.rb +18 -0
  20. data/lib/fog/terremark/parsers/shared/get_catalog.rb +46 -0
  21. data/lib/fog/terremark/parsers/shared/get_catalog_item.rb +46 -0
  22. data/lib/fog/terremark/parsers/shared/get_internet_services.rb +60 -0
  23. data/lib/fog/terremark/parsers/{get_node_services.rb → shared/get_node_services.rb} +10 -11
  24. data/lib/fog/terremark/parsers/shared/get_organization.rb +47 -0
  25. data/lib/fog/terremark/parsers/shared/get_organizations.rb +27 -0
  26. data/lib/fog/terremark/parsers/shared/get_public_ips.rb +30 -0
  27. data/lib/fog/terremark/parsers/shared/get_tasks_list.rb +52 -0
  28. data/lib/fog/terremark/parsers/shared/get_vapp_template.rb +46 -0
  29. data/lib/fog/terremark/parsers/shared/get_vdc.rb +108 -0
  30. data/lib/fog/terremark/parsers/shared/instantiate_vapp_template.rb +41 -0
  31. data/lib/fog/terremark/parsers/shared/internet_service.rb +65 -0
  32. data/lib/fog/terremark/parsers/shared/network.rb +51 -0
  33. data/lib/fog/terremark/parsers/shared/node_service.rb +32 -0
  34. data/lib/fog/terremark/parsers/shared/public_ip.rb +26 -0
  35. data/lib/fog/terremark/parsers/shared/task.rb +40 -0
  36. data/lib/fog/terremark/parsers/shared/vapp.rb +47 -0
  37. data/lib/fog/terremark/requests/shared/add_internet_service.rb +63 -0
  38. data/lib/fog/terremark/requests/shared/add_node_service.rb +63 -0
  39. data/lib/fog/terremark/requests/shared/create_internet_service.rb +63 -0
  40. data/lib/fog/terremark/requests/shared/delete_internet_service.rb +42 -0
  41. data/lib/fog/terremark/requests/shared/delete_node_service.rb +42 -0
  42. data/lib/fog/terremark/requests/shared/delete_public_ip.rb +30 -0
  43. data/lib/fog/terremark/requests/shared/delete_vapp.rb +42 -0
  44. data/lib/fog/terremark/requests/shared/deploy_vapp.rb +43 -0
  45. data/lib/fog/terremark/requests/shared/get_catalog.rb +40 -0
  46. data/lib/fog/terremark/requests/shared/get_catalog_item.rb +43 -0
  47. data/lib/fog/terremark/requests/shared/get_internet_services.rb +43 -0
  48. data/lib/fog/terremark/requests/shared/get_network.rb +37 -0
  49. data/lib/fog/terremark/requests/shared/get_node_services.rb +38 -0
  50. data/lib/fog/terremark/requests/shared/get_organization.rb +42 -0
  51. data/lib/fog/terremark/requests/shared/get_organizations.rb +39 -0
  52. data/lib/fog/terremark/requests/shared/get_public_ip.rb +41 -0
  53. data/lib/fog/terremark/requests/shared/get_public_ips.rb +41 -0
  54. data/lib/fog/terremark/requests/shared/get_task.rb +47 -0
  55. data/lib/fog/terremark/requests/shared/get_tasks_list.rb +40 -0
  56. data/lib/fog/terremark/requests/shared/get_vapp.rb +50 -0
  57. data/lib/fog/terremark/requests/shared/get_vapp_template.rb +43 -0
  58. data/lib/fog/terremark/requests/shared/get_vdc.rb +43 -0
  59. data/lib/fog/terremark/requests/shared/instantiate_vapp_template.rb +79 -0
  60. data/lib/fog/terremark/requests/shared/power_off.rb +43 -0
  61. data/lib/fog/terremark/requests/shared/power_on.rb +43 -0
  62. data/lib/fog/terremark/requests/shared/reset.rb +43 -0
  63. data/lib/fog/terremark/requests/shared/shutdown.rb +43 -0
  64. data/lib/fog/terremark/shared.rb +139 -0
  65. data/lib/fog/terremark/vcloud.rb +98 -0
  66. metadata +60 -49
  67. data/lib/fog/terremark/models/server.rb +0 -56
  68. data/lib/fog/terremark/models/servers.rb +0 -53
  69. data/lib/fog/terremark/models/task.rb +0 -41
  70. data/lib/fog/terremark/models/tasks.rb +0 -56
  71. data/lib/fog/terremark/parsers/get_catalog.rb +0 -44
  72. data/lib/fog/terremark/parsers/get_catalog_item.rb +0 -44
  73. data/lib/fog/terremark/parsers/get_internet_services.rb +0 -58
  74. data/lib/fog/terremark/parsers/get_organization.rb +0 -45
  75. data/lib/fog/terremark/parsers/get_organizations.rb +0 -26
  76. data/lib/fog/terremark/parsers/get_public_ips.rb +0 -28
  77. data/lib/fog/terremark/parsers/get_tasks_list.rb +0 -50
  78. data/lib/fog/terremark/parsers/get_vapp_template.rb +0 -44
  79. data/lib/fog/terremark/parsers/get_vdc.rb +0 -106
  80. data/lib/fog/terremark/parsers/instantiate_vapp_template.rb +0 -39
  81. data/lib/fog/terremark/parsers/internet_service.rb +0 -63
  82. data/lib/fog/terremark/parsers/node_service.rb +0 -30
  83. data/lib/fog/terremark/parsers/public_ip.rb +0 -24
  84. data/lib/fog/terremark/parsers/task.rb +0 -38
  85. data/lib/fog/terremark/parsers/vapp.rb +0 -45
  86. data/lib/fog/terremark/requests/add_internet_service.rb +0 -61
  87. data/lib/fog/terremark/requests/add_node_service.rb +0 -61
  88. data/lib/fog/terremark/requests/create_internet_service.rb +0 -61
  89. data/lib/fog/terremark/requests/delete_internet_service.rb +0 -40
  90. data/lib/fog/terremark/requests/delete_node_service.rb +0 -40
  91. data/lib/fog/terremark/requests/delete_public_ip.rb +0 -28
  92. data/lib/fog/terremark/requests/delete_vapp.rb +0 -40
  93. data/lib/fog/terremark/requests/deploy_vapp.rb +0 -41
  94. data/lib/fog/terremark/requests/get_catalog.rb +0 -38
  95. data/lib/fog/terremark/requests/get_catalog_item.rb +0 -41
  96. data/lib/fog/terremark/requests/get_internet_services.rb +0 -41
  97. data/lib/fog/terremark/requests/get_node_services.rb +0 -36
  98. data/lib/fog/terremark/requests/get_organization.rb +0 -40
  99. data/lib/fog/terremark/requests/get_organizations.rb +0 -37
  100. data/lib/fog/terremark/requests/get_public_ip.rb +0 -35
  101. data/lib/fog/terremark/requests/get_public_ips.rb +0 -35
  102. data/lib/fog/terremark/requests/get_task.rb +0 -45
  103. data/lib/fog/terremark/requests/get_tasks_list.rb +0 -38
  104. data/lib/fog/terremark/requests/get_vapp.rb +0 -48
  105. data/lib/fog/terremark/requests/get_vapp_template.rb +0 -41
  106. data/lib/fog/terremark/requests/get_vdc.rb +0 -41
  107. data/lib/fog/terremark/requests/instantiate_vapp_template.rb +0 -77
  108. data/lib/fog/terremark/requests/power_off.rb +0 -41
  109. data/lib/fog/terremark/requests/power_on.rb +0 -41
  110. data/lib/fog/terremark/requests/reset.rb +0 -41
  111. data/lib/fog/terremark/requests/shutdown.rb +0 -41
@@ -0,0 +1,39 @@
1
+ module Fog
2
+ module Terremark
3
+ module Shared
4
+ module Real
5
+
6
+ # Get list of organizations
7
+ #
8
+ # ==== Returns
9
+ # * response<~Excon::Response>:
10
+ # * body<~Array>:
11
+ # * 'description'<~String> - Description of organization
12
+ # * 'links'<~Array> - An array of links to entities in the organization
13
+ # * 'name'<~String> - Name of organization
14
+ def get_organizations
15
+ request({
16
+ :expects => 200,
17
+ :headers => {
18
+ 'Authorization' => "Basic #{Base64.encode64("#{@terremark_username}:#{@terremark_password}").chomp!}",
19
+ # Terremark said they're going to remove passing in the Content-Type to login in a future release
20
+ 'Content-Type' => "application/vnd.vmware.vcloud.orgList+xml"
21
+ },
22
+ :method => 'POST',
23
+ :parser => Fog::Parsers::Terremark::Shared::GetOrganizations.new,
24
+ :path => 'login'
25
+ })
26
+ end
27
+
28
+ end
29
+
30
+ module Mock
31
+
32
+ def get_organizations
33
+ raise MockNotImplemented.new("Contributions welcome!")
34
+ end
35
+
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,41 @@
1
+ module Fog
2
+ module Terremark
3
+ module Shared
4
+ module Real
5
+
6
+ # Get details for a public ip
7
+ #
8
+ # ==== Parameters
9
+ # * public_ip_id<~Integer> - Id of public ip to look up
10
+ #
11
+ # ==== Returns
12
+ # * response<~Excon::Response>:
13
+ # * body<~Hash>:
14
+ # * 'PublicIpAddresses'<~Array>
15
+ # * 'href'<~String> - linke to item
16
+ # * 'name'<~String> - name of item
17
+ def get_public_ip(public_ip_id)
18
+ opts = {
19
+ :expects => 200,
20
+ :method => 'GET',
21
+ :parser => Fog::Parsers::Terremark::Shared::PublicIp.new,
22
+ :path => "publicIps/#{public_ip_id}"
23
+ }
24
+ if self.class == Fog::Terremark::Ecloud::Real
25
+ opts[:path] = "extensions/publicIp/#{public_ip_id}"
26
+ end
27
+ request(opts)
28
+ end
29
+
30
+ end
31
+
32
+ module Mock
33
+
34
+ def get_public_ip(public_ip_id)
35
+ raise MockNotImplemented.new("Contributions welcome!")
36
+ end
37
+
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,41 @@
1
+ module Fog
2
+ module Terremark
3
+ module Shared
4
+ module Real
5
+
6
+ # Get list of public ips
7
+ #
8
+ # ==== Parameters
9
+ # * vdc_id<~Integer> - Id of vdc to find public ips for
10
+ #
11
+ # ==== Returns
12
+ # * response<~Excon::Response>:
13
+ # * body<~Hash>:
14
+ # * 'PublicIpAddresses'<~Array>
15
+ # * 'href'<~String> - link to item
16
+ # * 'name'<~String> - name of item
17
+ def get_public_ips(vdc_id)
18
+ opts = {
19
+ :expects => 200,
20
+ :method => 'GET',
21
+ :parser => Fog::Parsers::Terremark::Shared::GetPublicIps.new,
22
+ :path => "vdc/#{vdc_id}/publicIps"
23
+ }
24
+ if self.class == Fog::Terremark::Ecloud::Real
25
+ opts[:path] = "extensions/vdc/#{vdc_id}/publicIps"
26
+ end
27
+ request(opts)
28
+ end
29
+
30
+ end
31
+
32
+ module Mock
33
+
34
+ def get_public_ips(vdc_id)
35
+ raise MockNotImplemented.new("Contributions welcome!")
36
+ end
37
+
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,47 @@
1
+ module Fog
2
+ module Terremark
3
+ module Shared
4
+ module Real
5
+
6
+ # Get details of a task
7
+ #
8
+ # ==== Parameters
9
+ # * task_id<~Integer> - Id of task to lookup
10
+ #
11
+ # ==== Returns
12
+ # * response<~Excon::Response>:
13
+ # * body<~Hash>:
14
+ # * 'endTime'<~String> - endTime of task
15
+ # * 'href'<~String> - link to task
16
+ # * 'startTime'<~String> - startTime of task
17
+ # * 'status'<~String> - status of task
18
+ # * 'type'<~String> - type of task
19
+ # * 'Owner'<~String> -
20
+ # * 'href'<~String> - href of owner
21
+ # * 'name'<~String> - name of owner
22
+ # * 'type'<~String> - type of owner
23
+ # * 'Result'<~String> -
24
+ # * 'href'<~String> - href of result
25
+ # * 'name'<~String> - name of result
26
+ # * 'type'<~String> - type of result
27
+ def get_task(task_id)
28
+ request(
29
+ :expects => 200,
30
+ :method => 'GET',
31
+ :parser => Fog::Parsers::Terremark::Shared::Task.new,
32
+ :path => "task/#{task_id}"
33
+ )
34
+ end
35
+
36
+ end
37
+
38
+ module Mock
39
+
40
+ def get_task(task_id)
41
+ raise MockNotImplemented.new("Contributions welcome!")
42
+ end
43
+
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,40 @@
1
+ module Fog
2
+ module Terremark
3
+ module Shared
4
+ module Real
5
+
6
+ # Get list of tasks
7
+ #
8
+ # ==== Parameters
9
+ # * tasks_list_id<~Integer> - Id of tasks lists to view
10
+ #
11
+ # ==== Returns
12
+ # * response<~Excon::Response>:
13
+ # * body<~Hash>:
14
+ # * 'CatalogItems'<~Array>
15
+ # * 'href'<~String> - linke to item
16
+ # * 'name'<~String> - name of item
17
+ # * 'type'<~String> - type of item
18
+ # * 'description'<~String> - Description of catalog
19
+ # * 'name'<~String> - Name of catalog
20
+ def get_tasks_list(tasks_list_id)
21
+ request(
22
+ :expects => 200,
23
+ :method => 'GET',
24
+ :parser => Fog::Parsers::Terremark::Shared::GetTasksList.new,
25
+ :path => "tasksList/#{tasks_list_id}"
26
+ )
27
+ end
28
+
29
+ end
30
+
31
+ module Mock
32
+
33
+ def get_tasks_list(tasks_list_id)
34
+ raise MockNotImplemented.new("Contributions welcome!")
35
+ end
36
+
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,50 @@
1
+ module Fog
2
+ module Terremark
3
+ module Shared
4
+ module Real
5
+
6
+ # Get details of a vapp
7
+ #
8
+ # ==== Parameters
9
+ # * vapp_id<~Integer> - Id of vapp to lookup
10
+ #
11
+ # ==== Returns
12
+ # * response<~Excon::Response>:
13
+ # * body<~Hash>:
14
+
15
+ # FIXME
16
+
17
+ # * 'endTime'<~String> - endTime of task
18
+ # * 'href'<~String> - link to task
19
+ # * 'startTime'<~String> - startTime of task
20
+ # * 'status'<~String> - status of task
21
+ # * 'type'<~String> - type of task
22
+ # * 'Owner'<~String> -
23
+ # * 'href'<~String> - href of owner
24
+ # * 'name'<~String> - name of owner
25
+ # * 'type'<~String> - type of owner
26
+ # * 'Result'<~String> -
27
+ # * 'href'<~String> - href of result
28
+ # * 'name'<~String> - name of result
29
+ # * 'type'<~String> - type of result
30
+ def get_vapp(vapp_id)
31
+ request(
32
+ :expects => 200,
33
+ :method => 'GET',
34
+ :parser => Fog::Parsers::Terremark::Shared::Vapp.new,
35
+ :path => "vapp/#{vapp_id}"
36
+ )
37
+ end
38
+
39
+ end
40
+
41
+ module Mock
42
+
43
+ def get_vapp(vapp_id)
44
+ raise MockNotImplemented.new("Contributions welcome!")
45
+ end
46
+
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,43 @@
1
+ module Fog
2
+ module Terremark
3
+ module Shared
4
+ module Real
5
+
6
+ # Get details of a vapp template
7
+ #
8
+ # ==== Parameters
9
+ # * vapp_template_id<~Integer> - Id of vapp template to lookup
10
+ #
11
+ # ==== Returns
12
+ # * response<~Excon::Response>:
13
+ # * body<~Hash>:
14
+
15
+ # FIXME
16
+
17
+ # * 'CatalogItems'<~Array>
18
+ # * 'href'<~String> - linke to item
19
+ # * 'name'<~String> - name of item
20
+ # * 'type'<~String> - type of item
21
+ # * 'description'<~String> - Description of catalog
22
+ # * 'name'<~String> - Name of catalog
23
+ def get_vapp_template(vapp_template_id)
24
+ request(
25
+ :expects => 200,
26
+ :method => 'GET',
27
+ :parser => Fog::Parsers::Terremark::Shared::GetVappTemplate.new,
28
+ :path => "vAppTemplate/#{vapp_template_id}"
29
+ )
30
+ end
31
+
32
+ end
33
+
34
+ module Mock
35
+
36
+ def get_vapp_template(vapp_template_id)
37
+ raise MockNotImplemented.new("Contributions welcome!")
38
+ end
39
+
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,43 @@
1
+ module Fog
2
+ module Terremark
3
+ module Shared
4
+ module Real
5
+
6
+ # Get details of a vdc
7
+ #
8
+ # ==== Parameters
9
+ # * vdc_id<~Integer> - Id of vdc to lookup
10
+ #
11
+ # ==== Returns
12
+ # * response<~Excon::Response>:
13
+ # * body<~Hash>:
14
+
15
+ # FIXME
16
+
17
+ # * 'CatalogItems'<~Array>
18
+ # * 'href'<~String> - linke to item
19
+ # * 'name'<~String> - name of item
20
+ # * 'type'<~String> - type of item
21
+ # * 'description'<~String> - Description of catalog
22
+ # * 'name'<~String> - Name of catalog
23
+ def get_vdc(vdc_id)
24
+ request(
25
+ :expects => 200,
26
+ :method => 'GET',
27
+ :parser => Fog::Parsers::Terremark::Shared::GetVdc.new,
28
+ :path => "vdc/#{vdc_id}"
29
+ )
30
+ end
31
+
32
+ end
33
+
34
+ module Mock
35
+
36
+ def get_vdc(vdc_id)
37
+ raise MockNotImplemented.new("Contributions welcome!")
38
+ end
39
+
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,79 @@
1
+ module Fog
2
+ module Terremark
3
+ module Shared
4
+ module Real
5
+
6
+ # Instatiate a vapp template
7
+ #
8
+ # ==== Parameters
9
+ # * name<~String>: Name of the resulting vapp .. must start with letter, up to 15 chars alphanumeric.
10
+ # * options<~Hash>:
11
+ # * cpus<~Integer>: Number of cpus in [1, 2, 4, 8], defaults to 1
12
+ # * memory<~Integer>: Amount of memory either 512 or a multiple of 1024, defaults to 512
13
+ # * vapp_template<~String>: id of the vapp template to be instantiated
14
+ # ==== Returns
15
+ # * response<~Excon::Response>:
16
+ # * body<~Hash>:
17
+ # * 'Links;<~Array> (e.g. up to vdc)
18
+ # * 'href'<~String> Link to the resulting vapp
19
+ # * 'name'<~String> - name of item
20
+ # * 'type'<~String> - type of item
21
+ # * 'status'<~String> - 0(pending) --> 2(off) -->4(on)
22
+ def instantiate_vapp_template(name, vapp_template, options = {})
23
+ unless name.length < 15
24
+ raise ArgumentError.new('Name must be fewer than 15 characters')
25
+ end
26
+ options['cpus'] ||= 1
27
+ options['memory'] ||= 512
28
+ options['network_id'] ||= default_network_id
29
+ options['vdc_id'] ||= default_vdc_id
30
+
31
+ data = <<-DATA
32
+ <?xml version="1.0" encoding="UTF-8"?>
33
+ <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">
34
+ <VAppTemplate href="#{@scheme}://#{@host}/#{@path}/vAppTemplate/#{vapp_template}" />
35
+ <InstantiationParams xmlns:vmw="http://www.vmware.com/schema/ovf">
36
+ <ProductSection xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:q1="http://www.vmware.com/vcloud/v0.8"/>
37
+ <VirtualHardwareSection xmlns:q1="http://www.vmware.com/vcloud/v0.8">
38
+ <Item xmlns="http://schemas.dmtf.org/ovf/envelope/1">
39
+ <InstanceID xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">1</InstanceID>
40
+ <ResourceType xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">3</ResourceType>
41
+ <VirtualQuantity xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">#{options['cpus']}</VirtualQuantity>
42
+ </Item>
43
+ <Item xmlns="http://schemas.dmtf.org/ovf/envelope/1">
44
+ <InstanceID xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">2</InstanceID>
45
+ <ResourceType xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">4</ResourceType>
46
+ <VirtualQuantity xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">#{options['memory']}</VirtualQuantity>
47
+ </Item>
48
+ </VirtualHardwareSection>
49
+ <NetworkConfigSection>
50
+ <NetworkConfig>
51
+ <NetworkAssociation href="#{@scheme}://#{@host}/#{@path}/network/#{options['network_id']}"/>
52
+ </NetworkConfig>
53
+ </NetworkConfigSection>
54
+ </InstantiationParams>
55
+ </InstantiateVAppTemplateParams>
56
+ DATA
57
+
58
+ request(
59
+ :body => data,
60
+ :expects => 200,
61
+ :headers => { 'Content-Type' => 'application/vnd.vmware.vcloud.instantiateVAppTemplateParams+xml' },
62
+ :method => 'POST',
63
+ :parser => Fog::Parsers::Terremark::Shared::InstantiateVappTemplate.new,
64
+ :path => "vdc/#{options['vdc_id']}/action/instantiatevAppTemplate"
65
+ )
66
+ end
67
+
68
+ end
69
+
70
+ module Mock
71
+
72
+ def instatiate_vapp_template(vapp_template_id)
73
+ raise MockNotImplemented.new("Contributions welcome!")
74
+ end
75
+
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,43 @@
1
+ module Fog
2
+ module Terremark
3
+ module Shared
4
+ module Real
5
+
6
+ # Power off a vapp
7
+ #
8
+ # ==== Parameters
9
+ # * vapp_id<~Integer> - Id of vapp to power off
10
+ #
11
+ # ==== Returns
12
+ # * response<~Excon::Response>:
13
+ # * body<~Hash>:
14
+ # * 'endTime'<~String> - endTime of task
15
+ # * 'href'<~String> - link to task
16
+ # * 'startTime'<~String> - startTime of task
17
+ # * 'status'<~String> - status of task
18
+ # * 'type'<~String> - type of task
19
+ # * 'Owner'<~String> -
20
+ # * 'href'<~String> - href of owner
21
+ # * 'name'<~String> - name of owner
22
+ # * 'type'<~String> - type of owner
23
+ def power_off(vapp_id)
24
+ request(
25
+ :expects => 202,
26
+ :method => 'POST',
27
+ :parser => Fog::Parsers::Terremark::Shared::Task.new,
28
+ :path => "vApp/#{vapp_id}/power/action/powerOff"
29
+ )
30
+ end
31
+
32
+ end
33
+
34
+ module Mock
35
+
36
+ def power_off(vapp_id)
37
+ raise MockNotImplemented.new("Contributions welcome!")
38
+ end
39
+
40
+ end
41
+ end
42
+ end
43
+ end