fog 0.0.14 → 0.0.15

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 (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