fog 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (151) hide show
  1. data/Gemfile +2 -2
  2. data/Gemfile.lock +6 -6
  3. data/README.rdoc +4 -1
  4. data/bin/fog +2 -1
  5. data/examples/bluebox_create.rb +33 -0
  6. data/fog.gemspec +58 -30
  7. data/lib/fog.rb +2 -1
  8. data/lib/fog/aws/elb.rb +0 -9
  9. data/lib/fog/aws/requests/elb/create_load_balancer.rb +3 -3
  10. data/lib/fog/aws/requests/elb/deregister_instances_from_load_balancer.rb +1 -1
  11. data/lib/fog/aws/requests/elb/describe_instance_health.rb +1 -1
  12. data/lib/fog/aws/requests/elb/describe_load_balancers.rb +1 -1
  13. data/lib/fog/aws/requests/elb/disable_availability_zones_for_load_balancer.rb +1 -1
  14. data/lib/fog/aws/requests/elb/enable_availability_zones_for_load_balancer.rb +1 -1
  15. data/lib/fog/aws/requests/elb/register_instances_with_load_balancer.rb +1 -1
  16. data/lib/fog/aws/requests/s3/get_bucket.rb +1 -6
  17. data/lib/fog/aws/requests/s3/get_bucket_acl.rb +1 -1
  18. data/lib/fog/aws/requests/s3/get_bucket_location.rb +1 -1
  19. data/lib/fog/aws/requests/s3/get_bucket_logging.rb +1 -1
  20. data/lib/fog/aws/requests/s3/get_bucket_object_versions.rb +1 -6
  21. data/lib/fog/aws/requests/s3/get_bucket_versioning.rb +1 -1
  22. data/lib/fog/aws/requests/s3/get_object.rb +1 -1
  23. data/lib/fog/aws/requests/s3/get_object_acl.rb +2 -2
  24. data/lib/fog/aws/requests/s3/get_object_torrent.rb +1 -1
  25. data/lib/fog/aws/requests/s3/get_request_payment.rb +1 -1
  26. data/lib/fog/aws/requests/s3/head_object.rb +1 -1
  27. data/lib/fog/aws/requests/s3/put_bucket_acl.rb +1 -1
  28. data/lib/fog/aws/requests/s3/put_bucket_logging.rb +1 -1
  29. data/lib/fog/aws/requests/s3/put_bucket_versioning.rb +1 -1
  30. data/lib/fog/aws/requests/s3/put_object_url.rb +54 -0
  31. data/lib/fog/aws/requests/s3/put_request_payment.rb +1 -1
  32. data/lib/fog/aws/s3.rb +7 -2
  33. data/lib/fog/bin.rb +1 -1
  34. data/lib/fog/bluebox.rb +100 -0
  35. data/lib/fog/bluebox/bin.rb +43 -0
  36. data/lib/fog/bluebox/models/flavor.rb +43 -0
  37. data/lib/fog/bluebox/models/flavors.rb +38 -0
  38. data/lib/fog/bluebox/models/image.rb +17 -0
  39. data/lib/fog/bluebox/models/images.rb +42 -0
  40. data/lib/fog/bluebox/models/server.rb +79 -0
  41. data/lib/fog/bluebox/models/servers.rb +39 -0
  42. data/lib/fog/bluebox/requests/create_block.rb +39 -0
  43. data/lib/fog/bluebox/requests/destroy_block.rb +32 -0
  44. data/lib/fog/bluebox/requests/get_block.rb +32 -0
  45. data/lib/fog/bluebox/requests/get_blocks.rb +34 -0
  46. data/lib/fog/bluebox/requests/get_product.rb +32 -0
  47. data/lib/fog/bluebox/requests/get_products.rb +31 -0
  48. data/lib/fog/bluebox/requests/get_template.rb +32 -0
  49. data/lib/fog/bluebox/requests/get_templates.rb +32 -0
  50. data/lib/fog/bluebox/requests/reboot_block.rb +33 -0
  51. data/lib/fog/credentials.rb +2 -1
  52. data/lib/fog/rackspace/files.rb +4 -12
  53. data/lib/fog/rackspace/models/servers/flavors.rb +1 -1
  54. data/lib/fog/rackspace/models/servers/images.rb +1 -1
  55. data/lib/fog/rackspace/models/servers/servers.rb +1 -1
  56. data/lib/fog/rackspace/requests/files/get_container.rb +1 -6
  57. data/lib/fog/rackspace/requests/files/get_containers.rb +1 -7
  58. data/lib/fog/rackspace/requests/files/head_container.rb +1 -1
  59. data/lib/fog/rackspace/requests/files/head_containers.rb +1 -1
  60. data/lib/fog/rackspace/requests/servers/create_server.rb +4 -5
  61. data/lib/fog/rackspace/requests/servers/delete_image.rb +2 -1
  62. data/lib/fog/rackspace/requests/servers/delete_server.rb +2 -3
  63. data/lib/fog/rackspace/requests/servers/get_server_details.rb +2 -3
  64. data/lib/fog/rackspace/requests/servers/list_addresses.rb +2 -3
  65. data/lib/fog/rackspace/requests/servers/list_private_addresses.rb +2 -3
  66. data/lib/fog/rackspace/requests/servers/list_public_addresses.rb +2 -3
  67. data/lib/fog/rackspace/requests/servers/reboot_server.rb +1 -1
  68. data/lib/fog/rackspace/requests/servers/update_server.rb +2 -3
  69. data/lib/fog/rackspace/servers.rb +21 -11
  70. data/lib/fog/slicehost.rb +18 -13
  71. data/lib/fog/vcloud.rb +148 -107
  72. data/lib/fog/vcloud/model.rb +2 -1
  73. data/lib/fog/vcloud/parser.rb +5 -0
  74. data/lib/fog/vcloud/requests/get_vdc.rb +3 -3
  75. data/lib/fog/vcloud/requests/get_versions.rb +1 -1
  76. data/lib/fog/vcloud/requests/login.rb +1 -1
  77. data/lib/fog/vcloud/terremark/ecloud.rb +34 -0
  78. data/lib/fog/vcloud/terremark/ecloud/models/internet_service.rb +29 -0
  79. data/lib/fog/vcloud/terremark/ecloud/models/internet_services.rb +51 -0
  80. data/lib/fog/vcloud/terremark/ecloud/models/public_ip.rb +26 -0
  81. data/lib/fog/vcloud/terremark/ecloud/models/public_ips.rb +32 -0
  82. data/lib/fog/vcloud/terremark/ecloud/models/vdc.rb +11 -0
  83. data/lib/fog/vcloud/terremark/ecloud/parsers/get_internet_services.rb +59 -0
  84. data/lib/fog/vcloud/terremark/ecloud/parsers/get_public_ip.rb +30 -0
  85. data/lib/fog/vcloud/terremark/ecloud/parsers/get_public_ips.rb +40 -0
  86. data/lib/fog/vcloud/terremark/ecloud/parsers/internet_service.rb +58 -0
  87. data/lib/fog/vcloud/terremark/ecloud/requests/add_internet_service.rb +82 -0
  88. data/lib/fog/vcloud/terremark/ecloud/requests/delete_internet_service.rb +39 -0
  89. data/lib/fog/vcloud/terremark/ecloud/requests/get_internet_services.rb +73 -0
  90. data/lib/fog/vcloud/terremark/ecloud/requests/get_public_ip.rb +49 -0
  91. data/lib/fog/vcloud/terremark/ecloud/requests/get_public_ips.rb +47 -0
  92. data/spec/bluebox/models/flavors_spec.rb +14 -0
  93. data/spec/bluebox/models/server_spec.rb +25 -0
  94. data/spec/bluebox/models/servers_spec.rb +27 -0
  95. data/spec/spec_helper.rb +16 -0
  96. data/spec/vcloud/spec_helper.rb +16 -1
  97. data/spec/vcloud/terremark/ecloud/models/internet_service_spec.rb +58 -0
  98. data/spec/vcloud/terremark/ecloud/models/internet_services_spec.rb +29 -0
  99. data/spec/vcloud/terremark/ecloud/models/public_ip_spec.rb +43 -0
  100. data/spec/vcloud/terremark/ecloud/models/public_ips_spec.rb +26 -0
  101. data/spec/vcloud/terremark/ecloud/models/vdc_spec.rb +4 -0
  102. data/spec/vcloud/terremark/ecloud/requests/add_internet_service_spec.rb +57 -0
  103. data/spec/vcloud/terremark/ecloud/requests/delete_internet_service_spec.rb +34 -0
  104. data/spec/vcloud/terremark/ecloud/requests/get_internet_services_spec.rb +57 -0
  105. data/spec/vcloud/terremark/ecloud/requests/get_public_ip_spec.rb +40 -0
  106. data/spec/vcloud/terremark/ecloud/requests/get_public_ips_spec.rb +44 -0
  107. data/tests/bluebox/helper.rb +26 -0
  108. data/tests/bluebox/requests/block_tests.rb +68 -0
  109. data/tests/bluebox/requests/product_tests.rb +25 -0
  110. data/tests/bluebox/requests/template_tests.rb +32 -0
  111. data/tests/helper.rb +6 -6
  112. data/tests/helper_tests.rb +4 -0
  113. data/tests/rackspace/helper.rb +0 -32
  114. data/tests/rackspace/requests/servers/address_tests.rb +40 -0
  115. data/tests/rackspace/requests/servers/flavor_tests.rb +34 -0
  116. data/tests/rackspace/requests/servers/image_tests.rb +59 -0
  117. data/tests/rackspace/requests/servers/server_tests.rb +83 -0
  118. data/tests/slicehost/helper.rb +0 -35
  119. data/tests/slicehost/requests/backup_tests.rb +17 -0
  120. data/tests/slicehost/requests/flavor_tests.rb +30 -0
  121. data/tests/slicehost/requests/image_tests.rb +28 -0
  122. data/tests/slicehost/requests/slice_tests.rb +63 -0
  123. metadata +59 -31
  124. data/tests/rackspace/requests/servers/create_image_tests.rb +0 -20
  125. data/tests/rackspace/requests/servers/create_server_tests.rb +0 -18
  126. data/tests/rackspace/requests/servers/delete_image_tests.rb +0 -23
  127. data/tests/rackspace/requests/servers/delete_server_tests.rb +0 -19
  128. data/tests/rackspace/requests/servers/get_flavor_details_tests.rb +0 -16
  129. data/tests/rackspace/requests/servers/get_image_details_tests.rb +0 -16
  130. data/tests/rackspace/requests/servers/get_server_details_tests.rb +0 -21
  131. data/tests/rackspace/requests/servers/list_addresses_tests.rb +0 -22
  132. data/tests/rackspace/requests/servers/list_flavors_detail_tests.rb +0 -9
  133. data/tests/rackspace/requests/servers/list_flavors_tests.rb +0 -9
  134. data/tests/rackspace/requests/servers/list_images_detail_tests.rb +0 -9
  135. data/tests/rackspace/requests/servers/list_images_tests.rb +0 -9
  136. data/tests/rackspace/requests/servers/list_private_addresses_tests.rb +0 -22
  137. data/tests/rackspace/requests/servers/list_public_addresses_tests.rb +0 -22
  138. data/tests/rackspace/requests/servers/list_servers_detail_tests.rb +0 -14
  139. data/tests/rackspace/requests/servers/list_servers_tests.rb +0 -14
  140. data/tests/rackspace/requests/servers/reboot_server_tests.rb +0 -30
  141. data/tests/rackspace/requests/servers/update_server_tests.rb +0 -22
  142. data/tests/slicehost/requests/create_slice_tests.rb +0 -14
  143. data/tests/slicehost/requests/delete_slice_tests.rb +0 -20
  144. data/tests/slicehost/requests/get_backups_tests.rb +0 -9
  145. data/tests/slicehost/requests/get_flavor_tests.rb +0 -17
  146. data/tests/slicehost/requests/get_flavors_tests.rb +0 -9
  147. data/tests/slicehost/requests/get_image_tests.rb +0 -17
  148. data/tests/slicehost/requests/get_images_tests.rb +0 -9
  149. data/tests/slicehost/requests/get_slice_tests.rb +0 -22
  150. data/tests/slicehost/requests/get_slices_tests.rb +0 -9
  151. data/tests/slicehost/requests/reboot_slice_tests.rb +0 -23
data/Gemfile CHANGED
@@ -1,7 +1,7 @@
1
1
  source 'http://gemcutter.org'
2
2
 
3
3
  gem 'rake'
4
- gem 'excon', '>= 0.0.24'
4
+ gem 'excon', '>= 0.0.25'
5
5
  gem 'formatador', ">= 0.0.10"
6
6
  gem 'json', ">= 0"
7
7
  gem 'mime-types', ">= 0"
@@ -9,5 +9,5 @@ gem 'net-ssh', ">= 0"
9
9
  gem 'nokogiri', ">= 0"
10
10
  gem 'ruby-hmac', ">= 0"
11
11
  gem 'rspec', '>= 0'
12
- gem 'shindo', '>= 0.1.2'
12
+ gem 'shindo', '>= 0.1.4'
13
13
  gem 'builder', '>= 0'
@@ -31,7 +31,7 @@ dependencies:
31
31
  excon:
32
32
  group:
33
33
  - :default
34
- version: ">= 0.0.24"
34
+ version: ">= 0.0.25"
35
35
  builder:
36
36
  group:
37
37
  - :default
@@ -39,7 +39,7 @@ dependencies:
39
39
  shindo:
40
40
  group:
41
41
  - :default
42
- version: ">= 0.1.2"
42
+ version: ">= 0.1.4"
43
43
  nokogiri:
44
44
  group:
45
45
  - :default
@@ -50,7 +50,7 @@ specs:
50
50
  - builder:
51
51
  version: 2.1.2
52
52
  - excon:
53
- version: 0.0.24
53
+ version: 0.0.25
54
54
  - formatador:
55
55
  version: 0.0.14
56
56
  - gestalt:
@@ -60,7 +60,7 @@ specs:
60
60
  - mime-types:
61
61
  version: "1.16"
62
62
  - net-ssh:
63
- version: 2.0.22
63
+ version: 2.0.23
64
64
  - nokogiri:
65
65
  version: 1.4.2
66
66
  - rspec:
@@ -68,8 +68,8 @@ specs:
68
68
  - ruby-hmac:
69
69
  version: 0.4.0
70
70
  - shindo:
71
- version: 0.1.3
72
- hash: 4e55927c1be02ee00fc3353e71caecdebd9d4817
71
+ version: 0.1.4
72
+ hash: 47be4240cdce9d626cc1834c503ca8e275e76307
73
73
  sources:
74
74
  - Rubygems:
75
75
  uri: http://gemcutter.org
@@ -46,7 +46,7 @@ As an example, we'll try initializing and persisting a rackspace server:
46
46
  )
47
47
 
48
48
  # boot a gentoo server (flavor 1 = 256, image 3 = gentoo 2008.0)
49
- server = connection.servers.new(:flavor_id => 1, :image_id => 3, :name => 'my_server')
49
+ server = connection.servers.create(:flavor_id => 1, :image_id => 3, :name => 'my_server')
50
50
 
51
51
  # wait for it to be ready to do stuff
52
52
  server.wait_for { ready? }
@@ -89,18 +89,21 @@ It will return an excon response, which has headers and body methods. Both give
89
89
  == Go forth and conquer
90
90
 
91
91
  That should give you some stuff to try and places to look.
92
+ For a more in depth walk through, check out the {getting started guide}[http://wiki.github.com/geemus/fog/getting-started-with-fog].
92
93
 
93
94
  You should try out the (varying) support fog has for:
94
95
  * AWS [EC2, S3, SimpleDB]
95
96
  * Rackspace [Files, Servers]
96
97
  * Slicehost
97
98
  * Terremark vCloud Express
99
+ * Blue Box Group [Blocks]
98
100
 
99
101
  Enjoy, and let me know what I can do to continue improving fog!
100
102
 
101
103
  * Follow {@geemus}[http://twitter.com/geemus] on Twitter.
102
104
  * See upcoming work in the {tracker}[http://www.pivotaltracker.com/projects/54635].
103
105
  * Report bugs in {issues}[http://github.com/geemus/fog/issues].
106
+ * Learn about {contributing}[http://wiki.github.com/geemus/fog/contributors-guide].
104
107
 
105
108
  == Copyright
106
109
 
data/bin/fog CHANGED
@@ -5,7 +5,7 @@ require 'yaml'
5
5
  require File.join('fog', 'credentials')
6
6
  require File.join('fog', 'bin')
7
7
 
8
- Fog.credential = (ARGV.first && :"#{ARGV.first}") || :default
8
+ Fog.credential = ARGV.first ? :"#{ARGV.first}" : :default
9
9
  unless Fog.credentials
10
10
  exit
11
11
  end
@@ -16,6 +16,7 @@ require File.join('fog', 'rackspace', 'bin')
16
16
  require File.join('fog', 'slicehost', 'bin')
17
17
  require File.join('fog', 'terremark', 'bin')
18
18
  require File.join('fog', 'vcloud', 'bin')
19
+ require File.join('fog', 'bluebox', 'bin')
19
20
 
20
21
  if ARGV.length > 1
21
22
  print(instance_eval(ARGV[1..-1].join(' ')).to_json)
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # For example only - you'd want to use your own AMI id.
4
+ unless defined?(GENTOO_AMI)
5
+ GENTOO_AMI = 'ami-5ee70037'
6
+ end
7
+
8
+ require 'rubygems'
9
+ require 'fog'
10
+
11
+ @bluebox_api_key = "CHANGEME"
12
+ @aws_access_key_id = "CHANGEME"
13
+ @aws_secret_access_key = "CHANGEME"
14
+
15
+ @flavor_id = "94fd37a7-2606-47f7-84d5-9000deda52ae" # Block 1GB Virtual Server
16
+ @image_id = "03807e08-a13d-44e4-b011-ebec7ef2c928" # Ubuntu 10.04 x64 LTS
17
+
18
+ # Grab our current list of servers
19
+ @bbg_servers = Fog::Bluebox.new(:bluebox_api_key => @bluebox_api_key).servers
20
+ @ec2_servers = Fog::AWS::EC2.new(:aws_access_key_id => @aws_access_key_id, :aws_secret_access_key => @aws_secret_access_key).servers
21
+
22
+ # Create a new server.
23
+ @server = @bbg_servers.new(:flavor_id => @flavor_id, :image_id => @image_id,
24
+ :name => "My Server", :password => "MyPassword")
25
+
26
+ # Save the server, triggering its creation
27
+ @server.save
28
+
29
+ if @server.status == 'error'
30
+ # The create failed - create a new server on Amazon instead
31
+ @server = @ec2_servers.new(:image_id => GENTOO_AMI)
32
+ @server.save
33
+ end
@@ -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.1.5'
11
- s.date = '2010-05-27'
10
+ s.version = '0.1.6'
11
+ s.date = '2010-06-06'
12
12
  s.rubyforge_project = 'fog'
13
13
 
14
14
  ## Make sure your summary is short. The description may be as long
@@ -68,6 +68,7 @@ Gem::Specification.new do |s|
68
68
  benchs/params.rb
69
69
  benchs/parse_vs_push.rb
70
70
  bin/fog
71
+ examples/bluebox_create.rb
71
72
  fog.gemspec
72
73
  lib/fog.rb
73
74
  lib/fog/aws.rb
@@ -196,6 +197,7 @@ Gem::Specification.new do |s|
196
197
  lib/fog/aws/requests/s3/put_bucket_logging.rb
197
198
  lib/fog/aws/requests/s3/put_bucket_versioning.rb
198
199
  lib/fog/aws/requests/s3/put_object.rb
200
+ lib/fog/aws/requests/s3/put_object_url.rb
199
201
  lib/fog/aws/requests/s3/put_request_payment.rb
200
202
  lib/fog/aws/requests/simpledb/batch_put_attributes.rb
201
203
  lib/fog/aws/requests/simpledb/create_domain.rb
@@ -209,6 +211,23 @@ Gem::Specification.new do |s|
209
211
  lib/fog/aws/s3.rb
210
212
  lib/fog/aws/simpledb.rb
211
213
  lib/fog/bin.rb
214
+ lib/fog/bluebox.rb
215
+ lib/fog/bluebox/bin.rb
216
+ lib/fog/bluebox/models/flavor.rb
217
+ lib/fog/bluebox/models/flavors.rb
218
+ lib/fog/bluebox/models/image.rb
219
+ lib/fog/bluebox/models/images.rb
220
+ lib/fog/bluebox/models/server.rb
221
+ lib/fog/bluebox/models/servers.rb
222
+ lib/fog/bluebox/requests/create_block.rb
223
+ lib/fog/bluebox/requests/destroy_block.rb
224
+ lib/fog/bluebox/requests/get_block.rb
225
+ lib/fog/bluebox/requests/get_blocks.rb
226
+ lib/fog/bluebox/requests/get_product.rb
227
+ lib/fog/bluebox/requests/get_products.rb
228
+ lib/fog/bluebox/requests/get_template.rb
229
+ lib/fog/bluebox/requests/get_templates.rb
230
+ lib/fog/bluebox/requests/reboot_block.rb
212
231
  lib/fog/collection.rb
213
232
  lib/fog/connection.rb
214
233
  lib/fog/credentials.rb
@@ -369,9 +388,22 @@ Gem::Specification.new do |s|
369
388
  lib/fog/vcloud/requests/login.rb
370
389
  lib/fog/vcloud/terremark/all.rb
371
390
  lib/fog/vcloud/terremark/ecloud.rb
391
+ lib/fog/vcloud/terremark/ecloud/models/internet_service.rb
392
+ lib/fog/vcloud/terremark/ecloud/models/internet_services.rb
393
+ lib/fog/vcloud/terremark/ecloud/models/public_ip.rb
394
+ lib/fog/vcloud/terremark/ecloud/models/public_ips.rb
372
395
  lib/fog/vcloud/terremark/ecloud/models/vdc.rb
373
396
  lib/fog/vcloud/terremark/ecloud/models/vdcs.rb
397
+ lib/fog/vcloud/terremark/ecloud/parsers/get_internet_services.rb
398
+ lib/fog/vcloud/terremark/ecloud/parsers/get_public_ip.rb
399
+ lib/fog/vcloud/terremark/ecloud/parsers/get_public_ips.rb
374
400
  lib/fog/vcloud/terremark/ecloud/parsers/get_vdc.rb
401
+ lib/fog/vcloud/terremark/ecloud/parsers/internet_service.rb
402
+ lib/fog/vcloud/terremark/ecloud/requests/add_internet_service.rb
403
+ lib/fog/vcloud/terremark/ecloud/requests/delete_internet_service.rb
404
+ lib/fog/vcloud/terremark/ecloud/requests/get_internet_services.rb
405
+ lib/fog/vcloud/terremark/ecloud/requests/get_public_ip.rb
406
+ lib/fog/vcloud/terremark/ecloud/requests/get_public_ips.rb
375
407
  lib/fog/vcloud/terremark/ecloud/requests/get_vdc.rb
376
408
  lib/fog/vcloud/terremark/ecloud/requests/login.rb
377
409
  lib/fog/vcloud/terremark/vcloud.rb
@@ -416,6 +448,9 @@ Gem::Specification.new do |s|
416
448
  spec/aws/requests/simpledb/list_domains_spec.rb
417
449
  spec/aws/requests/simpledb/put_attributes_spec.rb
418
450
  spec/aws/requests/simpledb/select_spec.rb
451
+ spec/bluebox/models/flavors_spec.rb
452
+ spec/bluebox/models/server_spec.rb
453
+ spec/bluebox/models/servers_spec.rb
419
454
  spec/compact_progress_bar_formatter.rb
420
455
  spec/lorem.txt
421
456
  spec/rackspace/models/servers/flavors_spec.rb
@@ -446,8 +481,17 @@ Gem::Specification.new do |s|
446
481
  spec/vcloud/requests/get_versions_spec.rb
447
482
  spec/vcloud/requests/login_spec.rb
448
483
  spec/vcloud/spec_helper.rb
484
+ spec/vcloud/terremark/ecloud/models/internet_service_spec.rb
485
+ spec/vcloud/terremark/ecloud/models/internet_services_spec.rb
486
+ spec/vcloud/terremark/ecloud/models/public_ip_spec.rb
487
+ spec/vcloud/terremark/ecloud/models/public_ips_spec.rb
449
488
  spec/vcloud/terremark/ecloud/models/vdc_spec.rb
450
489
  spec/vcloud/terremark/ecloud/models/vdcs_spec.rb
490
+ spec/vcloud/terremark/ecloud/requests/add_internet_service_spec.rb
491
+ spec/vcloud/terremark/ecloud/requests/delete_internet_service_spec.rb
492
+ spec/vcloud/terremark/ecloud/requests/get_internet_services_spec.rb
493
+ spec/vcloud/terremark/ecloud/requests/get_public_ip_spec.rb
494
+ spec/vcloud/terremark/ecloud/requests/get_public_ips_spec.rb
451
495
  spec/vcloud/terremark/ecloud/requests/get_vdc_spec.rb
452
496
  spec/vcloud/terremark/ecloud/requests/login_spec.rb
453
497
  spec/vcloud/terremark/vcloud/requests/get_vdc_spec.rb
@@ -461,38 +505,22 @@ Gem::Specification.new do |s|
461
505
  tests/aws/requests/ec2/security_group_tests.rb
462
506
  tests/aws/requests/ec2/snapshot_tests.rb
463
507
  tests/aws/requests/ec2/volume_tests.rb
508
+ tests/bluebox/helper.rb
509
+ tests/bluebox/requests/block_tests.rb
510
+ tests/bluebox/requests/product_tests.rb
511
+ tests/bluebox/requests/template_tests.rb
464
512
  tests/helper.rb
465
513
  tests/helper_tests.rb
466
514
  tests/rackspace/helper.rb
467
- tests/rackspace/requests/servers/create_image_tests.rb
468
- tests/rackspace/requests/servers/create_server_tests.rb
469
- tests/rackspace/requests/servers/delete_image_tests.rb
470
- tests/rackspace/requests/servers/delete_server_tests.rb
471
- tests/rackspace/requests/servers/get_flavor_details_tests.rb
472
- tests/rackspace/requests/servers/get_image_details_tests.rb
473
- tests/rackspace/requests/servers/get_server_details_tests.rb
474
- tests/rackspace/requests/servers/list_addresses_tests.rb
475
- tests/rackspace/requests/servers/list_flavors_detail_tests.rb
476
- tests/rackspace/requests/servers/list_flavors_tests.rb
477
- tests/rackspace/requests/servers/list_images_detail_tests.rb
478
- tests/rackspace/requests/servers/list_images_tests.rb
479
- tests/rackspace/requests/servers/list_private_addresses_tests.rb
480
- tests/rackspace/requests/servers/list_public_addresses_tests.rb
481
- tests/rackspace/requests/servers/list_servers_detail_tests.rb
482
- tests/rackspace/requests/servers/list_servers_tests.rb
483
- tests/rackspace/requests/servers/reboot_server_tests.rb
484
- tests/rackspace/requests/servers/update_server_tests.rb
515
+ tests/rackspace/requests/servers/address_tests.rb
516
+ tests/rackspace/requests/servers/flavor_tests.rb
517
+ tests/rackspace/requests/servers/image_tests.rb
518
+ tests/rackspace/requests/servers/server_tests.rb
485
519
  tests/slicehost/helper.rb
486
- tests/slicehost/requests/create_slice_tests.rb
487
- tests/slicehost/requests/delete_slice_tests.rb
488
- tests/slicehost/requests/get_backups_tests.rb
489
- tests/slicehost/requests/get_flavor_tests.rb
490
- tests/slicehost/requests/get_flavors_tests.rb
491
- tests/slicehost/requests/get_image_tests.rb
492
- tests/slicehost/requests/get_images_tests.rb
493
- tests/slicehost/requests/get_slice_tests.rb
494
- tests/slicehost/requests/get_slices_tests.rb
495
- tests/slicehost/requests/reboot_slice_tests.rb
520
+ tests/slicehost/requests/backup_tests.rb
521
+ tests/slicehost/requests/flavor_tests.rb
522
+ tests/slicehost/requests/image_tests.rb
523
+ tests/slicehost/requests/slice_tests.rb
496
524
  ]
497
525
  # = MANIFEST =
498
526
 
data/lib/fog.rb CHANGED
@@ -38,6 +38,7 @@ module Fog
38
38
  end
39
39
 
40
40
  require 'fog/aws'
41
+ require 'fog/bluebox'
41
42
  require 'fog/local'
42
43
  require 'fog/rackspace'
43
44
  require 'fog/slicehost'
@@ -47,7 +48,7 @@ require 'fog/vcloud'
47
48
  module Fog
48
49
 
49
50
  unless const_defined?(:VERSION)
50
- VERSION = '0.1.5'
51
+ VERSION = '0.1.6'
51
52
  end
52
53
 
53
54
  module Mock
@@ -33,15 +33,6 @@ module Fog
33
33
  Fog::AWS::ELB::Real.new(options)
34
34
  end
35
35
 
36
- def self.indexed_param(key, values, idx_offset = 0)
37
- params = {}
38
- key.concat(".%") unless key.include?("%")
39
- [*values].each_with_index do |value, index|
40
- params["#{key.gsub("%", (index + idx_offset).to_s)}"] = value
41
- end
42
- return params
43
- end
44
-
45
36
  class Real
46
37
 
47
38
  # Initialize connection to ELB
@@ -31,9 +31,9 @@ module Fog
31
31
  listener_instance_port.push(listener['InstancePort'])
32
32
  end
33
33
 
34
- params.merge!(ELB.indexed_param('Listeners.member.%.Protocol', listener_protocol, 1))
35
- params.merge!(ELB.indexed_param('Listeners.member.%.LoadBalancerPort', listener_lb_port, 1))
36
- params.merge!(ELB.indexed_param('Listeners.member.%.InstancePort', listener_instance_port, 1))
34
+ params.merge!(AWS.indexed_param('Listeners.member.%.Protocol', listener_protocol, 1))
35
+ params.merge!(AWS.indexed_param('Listeners.member.%.LoadBalancerPort', listener_lb_port, 1))
36
+ params.merge!(AWS.indexed_param('Listeners.member.%.InstancePort', listener_instance_port, 1))
37
37
 
38
38
  request({
39
39
  'Action' => 'CreateLoadBalancer',
@@ -18,7 +18,7 @@ module Fog
18
18
  # * 'Instances'<~Array> - array of hashes describing instances currently enabled
19
19
  # * 'InstanceId'<~String>
20
20
  def deregister_instances_from_load_balancer(instance_ids, lb_name)
21
- params = ELB.indexed_param('Instances.member.%.InstanceId', [*instance_ids], 1)
21
+ params = AWS.indexed_param('Instances.member.%.InstanceId', [*instance_ids], 1)
22
22
  request({
23
23
  'Action' => 'DeregisterInstancesFromLoadBalancer',
24
24
  'LoadBalancerName' => lb_name,
@@ -21,7 +21,7 @@ module Fog
21
21
  # * 'InstanceId'<~String>
22
22
  # * 'ReasonCode'<~String>
23
23
  def describe_instance_health(lb_name, instance_ids = [])
24
- params = ELB.indexed_param('Instances.member.%.InstanceId', [*instance_ids], 1)
24
+ params = AWS.indexed_param('Instances.member.%.InstanceId', [*instance_ids], 1)
25
25
  request({
26
26
  'Action' => 'DescribeInstanceHealth',
27
27
  'LoadBalancerName' => lb_name,
@@ -36,7 +36,7 @@ module Fog
36
36
  # * 'AvailabilityZones'<~Array> - list of availability zones covered by this load balancer
37
37
  # * 'Instances'<~Array> - list of instances that the load balancer balances between
38
38
  def describe_load_balancers(lb_name = [])
39
- params = ELB.indexed_param('LoadBalancerNames.member', [*lb_name], 1)
39
+ params = AWS.indexed_param('LoadBalancerNames.member', [*lb_name], 1)
40
40
  request({
41
41
  'Action' => 'DescribeLoadBalancers',
42
42
  :parser => Fog::Parsers::AWS::ELB::DescribeLoadBalancers.new
@@ -17,7 +17,7 @@ module Fog
17
17
  # * 'DisableAvailabilityZonesForLoadBalancerResult'<~Hash>:
18
18
  # * 'AvailabilityZones'<~Array> - array of strings describing instances currently enabled
19
19
  def disable_availability_zones_for_load_balancer(availability_zones, lb_name)
20
- params = ELB.indexed_param('AvailabilityZones.member', [*availability_zones], 1)
20
+ params = AWS.indexed_param('AvailabilityZones.member', [*availability_zones], 1)
21
21
  request({
22
22
  'Action' => 'DisableAvailabilityZonesForLoadBalancer',
23
23
  'LoadBalancerName' => lb_name,
@@ -17,7 +17,7 @@ module Fog
17
17
  # * 'EnableAvailabilityZonesForLoadBalancerResult'<~Hash>:
18
18
  # * 'AvailabilityZones'<~Array> - array of strings describing instances currently enabled
19
19
  def enable_availability_zones_for_load_balancer(availability_zones, lb_name)
20
- params = ELB.indexed_param('AvailabilityZones.member', [*availability_zones], 1)
20
+ params = AWS.indexed_param('AvailabilityZones.member', [*availability_zones], 1)
21
21
  request({
22
22
  'Action' => 'EnableAvailabilityZonesForLoadBalancer',
23
23
  'LoadBalancerName' => lb_name,
@@ -18,7 +18,7 @@ module Fog
18
18
  # * 'Instances'<~Array> - array of hashes describing instances currently enabled
19
19
  # * 'InstanceId'<~String>
20
20
  def register_instances_with_load_balancer(instance_ids, lb_name)
21
- params = ELB.indexed_param('Instances.member.%.InstanceId', [*instance_ids], 1)
21
+ params = AWS.indexed_param('Instances.member.%.InstanceId', [*instance_ids], 1)
22
22
  request({
23
23
  'Action' => 'RegisterInstancesWithLoadBalancer',
24
24
  'LoadBalancerName' => lb_name,
@@ -38,11 +38,6 @@ module Fog
38
38
  unless bucket_name
39
39
  raise ArgumentError.new('bucket_name is required')
40
40
  end
41
- query = ''
42
- for key, value in options
43
- query << "#{key}=#{CGI.escape(value.to_s).gsub(/\+/, '%20')}&"
44
- end
45
- query.chop!
46
41
  request({
47
42
  :expects => 200,
48
43
  :headers => {},
@@ -50,7 +45,7 @@ module Fog
50
45
  :idempotent => true,
51
46
  :method => 'GET',
52
47
  :parser => Fog::Parsers::AWS::S3::GetBucket.new,
53
- :query => query
48
+ :query => options
54
49
  })
55
50
  end
56
51
 
@@ -35,7 +35,7 @@ module Fog
35
35
  :idempotent => true,
36
36
  :method => 'GET',
37
37
  :parser => Fog::Parsers::AWS::S3::AccessControlList.new,
38
- :query => 'acl'
38
+ :query => {'acl' => nil}
39
39
  })
40
40
  end
41
41
 
@@ -20,7 +20,7 @@ module Fog
20
20
  :idempotent => true,
21
21
  :method => 'GET',
22
22
  :parser => Fog::Parsers::AWS::S3::GetBucketLocation.new,
23
- :query => 'location'
23
+ :query => {'location' => nil}
24
24
  })
25
25
  end
26
26
 
@@ -35,7 +35,7 @@ module Fog
35
35
  :idempotent => true,
36
36
  :method => 'GET',
37
37
  :parser => Fog::Parsers::AWS::S3::GetBucketLogging.new,
38
- :query => 'logging'
38
+ :query => {'logging' => nil}
39
39
  })
40
40
  end
41
41