fog 0.0.77 → 0.0.78

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
@@ -1,56 +0,0 @@
1
- require 'fog/model'
2
-
3
- module Fog
4
- module Terremark
5
-
6
- class Server < Fog::Model
7
-
8
- identity :id
9
-
10
- attribute :ip_address, 'IpAddress'
11
- attribute :links, 'Links'
12
- attribute :name
13
- attribute :status
14
-
15
- def destroy
16
- requires :id
17
- task = connection.tasks.new(connection.power_off(@id).body)
18
- task.wait_for { ready? }
19
- connection.delete_vapp(@id)
20
- true
21
- end
22
-
23
- # { '0' => 'Being created', '2' => 'Powered Off', '4' => 'Powered On'}
24
- def ready?
25
- @status == '2'
26
- end
27
-
28
- def reboot
29
- requires :id
30
- connection.reset(@id)
31
- true
32
- end
33
-
34
- def save
35
- requires :name
36
- data = connection.instantiate_vapp(@name)
37
- merge_attributes(data.body)
38
- deploy_task = connection.tasks.new(connection.deploy_vapp(@id).body)
39
- deploy_task.wait_for { ready? }
40
- power_on_task = connection.tasks.new(connection.power_on(@id).body)
41
- power_on_task.wait_for { ready? }
42
- true
43
- end
44
-
45
- private
46
-
47
- def href=(new_href)
48
- @id = new_href.split('/').last.to_i
49
- end
50
-
51
- def type=(new_type); end
52
-
53
- end
54
-
55
- end
56
- end
@@ -1,53 +0,0 @@
1
- require 'fog/collection'
2
- require 'fog/terremark/models/server'
3
-
4
- module Fog
5
- module Terremark
6
-
7
- class Mock
8
- def servers
9
- Fog::Terremark::Servers.new(:connection => self)
10
- end
11
- end
12
-
13
- class Real
14
- def servers
15
- Fog::Terremark::Servers.new(:connection => self)
16
- end
17
- end
18
-
19
- class Servers < Fog::Collection
20
-
21
- model Fog::Terremark::Server
22
-
23
- def all
24
- data = connection.get_vdc(vdc_id).body['ResourceEntities'].select do |entity|
25
- entity['type'] == 'application/vnd.vmware.vcloud.vApp+xml'
26
- end
27
- load(data)
28
- end
29
-
30
- def get(server_id)
31
- if server_id && server = connection.get_vapp(server_id).body
32
- new(server)
33
- elsif !server_id
34
- nil
35
- end
36
- rescue Excon::Errors::Forbidden
37
- nil
38
- end
39
-
40
- def vdc_id
41
- @vdc_id ||= connection.default_vdc_id
42
- end
43
-
44
- private
45
-
46
- def vdc_id=(new_vdc_id)
47
- @vdc_id = new_vdc_id
48
- end
49
-
50
- end
51
-
52
- end
53
- end
@@ -1,41 +0,0 @@
1
- require 'fog/model'
2
-
3
- module Fog
4
- module Terremark
5
-
6
- class Task < Fog::Model
7
-
8
- identity :id
9
-
10
- attribute :end_time, 'endTime'
11
- attribute :owner, 'Owner'
12
- attribute :result, 'Result'
13
- attribute :start_time, 'startTime'
14
- attribute :status
15
-
16
- def initialize(attributes = {})
17
- new_owner = attributes.delete('Owner')
18
- new_result = attributes.delete('Result')
19
- super
20
- @owner = connection.parse(new_owner)
21
- if new_result
22
- @result = connection.parse(new_result)
23
- end
24
- end
25
-
26
- def ready?
27
- @status == 'success'
28
- end
29
-
30
- private
31
-
32
- def href=(new_href)
33
- @id = new_href.split('/').last.to_i
34
- end
35
-
36
- def type=(new_type); end
37
-
38
- end
39
-
40
- end
41
- end
@@ -1,56 +0,0 @@
1
- require 'fog/collection'
2
- require 'fog/terremark/models/server'
3
-
4
- module Fog
5
- module Terremark
6
-
7
- class Mock
8
- def tasks
9
- Fog::Terremark::Tasks.new(:connection => self)
10
- end
11
- end
12
-
13
- class Real
14
- def tasks
15
- Fog::Terremark::Tasks.new(:connection => self)
16
- end
17
- end
18
-
19
- class Tasks < Fog::Collection
20
-
21
- model Fog::Terremark::Task
22
-
23
- def all
24
- data = connection.get_tasks_list(task_list_id).body['Tasks']
25
- load(data)
26
- end
27
-
28
- def get(task_id)
29
- if task_id && task = connection.get_task(task_id).body
30
- new(task)
31
- elsif !task_id
32
- nil
33
- end
34
- rescue Excon::Errors::Forbidden
35
- nil
36
- end
37
-
38
- def task_list_id
39
- @task_list_id ||=
40
- if connection.default_organization_id && organization = connection.get_organization(connection.default_organization_id).body
41
- organization['Links'].detect {|link| link['type'] == 'application/vnd.vmware.vcloud.tasksList+xml'}['href'].split('/').last.to_i
42
- else
43
- nil
44
- end
45
- end
46
-
47
- private
48
-
49
- def task_list_id=(new_task_list_id)
50
- @task_list_id = new_task_list_id
51
- end
52
-
53
- end
54
-
55
- end
56
- end
@@ -1,44 +0,0 @@
1
- module Fog
2
- module Parsers
3
- module Terremark
4
-
5
- class GetCatalog < Fog::Parsers::Base
6
-
7
- def reset
8
- @response = { 'CatalogItems' => [] }
9
- end
10
-
11
- def start_element(name, attributes)
12
- @value = ''
13
- case name
14
- when 'CatalogItem'
15
- catalog_item = {}
16
- until attributes.empty?
17
- catalog_item[attributes.shift] = attributes.shift
18
- end
19
- @response['CatalogItems'] << catalog_item
20
- when 'Catalog'
21
- catalog = {}
22
- until attributes.empty?
23
- if attributes.first.is_a?(Array)
24
- attribute = attributes.shift
25
- catalog[attribute.first] = attribute.last
26
- else
27
- catalog[attributes.shift] = attributes.shift
28
- end
29
- end
30
- @response['name'] = catalog['name']
31
- end
32
- end
33
-
34
- def end_element(name)
35
- if name == 'Description'
36
- @response[name] = @value
37
- end
38
- end
39
-
40
- end
41
-
42
- end
43
- end
44
- end
@@ -1,44 +0,0 @@
1
- module Fog
2
- module Parsers
3
- module Terremark
4
-
5
- class GetCatalogItem < Fog::Parsers::Base
6
-
7
- def reset
8
- @response = { 'Entity' => {}, 'Properties' => {} }
9
- end
10
-
11
- def start_element(name, attributes)
12
- @value = ''
13
- case name
14
- when 'Entity'
15
- until attributes.empty?
16
- @response['Entity'][attributes.shift] = attributes.shift
17
- end
18
- when 'CatalogItem'
19
- catalog_item = {}
20
- until attributes.empty?
21
- if attributes.first.is_a?(Array)
22
- attribute = attributes.shift
23
- catalog_item[attribute.first] = attribute.last
24
- else
25
- catalog_item[attributes.shift] = attributes.shift
26
- end
27
- end
28
- @response['name'] = catalog_item['name']
29
- when 'Property'
30
- @property_key = attributes.last
31
- end
32
- end
33
-
34
- def end_element(name)
35
- if name == 'Property'
36
- @response['Properties'][@property_key] = @value
37
- end
38
- end
39
-
40
- end
41
-
42
- end
43
- end
44
- end
@@ -1,58 +0,0 @@
1
- module Fog
2
- module Parsers
3
- module Terremark
4
-
5
- class GetInternetServices < Fog::Parsers::Base
6
-
7
- def reset
8
- @in_public_ip_address = false
9
- @internet_service = {}
10
- @response = { 'InternetServices' => [] }
11
- end
12
-
13
- def start_element(name, attributes)
14
- @value = ''
15
- case name
16
- when 'PublicIpAddress'
17
- @in_public_ip_address = true
18
- end
19
- end
20
-
21
- def end_element(name)
22
- case name
23
- when 'Description', 'Protocol'
24
- @internet_service[name] = @value
25
- when 'Enabled'
26
- if @value == 'true'
27
- @internet_service[name] = true
28
- else
29
- @internet_service[name] = false
30
- end
31
- when 'Href', 'Name'
32
- if @in_public_ip_address
33
- @internet_service['PublicIpAddress'] ||= {}
34
- @internet_service['PublicIpAddress'][name] = @value
35
- else
36
- @internet_service[name] = @value
37
- end
38
- when 'Id'
39
- if @in_public_ip_address
40
- @internet_service['PublicIpAddress'] ||= {}
41
- @internet_service['PublicIpAddress'][name] = @value.to_i
42
- else
43
- @internet_service[name] = @value.to_i
44
- end
45
- when 'InternetService'
46
- @response['InternetServices'] << @internet_service
47
- @internet_service = {}
48
- when 'Port', 'Timeout'
49
- @internet_service[name] = @value.to_i
50
- when 'PublicIpAddress'
51
- @in_public_ip_address = false
52
- end
53
- end
54
- end
55
-
56
- end
57
- end
58
- end
@@ -1,45 +0,0 @@
1
- module Fog
2
- module Parsers
3
- module Terremark
4
-
5
- class GetOrganization < Fog::Parsers::Base
6
-
7
- def reset
8
- @response = { 'Links' => [] }
9
- end
10
-
11
- def start_element(name, attributes)
12
- @value = ''
13
- case name
14
- when 'Link'
15
- link = {}
16
- until attributes.empty?
17
- link[attributes.shift] = attributes.shift
18
- end
19
- @response['Links'] << link
20
- when 'Org'
21
- org = {}
22
- until attributes.empty?
23
- if attributes.first.is_a?(Array)
24
- attribute = attributes.shift
25
- org[attribute.first] = attribute.last
26
- else
27
- org[attributes.shift] = attributes.shift
28
- end
29
- end
30
- @response['href'] = org['href']
31
- @response['name'] = org['name']
32
- end
33
- end
34
-
35
- def end_element(name)
36
- if name == 'Description'
37
- @response[name] = @value
38
- end
39
- end
40
-
41
- end
42
-
43
- end
44
- end
45
- end
@@ -1,26 +0,0 @@
1
- module Fog
2
- module Parsers
3
- module Terremark
4
-
5
- class GetOrganizations < Fog::Parsers::Base
6
-
7
- def reset
8
- @response = { 'OrgList' => [] }
9
- end
10
-
11
- def start_element(name, attributes)
12
- @value = ''
13
- if name == 'Org'
14
- organization = {}
15
- until attributes.empty?
16
- organization[attributes.shift] = attributes.shift
17
- end
18
- @response['OrgList'] << organization
19
- end
20
- end
21
-
22
- end
23
-
24
- end
25
- end
26
- end
@@ -1,28 +0,0 @@
1
- module Fog
2
- module Parsers
3
- module Terremark
4
-
5
- class GetPublicIps< Fog::Parsers::Base
6
-
7
- def reset
8
- @ip_address = {}
9
- @response = { 'PublicIpAddresses' => [] }
10
- end
11
-
12
- def end_element(name)
13
- case name
14
- when 'Href', 'Name'
15
- @ip_address[name] = @value
16
- when 'Id'
17
- @ip_address[name] = @value.to_i
18
- when 'PublicIPAddress'
19
- @response['PublicIpAddresses'] << @ip_address
20
- @ip_address = {}
21
- end
22
- end
23
-
24
- end
25
-
26
- end
27
- end
28
- end