fog 0.0.39 → 0.0.40

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. data/README.rdoc +88 -31
  2. data/Rakefile +25 -2
  3. data/VERSION +1 -1
  4. data/bin/fog +57 -43
  5. data/fog.gemspec +52 -23
  6. data/lib/fog.rb +7 -4
  7. data/lib/fog/aws/ec2.rb +6 -2
  8. data/lib/fog/aws/models/ec2/address.rb +13 -13
  9. data/lib/fog/aws/models/ec2/addresses.rb +5 -5
  10. data/lib/fog/aws/models/ec2/flavor.rb +19 -0
  11. data/lib/fog/aws/models/ec2/flavors.rb +43 -0
  12. data/lib/fog/aws/models/ec2/image.rb +24 -0
  13. data/lib/fog/aws/models/ec2/images.rb +44 -0
  14. data/lib/fog/aws/models/ec2/{instance.rb → server.rb} +22 -10
  15. data/lib/fog/aws/models/ec2/{instances.rb → servers.rb} +12 -12
  16. data/lib/fog/aws/models/ec2/snapshot.rb +2 -2
  17. data/lib/fog/aws/models/ec2/volume.rb +17 -17
  18. data/lib/fog/aws/models/ec2/volumes.rb +5 -5
  19. data/lib/fog/aws/models/s3/{buckets.rb → directories.rb} +16 -13
  20. data/lib/fog/aws/models/s3/{bucket.rb → directory.rb} +5 -10
  21. data/lib/fog/aws/models/s3/{object.rb → file.rb} +16 -18
  22. data/lib/fog/aws/models/s3/{objects.rb → files.rb} +19 -19
  23. data/lib/fog/aws/requests/ec2/run_instances.rb +1 -1
  24. data/lib/fog/aws/s3.rb +6 -6
  25. data/lib/fog/rackspace/files.rb +6 -3
  26. data/lib/fog/rackspace/models/servers/flavor.rb +26 -1
  27. data/lib/fog/rackspace/models/servers/image.rb +3 -3
  28. data/lib/fog/rackspace/models/servers/server.rb +20 -9
  29. data/lib/fog/rackspace/models/servers/servers.rb +3 -1
  30. data/lib/fog/rackspace/servers.rb +2 -1
  31. data/spec/aws/models/ec2/address_spec.rb +8 -8
  32. data/spec/aws/models/ec2/server_spec.rb +109 -0
  33. data/spec/aws/models/ec2/servers_spec.rb +52 -0
  34. data/spec/aws/models/ec2/snapshot_spec.rb +2 -1
  35. data/spec/aws/models/ec2/volume_spec.rb +22 -22
  36. data/spec/aws/models/s3/directories_spec.rb +49 -0
  37. data/spec/aws/models/s3/directory_spec.rb +112 -0
  38. data/spec/aws/models/s3/file_spec.rb +106 -0
  39. data/spec/aws/models/s3/files_spec.rb +116 -0
  40. data/spec/rackspace/models/servers/server_spec.rb +51 -0
  41. data/spec/shared_examples/server_examples.rb +42 -0
  42. data/spec/spec_helper.rb +1 -1
  43. metadata +51 -22
  44. data/spec/aws/models/ec2/instance_spec.rb +0 -161
  45. data/spec/aws/models/ec2/instances_spec.rb +0 -70
  46. data/spec/aws/models/s3/bucket_spec.rb +0 -129
  47. data/spec/aws/models/s3/buckets_spec.rb +0 -70
  48. data/spec/aws/models/s3/object_spec.rb +0 -121
  49. data/spec/aws/models/s3/objects_spec.rb +0 -141
@@ -2,52 +2,105 @@
2
2
 
3
3
  fog helps you interact with cloud services. fog is a work in progress.
4
4
 
5
- == Features
5
+ == Install
6
6
 
7
- * Low level api calls
8
- * Model level abstractions
9
- * Mocks
7
+ sudo gem install fog
10
8
 
11
- == Supports
9
+ == Getting Started
12
10
 
13
- * AWS EC2
14
- * AWS S3
15
- * AWS SimpleDB (no models yet)
16
- * Rackspace Files (no models yet, just getting started on requests)
17
- * Rackspace Servers (some requests, server model, just getting started)
11
+ You can start stumbling around as soon as you install with the fog command line tool.
12
+ After installing, just type 'fog' to get started.
13
+ If you don't have credentials setup it will let you know what to do.
14
+
15
+ Then just start playing around, fog should let you know if you are forget things.
16
+
17
+ For example if you try to create a server but leave out stuff:
18
+
19
+ server = AWS.servers.create
18
20
 
19
- == Synopsis
21
+ You'll get reminded that things are missing.
22
+
23
+ ArgumentError: image_id is required for this operation
24
+
25
+ So just add the missing stuff and you are off to the races:
26
+
27
+ server = AWS.servers.create(:image_id => 'ami-5ee70037')
28
+
29
+ But don't forget to cleanup or you'll regret it when you get the bill:
30
+
31
+ server.destroy
32
+
33
+ Rinse, repeat, enjoy!
34
+
35
+ == Working with Servers
36
+
37
+ Lets boot up a server on EC2
20
38
 
21
39
  require 'fog'
22
40
 
23
- # turn on mocking (if desired)
24
- Fog.mock!
41
+ # initialize a connection to Amazon Elastic Compute Cloud
42
+ connection = Fog::AWS::EC2.new(
43
+ :aws_access_key_id => id,
44
+ :aws_secret_access_key => key
45
+ )
46
+
47
+ # boot a gentoo server
48
+ server = connection.servers.new(:image_id => 'ami-5ee70037')
49
+
50
+ # wait for it to be ready to do stuff
51
+ server.wait_for { ready? }
52
+
53
+ # DO STUFF
54
+
55
+ # shutdown the server
56
+ server.destroy
57
+
58
+ Now we will try again, but with Rackspace
59
+
60
+ # initialize a connection to Rackspace Servers
61
+ connection = Fog::Rackspace::Servers.new(
62
+ :rackspace_api_key => key,
63
+ :rackspace_username => username
64
+ )
65
+
66
+ # boot a gentoo server (flavor 1 = 256, image 3 = gentoo 2008.0)
67
+ server = connection.servers.new(:flavor_id => 1, :image_id => 3, :name => 'my_server')
68
+
69
+ # wait for it to be ready to do stuff
70
+ server.wait_for { ready? }
71
+
72
+ # DO STUFF
73
+
74
+ # shutdown the server
75
+ server.destroy
25
76
 
26
- # initialize a connection
27
- s3 = Fog::AWS::S3.new(
77
+ == Working with Directories and Files
78
+
79
+ require 'fog'
80
+
81
+ # initialize a connection to Amazon Simple Storage Solution
82
+ connection = Fog::AWS::S3.new(
28
83
  :aws_access_key_id => id,
29
84
  :aws_secret_access_key => key
30
85
  )
31
86
 
32
- # low level requests
33
- s3.put_bucket('bucketname')
34
- s3.put_object('bucketname', 'objectname', 'objectbody')
87
+ # create a directory
88
+ directory = connection.directory.create(:name => 'directoryname')
35
89
 
36
- s3.get_bucket('bucketname')
37
- s3.get_object('bucketname', 'objectname')
90
+ # create a new file in your directory
91
+ directory.files.create(:key => 'filename', :body => 'filebody')
38
92
 
39
- s3.delete_object('bucketname', 'objectname')
40
- s3.delete_bucket('bucketname')
93
+ # connect to your directory
94
+ directory = connection.directories.get('filename')
41
95
 
42
- # models
43
- bucket = s3.buckets.create(:name => 'bucketname')
44
- bucket.objects.create(:key => 'objectname', :body => 'objectbody')
96
+ # get your file
97
+ file = directory.files.get('filename')
45
98
 
46
- bucket = s3.buckets.get('bucketname')
47
- object = bucket.objects.get('objectname')
99
+ # delete the file
100
+ file.destroy
48
101
 
49
- object.destroy
50
- bucket.destroy
102
+ # delete the directory
103
+ directory.destroy
51
104
 
52
105
  == Requirements
53
106
 
@@ -56,9 +109,13 @@ fog helps you interact with cloud services. fog is a work in progress.
56
109
  * mime-types
57
110
  * nokogiri
58
111
 
59
- == Install
112
+ == Supports
60
113
 
61
- sudo gem install fog
114
+ * AWS EC2
115
+ * AWS S3
116
+ * AWS SimpleDB (no models yet)
117
+ * Rackspace Files (no models yet, just getting started on requests)
118
+ * Rackspace Servers (some requests, server model, just getting started)
62
119
 
63
120
  == Copyright
64
121
 
data/Rakefile CHANGED
@@ -7,7 +7,7 @@ require "#{current_directory}/lib/fog"
7
7
  begin
8
8
  require 'jeweler'
9
9
  Jeweler::Tasks.new do |gem|
10
- gem.add_dependency('excon', '>=0.0.14')
10
+ gem.add_dependency('excon', '>=0.0.18')
11
11
  gem.add_dependency('mime-types')
12
12
  gem.add_dependency('nokogiri')
13
13
  gem.add_dependency('ruby-hmac')
@@ -18,7 +18,30 @@ begin
18
18
  gem.homepage = "http://github.com/geemus/fog"
19
19
  gem.authors = ["geemus (Wesley Beary)"]
20
20
  gem.rubyforge_project = "fog"
21
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
21
+
22
+ gem.post_install_message = <<MESSAGE
23
+ #{'=' * 50}
24
+
25
+ fog 0.0.40 has API changes you should know about.
26
+
27
+ Some changes you might care about happened in the models:
28
+
29
+ # what_it_was => what_it_is
30
+
31
+ ec2.instances => ec2.servers
32
+ ec2.instance => ec2.server
33
+
34
+ s3.buckets => s3.directories
35
+ s3.bucket => s3.directory
36
+
37
+ s3.objects => s3.files
38
+ s3.object => s3.file
39
+
40
+ Sorry for the bother, but it will allow for a more consistent API as fog continues to expand.
41
+
42
+ #{'=' * 50}
43
+ MESSAGE
44
+
22
45
  end
23
46
  rescue LoadError
24
47
  puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.39
1
+ 0.0.40
data/bin/fog CHANGED
@@ -3,8 +3,8 @@ require File.join(File.dirname(__FILE__), '..', 'lib', 'fog')
3
3
  require 'irb'
4
4
  require 'yaml'
5
5
 
6
- module AWS
7
- class << self
6
+ module Fog
7
+ module Credentials
8
8
  key = (ARGV.first && :"#{ARGV.first}") || :default
9
9
  unless Fog.credentials(key)
10
10
  print("\n To run as '#{key}', add credentials like the following to ~/.fog\n")
@@ -19,46 +19,65 @@ module AWS
19
19
 
20
20
  YML
21
21
  print(yml)
22
- raise ArgumentError.new("No credentials for :#{key}")
22
+ exit
23
23
  end
24
- if Fog.credentials(key)[:aws_access_key_id] && Fog.credentials(key)[:aws_secret_access_key]
24
+ end
25
+ end
25
26
 
26
- @@ec2 = Fog::AWS::EC2.new(
27
- :aws_access_key_id => Fog.credentials[:aws_access_key_id],
28
- :aws_secret_access_key => Fog.credentials[:aws_secret_access_key]
29
- )
27
+ module AWS
28
+ 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]
30
31
 
31
- @@s3 = Fog::AWS::S3.new(
32
- :aws_access_key_id => Fog.credentials[:aws_access_key_id],
33
- :aws_secret_access_key => Fog.credentials[:aws_secret_access_key]
34
- )
32
+ def connections
33
+ @@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
+ }
38
+ hash[key] = case key
39
+ when :ec2
40
+ Fog::AWS::EC2.new(credentials)
41
+ when :s3
42
+ Fog::AWS::S3.new(credentials)
43
+ end
44
+ end
45
+ end
35
46
 
36
47
  def addresses
37
- @@ec2.addresses
48
+ connections[:ec2].addresses
49
+ end
50
+
51
+ def directories
52
+ connections[:s3].directories
38
53
  end
39
54
 
40
- def buckets
41
- @@s3.buckets
55
+ def flavors
56
+ connections[:ec2].flavors
57
+ end
58
+
59
+ def images
60
+ connections[:ec2].images
42
61
  end
43
62
 
44
- def instances
45
- @@ec2.instances
63
+ def servers
64
+ connections[:ec2].servers
46
65
  end
47
66
 
48
67
  def key_pairs
49
- @@ec2.key_pairs
68
+ connections[:ec2].key_pairs
50
69
  end
51
70
 
52
71
  def security_groups
53
- @@ec2.security_groups
72
+ connections[:ec2].security_groups
54
73
  end
55
74
 
56
75
  def snapshots
57
- @@ec2.snapshots
76
+ connections[:ec2].snapshots
58
77
  end
59
78
 
60
79
  def volumes
61
- @@ec2.volumes
80
+ connections[:ec2].volumes
62
81
  end
63
82
 
64
83
  end
@@ -68,38 +87,33 @@ end
68
87
  module Rackspace
69
88
  class << self
70
89
  key = (ARGV.first && :"#{ARGV.first}") || :default
71
- unless Fog.credentials(key)
72
- print("\n To run as '#{key}', add credentials like the following to ~/.fog\n")
73
- yml = <<-YML
74
-
75
- :#{key}:
76
- :aws_access_key_id: INTENTIONALLY_LEFT_BLANK
77
- :aws_secret_access_key: INTENTIONALLY_LEFT_BLANK
78
- :rackspace_api_key: INTENTIONALLY_LEFT_BLANK
79
- :rackspace_username: INTENTIONALLY_LEFT_BLANK
80
- :slicehost_password: INTENTIONALLY_LEFT_BLANK
81
-
82
- YML
83
- print(yml)
84
- raise ArgumentError.new("No credentials for :#{key}")
85
- end
86
90
  if Fog.credentials(key)[:rackspace_api_key] && Fog.credentials(key)[:rackspace_username]
87
91
 
88
- @@servers = Fog::Rackspace::Servers.new(
89
- :rackspace_api_key => Fog.credentials[:rackspace_api_key],
90
- :rackspace_username => Fog.credentials[:rackspace_username]
91
- )
92
+ def connections
93
+ @@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
+ }
98
+ hash[key] = case key
99
+ when :files
100
+ Fog::Rackspace::Files.new(credentials)
101
+ when :servers
102
+ Fog::Rackspace::Servers.new(credentials)
103
+ end
104
+ end
105
+ end
92
106
 
93
107
  def flavors
94
- @@servers.flavors
108
+ connections[:servers].flavors
95
109
  end
96
110
 
97
111
  def images
98
- @@servers.images
112
+ connections[:servers].images
99
113
  end
100
114
 
101
115
  def servers
102
- @@servers.servers
116
+ connections[:servers].servers
103
117
  end
104
118
 
105
119
  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.39"
8
+ s.version = "0.0.40"
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-04}
12
+ s.date = %q{2010-01-14}
13
13
  s.default_executable = %q{fog}
14
14
  s.description = %q{brings clouds to you}
15
15
  s.email = %q{me@geemus.com}
@@ -33,20 +33,24 @@ Gem::Specification.new do |s|
33
33
  "lib/fog/aws/ec2.rb",
34
34
  "lib/fog/aws/models/ec2/address.rb",
35
35
  "lib/fog/aws/models/ec2/addresses.rb",
36
- "lib/fog/aws/models/ec2/instance.rb",
37
- "lib/fog/aws/models/ec2/instances.rb",
36
+ "lib/fog/aws/models/ec2/flavor.rb",
37
+ "lib/fog/aws/models/ec2/flavors.rb",
38
+ "lib/fog/aws/models/ec2/image.rb",
39
+ "lib/fog/aws/models/ec2/images.rb",
38
40
  "lib/fog/aws/models/ec2/key_pair.rb",
39
41
  "lib/fog/aws/models/ec2/key_pairs.rb",
40
42
  "lib/fog/aws/models/ec2/security_group.rb",
41
43
  "lib/fog/aws/models/ec2/security_groups.rb",
44
+ "lib/fog/aws/models/ec2/server.rb",
45
+ "lib/fog/aws/models/ec2/servers.rb",
42
46
  "lib/fog/aws/models/ec2/snapshot.rb",
43
47
  "lib/fog/aws/models/ec2/snapshots.rb",
44
48
  "lib/fog/aws/models/ec2/volume.rb",
45
49
  "lib/fog/aws/models/ec2/volumes.rb",
46
- "lib/fog/aws/models/s3/bucket.rb",
47
- "lib/fog/aws/models/s3/buckets.rb",
48
- "lib/fog/aws/models/s3/object.rb",
49
- "lib/fog/aws/models/s3/objects.rb",
50
+ "lib/fog/aws/models/s3/directories.rb",
51
+ "lib/fog/aws/models/s3/directory.rb",
52
+ "lib/fog/aws/models/s3/file.rb",
53
+ "lib/fog/aws/models/s3/files.rb",
50
54
  "lib/fog/aws/parsers/ec2/allocate_address.rb",
51
55
  "lib/fog/aws/parsers/ec2/attach_volume.rb",
52
56
  "lib/fog/aws/parsers/ec2/basic.rb",
@@ -180,20 +184,20 @@ Gem::Specification.new do |s|
180
184
  "lib/fog/slicehost/requests/get_slices.rb",
181
185
  "spec/aws/models/ec2/address_spec.rb",
182
186
  "spec/aws/models/ec2/addresses_spec.rb",
183
- "spec/aws/models/ec2/instance_spec.rb",
184
- "spec/aws/models/ec2/instances_spec.rb",
185
187
  "spec/aws/models/ec2/key_pair_spec.rb",
186
188
  "spec/aws/models/ec2/key_pairs_spec.rb",
187
189
  "spec/aws/models/ec2/security_group_spec.rb",
188
190
  "spec/aws/models/ec2/security_groups_spec.rb",
191
+ "spec/aws/models/ec2/server_spec.rb",
192
+ "spec/aws/models/ec2/servers_spec.rb",
189
193
  "spec/aws/models/ec2/snapshot_spec.rb",
190
194
  "spec/aws/models/ec2/snapshots_spec.rb",
191
195
  "spec/aws/models/ec2/volume_spec.rb",
192
196
  "spec/aws/models/ec2/volumes_spec.rb",
193
- "spec/aws/models/s3/bucket_spec.rb",
194
- "spec/aws/models/s3/buckets_spec.rb",
195
- "spec/aws/models/s3/object_spec.rb",
196
- "spec/aws/models/s3/objects_spec.rb",
197
+ "spec/aws/models/s3/directories_spec.rb",
198
+ "spec/aws/models/s3/directory_spec.rb",
199
+ "spec/aws/models/s3/file_spec.rb",
200
+ "spec/aws/models/s3/files_spec.rb",
197
201
  "spec/aws/requests/ec2/allocate_address_spec.rb",
198
202
  "spec/aws/requests/ec2/associate_address_spec.rb",
199
203
  "spec/aws/requests/ec2/attach_volume_spec.rb",
@@ -245,6 +249,7 @@ Gem::Specification.new do |s|
245
249
  "spec/aws/requests/simpledb/put_attributes_spec.rb",
246
250
  "spec/aws/requests/simpledb/select_spec.rb",
247
251
  "spec/lorem.txt",
252
+ "spec/rackspace/models/servers/server_spec.rb",
248
253
  "spec/rackspace/requests/files/delete_container_spec.rb",
249
254
  "spec/rackspace/requests/files/delete_object_spec.rb",
250
255
  "spec/rackspace/requests/files/get_container_spec.rb",
@@ -270,6 +275,7 @@ Gem::Specification.new do |s|
270
275
  "spec/rackspace/requests/servers/list_servers_spec.rb",
271
276
  "spec/rackspace/requests/servers/reboot_server_spec.rb",
272
277
  "spec/rackspace/requests/servers/update_server_spec.rb",
278
+ "spec/shared_examples/server_examples.rb",
273
279
  "spec/slicehost/requests/create_slice_spec.rb",
274
280
  "spec/slicehost/requests/delete_slice_spec.rb",
275
281
  "spec/slicehost/requests/get_backups_spec.rb",
@@ -280,6 +286,27 @@ Gem::Specification.new do |s|
280
286
  "spec/spec_helper.rb"
281
287
  ]
282
288
  s.homepage = %q{http://github.com/geemus/fog}
289
+ s.post_install_message = %q{==================================================
290
+
291
+ fog 0.0.40 has API changes you should know about.
292
+
293
+ Some changes you might care about happened in the models:
294
+
295
+ # what_it_was => what_it_is
296
+
297
+ ec2.instances => ec2.servers
298
+ ec2.instance => ec2.server
299
+
300
+ s3.buckets => s3.directories
301
+ s3.bucket => s3.directory
302
+
303
+ s3.objects => s3.files
304
+ s3.object => s3.file
305
+
306
+ Sorry for the bother, but it will allow for a more consistent API as fog continues to expand.
307
+
308
+ ==================================================
309
+ }
283
310
  s.rdoc_options = ["--charset=UTF-8"]
284
311
  s.require_paths = ["lib"]
285
312
  s.rubyforge_project = %q{fog}
@@ -288,20 +315,20 @@ Gem::Specification.new do |s|
288
315
  s.test_files = [
289
316
  "spec/aws/models/ec2/address_spec.rb",
290
317
  "spec/aws/models/ec2/addresses_spec.rb",
291
- "spec/aws/models/ec2/instance_spec.rb",
292
- "spec/aws/models/ec2/instances_spec.rb",
293
318
  "spec/aws/models/ec2/key_pair_spec.rb",
294
319
  "spec/aws/models/ec2/key_pairs_spec.rb",
295
320
  "spec/aws/models/ec2/security_group_spec.rb",
296
321
  "spec/aws/models/ec2/security_groups_spec.rb",
322
+ "spec/aws/models/ec2/server_spec.rb",
323
+ "spec/aws/models/ec2/servers_spec.rb",
297
324
  "spec/aws/models/ec2/snapshot_spec.rb",
298
325
  "spec/aws/models/ec2/snapshots_spec.rb",
299
326
  "spec/aws/models/ec2/volume_spec.rb",
300
327
  "spec/aws/models/ec2/volumes_spec.rb",
301
- "spec/aws/models/s3/bucket_spec.rb",
302
- "spec/aws/models/s3/buckets_spec.rb",
303
- "spec/aws/models/s3/object_spec.rb",
304
- "spec/aws/models/s3/objects_spec.rb",
328
+ "spec/aws/models/s3/directories_spec.rb",
329
+ "spec/aws/models/s3/directory_spec.rb",
330
+ "spec/aws/models/s3/file_spec.rb",
331
+ "spec/aws/models/s3/files_spec.rb",
305
332
  "spec/aws/requests/ec2/allocate_address_spec.rb",
306
333
  "spec/aws/requests/ec2/associate_address_spec.rb",
307
334
  "spec/aws/requests/ec2/attach_volume_spec.rb",
@@ -352,6 +379,7 @@ Gem::Specification.new do |s|
352
379
  "spec/aws/requests/simpledb/list_domains_spec.rb",
353
380
  "spec/aws/requests/simpledb/put_attributes_spec.rb",
354
381
  "spec/aws/requests/simpledb/select_spec.rb",
382
+ "spec/rackspace/models/servers/server_spec.rb",
355
383
  "spec/rackspace/requests/files/delete_container_spec.rb",
356
384
  "spec/rackspace/requests/files/delete_object_spec.rb",
357
385
  "spec/rackspace/requests/files/get_container_spec.rb",
@@ -377,6 +405,7 @@ Gem::Specification.new do |s|
377
405
  "spec/rackspace/requests/servers/list_servers_spec.rb",
378
406
  "spec/rackspace/requests/servers/reboot_server_spec.rb",
379
407
  "spec/rackspace/requests/servers/update_server_spec.rb",
408
+ "spec/shared_examples/server_examples.rb",
380
409
  "spec/slicehost/requests/create_slice_spec.rb",
381
410
  "spec/slicehost/requests/delete_slice_spec.rb",
382
411
  "spec/slicehost/requests/get_backups_spec.rb",
@@ -391,18 +420,18 @@ Gem::Specification.new do |s|
391
420
  s.specification_version = 3
392
421
 
393
422
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
394
- s.add_runtime_dependency(%q<excon>, [">= 0.0.14"])
423
+ s.add_runtime_dependency(%q<excon>, [">= 0.0.18"])
395
424
  s.add_runtime_dependency(%q<mime-types>, [">= 0"])
396
425
  s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
397
426
  s.add_runtime_dependency(%q<ruby-hmac>, [">= 0"])
398
427
  else
399
- s.add_dependency(%q<excon>, [">= 0.0.14"])
428
+ s.add_dependency(%q<excon>, [">= 0.0.18"])
400
429
  s.add_dependency(%q<mime-types>, [">= 0"])
401
430
  s.add_dependency(%q<nokogiri>, [">= 0"])
402
431
  s.add_dependency(%q<ruby-hmac>, [">= 0"])
403
432
  end
404
433
  else
405
- s.add_dependency(%q<excon>, [">= 0.0.14"])
434
+ s.add_dependency(%q<excon>, [">= 0.0.18"])
406
435
  s.add_dependency(%q<mime-types>, [">= 0"])
407
436
  s.add_dependency(%q<nokogiri>, [">= 0"])
408
437
  s.add_dependency(%q<ruby-hmac>, [">= 0"])