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
@@ -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