fog 1.0.0 → 1.1.0

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 (232) hide show
  1. data/README.rdoc +2 -9
  2. data/Rakefile +3 -2
  3. data/docs/_layouts/default.html +13 -13
  4. data/docs/about/contributing.markdown +1 -1
  5. data/docs/about/getting_started.markdown +28 -3
  6. data/docs/dns/index.markdown +4 -4
  7. data/docs/index.markdown +2 -10
  8. data/docs/public/css/fog.css +14 -1
  9. data/docs/storage/index.markdown +2 -2
  10. data/fog.gemspec +6 -5
  11. data/lib/fog.rb +1 -1
  12. data/lib/fog/aws.rb +26 -1
  13. data/lib/fog/aws/auto_scaling.rb +3 -1
  14. data/lib/fog/aws/cloud_formation.rb +3 -0
  15. data/lib/fog/aws/cloud_watch.rb +17 -1
  16. data/lib/fog/aws/compute.rb +50 -18
  17. data/lib/fog/aws/elb.rb +4 -2
  18. data/lib/fog/aws/emr.rb +133 -0
  19. data/lib/fog/aws/models/cloud_watch/alarm.rb +12 -0
  20. data/lib/fog/aws/models/cloud_watch/alarm_data.rb +39 -0
  21. data/lib/fog/aws/models/cloud_watch/alarm_datum.rb +66 -0
  22. data/lib/fog/aws/models/cloud_watch/alarm_histories.rb +18 -0
  23. data/lib/fog/aws/models/cloud_watch/alarm_history.rb +16 -0
  24. data/lib/fog/aws/models/cloud_watch/alarms.rb +30 -0
  25. data/lib/fog/aws/models/compute/addresses.rb +1 -1
  26. data/lib/fog/aws/models/compute/key_pairs.rb +1 -1
  27. data/lib/fog/aws/models/compute/security_groups.rb +1 -1
  28. data/lib/fog/aws/models/compute/server.rb +4 -2
  29. data/lib/fog/aws/models/compute/servers.rb +1 -1
  30. data/lib/fog/aws/models/compute/snapshots.rb +1 -1
  31. data/lib/fog/aws/models/compute/spot_request.rb +21 -4
  32. data/lib/fog/aws/models/compute/spot_requests.rb +45 -1
  33. data/lib/fog/aws/models/compute/volumes.rb +1 -1
  34. data/lib/fog/aws/models/elb/load_balancer.rb +2 -0
  35. data/lib/fog/aws/models/storage/file.rb +1 -1
  36. data/lib/fog/aws/parsers/cdn/get_invalidation_list.rb +0 -1
  37. data/lib/fog/aws/parsers/cloud_formation/update_stack.rb +19 -0
  38. data/lib/fog/aws/parsers/cloud_watch/delete_alarms.rb +26 -0
  39. data/lib/fog/aws/parsers/cloud_watch/describe_alarm_history.rb +40 -0
  40. data/lib/fog/aws/parsers/cloud_watch/describe_alarms.rb +73 -0
  41. data/lib/fog/aws/parsers/cloud_watch/describe_alarms_for_metric.rb +71 -0
  42. data/lib/fog/aws/parsers/cloud_watch/disable_alarm_actions.rb +26 -0
  43. data/lib/fog/aws/parsers/cloud_watch/enable_alarm_actions.rb +26 -0
  44. data/lib/fog/aws/parsers/cloud_watch/get_metric_statistics.rb +1 -0
  45. data/lib/fog/aws/parsers/cloud_watch/put_metric_alarm.rb +26 -0
  46. data/lib/fog/aws/parsers/cloud_watch/set_alarm_state.rb +26 -0
  47. data/lib/fog/aws/parsers/compute/spot_instance_requests.rb +2 -2
  48. data/lib/fog/aws/parsers/emr/add_instance_groups.rb +28 -0
  49. data/lib/fog/aws/parsers/emr/add_job_flow_steps.rb +17 -0
  50. data/lib/fog/aws/parsers/emr/describe_job_flows.rb +140 -0
  51. data/lib/fog/aws/parsers/emr/modify_instance_groups.rb +17 -0
  52. data/lib/fog/aws/parsers/emr/run_job_flow.rb +19 -0
  53. data/lib/fog/aws/parsers/emr/set_termination_protection.rb +17 -0
  54. data/lib/fog/aws/parsers/emr/terminate_job_flows.rb +17 -0
  55. data/lib/fog/aws/rds.rb +3 -1
  56. data/lib/fog/aws/requests/cloud_formation/create_stack.rb +6 -0
  57. data/lib/fog/aws/requests/cloud_formation/update_stack.rb +62 -0
  58. data/lib/fog/aws/requests/cloud_watch/delete_alarms.rb +30 -0
  59. data/lib/fog/aws/requests/cloud_watch/describe_alarm_history.rb +33 -0
  60. data/lib/fog/aws/requests/cloud_watch/describe_alarms.rb +38 -0
  61. data/lib/fog/aws/requests/cloud_watch/describe_alarms_for_metric.rb +39 -0
  62. data/lib/fog/aws/requests/cloud_watch/disable_alarm_actions.rb +30 -0
  63. data/lib/fog/aws/requests/cloud_watch/enable_alarm_actions.rb +30 -0
  64. data/lib/fog/aws/requests/cloud_watch/put_metric_alarm.rb +84 -0
  65. data/lib/fog/aws/requests/cloud_watch/set_alarm_state.rb +31 -0
  66. data/lib/fog/aws/requests/compute/authorize_security_group_ingress.rb +141 -36
  67. data/lib/fog/aws/requests/compute/create_snapshot.rb +2 -3
  68. data/lib/fog/aws/requests/compute/create_tags.rb +5 -3
  69. data/lib/fog/aws/requests/compute/create_volume.rb +0 -1
  70. data/lib/fog/aws/requests/compute/delete_security_group.rb +25 -0
  71. data/lib/fog/aws/requests/compute/delete_tags.rb +3 -4
  72. data/lib/fog/aws/requests/compute/describe_addresses.rb +2 -2
  73. data/lib/fog/aws/requests/compute/describe_availability_zones.rb +5 -2
  74. data/lib/fog/aws/requests/compute/describe_images.rb +6 -9
  75. data/lib/fog/aws/requests/compute/describe_instances.rb +17 -8
  76. data/lib/fog/aws/requests/compute/describe_key_pairs.rb +2 -2
  77. data/lib/fog/aws/requests/compute/describe_regions.rb +2 -2
  78. data/lib/fog/aws/requests/compute/describe_reserved_instances.rb +1 -1
  79. data/lib/fog/aws/requests/compute/describe_security_groups.rb +2 -2
  80. data/lib/fog/aws/requests/compute/describe_snapshots.rb +7 -5
  81. data/lib/fog/aws/requests/compute/describe_volumes.rb +5 -4
  82. data/lib/fog/aws/requests/compute/modify_image_attribute.rb +32 -0
  83. data/lib/fog/aws/requests/compute/modify_instance_attribute.rb +1 -1
  84. data/lib/fog/aws/requests/compute/purchase_reserved_instances_offering.rb +1 -1
  85. data/lib/fog/aws/requests/compute/register_image.rb +0 -1
  86. data/lib/fog/aws/requests/compute/revoke_security_group_ingress.rb +41 -29
  87. data/lib/fog/aws/requests/compute/run_instances.rb +1 -2
  88. data/lib/fog/aws/requests/elb/create_load_balancer.rb +1 -1
  89. data/lib/fog/aws/requests/elb/create_load_balancer_listeners.rb +1 -1
  90. data/lib/fog/aws/requests/elb/deregister_instances_from_load_balancer.rb +1 -1
  91. data/lib/fog/aws/requests/elb/describe_instance_health.rb +2 -2
  92. data/lib/fog/aws/requests/elb/describe_load_balancers.rb +3 -3
  93. data/lib/fog/aws/requests/elb/register_instances_with_load_balancer.rb +2 -2
  94. data/lib/fog/aws/requests/emr/add_instance_groups.rb +46 -0
  95. data/lib/fog/aws/requests/emr/add_job_flow_steps.rb +49 -0
  96. data/lib/fog/aws/requests/emr/describe_job_flows.rb +108 -0
  97. data/lib/fog/aws/requests/emr/modify_instance_groups.rb +40 -0
  98. data/lib/fog/aws/requests/emr/run_job_flow.rb +106 -0
  99. data/lib/fog/aws/requests/emr/set_termination_protection.rb +39 -0
  100. data/lib/fog/aws/requests/emr/terminate_job_flows.rb +37 -0
  101. data/lib/fog/aws/requests/iam/get_server_certificate.rb +5 -7
  102. data/lib/fog/aws/requests/iam/upload_server_certificate.rb +1 -0
  103. data/lib/fog/aws/requests/simpledb/get_attributes.rb +2 -2
  104. data/lib/fog/aws/requests/simpledb/select.rb +1 -1
  105. data/lib/fog/aws/requests/storage/copy_object.rb +1 -1
  106. data/lib/fog/aws/requests/storage/get_object_url.rb +2 -2
  107. data/lib/fog/aws/requests/storage/hash_to_acl.rb +35 -25
  108. data/lib/fog/aws/ses.rb +1 -1
  109. data/lib/fog/aws/simpledb.rb +2 -0
  110. data/lib/fog/aws/sns.rb +3 -1
  111. data/lib/fog/aws/sqs.rb +4 -2
  112. data/lib/fog/aws/storage.rb +12 -3
  113. data/lib/fog/bin.rb +1 -1
  114. data/lib/fog/bin/aws.rb +8 -4
  115. data/lib/fog/bin/bluebox.rb +2 -2
  116. data/lib/fog/bin/brightbox.rb +1 -1
  117. data/lib/fog/bin/dnsimple.rb +1 -1
  118. data/lib/fog/bin/dnsmadeeasy.rb +1 -1
  119. data/lib/fog/bin/ecloud.rb +1 -1
  120. data/lib/fog/bin/glesys.rb +1 -1
  121. data/lib/fog/bin/go_grid.rb +1 -1
  122. data/lib/fog/bin/google.rb +1 -1
  123. data/lib/fog/bin/libvirt.rb +1 -1
  124. data/lib/fog/bin/linode.rb +2 -2
  125. data/lib/fog/bin/local.rb +1 -1
  126. data/lib/fog/bin/new_servers.rb +1 -1
  127. data/lib/fog/bin/ninefold.rb +2 -2
  128. data/lib/fog/bin/openstack.rb +1 -1
  129. data/lib/fog/bin/rackspace.rb +3 -3
  130. data/lib/fog/bin/slicehost.rb +1 -1
  131. data/lib/fog/bin/stormondemand.rb +1 -1
  132. data/lib/fog/bin/virtual_box.rb +1 -1
  133. data/lib/fog/bin/vmfusion.rb +1 -1
  134. data/lib/fog/bin/voxel.rb +1 -1
  135. data/lib/fog/bin/zerigo.rb +1 -1
  136. data/lib/fog/brightbox/models/compute/account.rb +1 -1
  137. data/lib/fog/compute/models/server.rb +1 -2
  138. data/lib/fog/core/attributes.rb +5 -5
  139. data/lib/fog/core/connection.rb +1 -1
  140. data/lib/fog/core/deprecation.rb +2 -2
  141. data/lib/fog/core/logger.rb +8 -3
  142. data/lib/fog/core/mock.rb +4 -0
  143. data/lib/fog/core/provider.rb +7 -2
  144. data/lib/fog/core/service.rb +8 -2
  145. data/lib/fog/dnsmadeeasy/models/dns/record.rb +3 -2
  146. data/lib/fog/dynect/dns.rb +25 -3
  147. data/lib/fog/ecloud/compute.rb +2 -6
  148. data/lib/fog/go_grid/requests/compute/grid_server_power.rb +1 -1
  149. data/lib/fog/google/models/storage/file.rb +1 -1
  150. data/lib/fog/google/requests/storage/get_object_url.rb +2 -2
  151. data/lib/fog/google/storage.rb +1 -1
  152. data/lib/fog/libvirt/models/compute/uri.rb +7 -3
  153. data/lib/fog/linode/models/compute/server.rb +10 -0
  154. data/lib/fog/ninefold/models/storage/file.rb +8 -6
  155. data/lib/fog/ninefold/models/storage/files.rb +3 -2
  156. data/lib/fog/ninefold/requests/storage/head_namespace.rb +20 -0
  157. data/lib/fog/ninefold/storage.rb +4 -2
  158. data/lib/fog/openstack.rb +4 -3
  159. data/lib/fog/openstack/compute.rb +8 -5
  160. data/lib/fog/openstack/models/compute/server.rb +10 -1
  161. data/lib/fog/openstack/requests/compute/create_server.rb +6 -8
  162. data/lib/fog/rackspace/load_balancers.rb +1 -0
  163. data/lib/fog/rackspace/models/dns/callback.rb +1 -1
  164. data/lib/fog/rackspace/models/dns/record.rb +1 -1
  165. data/lib/fog/rackspace/models/dns/zone.rb +1 -1
  166. data/lib/fog/slicehost/dns.rb +1 -0
  167. data/lib/fog/slicehost/models/dns/record.rb +7 -3
  168. data/lib/fog/slicehost/models/dns/zone.rb +1 -1
  169. data/lib/fog/slicehost/parsers/dns/create_record.rb +8 -2
  170. data/lib/fog/slicehost/parsers/dns/get_record.rb +17 -5
  171. data/lib/fog/slicehost/parsers/dns/get_records.rb +10 -2
  172. data/lib/fog/slicehost/requests/dns/get_record.rb +1 -1
  173. data/lib/fog/slicehost/requests/dns/get_records.rb +7 -8
  174. data/lib/fog/slicehost/requests/dns/update_record.rb +43 -0
  175. data/lib/fog/storm_on_demand/models/compute/balancers.rb +1 -1
  176. data/lib/fog/storm_on_demand/models/compute/configs.rb +1 -1
  177. data/lib/fog/storm_on_demand/models/compute/images.rb +1 -1
  178. data/lib/fog/storm_on_demand/models/compute/servers.rb +1 -1
  179. data/lib/fog/storm_on_demand/models/compute/templates.rb +1 -1
  180. data/lib/fog/terremark/vcloud.rb +1 -1
  181. data/lib/fog/vsphere/compute.rb +40 -23
  182. data/lib/fog/vsphere/models/compute/server.rb +1 -0
  183. data/lib/fog/vsphere/requests/compute/list_virtual_machines.rb +36 -4
  184. data/lib/fog/zerigo/dns.rb +14 -3
  185. data/lib/fog/zerigo/models/dns/record.rb +1 -1
  186. data/lib/fog/zerigo/models/dns/records.rb +5 -0
  187. data/lib/fog/zerigo/models/dns/zones.rb +2 -2
  188. data/lib/fog/zerigo/requests/dns/count_hosts.rb +20 -1
  189. data/lib/fog/zerigo/requests/dns/count_zones.rb +12 -1
  190. data/lib/fog/zerigo/requests/dns/create_host.rb +67 -1
  191. data/lib/fog/zerigo/requests/dns/create_zone.rb +44 -1
  192. data/lib/fog/zerigo/requests/dns/delete_host.rb +19 -0
  193. data/lib/fog/zerigo/requests/dns/delete_zone.rb +17 -0
  194. data/lib/fog/zerigo/requests/dns/find_hosts.rb +22 -1
  195. data/lib/fog/zerigo/requests/dns/get_host.rb +18 -1
  196. data/lib/fog/zerigo/requests/dns/get_zone.rb +19 -2
  197. data/lib/fog/zerigo/requests/dns/get_zone_stats.rb +23 -0
  198. data/lib/fog/zerigo/requests/dns/list_hosts.rb +20 -1
  199. data/lib/fog/zerigo/requests/dns/list_zones.rb +15 -0
  200. data/lib/fog/zerigo/requests/dns/update_host.rb +20 -1
  201. data/lib/fog/zerigo/requests/dns/update_zone.rb +20 -1
  202. data/tests/aws/models/cloud_watch/alarm_data_tests.rb +42 -0
  203. data/tests/aws/models/cloud_watch/alarm_history_tests.rb +22 -0
  204. data/tests/aws/models/compute/security_group_tests.rb +15 -10
  205. data/tests/aws/models/elb/model_tests.rb +4 -4
  206. data/tests/aws/requests/cloud_formation/stack_tests.rb +14 -0
  207. data/tests/aws/requests/cloud_watch/list_metrics_test.rb +5 -5
  208. data/tests/aws/requests/compute/image_tests.rb +33 -2
  209. data/tests/aws/requests/compute/instance_tests.rb +16 -1
  210. data/tests/aws/requests/compute/security_group_tests.rb +251 -32
  211. data/tests/aws/requests/compute/tag_tests.rb +42 -2
  212. data/tests/aws/requests/emr/helper.rb +172 -0
  213. data/tests/aws/requests/emr/instance_group_tests.rb +106 -0
  214. data/tests/aws/requests/emr/job_flow_tests.rb +88 -0
  215. data/tests/aws/requests/iam/server_certificate_tests.rb +20 -7
  216. data/tests/aws/requests/storage/bucket_tests.rb +82 -54
  217. data/tests/aws/requests/storage/hash_to_acl_tests.rb +173 -0
  218. data/tests/aws/requests/storage/object_tests.rb +44 -24
  219. data/tests/brightbox/requests/compute/helper.rb +15 -6
  220. data/tests/core/attribute_tests.rb +29 -0
  221. data/tests/core/mocking_tests.rb +60 -0
  222. data/tests/dns/models/record_tests.rb +4 -2
  223. data/tests/dns/models/records_tests.rb +4 -2
  224. data/tests/dns/models/zone_tests.rb +3 -1
  225. data/tests/dns/models/zones_tests.rb +4 -2
  226. data/tests/helper.rb +4 -0
  227. data/tests/rackspace/requests/dns/dns_tests.rb +16 -12
  228. data/tests/rackspace/requests/dns/records_tests.rb +13 -11
  229. data/tests/slicehost/requests/dns/dns_tests.rb +58 -11
  230. data/tests/vsphere/compute_tests.rb +18 -10
  231. data/tests/vsphere/requests/compute/vm_clone_tests.rb +1 -1
  232. metadata +214 -221
@@ -4,7 +4,7 @@ module Fog
4
4
  class << self
5
5
 
6
6
  def available_providers
7
- @available_providers ||= @providers.select {|provider| Kernel.const_get(provider).available?}.sort
7
+ @available_providers ||= Fog.providers.values.select {|provider| Kernel.const_get(provider).available?}.sort
8
8
  end
9
9
 
10
10
  end
@@ -19,6 +19,8 @@ class AWS < Fog::Bin
19
19
  Fog::AWS::Elasticache
20
20
  when :elb
21
21
  Fog::AWS::ELB
22
+ when :emr
23
+ Fog::AWS::EMR
22
24
  when :iam
23
25
  Fog::AWS::IAM
24
26
  when :sdb, :simpledb
@@ -47,22 +49,24 @@ class AWS < Fog::Bin
47
49
  when :auto_scaling
48
50
  Fog::AWS::AutoScaling.new
49
51
  when :cdn
50
- Fog::Logger.warning("AWS[:cdn] is deprecated, use CDN[:aws] instead")
52
+ Fog::Logger.warning("AWS[:cdn] is not recommended, use CDN[:aws] for portability")
51
53
  Fog::CDN.new(:provider => 'AWS')
52
54
  when :cloud_formation
53
55
  Fog::AWS::CloudFormation.new
54
56
  when :cloud_watch
55
57
  Fog::AWS::CloudWatch.new
56
58
  when :compute
57
- Fog::Logger.warning("AWS[:compute] is deprecated, use Compute[:aws] instead")
59
+ Fog::Logger.warning("AWS[:compute] is not recommended, use Comptue[:aws] for portability")
58
60
  Fog::Compute.new(:provider => 'AWS')
59
61
  when :dns
60
- Fog::Logger.warning("AWS[:dns] is deprecated, use DNS[:aws] instead")
62
+ Fog::Logger.warning("AWS[:dns] is not recommended, use DNS[:aws] for portability")
61
63
  Fog::DNS.new(:provider => 'AWS')
62
64
  when :elasticache
63
65
  Fog::AWS::Elasticache.new
64
66
  when :elb
65
67
  Fog::AWS::ELB.new
68
+ when :emr
69
+ Fog::AWS::EMR.new
66
70
  when :iam
67
71
  Fog::AWS::IAM.new
68
72
  when :rds
@@ -76,7 +80,7 @@ class AWS < Fog::Bin
76
80
  when :sqs
77
81
  Fog::AWS::SQS.new
78
82
  when :storage
79
- Fog::Logger.warning("AWS[:storage] is deprecated, use Storage[:aws] instead")
83
+ Fog::Logger.warning("AWS[:storage] is not recommended, use Storage[:aws] for portability")
80
84
  Fog::Storage.new(:provider => 'AWS')
81
85
  when :sns
82
86
  Fog::AWS::SNS.new
@@ -16,10 +16,10 @@ class Bluebox < Fog::Bin
16
16
  @@connections ||= Hash.new do |hash, key|
17
17
  hash[key] = case key
18
18
  when :compute
19
- Fog::Logger.warning("Bluebox[:compute] is deprecated, use Compute[:bluebox] instead")
19
+ Fog::Logger.warning("Bluebox[:compute] is not recommended, use Compute[:bluebox] for portability")
20
20
  Fog::Compute.new(:provider => 'Bluebox')
21
21
  when :dns
22
- Fog::Logger.warning("Bluebox[:storage] is deprecated, use Storage[:bluebox] instead")
22
+ Fog::Logger.warning("Bluebox[:dns] is not recommended, use DNS[:bluebox] for portability")
23
23
  Fog::DNS.new(:provider => 'Bluebox')
24
24
  else
25
25
  raise ArgumentError, "Unrecognized service: #{service}"
@@ -14,7 +14,7 @@ class Brightbox < Fog::Bin
14
14
  @@connections ||= Hash.new do |hash, key|
15
15
  hash[key] = case key
16
16
  when :compute
17
- Fog::Logger.warning("Brightbox[:compute] is deprecated, use Compute[:brightbox] instead")
17
+ Fog::Logger.warning("Brightbox[:compute] is not recommended, use Compute[:brightbox] for portability")
18
18
  Fog::Compute.new(:provider => 'Brightbox')
19
19
  else
20
20
  raise ArgumentError, "Unrecognized service: #{key.inspect}"
@@ -14,7 +14,7 @@ class DNSimple < Fog::Bin
14
14
  @@connections ||= Hash.new do |hash, key|
15
15
  hash[key] = case key
16
16
  when :dns
17
- Fog::Logger.warning("DNSimple[:dns] is deprecated, use Storage[:dnsimple] instead")
17
+ Fog::Logger.warning("DNSimple[:dns] is not recommended, use DNS[:dnsimple] for portability")
18
18
  Fog::DNS.new(:provider => 'DNSimple')
19
19
  else
20
20
  raise ArgumentError, "Unrecognized service: #{key.inspect}"
@@ -14,7 +14,7 @@ class DNSMadeEasy < Fog::Bin
14
14
  @@connections ||= Hash.new do |hash, key|
15
15
  hash[key] = case key
16
16
  when :dns
17
- Fog::Logger.warning("DNSMadeEasy[:dns] is deprecated, use Storage[:dnsmadeeasy] instead")
17
+ Fog::Logger.warning("DNSMadeEasy[:dns] is not recommended, use DNS[:dnsmadeeasy] for portability")
18
18
  Fog::DNS.new(:provider => 'DNSMadeEasy')
19
19
  else
20
20
  raise ArgumentError, "Unrecognized service: #{key.inspect}"
@@ -14,7 +14,7 @@ class Ecloud < Fog::Bin
14
14
  @@connections ||= Hash.new do |hash, key|
15
15
  hash[key] = case key
16
16
  when :compute
17
- Fog::Logger.warning("Ecloud[:compute] is deprecated, use Compute[:ecloud] instead")
17
+ Fog::Logger.warning("Ecloud[:compute] is not recommended, use Compute[:ecloud] for portability")
18
18
  Fog::Compute.new(:provider => 'Ecloud')
19
19
  else
20
20
  raise ArgumentError, "Unrecognized service: #{key.inspect}"
@@ -14,7 +14,7 @@ class Glesys < Fog::Bin
14
14
  @@connections ||= Hash.new do |hash, key|
15
15
  hash[key] = case key
16
16
  when :compute
17
- Formatador.display_line("[yellow][WARN] Glesys[:compute] is deprecated, use Compute[:glesys] instead[/]")
17
+ Fog::Logger.warning("Glesys[:compute] is not recommended, use Compute[:glesys] for portability")
18
18
  Fog::Compute.new(:provider => 'Glesys')
19
19
  else
20
20
  raise ArgumentError, "Unrecognized service: #{service}"
@@ -14,7 +14,7 @@ class GoGrid < Fog::Bin
14
14
  @@connections ||= Hash.new do |hash, key|
15
15
  hash[key] = case key
16
16
  when :compute
17
- Fog::Logger.warning("GoGrid[:compute] is deprecated, use Compute[:gogrid] instead")
17
+ Fog::Logger.warning("GoGrid[:compute] is not recommended, use Compute[:gogrid] for portability")
18
18
  Fog::Compute.new(:provider => 'GoGrid')
19
19
  else
20
20
  raise ArgumentError, "Unrecognized service: #{key.inspect}"
@@ -14,7 +14,7 @@ class Google < Fog::Bin
14
14
  @@connections ||= Hash.new do |hash, key|
15
15
  hash[key] = case key
16
16
  when :storage
17
- Fog::Logger.warning("Google[:storage] is deprecated, use Storage[:google] instead")
17
+ Fog::Logger.warning("Google[:storage] is not recommended, use Storage[:google] for portability")
18
18
  Fog::Storage.new(:provider => 'Google')
19
19
  else
20
20
  raise ArgumentError, "Unrecognized service: #{key.inspect}"
@@ -14,7 +14,7 @@ module Libvirt # deviates from other bin stuff to accomodate gem
14
14
  @@connections ||= Hash.new do |hash, key|
15
15
  hash[key] = case key
16
16
  when :compute
17
- Fog::Logger.warning("Libvirt[:compute] is deprecated, use Compute[:libvirt] instead")
17
+ Fog::Logger.warning("Libvirt[:compute] is not recommended, use Compute[:libvirt] for portability")
18
18
  Fog::Compute.new(:provider => 'Libvirt')
19
19
  else
20
20
  raise ArgumentError, "Unrecognized service: #{key.inspect}"
@@ -16,10 +16,10 @@ class Linode < Fog::Bin
16
16
  @@connections ||= Hash.new do |hash, key|
17
17
  hash[key] = case key
18
18
  when :compute
19
- Fog::Logger.warning("Linode[:compute] is deprecated, use Compute[:linode] instead")
19
+ Fog::Logger.warning("Linode[:compute] is not recommended, use Compute[:linode] for portability")
20
20
  Fog::Compute.new(:provider => 'Linode')
21
21
  when :dns
22
- Fog::Logger.warning("Linode[:storage] is deprecated, use Storage[:linode] instead")
22
+ Fog::Logger.warning("Linode[:dns] is not recommended, use DNS[:linode] for portability")
23
23
  Fog::DNS.new(:provider => 'Linode')
24
24
  else
25
25
  raise ArgumentError, "Unrecognized service: #{key.inspect}"
@@ -14,7 +14,7 @@ class Local < Fog::Bin
14
14
  @@connections ||= Hash.new do |hash, key|
15
15
  hash[key] = case key
16
16
  when :storage
17
- Fog::Logger.warning("Local[:storage] is deprecated, use Storage[:local] instead")
17
+ Fog::Logger.warning("Local[:storage] is not recommended, use Storage[:local] for portability")
18
18
  Fog::Storage.new(:provider => 'Local')
19
19
  else
20
20
  raise ArgumentError, "Unrecognized service: #{key.inspect}"
@@ -14,7 +14,7 @@ class NewServers < Fog::Bin
14
14
  @@connections ||= Hash.new do |hash, key|
15
15
  hash[key] = case key
16
16
  when :compute
17
- Fog::Logger.warning("NewServers[:compute] is deprecated, use Compute[:newservers] instead")
17
+ Fog::Logger.warning("NewServers[:compute] is not recommended, use Compute[:newservers] for portability")
18
18
  Fog::Compute.new(:provider => 'NewServers')
19
19
  else
20
20
  raise ArgumentError, "Unrecognized service: #{key.inspect}"
@@ -16,10 +16,10 @@ class Ninefold < Fog::Bin
16
16
  @@connections ||= Hash.new do |hash, key|
17
17
  hash[key] = case key
18
18
  when :compute
19
- Fog::Logger.warning("Ninefold[:compute] is deprecated, use Compute[:ninefold] instead")
19
+ Fog::Logger.warning("Ninefold[:compute] is not recommended, use Compute[:ninefold] for portability")
20
20
  Fog::Compute.new(:provider => 'Ninefold')
21
21
  when :storage
22
- Fog::Logger.warning("Ninefold[:storage] is deprecated, use Storage[:ninefold] instead")
22
+ Fog::Logger.warning("Ninefold[:storage] is not recommended, use Storage[:ninefold] for portability")
23
23
  Fog::Storage.new(:provider => 'Ninefold')
24
24
  else
25
25
  raise ArgumentError, "Unrecognized service: #{service}"
@@ -14,7 +14,7 @@ class OpenStack < Fog::Bin
14
14
  @@connections ||= Hash.new do |hash, key|
15
15
  hash[key] = case key
16
16
  when :compute
17
- Fog::Logger.warning("OpenStack[:compute] is deprecated, use Compute[:rackspace] instead")
17
+ Fog::Logger.warning("OpenStack[:compute] is not recommended, use Compute[:rackspace] for portability")
18
18
  Fog::Compute.new(:provider => 'OpenStack')
19
19
  else
20
20
  raise ArgumentError, "Unrecognized service: #{key.inspect}"
@@ -22,17 +22,17 @@ class Rackspace < Fog::Bin
22
22
  @@connections ||= Hash.new do |hash, key|
23
23
  hash[key] = case key
24
24
  when :cdn
25
- Fog::Logger.warning("Rackspace[:cdn] is deprecated, use CDN[:rackspace] instead")
25
+ Fog::Logger.warning("Rackspace[:cdn] is not recommended, use CDN[:rackspace] for portability")
26
26
  Fog::CDN.new(:provider => 'Rackspace')
27
27
  when :compute
28
- Fog::Logger.warning("Rackspace[:compute] is deprecated, use Compute[:rackspace] instead")
28
+ Fog::Logger.warning("Rackspace[:compute] is not recommended, use Compute[:rackspace] for portability")
29
29
  Fog::Compute.new(:provider => 'Rackspace')
30
30
  when :dns
31
31
  Fog::DNS.new(:provider => 'Rackspace')
32
32
  when :load_balancers
33
33
  Fog::Rackspace::LoadBalancers.new
34
34
  when :storage
35
- Fog::Logger.warning("Rackspace[:storage] is deprecated, use Storage[:rackspace] instead")
35
+ Fog::Logger.warning("Rackspace[:storage] is not recommended, use Storage[:rackspace] for portability")
36
36
  Fog::Storage.new(:provider => 'Rackspace')
37
37
  else
38
38
  raise ArgumentError, "Unrecognized service: #{key.inspect}"
@@ -16,7 +16,7 @@ class Slicehost < Fog::Bin
16
16
  @@connections ||= Hash.new do |hash, key|
17
17
  hash[key] = case key
18
18
  when :compute
19
- Fog::Logger.warning("Slicehost[:compute] is deprecated, use Compute[:slicehost] instead")
19
+ Fog::Logger.warning("Slicehost[:compute] is not recommended, use Compute[:slicehost] for portability")
20
20
  Fog::Compute.new(:provider => 'Slicehost')
21
21
  when :dns
22
22
  Fog::Logger.warning("Slicehost[:dns] is deprecated, use Storage[:slicehost] instead")
@@ -14,7 +14,7 @@ class StormOnDemand < Fog::Bin
14
14
  @@connections ||= Hash.new do |hash, key|
15
15
  hash[key] = case key
16
16
  when :compute
17
- Fog::Logger.warning("StormOnDemand[:compute] is deprecated, use Compute[:stormondemand] instead")
17
+ Fog::Logger.warning("StormOnDemand[:compute] is not recommended, use Compute[:stormondemand] for portability")
18
18
  Fog::Compute.new(:provider => 'StormOnDemand')
19
19
  else
20
20
  raise ArgumentError, "Unrecognized service: #{key.inspect}"
@@ -14,7 +14,7 @@ module VirtualBox # deviates from other bin stuff to accomodate gem
14
14
  @@connections ||= Hash.new do |hash, key|
15
15
  hash[key] = case key
16
16
  when :compute
17
- Fog::Logger.warning("VirtualBox[:compute] is deprecated, use Compute[:virtualbox] instead")
17
+ Fog::Logger.warning("VirtualBox[:compute] is not recommended, use Compute[:virtualbox] for portability")
18
18
  Fog::Compute.new(:provider => 'VirtualBox')
19
19
  else
20
20
  raise ArgumentError, "Unrecognized service: #{key.inspect}"
@@ -14,7 +14,7 @@ module Vmfusion # deviates from other bin stuff to accomodate gem
14
14
  @@connections ||= Hash.new do |hash, key|
15
15
  hash[key] = case key
16
16
  when :compute
17
- Fog::Logger.warning("Vmfusion[:compute] is deprecated, use Compute[:Vmfusion] instead")
17
+ Fog::Logger.warning("Vmfusion[:compute] is not recommended, use Compute[:vmfusion] for portability")
18
18
  Fog::Compute.new(:provider => 'Vmfusion')
19
19
  else
20
20
  raise ArgumentError, "Unrecognized service: #{key.inspect}"
@@ -14,7 +14,7 @@ class Voxel < Fog::Bin
14
14
  @@connections ||= Hash.new do |hash, key|
15
15
  hash[key] = case key
16
16
  when :compute
17
- Fog::Logger.warning("Voxel[:compute] is deprecated, use Compute[:voxel] instead")
17
+ Fog::Logger.warning("Voxel[:comupte] is not recommended, use Compute[:voxel]] for portability")
18
18
  Fog::Compute.new(:provider => 'Voxel')
19
19
  else
20
20
  raise ArgumentError, "Unrecognized service: #{key.inspect}"
@@ -14,7 +14,7 @@ class Zerigo < Fog::Bin
14
14
  @@connections ||= Hash.new do |hash, key|
15
15
  hash[key] = case key
16
16
  when :dns
17
- Fog::Logger.warning("Zerigo[:dns] is deprecated, use Storage[:zerigo] instead")
17
+ Fog::Logger.warning("Zerigo[:dns] is not recommended, use DNS[:zerigo] for portability")
18
18
  Fog::DNS.new(:provider => 'Zerigo')
19
19
  else
20
20
  raise ArgumentError, "Unrecognized service: #{key.inspect}"
@@ -53,7 +53,7 @@ module Fog
53
53
 
54
54
  def reset_ftp_password
55
55
  requires :identity
56
- connection.reset_ftp_password_account(identity)["library_ftp_password"]
56
+ connection.reset_ftp_password_account["library_ftp_password"]
57
57
  end
58
58
 
59
59
  end
@@ -13,11 +13,10 @@ module Fog
13
13
  Fog::SCP.new(public_ip_address, username, scp_options).upload(local_path, remote_path, upload_options)
14
14
  end
15
15
 
16
- def ssh(commands)
16
+ def ssh(commands, options={})
17
17
  require 'net/ssh'
18
18
  requires :public_ip_address, :username
19
19
 
20
- options = {}
21
20
  options[:key_data] = [private_key] if private_key
22
21
  Fog::SSH.new(public_ip_address, username, options).run(commands)
23
22
  end
@@ -25,9 +25,9 @@ module Fog
25
25
  class_eval <<-EOS, __FILE__, __LINE__
26
26
  def #{name}=(new_#{name})
27
27
  attributes[:#{name}] = case new_#{name}
28
- when 'true'
28
+ when true,'true'
29
29
  true
30
- when 'false'
30
+ when false,'false'
31
31
  false
32
32
  end
33
33
  end
@@ -71,8 +71,8 @@ module Fog
71
71
  class_eval <<-EOS, __FILE__, __LINE__
72
72
  def #{name}=(new_data)
73
73
  if new_data.is_a?(Hash)
74
- if new_data.has_key?(:#{squash})
75
- attributes[:#{name}] = new_data[:#{squash}]
74
+ if new_data.has_key?(:'#{squash}')
75
+ attributes[:#{name}] = new_data[:'#{squash}']
76
76
  elsif new_data.has_key?("#{squash}")
77
77
  attributes[:#{name}] = new_data["#{squash}"]
78
78
  else
@@ -142,7 +142,7 @@ module Fog
142
142
  unless self.class.ignored_attributes.include?(key)
143
143
  if aliased_key = self.class.aliases[key]
144
144
  send("#{aliased_key}=", value)
145
- elsif (public_methods | private_methods).detect {|method| ["#{key}=", :"#{key}="].include?(method)}
145
+ elsif self.respond_to?("#{key}=",true)
146
146
  send("#{key}=", value)
147
147
  else
148
148
  attributes[key] = value
@@ -18,7 +18,7 @@ module Fog
18
18
  end
19
19
 
20
20
  response = @excon.request(params, &block)
21
-
21
+
22
22
  if parser
23
23
  body.finish
24
24
  response.body = parser.response
@@ -4,7 +4,7 @@ module Fog
4
4
  def deprecate(older, newer)
5
5
  module_eval <<-EOS, __FILE__, __LINE__
6
6
  def #{older}(*args)
7
- Fog::Logger.warning("#{self} => ##{older} is deprecated, use ##{newer} instead [light_black](#{caller.first})[/]")
7
+ Fog::Logger.deprecation("#{self} => ##{older} is deprecated, use ##{newer} instead [light_black](#{caller.first})[/]")
8
8
  send(:#{newer}, *args)
9
9
  end
10
10
  EOS
@@ -13,7 +13,7 @@ module Fog
13
13
  def self_deprecate(older, newer)
14
14
  module_eval <<-EOS, __FILE__, __LINE__
15
15
  def self.#{older}(*args)
16
- Fog::Logger.warning("#{self} => ##{older} is deprecated, use ##{newer} instead [light_black](#{caller.first})[/]")
16
+ Fog::Logger.deprecation("#{self} => ##{older} is deprecated, use ##{newer} instead [light_black](#{caller.first})[/]")
17
17
  send(:#{newer}, *args)
18
18
  end
19
19
  EOS
@@ -2,7 +2,8 @@ module Fog
2
2
  class Logger
3
3
 
4
4
  @channels = {
5
- :warning => ::STDOUT
5
+ :deprecation => ::STDOUT,
6
+ :warning => ::STDOUT
6
7
  }
7
8
 
8
9
  def self.[](channel)
@@ -14,11 +15,15 @@ module Fog
14
15
  end
15
16
 
16
17
  def self.debug(message)
17
- self.write(:debug, "[light_black][DEBUG] #{message}[/]")
18
+ self.write(:debug, "[light_black][DEBUG] #{message}[/]\n")
19
+ end
20
+
21
+ def self.deprecation(message)
22
+ self.write(:deprecation, "[yellow][DEPRECATION] #{message}[/]\n")
18
23
  end
19
24
 
20
25
  def self.warning(message)
21
- self.write(:warning, "[yellow][WARNING] #{message}[/]")
26
+ self.write(:warning, "[yellow][WARNING] #{message}[/]\n")
22
27
  end
23
28
 
24
29
  def self.write(key, value)
@@ -6,6 +6,10 @@ module Fog
6
6
  @mocking = true
7
7
  end
8
8
 
9
+ def self.unmock!
10
+ @mocking = false
11
+ end
12
+
9
13
  def self.mock?
10
14
  @mocking
11
15
  end
@@ -1,13 +1,18 @@
1
1
  module Fog
2
2
 
3
3
  def self.providers
4
- @providers ||= []
4
+ @providers ||= {}
5
+ end
6
+
7
+ def self.providers=(new_providers)
8
+ @providers = new_providers
5
9
  end
6
10
 
7
11
  module Provider
8
12
 
9
13
  def self.extended(base)
10
- Fog.providers << base.to_s.split('::').last
14
+ provider = base.to_s.split('::').last
15
+ Fog.providers[provider.downcase.to_sym] = provider
11
16
  end
12
17
 
13
18
  def [](service_key)
@@ -172,11 +172,17 @@ module Fog
172
172
  end
173
173
 
174
174
  def recognized
175
- @recognized ||= []
175
+ @recognized ||= [:connection_options]
176
176
  end
177
177
 
178
178
  def validate_options(options)
179
- missing = requirements - options.keys
179
+ keys = []
180
+ for key, value in options
181
+ unless value.nil?
182
+ keys << key
183
+ end
184
+ end
185
+ missing = requirements - keys
180
186
  unless missing.empty?
181
187
  raise ArgumentError, "Missing required arguments: #{missing.join(', ')}"
182
188
  end