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
@@ -9,11 +9,11 @@ specs:
9
9
  - formatador:
10
10
  version: 0.0.13
11
11
  - json:
12
- version: 1.2.4
12
+ version: 1.4.0
13
13
  - mime-types:
14
14
  version: "1.16"
15
15
  - net-ssh:
16
- version: 2.0.21
16
+ version: 2.0.22
17
17
  - nokogiri:
18
18
  version: 1.4.1
19
19
  - rspec:
@@ -7,8 +7,8 @@ Gem::Specification.new do |s|
7
7
  ## If your rubyforge_project name is different, then edit it and comment out
8
8
  ## the sub! line in the Rakefile
9
9
  s.name = 'fog'
10
- s.version = '0.0.77'
11
- s.date = '2010-04-23'
10
+ s.version = '0.0.78'
11
+ s.date = '2010-04-25'
12
12
  s.rubyforge_project = 'fog'
13
13
 
14
14
  ## Make sure your summary is short. The description may be as long
@@ -180,6 +180,7 @@ Gem::Specification.new do |s|
180
180
  lib/fog/collection.rb
181
181
  lib/fog/connection.rb
182
182
  lib/fog/credentials.rb
183
+ lib/fog/deprecation.rb
183
184
  lib/fog/model.rb
184
185
  lib/fog/parser.rb
185
186
  lib/fog/rackspace.rb
@@ -253,52 +254,62 @@ Gem::Specification.new do |s|
253
254
  lib/fog/ssh.rb
254
255
  lib/fog/terremark.rb
255
256
  lib/fog/terremark/bin.rb
256
- lib/fog/terremark/models/server.rb
257
- lib/fog/terremark/models/servers.rb
258
- lib/fog/terremark/models/task.rb
259
- lib/fog/terremark/models/tasks.rb
260
- lib/fog/terremark/parsers/get_catalog.rb
261
- lib/fog/terremark/parsers/get_catalog_item.rb
262
- lib/fog/terremark/parsers/get_internet_services.rb
263
- lib/fog/terremark/parsers/get_node_services.rb
264
- lib/fog/terremark/parsers/get_organization.rb
265
- lib/fog/terremark/parsers/get_organizations.rb
266
- lib/fog/terremark/parsers/get_public_ips.rb
267
- lib/fog/terremark/parsers/get_tasks_list.rb
268
- lib/fog/terremark/parsers/get_vapp_template.rb
269
- lib/fog/terremark/parsers/get_vdc.rb
270
- lib/fog/terremark/parsers/instantiate_vapp_template.rb
271
- lib/fog/terremark/parsers/internet_service.rb
272
- lib/fog/terremark/parsers/node_service.rb
273
- lib/fog/terremark/parsers/public_ip.rb
274
- lib/fog/terremark/parsers/task.rb
275
- lib/fog/terremark/parsers/vapp.rb
276
- lib/fog/terremark/requests/add_internet_service.rb
277
- lib/fog/terremark/requests/add_node_service.rb
278
- lib/fog/terremark/requests/create_internet_service.rb
279
- lib/fog/terremark/requests/delete_internet_service.rb
280
- lib/fog/terremark/requests/delete_node_service.rb
281
- lib/fog/terremark/requests/delete_public_ip.rb
282
- lib/fog/terremark/requests/delete_vapp.rb
283
- lib/fog/terremark/requests/deploy_vapp.rb
284
- lib/fog/terremark/requests/get_catalog.rb
285
- lib/fog/terremark/requests/get_catalog_item.rb
286
- lib/fog/terremark/requests/get_internet_services.rb
287
- lib/fog/terremark/requests/get_node_services.rb
288
- lib/fog/terremark/requests/get_organization.rb
289
- lib/fog/terremark/requests/get_organizations.rb
290
- lib/fog/terremark/requests/get_public_ip.rb
291
- lib/fog/terremark/requests/get_public_ips.rb
292
- lib/fog/terremark/requests/get_task.rb
293
- lib/fog/terremark/requests/get_tasks_list.rb
294
- lib/fog/terremark/requests/get_vapp.rb
295
- lib/fog/terremark/requests/get_vapp_template.rb
296
- lib/fog/terremark/requests/get_vdc.rb
297
- lib/fog/terremark/requests/instantiate_vapp_template.rb
298
- lib/fog/terremark/requests/power_off.rb
299
- lib/fog/terremark/requests/power_on.rb
300
- lib/fog/terremark/requests/reset.rb
301
- lib/fog/terremark/requests/shutdown.rb
257
+ lib/fog/terremark/ecloud.rb
258
+ lib/fog/terremark/models/shared/address.rb
259
+ lib/fog/terremark/models/shared/addresses.rb
260
+ lib/fog/terremark/models/shared/network.rb
261
+ lib/fog/terremark/models/shared/networks.rb
262
+ lib/fog/terremark/models/shared/server.rb
263
+ lib/fog/terremark/models/shared/servers.rb
264
+ lib/fog/terremark/models/shared/task.rb
265
+ lib/fog/terremark/models/shared/tasks.rb
266
+ lib/fog/terremark/parser.rb
267
+ lib/fog/terremark/parsers/shared/get_catalog.rb
268
+ lib/fog/terremark/parsers/shared/get_catalog_item.rb
269
+ lib/fog/terremark/parsers/shared/get_internet_services.rb
270
+ lib/fog/terremark/parsers/shared/get_node_services.rb
271
+ lib/fog/terremark/parsers/shared/get_organization.rb
272
+ lib/fog/terremark/parsers/shared/get_organizations.rb
273
+ lib/fog/terremark/parsers/shared/get_public_ips.rb
274
+ lib/fog/terremark/parsers/shared/get_tasks_list.rb
275
+ lib/fog/terremark/parsers/shared/get_vapp_template.rb
276
+ lib/fog/terremark/parsers/shared/get_vdc.rb
277
+ lib/fog/terremark/parsers/shared/instantiate_vapp_template.rb
278
+ lib/fog/terremark/parsers/shared/internet_service.rb
279
+ lib/fog/terremark/parsers/shared/network.rb
280
+ lib/fog/terremark/parsers/shared/node_service.rb
281
+ lib/fog/terremark/parsers/shared/public_ip.rb
282
+ lib/fog/terremark/parsers/shared/task.rb
283
+ lib/fog/terremark/parsers/shared/vapp.rb
284
+ lib/fog/terremark/requests/shared/add_internet_service.rb
285
+ lib/fog/terremark/requests/shared/add_node_service.rb
286
+ lib/fog/terremark/requests/shared/create_internet_service.rb
287
+ lib/fog/terremark/requests/shared/delete_internet_service.rb
288
+ lib/fog/terremark/requests/shared/delete_node_service.rb
289
+ lib/fog/terremark/requests/shared/delete_public_ip.rb
290
+ lib/fog/terremark/requests/shared/delete_vapp.rb
291
+ lib/fog/terremark/requests/shared/deploy_vapp.rb
292
+ lib/fog/terremark/requests/shared/get_catalog.rb
293
+ lib/fog/terremark/requests/shared/get_catalog_item.rb
294
+ lib/fog/terremark/requests/shared/get_internet_services.rb
295
+ lib/fog/terremark/requests/shared/get_network.rb
296
+ lib/fog/terremark/requests/shared/get_node_services.rb
297
+ lib/fog/terremark/requests/shared/get_organization.rb
298
+ lib/fog/terremark/requests/shared/get_organizations.rb
299
+ lib/fog/terremark/requests/shared/get_public_ip.rb
300
+ lib/fog/terremark/requests/shared/get_public_ips.rb
301
+ lib/fog/terremark/requests/shared/get_task.rb
302
+ lib/fog/terremark/requests/shared/get_tasks_list.rb
303
+ lib/fog/terremark/requests/shared/get_vapp.rb
304
+ lib/fog/terremark/requests/shared/get_vapp_template.rb
305
+ lib/fog/terremark/requests/shared/get_vdc.rb
306
+ lib/fog/terremark/requests/shared/instantiate_vapp_template.rb
307
+ lib/fog/terremark/requests/shared/power_off.rb
308
+ lib/fog/terremark/requests/shared/power_on.rb
309
+ lib/fog/terremark/requests/shared/reset.rb
310
+ lib/fog/terremark/requests/shared/shutdown.rb
311
+ lib/fog/terremark/shared.rb
312
+ lib/fog/terremark/vcloud.rb
302
313
  spec/aws/models/ec2/address_spec.rb
303
314
  spec/aws/models/ec2/addresses_spec.rb
304
315
  spec/aws/models/ec2/flavors_spec.rb
data/lib/fog.rb CHANGED
@@ -20,6 +20,7 @@ $LOAD_PATH.unshift __DIR__ unless
20
20
 
21
21
  require 'fog/collection'
22
22
  require 'fog/connection'
23
+ require 'fog/deprecation'
23
24
  require 'fog/model'
24
25
  require 'fog/parser'
25
26
  require 'fog/ssh'
@@ -30,7 +31,7 @@ require 'fog/terremark'
30
31
 
31
32
  module Fog
32
33
 
33
- VERSION = '0.0.77'
34
+ VERSION = '0.0.78'
34
35
 
35
36
  module Mock
36
37
  @delay = 1
@@ -5,12 +5,14 @@ module Fog
5
5
  module EC2
6
6
 
7
7
  class Snapshot < Fog::Model
8
+ extend Fog::Deprecation
9
+ deprecate(:status, :state)
8
10
 
9
11
  identity :id, 'snapshotId'
10
12
 
11
13
  attribute :progress
12
14
  attribute :created_at, 'startTime'
13
- attribute :status
15
+ attribute :state, 'status'
14
16
  attribute :volume_id, 'volumeId'
15
17
 
16
18
  def destroy
@@ -5,6 +5,8 @@ module Fog
5
5
  module EC2
6
6
 
7
7
  class Volume < Fog::Model
8
+ extend Fog::Deprecation
9
+ deprecate(:status, :state)
8
10
 
9
11
  identity :id, 'volumeId'
10
12
 
@@ -15,8 +17,8 @@ module Fog
15
17
  attribute :server_id, 'instanceId'
16
18
  attribute :size
17
19
  attribute :snapshot_id, 'snapshotId'
18
- attribute :status
19
-
20
+ attribute :state, 'status'
21
+
20
22
  def initialize(attributes = {})
21
23
  if attributes['attachmentSet']
22
24
  attributes.merge!(attributes.delete('attachmentSet').first || {})
@@ -167,7 +167,7 @@ DATA
167
167
 
168
168
  subdomain = params[:host].split(".#{@host}").first
169
169
  unless subdomain =~ /^(?:[a-z]|\d(?!\d{0,2}(?:\.\d{1,3}){3}$))(?:[a-z0-9]|\.(?![\.\-])|\-(?![\.])){1,61}[a-z0-9]$/
170
- puts("[WARN] fog: the specified s3 bucket name(#{subdomain}) is not a valid dns name. See: http://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?Introduction.html")
170
+ Formatador.display_line("[yellow][WARN] fog: the specified s3 bucket name(#{subdomain}) is not a valid dns name. See: http://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?Introduction.html[/]")
171
171
  params[:host] = params[:host].split("#{subdomain}.")[-1]
172
172
  if params[:path]
173
173
  params[:path] = "#{subdomain}/#{params[:path]}"
@@ -0,0 +1,14 @@
1
+ module Fog
2
+ module Deprecation
3
+
4
+ def deprecate(older, newer)
5
+ class_eval <<-EOS, __FILE__, __LINE__
6
+ def #{older}(*args)
7
+ Formatador.display_line("[yellow][WARN] #{self} => ##{older} is deprecated, use ##{newer} instead[/]")
8
+ #{newer}(*args)
9
+ end
10
+ EOS
11
+ end
12
+
13
+ end
14
+ end
@@ -1,224 +1,11 @@
1
+ require 'fog/terremark/shared'
2
+ require 'fog/terremark/parser'
3
+ require 'fog/terremark/ecloud'
4
+ require 'fog/terremark/vcloud'
5
+
1
6
  module Fog
2
7
  module Terremark
3
-
4
- module Parser
5
-
6
- def parse(data)
7
- case data['type']
8
- when 'application/vnd.vmware.vcloud.vApp+xml'
9
- servers.new(data.merge!(:connection => self))
10
- else
11
- data
12
- end
13
- end
14
-
15
- end
16
-
17
- def self.new(options={})
18
-
19
- unless @required
20
- require 'fog/terremark/models/server'
21
- require 'fog/terremark/models/servers'
22
- require 'fog/terremark/models/task'
23
- require 'fog/terremark/models/tasks'
24
- require 'fog/terremark/parsers/get_catalog'
25
- require 'fog/terremark/parsers/get_catalog_item'
26
- require 'fog/terremark/parsers/get_internet_services'
27
- require 'fog/terremark/parsers/get_node_services'
28
- require 'fog/terremark/parsers/get_organization'
29
- require 'fog/terremark/parsers/get_organizations'
30
- require 'fog/terremark/parsers/get_public_ips'
31
- require 'fog/terremark/parsers/get_tasks_list'
32
- require 'fog/terremark/parsers/get_vapp_template'
33
- require 'fog/terremark/parsers/get_vdc'
34
- require 'fog/terremark/parsers/instantiate_vapp_template'
35
- require 'fog/terremark/parsers/internet_service'
36
- require 'fog/terremark/parsers/node_service'
37
- require 'fog/terremark/parsers/public_ip'
38
- require 'fog/terremark/parsers/task'
39
- require 'fog/terremark/parsers/vapp'
40
- require 'fog/terremark/requests/add_internet_service'
41
- require 'fog/terremark/requests/add_node_service'
42
- require 'fog/terremark/requests/create_internet_service'
43
- require 'fog/terremark/requests/delete_internet_service'
44
- require 'fog/terremark/requests/delete_node_service'
45
- require 'fog/terremark/requests/delete_public_ip'
46
- require 'fog/terremark/requests/delete_vapp'
47
- require 'fog/terremark/requests/deploy_vapp'
48
- require 'fog/terremark/requests/get_catalog'
49
- require 'fog/terremark/requests/get_catalog_item'
50
- require 'fog/terremark/requests/get_internet_services'
51
- require 'fog/terremark/requests/get_node_services'
52
- require 'fog/terremark/requests/get_organization'
53
- require 'fog/terremark/requests/get_organizations'
54
- require 'fog/terremark/requests/get_public_ip'
55
- require 'fog/terremark/requests/get_public_ips'
56
- require 'fog/terremark/requests/get_task'
57
- require 'fog/terremark/requests/get_tasks_list'
58
- require 'fog/terremark/requests/get_vapp'
59
- require 'fog/terremark/requests/get_vapp_template'
60
- require 'fog/terremark/requests/get_vdc'
61
- require 'fog/terremark/requests/instantiate_vapp_template'
62
- require 'fog/terremark/requests/reset'
63
- require 'fog/terremark/requests/power_off'
64
- require 'fog/terremark/requests/power_on'
65
- require 'fog/terremark/requests/shutdown'
66
- @required = true
67
- end
68
-
69
- unless options[:terremark_password]
70
- raise ArgumentError.new('terremark_password is required to access terremark')
71
- end
72
- unless options[:terremark_username]
73
- raise ArgumentError.new('terremark_username is required to access terremark')
74
- end
75
- if Fog.mocking?
76
- Fog::Terremark::Mock.new(options)
77
- else
78
- Fog::Terremark::Real.new(options)
79
- end
80
- end
81
-
82
- class Mock
83
- include Fog::Terremark::Parser
84
-
85
- def self.data
86
- @data ||= Hash.new do |hash, key|
87
- hash[key] = {}
88
- end
89
- end
90
-
91
- def self.reset_data(keys=data.keys)
92
- for key in [*keys]
93
- data.delete(key)
94
- end
95
- end
96
-
97
- def initialize(options={})
98
- @terremark_username = options[:terremark_username]
99
- @data = self.class.data[@terremark_username]
100
- end
101
-
102
- end
103
-
104
- class Real
105
- include Fog::Terremark::Parser
106
-
107
- def initialize(options={})
108
- @terremark_password = options[:terremark_password]
109
- @terremark_username = options[:terremark_username]
110
- @terremark_service = options[:terremark_service] || :vcloud
111
- case options[:terremark_service]
112
- when :ecloud
113
- @host = options[:host] || "services.enterprisecloud.terremark.com"
114
- @path = options[:path] || "/api/v0.8a-ext2.0"
115
- when :vcloud
116
- @host = options[:host] || "services.vcloudexpress.terremark.com"
117
- @path = options[:path] || "/api/v0.8"
118
- else
119
- raise "Unsupported Terremark Service"
120
- end
121
- @port = options[:port] || 443
122
- @scheme = options[:scheme] || 'https'
123
- @cookie = get_organizations.headers['Set-Cookie']
124
- end
125
-
126
- # TODO: bust cache on organization creation?
127
- def default_organization_id
128
- @default_organization_id ||= begin
129
- org_list = get_organizations.body['OrgList']
130
- if org_list.length == 1
131
- org_list.first['href'].split('/').last.to_i
132
- else
133
- nil
134
- end
135
- end
136
- end
137
-
138
- def default_vdc_id
139
- if default_organization_id
140
- @default_vdc_id ||= begin
141
- vdcs = get_organization(default_organization_id).body['Links'].select {|link|
142
- link['type'] == 'application/vnd.vmware.vcloud.vdc+xml'
143
- }
144
- if vdcs.length == 1
145
- vdcs.first['href'].split('/').last.to_i
146
- else
147
- nil
148
- end
149
- end
150
- else
151
- nil
152
- end
153
- end
154
-
155
- def default_network_id
156
- if default_vdc_id
157
- @default_network_id ||= begin
158
- networks = get_vdc(default_vdc_id).body['AvailableNetworks']
159
- if networks.length == 1
160
- networks.first['href'].split('/').last.to_i
161
- else
162
- nil
163
- end
164
- end
165
- else
166
- nil
167
- end
168
- end
169
-
170
- def default_public_ip_id
171
- if default_vdc_id
172
- @default_public_ip_id ||= begin
173
- ips = get_public_ips(default_vdc_id).body['PublicIpAddresses']
174
- if ips.length == 1
175
- ips.first['Href'].split('/').last.to_i
176
- else
177
- nil
178
- end
179
- end
180
- else
181
- nil
182
- end
183
- end
184
-
185
- def default_tasks_list_id
186
- if default_organization_id
187
- @default_tasks_list_id ||= begin
188
- task_lists = get_organization(default_organization_id).body['Links'].select {|link|
189
- link['type'] == 'application/vnd.vmware.vcloud.tasksList+xml'
190
- }
191
- if task_lists.length == 1
192
- task_lists.first['href'].split('/').last.to_i
193
- else
194
- nil
195
- end
196
- end
197
- else
198
- nil
199
- end
200
- end
201
-
202
- private
203
-
204
- def request(params)
205
- @connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}")
206
- headers = {}
207
- if @cookie
208
- headers.merge!('Cookie' => @cookie)
209
- end
210
- response = @connection.request({
211
- :body => params[:body],
212
- :expects => params[:expects],
213
- :headers => headers.merge!(params[:headers] || {}),
214
- :host => @host,
215
- :method => params[:method],
216
- :parser => params[:parser],
217
- :path => "#{@path}/#{params[:path]}"
218
- })
219
- end
220
-
221
- end
222
-
8
+ ECLOUD_OPTIONS = [:terremark_ecloud_username, :terremark_ecloud_password]
9
+ VCLOUD_OPTIONS = [:terremark_vcloud_username, :terremark_vcloud_password]
223
10
  end
224
11
  end