fog 0.0.14 → 0.0.15
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +17 -2
- data/VERSION +1 -1
- data/bin/fog +60 -31
- data/fog.gemspec +34 -2
- data/lib/fog.rb +1 -0
- data/lib/fog/aws/ec2.rb +1 -0
- data/lib/fog/aws/models/ec2/addresses.rb +1 -1
- data/lib/fog/aws/models/ec2/volume.rb +1 -1
- data/lib/fog/aws/models/ec2/volumes.rb +4 -2
- data/lib/fog/aws/s3.rb +1 -0
- data/lib/fog/collection.rb +1 -1
- data/lib/fog/connection.rb +8 -9
- data/lib/fog/rackspace.rb +31 -0
- data/lib/fog/rackspace/files.rb +62 -0
- data/lib/fog/rackspace/models/servers/server.rb +51 -0
- data/lib/fog/rackspace/models/servers/servers.rb +52 -0
- data/lib/fog/rackspace/requests/files/get_containers.rb +56 -0
- data/lib/fog/rackspace/requests/files/head_containers.rb +41 -0
- data/lib/fog/rackspace/requests/servers/create_server.rb +84 -0
- data/lib/fog/rackspace/requests/servers/delete_server.rb +37 -0
- data/lib/fog/rackspace/requests/servers/get_flavors.rb +41 -0
- data/lib/fog/rackspace/requests/servers/get_images.rb +42 -0
- data/lib/fog/rackspace/requests/servers/get_server_details.rb +49 -0
- data/lib/fog/rackspace/requests/servers/get_servers.rb +40 -0
- data/lib/fog/rackspace/requests/servers/get_servers_details.rb +49 -0
- data/lib/fog/rackspace/servers.rb +49 -0
- data/spec/aws/models/ec2/instance_spec.rb +38 -9
- data/spec/aws/models/ec2/volume_spec.rb +2 -2
- data/spec/rackspace/requests/files/get_containers_spec.rb +11 -0
- data/spec/rackspace/requests/files/head_containers_spec.rb +11 -0
- data/spec/rackspace/requests/servers/create_server_spec.rb +21 -0
- data/spec/rackspace/requests/servers/delete_server_spec.rb +11 -0
- data/spec/rackspace/requests/servers/get_flavors_spec.rb +11 -0
- data/spec/rackspace/requests/servers/get_images_spec.rb +11 -0
- data/spec/rackspace/requests/servers/get_server_details_spec.rb +11 -0
- data/spec/rackspace/requests/servers/get_servers_details_spec.rb +11 -0
- data/spec/rackspace/requests/servers/get_servers_spec.rb +11 -0
- data/spec/spec_helper.rb +23 -9
- 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"
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
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
|
-
|
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
|
-
'
|
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.
|
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,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
|
data/spec/spec_helper.rb
CHANGED
@@ -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[
|
19
|
-
:aws_secret_access_key => credentials[
|
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[
|
26
|
-
:aws_secret_access_key => credentials[
|
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[
|
34
|
-
:aws_secret_access_key => credentials[
|
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[
|
41
|
-
:aws_secret_access_key => credentials[
|
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.
|
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-
|
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
|