fog 0.0.40 → 0.0.41

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) hide show
  1. data/README.rdoc +2 -0
  2. data/Rakefile +12 -0
  3. data/VERSION +1 -1
  4. data/bin/fog +28 -40
  5. data/fog.gemspec +16 -3
  6. data/lib/fog.rb +27 -3
  7. data/lib/fog/aws/ec2.rb +7 -3
  8. data/lib/fog/aws/models/ec2/security_group.rb +1 -1
  9. data/lib/fog/aws/models/ec2/server.rb +8 -3
  10. data/lib/fog/aws/models/ec2/servers.rb +1 -1
  11. data/lib/fog/aws/parsers/ec2/terminate_instances.rb +10 -10
  12. data/lib/fog/aws/requests/ec2/run_instances.rb +1 -1
  13. data/lib/fog/aws/s3.rb +6 -2
  14. data/lib/fog/rackspace.rb +8 -2
  15. data/lib/fog/slicehost.rb +3 -1
  16. data/spec/aws/models/ec2/address_spec.rb +8 -8
  17. data/spec/aws/models/ec2/addresses_spec.rb +10 -10
  18. data/spec/aws/models/ec2/key_pair_spec.rb +8 -8
  19. data/spec/aws/models/ec2/key_pairs_spec.rb +10 -10
  20. data/spec/aws/models/ec2/security_group_spec.rb +8 -8
  21. data/spec/aws/models/ec2/security_groups_spec.rb +10 -10
  22. data/spec/aws/models/ec2/server_spec.rb +1 -4
  23. data/spec/aws/models/ec2/servers_spec.rb +1 -1
  24. data/spec/aws/models/ec2/snapshot_spec.rb +12 -10
  25. data/spec/aws/models/ec2/snapshots_spec.rb +20 -20
  26. data/spec/aws/models/ec2/volume_spec.rb +10 -10
  27. data/spec/aws/models/ec2/volumes_spec.rb +10 -10
  28. data/spec/aws/models/s3/directories_spec.rb +8 -8
  29. data/spec/aws/models/s3/directory_spec.rb +11 -11
  30. data/spec/aws/models/s3/file_spec.rb +2 -2
  31. data/spec/aws/models/s3/files_spec.rb +2 -2
  32. data/spec/aws/requests/ec2/allocate_address_spec.rb +2 -2
  33. data/spec/aws/requests/ec2/associate_address_spec.rb +15 -13
  34. data/spec/aws/requests/ec2/attach_volume_spec.rb +12 -12
  35. data/spec/aws/requests/ec2/authorize_security_group_ingress_spec.rb +3 -3
  36. data/spec/aws/requests/ec2/create_key_pair_spec.rb +5 -5
  37. data/spec/aws/requests/ec2/create_security_group_spec.rb +5 -5
  38. data/spec/aws/requests/ec2/create_snapshot_spec.rb +5 -5
  39. data/spec/aws/requests/ec2/create_volume_spec.rb +2 -2
  40. data/spec/aws/requests/ec2/delete_key_pair_spec.rb +3 -3
  41. data/spec/aws/requests/ec2/delete_security_group_spec.rb +3 -3
  42. data/spec/aws/requests/ec2/delete_snapshot_spec.rb +5 -5
  43. data/spec/aws/requests/ec2/delete_volume_spec.rb +3 -3
  44. data/spec/aws/requests/ec2/describe_addresses_spec.rb +5 -5
  45. data/spec/aws/requests/ec2/describe_availability_zones_spec.rb +2 -2
  46. data/spec/aws/requests/ec2/describe_images_spec.rb +2 -2
  47. data/spec/aws/requests/ec2/describe_instances_spec.rb +5 -5
  48. data/spec/aws/requests/ec2/describe_key_pairs_spec.rb +5 -5
  49. data/spec/aws/requests/ec2/describe_regions_spec.rb +2 -2
  50. data/spec/aws/requests/ec2/describe_security_groups_spec.rb +5 -5
  51. data/spec/aws/requests/ec2/describe_snapshots_spec.rb +7 -7
  52. data/spec/aws/requests/ec2/describe_volumes_spec.rb +5 -5
  53. data/spec/aws/requests/ec2/detach_volume_spec.rb +7 -7
  54. data/spec/aws/requests/ec2/disassociate_address_spec.rb +9 -7
  55. data/spec/aws/requests/ec2/get_console_output_spec.rb +4 -4
  56. data/spec/aws/requests/ec2/reboot_instances_spec.rb +4 -4
  57. data/spec/aws/requests/ec2/release_address_spec.rb +3 -3
  58. data/spec/aws/requests/ec2/revoke_security_group_ingress_spec.rb +4 -4
  59. data/spec/aws/requests/ec2/run_instances_spec.rb +2 -2
  60. data/spec/aws/requests/ec2/terminate_instances_spec.rb +7 -7
  61. data/spec/aws/requests/s3/copy_object_spec.rb +11 -11
  62. data/spec/aws/requests/s3/delete_bucket_spec.rb +8 -8
  63. data/spec/aws/requests/s3/delete_object_spec.rb +8 -8
  64. data/spec/aws/requests/s3/get_bucket_location_spec.rb +4 -4
  65. data/spec/aws/requests/s3/get_bucket_spec.rb +12 -12
  66. data/spec/aws/requests/s3/get_object_spec.rb +9 -9
  67. data/spec/aws/requests/s3/get_request_payment_spec.rb +4 -4
  68. data/spec/aws/requests/s3/get_service_spec.rb +4 -4
  69. data/spec/aws/requests/s3/head_object_spec.rb +5 -5
  70. data/spec/aws/requests/s3/put_bucket_spec.rb +3 -3
  71. data/spec/aws/requests/s3/put_object_spec.rb +11 -11
  72. data/spec/aws/requests/s3/put_request_payment_spec.rb +4 -4
  73. data/spec/aws/requests/simpledb/batch_put_attributes_spec.rb +4 -4
  74. data/spec/aws/requests/simpledb/create_domain_spec.rb +4 -4
  75. data/spec/aws/requests/simpledb/delete_attributes_spec.rb +8 -8
  76. data/spec/aws/requests/simpledb/delete_domain_spec.rb +3 -3
  77. data/spec/aws/requests/simpledb/domain_metadata_spec.rb +6 -6
  78. data/spec/aws/requests/simpledb/get_attributes_spec.rb +9 -9
  79. data/spec/aws/requests/simpledb/list_domains_spec.rb +4 -4
  80. data/spec/aws/requests/simpledb/put_attributes_spec.rb +4 -4
  81. data/spec/compact_progress_bar_formatter.rb +195 -0
  82. data/spec/rackspace/models/servers/server_spec.rb +1 -1
  83. data/spec/rackspace/requests/files/delete_container_spec.rb +3 -3
  84. data/spec/rackspace/requests/files/delete_object_spec.rb +8 -8
  85. data/spec/rackspace/requests/files/get_container_spec.rb +6 -6
  86. data/spec/rackspace/requests/files/get_containers_spec.rb +3 -3
  87. data/spec/rackspace/requests/files/head_container_spec.rb +6 -6
  88. data/spec/rackspace/requests/files/head_containers_spec.rb +3 -3
  89. data/spec/rackspace/requests/files/put_container_spec.rb +2 -2
  90. data/spec/rackspace/requests/files/put_object_spec.rb +4 -4
  91. data/spec/rackspace/requests/servers/create_image_spec.rb +4 -4
  92. data/spec/rackspace/requests/servers/create_server_spec.rb +2 -2
  93. data/spec/rackspace/requests/servers/delete_image_spec.rb +5 -5
  94. data/spec/rackspace/requests/servers/delete_server_spec.rb +3 -3
  95. data/spec/rackspace/requests/servers/get_flavor_details_spec.rb +1 -1
  96. data/spec/rackspace/requests/servers/get_server_details_spec.rb +4 -4
  97. data/spec/rackspace/requests/servers/list_addresses_spec.rb +4 -4
  98. data/spec/rackspace/requests/servers/list_flavors_detail_spec.rb +1 -1
  99. data/spec/rackspace/requests/servers/list_flavors_spec.rb +1 -1
  100. data/spec/rackspace/requests/servers/list_images_detail_spec.rb +1 -1
  101. data/spec/rackspace/requests/servers/list_images_spec.rb +1 -1
  102. data/spec/rackspace/requests/servers/list_private_addresses_spec.rb +4 -4
  103. data/spec/rackspace/requests/servers/list_public_addresses_spec.rb +4 -4
  104. data/spec/rackspace/requests/servers/list_servers_detail_spec.rb +3 -3
  105. data/spec/rackspace/requests/servers/list_servers_spec.rb +3 -3
  106. data/spec/rackspace/requests/servers/reboot_server_spec.rb +4 -4
  107. data/spec/rackspace/requests/servers/update_server_spec.rb +4 -4
  108. data/spec/slicehost/requests/create_slice_spec.rb +2 -2
  109. data/spec/slicehost/requests/delete_slice_spec.rb +2 -2
  110. data/spec/slicehost/requests/get_backups_spec.rb +1 -1
  111. data/spec/slicehost/requests/get_flavors_spec.rb +1 -1
  112. data/spec/slicehost/requests/get_images_spec.rb +1 -1
  113. data/spec/slicehost/requests/get_slices_spec.rb +1 -1
  114. data/spec/spec_helper.rb +60 -38
  115. metadata +16 -3
  116. data/spec/spec.opts +0 -1
@@ -46,6 +46,8 @@ Lets boot up a server on EC2
46
46
 
47
47
  # boot a gentoo server
48
48
  server = connection.servers.new(:image_id => 'ami-5ee70037')
49
+ # you might also want to add the server to security groups, which goes like this:
50
+ # AWS.servers.create(:image_id => 'ami-5ee70037', :groups => ['web', 'db'])
49
51
 
50
52
  # wait for it to be ready to do stuff
51
53
  server.wait_for { ready? }
data/Rakefile CHANGED
@@ -20,6 +20,18 @@ begin
20
20
  gem.rubyforge_project = "fog"
21
21
 
22
22
  gem.post_install_message = <<MESSAGE
23
+ #{'=' * 50}
24
+
25
+ fog 0.0.41 has a minor change to the API for ec2 servers:
26
+
27
+ # what_it_was => what_it_is
28
+
29
+ ec2.servers.new(:group_id => 'foo') => ec2.servers.new(:groups => ['foo'])
30
+
31
+ Updating to the newest api version also means you can now assign multiple groups:
32
+
33
+ ec2.servers.new(:groups => ['foo', 'bar'])
34
+
23
35
  #{'=' * 50}
24
36
 
25
37
  fog 0.0.40 has API changes you should know about.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.40
1
+ 0.0.41
data/bin/fog CHANGED
@@ -5,20 +5,8 @@ require 'yaml'
5
5
 
6
6
  module Fog
7
7
  module Credentials
8
- key = (ARGV.first && :"#{ARGV.first}") || :default
9
- unless Fog.credentials(key)
10
- print("\n To run as '#{key}', add credentials like the following to ~/.fog\n")
11
- yml = <<-YML
12
-
13
- :#{key}:
14
- :aws_access_key_id: INTENTIONALLY_LEFT_BLANK
15
- :aws_secret_access_key: INTENTIONALLY_LEFT_BLANK
16
- :rackspace_api_key: INTENTIONALLY_LEFT_BLANK
17
- :rackspace_username: INTENTIONALLY_LEFT_BLANK
18
- :slicehost_password: INTENTIONALLY_LEFT_BLANK
19
-
20
- YML
21
- print(yml)
8
+ Fog.credential = (ARGV.first && :"#{ARGV.first}") || :default
9
+ unless Fog.credentials
22
10
  exit
23
11
  end
24
12
  end
@@ -26,15 +14,14 @@ end
26
14
 
27
15
  module AWS
28
16
  class << self
29
- key = (ARGV.first && :"#{ARGV.first}") || :default
30
- if Fog.credentials(key)[:aws_access_key_id] && Fog.credentials(key)[:aws_secret_access_key]
17
+ credential = (ARGV.first && :"#{ARGV.first}") || :default
18
+ if Fog.credentials[:aws_access_key_id] && Fog.credentials[:aws_secret_access_key]
31
19
 
32
- def connections
20
+ def [](service)
33
21
  @@connections ||= Hash.new do |hash, key|
34
- credentials = {
35
- :aws_access_key_id => Fog.credentials[:aws_access_key_id],
36
- :aws_secret_access_key => Fog.credentials[:aws_secret_access_key]
37
- }
22
+ credentials = Fog.credentials.reject do |k, v|
23
+ ![:aws_access_key_id, :aws_secret_access_key].include?(k)
24
+ end
38
25
  hash[key] = case key
39
26
  when :ec2
40
27
  Fog::AWS::EC2.new(credentials)
@@ -42,42 +29,43 @@ module AWS
42
29
  Fog::AWS::S3.new(credentials)
43
30
  end
44
31
  end
32
+ @@connections[service]
45
33
  end
46
34
 
47
35
  def addresses
48
- connections[:ec2].addresses
36
+ self[:ec2].addresses
49
37
  end
50
38
 
51
39
  def directories
52
- connections[:s3].directories
40
+ self[:s3].directories
53
41
  end
54
42
 
55
43
  def flavors
56
- connections[:ec2].flavors
44
+ self[:ec2].flavors
57
45
  end
58
46
 
59
47
  def images
60
- connections[:ec2].images
48
+ self[:ec2].images
61
49
  end
62
50
 
63
51
  def servers
64
- connections[:ec2].servers
52
+ self[:ec2].servers
65
53
  end
66
54
 
67
55
  def key_pairs
68
- connections[:ec2].key_pairs
56
+ self[:ec2].key_pairs
69
57
  end
70
58
 
71
59
  def security_groups
72
- connections[:ec2].security_groups
60
+ self[:ec2].security_groups
73
61
  end
74
62
 
75
63
  def snapshots
76
- connections[:ec2].snapshots
64
+ self[:ec2].snapshots
77
65
  end
78
66
 
79
67
  def volumes
80
- connections[:ec2].volumes
68
+ self[:ec2].volumes
81
69
  end
82
70
 
83
71
  end
@@ -86,15 +74,14 @@ end
86
74
 
87
75
  module Rackspace
88
76
  class << self
89
- key = (ARGV.first && :"#{ARGV.first}") || :default
90
- if Fog.credentials(key)[:rackspace_api_key] && Fog.credentials(key)[:rackspace_username]
77
+ if Fog.credentials[:rackspace_api_key] && Fog.credentials[:rackspace_username]
91
78
 
92
- def connections
79
+ def [](service)
93
80
  @@connections ||= Hash.new do |hash, key|
94
- credentials = {
95
- :rackspace_api_key => Fog.credentials[:rackspace_api_key],
96
- :rackspace_username => Fog.credentials[:rackspace_username]
97
- }
81
+ credential = (ARGV.first && :"#{ARGV.first}") || :default
82
+ credentials = Fog.credentials.reject do |k,v|
83
+ ![:rackspace_api_key, :rackspace_username].include?(k)
84
+ end
98
85
  hash[key] = case key
99
86
  when :files
100
87
  Fog::Rackspace::Files.new(credentials)
@@ -102,18 +89,19 @@ module Rackspace
102
89
  Fog::Rackspace::Servers.new(credentials)
103
90
  end
104
91
  end
92
+ @@connections[service]
105
93
  end
106
94
 
107
95
  def flavors
108
- connections[:servers].flavors
96
+ self[:servers].flavors
109
97
  end
110
98
 
111
99
  def images
112
- connections[:servers].images
100
+ self[:servers].images
113
101
  end
114
102
 
115
103
  def servers
116
- connections[:servers].servers
104
+ self[:servers].servers
117
105
  end
118
106
 
119
107
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{fog}
8
- s.version = "0.0.40"
8
+ s.version = "0.0.41"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["geemus (Wesley Beary)"]
12
- s.date = %q{2010-01-14}
12
+ s.date = %q{2010-01-25}
13
13
  s.default_executable = %q{fog}
14
14
  s.description = %q{brings clouds to you}
15
15
  s.email = %q{me@geemus.com}
@@ -248,6 +248,7 @@ Gem::Specification.new do |s|
248
248
  "spec/aws/requests/simpledb/list_domains_spec.rb",
249
249
  "spec/aws/requests/simpledb/put_attributes_spec.rb",
250
250
  "spec/aws/requests/simpledb/select_spec.rb",
251
+ "spec/compact_progress_bar_formatter.rb",
251
252
  "spec/lorem.txt",
252
253
  "spec/rackspace/models/servers/server_spec.rb",
253
254
  "spec/rackspace/requests/files/delete_container_spec.rb",
@@ -282,12 +283,23 @@ Gem::Specification.new do |s|
282
283
  "spec/slicehost/requests/get_flavors_spec.rb",
283
284
  "spec/slicehost/requests/get_images_spec.rb",
284
285
  "spec/slicehost/requests/get_slices_spec.rb",
285
- "spec/spec.opts",
286
286
  "spec/spec_helper.rb"
287
287
  ]
288
288
  s.homepage = %q{http://github.com/geemus/fog}
289
289
  s.post_install_message = %q{==================================================
290
290
 
291
+ fog 0.0.41 has a minor change to the API for ec2 servers:
292
+
293
+ # what_it_was => what_it_is
294
+
295
+ ec2.servers.new(:group_id => 'foo') => ec2.servers.new(:groups => ['foo'])
296
+
297
+ Updating to the newest api version also means you can now assign multiple groups:
298
+
299
+ ec2.servers.new(:groups => ['foo', 'bar'])
300
+
301
+ ==================================================
302
+
291
303
  fog 0.0.40 has API changes you should know about.
292
304
 
293
305
  Some changes you might care about happened in the models:
@@ -379,6 +391,7 @@ Gem::Specification.new do |s|
379
391
  "spec/aws/requests/simpledb/list_domains_spec.rb",
380
392
  "spec/aws/requests/simpledb/put_attributes_spec.rb",
381
393
  "spec/aws/requests/simpledb/select_spec.rb",
394
+ "spec/compact_progress_bar_formatter.rb",
382
395
  "spec/rackspace/models/servers/server_spec.rb",
383
396
  "spec/rackspace/requests/files/delete_container_spec.rb",
384
397
  "spec/rackspace/requests/files/delete_object_spec.rb",
data/lib/fog.rb CHANGED
@@ -38,16 +38,40 @@ module Fog
38
38
  load "fog/slicehost.rb"
39
39
  end
40
40
 
41
- def self.credentials(key = :default)
41
+ def self.credential=(new_credential)
42
+ @credential = new_credential
43
+ @credentials = nil
44
+ end
45
+
46
+ def self.credential
47
+ @credential || :default
48
+ end
49
+
50
+ def self.credentials
42
51
  @credentials ||= begin
43
52
  path = File.expand_path('~/.fog')
44
- if File.exists?(path)
53
+ credentials = if File.exists?(path)
45
54
  File.open(path) do |file|
46
- YAML.load(file.read)[key]
55
+ YAML.load(file.read)
47
56
  end
48
57
  else
49
58
  nil
50
59
  end
60
+ unless credentials
61
+ print("\n To run as '#{key}', add credentials like the following to ~/.fog\n")
62
+ yml = <<-YML
63
+
64
+ :#{key}:
65
+ :aws_access_key_id: INTENTIONALLY_LEFT_BLANK
66
+ :aws_secret_access_key: INTENTIONALLY_LEFT_BLANK
67
+ :rackspace_api_key: INTENTIONALLY_LEFT_BLANK
68
+ :rackspace_username: INTENTIONALLY_LEFT_BLANK
69
+ :slicehost_password: INTENTIONALLY_LEFT_BLANK
70
+
71
+ YML
72
+ print(yml)
73
+ end
74
+ credentials[credential]
51
75
  end
52
76
  end
53
77
 
@@ -127,8 +127,12 @@ module Fog
127
127
  # ==== Returns
128
128
  # * EC2 object with connection to aws.
129
129
  def initialize(options={})
130
- @aws_access_key_id = options[:aws_access_key_id]
131
- @aws_secret_access_key = options[:aws_secret_access_key]
130
+ unless @aws_access_key_id = options[:aws_access_key_id]
131
+ raise ArgumentError.new('aws_access_key_id is required to access ec2')
132
+ end
133
+ unless @aws_secret_access_key = options[:aws_secret_access_key]
134
+ raise ArgumentError.new('aws_secret_access_key is required to access ec2')
135
+ end
132
136
  @hmac = HMAC::SHA256.new(@aws_secret_access_key)
133
137
  @host = options[:host] || 'ec2.amazonaws.com'
134
138
  @port = options[:port] || 443
@@ -153,7 +157,7 @@ module Fog
153
157
  'SignatureMethod' => 'HmacSHA256',
154
158
  'SignatureVersion' => '2',
155
159
  'Timestamp' => Time.now.utc.strftime("%Y-%m-%dT%H:%M:%SZ"),
156
- 'Version' => '2009-04-04'
160
+ 'Version' => '2009-11-30'
157
161
  })
158
162
 
159
163
  body = ''
@@ -40,7 +40,7 @@ module Fog
40
40
  end
41
41
 
42
42
  def save
43
- requires :name
43
+ requires :description, :name
44
44
 
45
45
  data = connection.create_security_group(@name, @description).body
46
46
  true
@@ -9,7 +9,7 @@ module Fog
9
9
  attribute :ami_launch_index, 'amiLaunchIndex'
10
10
  attribute :availability_zone, 'availabilityZone'
11
11
  attribute :dns_name, 'dnsName'
12
- attribute :group_id, 'groupId'
12
+ attribute :groups
13
13
  attribute :image_id, 'imageId'
14
14
  attribute :state, 'instanceState'
15
15
  attribute :flavor_id, 'instanceType'
@@ -23,6 +23,11 @@ module Fog
23
23
  attribute :reason
24
24
  attribute :user_data
25
25
 
26
+ def initialize(attributes)
27
+ @groups ||= ["default"]
28
+ super
29
+ end
30
+
26
31
  def addresses
27
32
  requires :id
28
33
 
@@ -99,8 +104,8 @@ module Fog
99
104
  if @availability_zone
100
105
  options['Placement.AvailabilityZone'] = @availability_zone
101
106
  end
102
- if @group_id
103
- options['SecurityGroup'] = @group_id
107
+ @groups.each_with_index do |group, index|
108
+ options["SecurityGroup.#{index}"] = group
104
109
  end
105
110
  if @kernel_id
106
111
  options['KernelId'] = @kernel_id
@@ -26,7 +26,7 @@ module Fog
26
26
  data = connection.describe_instances(server_id).body
27
27
  data['reservationSet'].each do |reservation|
28
28
  reservation['instancesSet'].each do |instance|
29
- self << new(instance)
29
+ self << new(instance.merge(:groups => reservation['groupSet']))
30
30
  end
31
31
  end
32
32
  self
@@ -6,15 +6,15 @@ module Fog
6
6
  class TerminateInstances < Fog::Parsers::Base
7
7
 
8
8
  def reset
9
- @instance = { 'previousState' => {}, 'shutdownState' => {} }
9
+ @instance = { 'previousState' => {}, 'currentState' => {} }
10
10
  @response = { 'instancesSet' => [] }
11
11
  end
12
12
 
13
13
  def start_element(name, attrs = [])
14
14
  if name == 'previousState'
15
15
  @in_previous_state = true
16
- elsif name == 'shutdownState'
17
- @in_shutdown_state = true
16
+ elsif name == 'currentState'
17
+ @in_current_state = true
18
18
  end
19
19
  @value = ''
20
20
  end
@@ -25,25 +25,25 @@ module Fog
25
25
  @instance[name] = @value
26
26
  when 'item'
27
27
  @response['instancesSet'] << @instance
28
- @instance = { 'previousState' => {}, 'shutdownState' => {} }
28
+ @instance = { 'previousState' => {}, 'currentState' => {} }
29
29
  when 'code'
30
30
  if @in_previous_state
31
31
  @instance['previousState'][name] = @value.to_i
32
- elsif @in_shutdown_state
33
- @instance['shutdownState'][name] = @value.to_i
32
+ elsif @in_current_state
33
+ @instance['currentState'][name] = @value.to_i
34
34
  end
35
35
  when 'name'
36
36
  if @in_previous_state
37
37
  @instance['previousState'][name] = @value
38
- elsif @in_shutdown_state
39
- @instance['shutdownState'][name] = @value
38
+ elsif @in_current_state
39
+ @instance['currentState'][name] = @value
40
40
  end
41
41
  when 'previousState'
42
42
  @in_previous_state = false
43
43
  when 'requestId'
44
44
  @response[name] = @value
45
- when 'shutdownState'
46
- @in_shutdown_state = false
45
+ when 'currentState'
46
+ @in_current_state = false
47
47
  end
48
48
  end
49
49
 
@@ -21,7 +21,7 @@ unless Fog.mocking?
21
21
  # * 'Placement.AvailabilityZone'<~String> - Placement constraint for instances
22
22
  # * 'DeviceName'<~String> - ?
23
23
  # * 'Encoding'<~String> - ?
24
- # * 'groupId'<~String> - Name of security group for instances
24
+ # * 'SecurityGroup.n'<~String> - Indexed names of security groups for instances
25
25
  # * 'InstanceType'<~String> - Type of instance to boot. Valid options
26
26
  # in ['m1.small', 'm1.large', 'm1.xlarge', 'c1.medium', 'c1.xlarge', 'm2.2xlarge', 'm2.4xlarge']
27
27
  # default is 'm1.small'
@@ -59,8 +59,12 @@ module Fog
59
59
  # ==== Returns
60
60
  # * S3 object with connection to aws.
61
61
  def initialize(options={})
62
- @aws_access_key_id = options[:aws_access_key_id]
63
- @aws_secret_access_key = options[:aws_secret_access_key]
62
+ unless @aws_access_key_id = options[:aws_access_key_id]
63
+ raise ArgumentError.new('aws_access_key_id is required to access ec2')
64
+ end
65
+ unless @aws_secret_access_key = options[:aws_secret_access_key]
66
+ raise ArgumentError.new('aws_secret_access_key is required to access ec2')
67
+ end
64
68
  @hmac = HMAC::SHA1.new(@aws_secret_access_key)
65
69
  @host = options[:host] || 's3.amazonaws.com'
66
70
  @port = options[:port] || 443
@@ -9,12 +9,18 @@ module Fog
9
9
  unless Fog.mocking?
10
10
 
11
11
  def self.authenticate(options)
12
+ unless @rackspace_api_key = options[:rackspace_api_key]
13
+ raise ArgumentError.new('rackspace_api_key is required to access rackspace')
14
+ end
15
+ unless @rackspace_username = options[:rackspace_username]
16
+ raise ArgumentError.new('rackspace_username is required to access rackspace')
17
+ end
12
18
  connection = Fog::Connection.new("https://auth.api.rackspacecloud.com")
13
19
  response = connection.request({
14
20
  :expects => 204,
15
21
  :headers => {
16
- 'X-Auth-Key' => options[:rackspace_api_key],
17
- 'X-Auth-User' => options[:rackspace_username]
22
+ 'X-Auth-Key' => @rackspace_api_key,
23
+ 'X-Auth-User' => @rackspace_username
18
24
  },
19
25
  :host => 'auth.api.rackspacecloud.com',
20
26
  :method => 'GET',
@@ -30,7 +30,9 @@ module Fog
30
30
  end
31
31
 
32
32
  def initialize(options={})
33
- @password = options[:password]
33
+ unless @password = options[:password]
34
+ raise ArgumentError.new('password is required to access slicehost')
35
+ end
34
36
  @host = options[:host] || "api.slicehost.com"
35
37
  @port = options[:port] || 443
36
38
  @scheme = options[:scheme] || 'https'