fog 0.0.14 → 0.0.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. data/Rakefile +17 -2
  2. data/VERSION +1 -1
  3. data/bin/fog +60 -31
  4. data/fog.gemspec +34 -2
  5. data/lib/fog.rb +1 -0
  6. data/lib/fog/aws/ec2.rb +1 -0
  7. data/lib/fog/aws/models/ec2/addresses.rb +1 -1
  8. data/lib/fog/aws/models/ec2/volume.rb +1 -1
  9. data/lib/fog/aws/models/ec2/volumes.rb +4 -2
  10. data/lib/fog/aws/s3.rb +1 -0
  11. data/lib/fog/collection.rb +1 -1
  12. data/lib/fog/connection.rb +8 -9
  13. data/lib/fog/rackspace.rb +31 -0
  14. data/lib/fog/rackspace/files.rb +62 -0
  15. data/lib/fog/rackspace/models/servers/server.rb +51 -0
  16. data/lib/fog/rackspace/models/servers/servers.rb +52 -0
  17. data/lib/fog/rackspace/requests/files/get_containers.rb +56 -0
  18. data/lib/fog/rackspace/requests/files/head_containers.rb +41 -0
  19. data/lib/fog/rackspace/requests/servers/create_server.rb +84 -0
  20. data/lib/fog/rackspace/requests/servers/delete_server.rb +37 -0
  21. data/lib/fog/rackspace/requests/servers/get_flavors.rb +41 -0
  22. data/lib/fog/rackspace/requests/servers/get_images.rb +42 -0
  23. data/lib/fog/rackspace/requests/servers/get_server_details.rb +49 -0
  24. data/lib/fog/rackspace/requests/servers/get_servers.rb +40 -0
  25. data/lib/fog/rackspace/requests/servers/get_servers_details.rb +49 -0
  26. data/lib/fog/rackspace/servers.rb +49 -0
  27. data/spec/aws/models/ec2/instance_spec.rb +38 -9
  28. data/spec/aws/models/ec2/volume_spec.rb +2 -2
  29. data/spec/rackspace/requests/files/get_containers_spec.rb +11 -0
  30. data/spec/rackspace/requests/files/head_containers_spec.rb +11 -0
  31. data/spec/rackspace/requests/servers/create_server_spec.rb +21 -0
  32. data/spec/rackspace/requests/servers/delete_server_spec.rb +11 -0
  33. data/spec/rackspace/requests/servers/get_flavors_spec.rb +11 -0
  34. data/spec/rackspace/requests/servers/get_images_spec.rb +11 -0
  35. data/spec/rackspace/requests/servers/get_server_details_spec.rb +11 -0
  36. data/spec/rackspace/requests/servers/get_servers_details_spec.rb +11 -0
  37. data/spec/rackspace/requests/servers/get_servers_spec.rb +11 -0
  38. data/spec/spec_helper.rb +23 -9
  39. metadata +34 -2
@@ -0,0 +1,49 @@
1
+ unless Fog.mocking?
2
+
3
+ module Fog
4
+ module Rackspace
5
+ class Servers
6
+
7
+ # List all servers details
8
+ #
9
+ # ==== Returns
10
+ # * response<~Fog::AWS::Response>:
11
+ # * body<~Hash>:
12
+ # * 'servers'<~Array>:
13
+ # * 'id'<~Integer> - Id of server
14
+ # * 'name<~String> - Name of server
15
+ # * 'imageId'<~Integer> - Id of image used to boot server
16
+ # * 'flavorId'<~Integer> - Id of servers current flavor
17
+ # * 'hostId'<~String>
18
+ # * 'status'<~String> - Current server status
19
+ # * 'progress'<~Integer> - Progress through current status
20
+ # * 'addresses'<~Hash>:
21
+ # * 'public'<~Array> - public address strings
22
+ # * 'private'<~Array> - private address strings
23
+ # * 'metadata'<~Hash> - metadata
24
+ def get_servers_details
25
+ request(
26
+ :expects => [200, 203],
27
+ :method => 'GET',
28
+ :path => 'servers/detail.json'
29
+ )
30
+ end
31
+
32
+ end
33
+ end
34
+ end
35
+
36
+ else
37
+
38
+ module Fog
39
+ module Rackspace
40
+ class Servers
41
+
42
+ def get_servers_details
43
+ end
44
+
45
+ end
46
+ end
47
+ end
48
+
49
+ end
@@ -0,0 +1,49 @@
1
+ module Fog
2
+ module Rackspace
3
+ class Servers
4
+
5
+ def self.reload
6
+ load "fog/rackspace/models/servers/server.rb"
7
+ load "fog/rackspace/models/servers/servers.rb"
8
+
9
+ load "fog/rackspace/requests/servers/create_server.rb"
10
+ load "fog/rackspace/requests/servers/delete_server.rb"
11
+ load "fog/rackspace/requests/servers/get_flavors.rb"
12
+ load "fog/rackspace/requests/servers/get_images.rb"
13
+ load "fog/rackspace/requests/servers/get_server_details.rb"
14
+ load "fog/rackspace/requests/servers/get_servers.rb"
15
+ load "fog/rackspace/requests/servers/get_servers_details.rb"
16
+ end
17
+
18
+ def initialize(options={})
19
+ credentials = Fog::Rackspace.authenticate(options)
20
+ @auth_token = credentials['X-Auth-Token']
21
+ uri = URI.parse(credentials['X-Server-Management-Url'])
22
+ @host = uri.host
23
+ @path = uri.path
24
+ @port = uri.port
25
+ @scheme = uri.scheme
26
+ @connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}")
27
+ end
28
+
29
+ def request(params)
30
+ response = @connection.request({
31
+ :body => params[:body],
32
+ :expects => params[:expects],
33
+ :headers => {
34
+ 'X-Auth-Token' => @auth_token
35
+ },
36
+ :host => @host,
37
+ :method => params[:method],
38
+ :path => "#{@path}/#{params[:path]}"
39
+ })
40
+ unless response.body.empty?
41
+ response.body = JSON.parse(response.body)
42
+ end
43
+ response
44
+ end
45
+
46
+ end
47
+ end
48
+ end
49
+ Fog::Rackspace::Servers.reload
@@ -4,14 +4,38 @@ describe 'Fog::AWS::EC2::Instance' do
4
4
 
5
5
  describe "#initialize" do
6
6
 
7
- it "should remap attributes from parser" # do
8
- # instance = Fog::AWS::EC2::Instance.new(
9
- # 'instanceId' => 'i-00000000',
10
- # 'publicIp' => '0.0.0.0'
11
- # )
12
- # instance.instance_id.should == 'i-00000000'
13
- # instance.public_ip.should == '0.0.0.0'
14
- # end
7
+ it "should remap attributes from parser" do
8
+ instance = Fog::AWS::EC2::Instance.new({
9
+ 'amiLaunchIndex' => 'ami_launch_index',
10
+ 'availabilityZone' => 'availability_zone',
11
+ 'dnsName' => 'dns_name',
12
+ 'groupId' => 'group_id',
13
+ 'imageId' => 'image_id',
14
+ 'instanceId' => 'instance_id',
15
+ 'instanceState' => { 'name' => 'instance_state' },
16
+ 'instanceType' => 'instance_type',
17
+ 'kernelId' => 'kernel_id',
18
+ 'keyName' => 'key_name',
19
+ 'launchTime' => 'launch_time',
20
+ 'productCodes' => 'product_codes',
21
+ 'privateDnsName' => 'private_dns_name',
22
+ 'ramdiskId' => 'ramdisk_id'
23
+ })
24
+ instance.ami_launch_index.should == 'ami_launch_index'
25
+ instance.availability_zone.should == 'availability_zone'
26
+ instance.dns_name.should == 'dns_name'
27
+ instance.group_id.should == 'group_id'
28
+ instance.image_id.should == 'image_id'
29
+ instance.instance_id.should == 'instance_id'
30
+ instance.instance_state.should == 'instance_state'
31
+ instance.instance_type.should == 'instance_type'
32
+ instance.kernel_id.should == 'kernel_id'
33
+ instance.key_name.should == 'key_name'
34
+ instance.launch_time.should == 'launch_time'
35
+ instance.product_codes.should == 'product_codes'
36
+ instance.private_dns_name.should == 'private_dns_name'
37
+ instance.ramdisk_id.should == 'ramdisk_id'
38
+ end
15
39
 
16
40
  end
17
41
 
@@ -102,7 +126,12 @@ describe 'Fog::AWS::EC2::Instance' do
102
126
  end
103
127
 
104
128
  describe "#volumes" do
105
- it "should have tests"
129
+
130
+ it "should return a Fog::AWS::EC2::Volumes" do
131
+ instance = ec2.instances.new
132
+ instance.volumes.should be_a(Fog::AWS::EC2::Volumes)
133
+ end
134
+
106
135
  end
107
136
 
108
137
  end
@@ -6,14 +6,14 @@ describe 'Fog::AWS::EC2::Volume' do
6
6
 
7
7
  it "should remap attributes from parser" do
8
8
  volume = Fog::AWS::EC2::Volume.new(
9
- 'attachmentTime' => 'now',
9
+ 'attachTime' => 'now',
10
10
  'availabilityZone' => 'us-east-1a',
11
11
  'createTime' => 'recently',
12
12
  'instanceId' => 'i-00000000',
13
13
  'snapshotId' => 'snap-00000000',
14
14
  'volumeId' => 'vol-00000000'
15
15
  )
16
- volume.attachment_time.should == 'now'
16
+ volume.attach_time.should == 'now'
17
17
  volume.availability_zone.should == 'us-east-1a'
18
18
  volume.create_time.should == 'recently'
19
19
  volume.instance_id.should == 'i-00000000'
@@ -0,0 +1,11 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'Rackspace::Files.get_containers' do
4
+ describe 'success' do
5
+
6
+ it "should return proper attributes" do
7
+ p files.get_containers
8
+ end
9
+
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'Rackspace::Files.head_containers' do
4
+ describe 'success' do
5
+
6
+ it "should return proper attributes" do
7
+ p files.head_containers
8
+ end
9
+
10
+ end
11
+ end
@@ -0,0 +1,21 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'Rackspace::Servers.create_server' do
4
+ describe 'success' do
5
+
6
+ it "should return proper attributes" do
7
+ # flavor 1 = 256
8
+ # image 3 = gentoo 2008.0
9
+ data = servers.create_server(1, 3)
10
+ p data
11
+ while true do
12
+ sleep(1)
13
+ details = servers.get_servers_details.body
14
+ p details['servers'].first['progress']
15
+ break if details['servers'].first['status'] == 'ACTIVE'
16
+ end
17
+ servers.delete_server(data.body['server']['id'])
18
+ end
19
+
20
+ end
21
+ end
@@ -0,0 +1,11 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'Rackspace::Servers.delete_server' do
4
+ describe 'success' do
5
+
6
+ it "should return proper attributes" do
7
+ p servers.delete_server(id)
8
+ end
9
+
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'Rackspace::Servers.get_flavors' do
4
+ describe 'success' do
5
+
6
+ it "should return proper attributes" do
7
+ p servers.get_flavors
8
+ end
9
+
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'Rackspace::Servers.get_images' do
4
+ describe 'success' do
5
+
6
+ it "should return proper attributes" do
7
+ p servers.get_images
8
+ end
9
+
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'Rackspace::Servers.get_server_details' do
4
+ describe 'success' do
5
+
6
+ it "should return proper attributes" do
7
+ p servers.get_server_details(id)
8
+ end
9
+
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'Rackspace::Servers.get_servers_details' do
4
+ describe 'success' do
5
+
6
+ it "should return proper attributes" do
7
+ p servers.get_servers_details
8
+ end
9
+
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'Rackspace::Servers.get_servers' do
4
+ describe 'success' do
5
+
6
+ it "should return proper attributes" do
7
+ p servers.get_servers
8
+ end
9
+
10
+ end
11
+ end
@@ -3,7 +3,7 @@ require 'open-uri'
3
3
 
4
4
  current_directory = File.dirname(__FILE__)
5
5
  require "#{current_directory}/../lib/fog"
6
- Fog.mock!
6
+ # Fog.mock!
7
7
 
8
8
  def credentials
9
9
  @credentials ||= begin
@@ -15,30 +15,44 @@ end
15
15
 
16
16
  def ec2
17
17
  Fog::AWS::EC2.new(
18
- :aws_access_key_id => credentials['aws_access_key_id'],
19
- :aws_secret_access_key => credentials['aws_secret_access_key']
18
+ :aws_access_key_id => credentials[:aws_access_key_id],
19
+ :aws_secret_access_key => credentials[:aws_secret_access_key]
20
20
  )
21
21
  end
22
22
 
23
23
  def eu_s3
24
24
  Fog::AWS::S3.new(
25
- :aws_access_key_id => credentials['aws_access_key_id'],
26
- :aws_secret_access_key => credentials['aws_secret_access_key'],
25
+ :aws_access_key_id => credentials[:aws_access_key_id],
26
+ :aws_secret_access_key => credentials[:aws_secret_access_key],
27
27
  :host => 's3-external-3.amazonaws.com'
28
28
  )
29
29
  end
30
30
 
31
+ def files
32
+ Fog::Rackspace::Files.new(
33
+ :rackspace_api_key => credentials[:rackspace_api_key],
34
+ :rackspace_username => credentials[:rackspace_username]
35
+ )
36
+ end
37
+
31
38
  def sdb
32
39
  Fog::AWS::SimpleDB.new(
33
- :aws_access_key_id => credentials['aws_access_key_id'],
34
- :aws_secret_access_key => credentials['aws_secret_access_key']
40
+ :aws_access_key_id => credentials[:aws_access_key_id],
41
+ :aws_secret_access_key => credentials[:aws_secret_access_key]
42
+ )
43
+ end
44
+
45
+ def servers
46
+ Fog::Rackspace::Servers.new(
47
+ :rackspace_api_key => credentials[:rackspace_api_key],
48
+ :rackspace_username => credentials[:rackspace_username]
35
49
  )
36
50
  end
37
51
 
38
52
  def s3
39
53
  Fog::AWS::S3.new(
40
- :aws_access_key_id => credentials['aws_access_key_id'],
41
- :aws_secret_access_key => credentials['aws_secret_access_key']
54
+ :aws_access_key_id => credentials[:aws_access_key_id],
55
+ :aws_secret_access_key => credentials[:aws_secret_access_key]
42
56
  )
43
57
  end
44
58
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.14
4
+ version: 0.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - geemus (Wesley Beary)
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-10-09 00:00:00 -07:00
12
+ date: 2009-10-15 00:00:00 -07:00
13
13
  default_executable: fog
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -169,6 +169,20 @@ files:
169
169
  - lib/fog/errors.rb
170
170
  - lib/fog/model.rb
171
171
  - lib/fog/parser.rb
172
+ - lib/fog/rackspace.rb
173
+ - lib/fog/rackspace/files.rb
174
+ - lib/fog/rackspace/models/servers/server.rb
175
+ - lib/fog/rackspace/models/servers/servers.rb
176
+ - lib/fog/rackspace/requests/files/get_containers.rb
177
+ - lib/fog/rackspace/requests/files/head_containers.rb
178
+ - lib/fog/rackspace/requests/servers/create_server.rb
179
+ - lib/fog/rackspace/requests/servers/delete_server.rb
180
+ - lib/fog/rackspace/requests/servers/get_flavors.rb
181
+ - lib/fog/rackspace/requests/servers/get_images.rb
182
+ - lib/fog/rackspace/requests/servers/get_server_details.rb
183
+ - lib/fog/rackspace/requests/servers/get_servers.rb
184
+ - lib/fog/rackspace/requests/servers/get_servers_details.rb
185
+ - lib/fog/rackspace/servers.rb
172
186
  - lib/fog/response.rb
173
187
  - spec/aws/models/ec2/address_spec.rb
174
188
  - spec/aws/models/ec2/addresses_spec.rb
@@ -238,6 +252,15 @@ files:
238
252
  - spec/aws/requests/simpledb/put_attributes_spec.rb
239
253
  - spec/aws/requests/simpledb/select_spec.rb
240
254
  - spec/lorem.txt
255
+ - spec/rackspace/requests/files/get_containers_spec.rb
256
+ - spec/rackspace/requests/files/head_containers_spec.rb
257
+ - spec/rackspace/requests/servers/create_server_spec.rb
258
+ - spec/rackspace/requests/servers/delete_server_spec.rb
259
+ - spec/rackspace/requests/servers/get_flavors_spec.rb
260
+ - spec/rackspace/requests/servers/get_images_spec.rb
261
+ - spec/rackspace/requests/servers/get_server_details_spec.rb
262
+ - spec/rackspace/requests/servers/get_servers_details_spec.rb
263
+ - spec/rackspace/requests/servers/get_servers_spec.rb
241
264
  - spec/spec.opts
242
265
  - spec/spec_helper.rb
243
266
  has_rdoc: true
@@ -336,4 +359,13 @@ test_files:
336
359
  - spec/aws/requests/simpledb/list_domains_spec.rb
337
360
  - spec/aws/requests/simpledb/put_attributes_spec.rb
338
361
  - spec/aws/requests/simpledb/select_spec.rb
362
+ - spec/rackspace/requests/files/get_containers_spec.rb
363
+ - spec/rackspace/requests/files/head_containers_spec.rb
364
+ - spec/rackspace/requests/servers/create_server_spec.rb
365
+ - spec/rackspace/requests/servers/delete_server_spec.rb
366
+ - spec/rackspace/requests/servers/get_flavors_spec.rb
367
+ - spec/rackspace/requests/servers/get_images_spec.rb
368
+ - spec/rackspace/requests/servers/get_server_details_spec.rb
369
+ - spec/rackspace/requests/servers/get_servers_details_spec.rb
370
+ - spec/rackspace/requests/servers/get_servers_spec.rb
339
371
  - spec/spec_helper.rb