1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00

made it through hackday, going back to start filling in rackspace specs

This commit is contained in:
Wesley Beary 2009-10-18 18:11:19 -07:00
parent 7f09aec594
commit 5376a7a4c4
15 changed files with 147 additions and 32 deletions

View file

@ -21,19 +21,19 @@ unless Fog.mocking?
# ==== Returns # ==== Returns
# * response<~Fog::AWS::Response>: # * response<~Fog::AWS::Response>:
# * body<~Hash>: # * body<~Hash>:
# * 'servers'<~Hash>: # * 'server'<~Hash>:
# * 'adminPass'<~String> - Admin password for server
# * 'id'<~Integer> - Id of server
# * 'name<~String> - Name of server
# * 'imageId'<~Integer> - Id of image used to boot server
# * 'flavorId'<~Integer> - Id of servers current flavor
# * 'hostId'<~String>
# * 'status'<~String> - Current server status
# * 'progress'<~Integer> - Progress through current status
# * 'addresses'<~Hash>: # * 'addresses'<~Hash>:
# * 'public'<~Array> - public address strings # * 'public'<~Array> - public address strings
# * 'private'<~Array> - private address strings # * 'private'<~Array> - private address strings
# * 'adminPass'<~String> - Admin password for server
# * 'flavorId'<~Integer> - Id of servers current flavor
# * 'hostId'<~String>
# * 'id'<~Integer> - Id of server
# * 'imageId'<~Integer> - Id of image used to boot server
# * 'metadata'<~Hash> - metadata # * 'metadata'<~Hash> - metadata
# * 'name<~String> - Name of server
# * 'progress'<~Integer> - Progress through current status
# * 'status'<~String> - Current server status
def create_server(flavor_id, image_id, options = {}) def create_server(flavor_id, image_id, options = {})
data = { data = {
'server' => { 'server' => {

View file

@ -4,23 +4,23 @@ unless Fog.mocking?
module Rackspace module Rackspace
class Servers class Servers
# List server details for id # Get details about a server
# #
# ==== Returns # ==== Returns
# * response<~Fog::AWS::Response>: # * response<~Fog::AWS::Response>:
# * body<~Hash>: # * body<~Hash>:
# * 'servers'<~Array>: # * 'server'<~Hash>:
# * 'id'<~Integer> - Id of server
# * 'name<~String> - Name of server
# * 'imageId'<~Integer> - Id of image used to boot server
# * 'flavorId'<~Integer> - Id of servers current flavor
# * 'hostId'<~String>
# * 'status'<~String> - Current server status
# * 'progress'<~Integer> - Progress through current status
# * 'addresses'<~Hash>: # * 'addresses'<~Hash>:
# * 'public'<~Array> - public address strings # * 'public'<~Array> - public address strings
# * 'private'<~Array> - private address strings # * 'private'<~Array> - private address strings
# * 'flavorId'<~Integer> - Id of servers current flavor
# * 'hostId'<~String>
# * 'id'<~Integer> - Id of server
# * 'imageId'<~Integer> - Id of image used to boot server
# * 'metadata'<~Hash> - metadata # * 'metadata'<~Hash> - metadata
# * 'name<~String> - Name of server
# * 'progress'<~Integer> - Progress through current status
# * 'status'<~String> - Current server status
def get_server_details(id) def get_server_details(id)
request( request(
:expects => 200, :expects => 200,

View file

@ -7,11 +7,12 @@ unless Fog.mocking?
# Update an existing server # Update an existing server
# #
# ==== Parameters # ==== Parameters
# # server_id<~Integer> - Id of server to update
# * options<~Hash>: # * options<~Hash>:
# * name<~String> - New name for server # * name<~String> - New name for server
# * adminPass<~String> - New admin password for server # * adminPass<~String> - New admin password for server
# #
def update_server(options = {}) def update_server(server_id, options = {})
request( request(
:body => options.to_json, :body => options.to_json,
:expects => 204, :expects => 204,

View file

@ -8,6 +8,7 @@ describe 'EC2.run_instances' do
end end
it "should return proper attributes" do it "should return proper attributes" do
# ami-5ee70037 = gentoo
actual = ec2.run_instances('ami-5ee70037', 1, 1) actual = ec2.run_instances('ami-5ee70037', 1, 1)
@instance_id = actual.body['instancesSet'].first['instanceId'] @instance_id = actual.body['instancesSet'].first['instanceId']
actual.body['groupSet'].should be_an(Array) actual.body['groupSet'].should be_an(Array)

View file

@ -0,0 +1,12 @@
require File.dirname(__FILE__) + '/../../../spec_helper'
describe 'Rackspace::Servers.create_image' do
describe 'success' do
it "should return proper attributes" do
pending
p servers.create_image(id)
end
end
end

View file

@ -3,18 +3,30 @@ require File.dirname(__FILE__) + '/../../../spec_helper'
describe 'Rackspace::Servers.create_server' do describe 'Rackspace::Servers.create_server' do
describe 'success' do describe 'success' do
it "should return proper attributes" do after(:each) do
# flavor 1 = 256 eventually(128) do
# image 3 = gentoo 2008.0 servers.delete_server(@server_id)
data = servers.create_server(1, 3)
p data
while true do
sleep(1)
details = servers.list_servers_details.body
p details['servers'].first['progress']
break if details['servers'].first['status'] == 'ACTIVE'
end end
servers.delete_server(data.body['server']['id']) end
it "should return proper attributes" do
# flavor 1 = 256, image 3 = gentoo 2008.0
actual = servers.create_server(1, 3).body['server']
@server_id = actual['id']
actual['addresses'].should be_a(Hash)
actual['addresses']['private'].should be_an(Array)
actual['addresses']['private'].first.should be_a(String)
actual['addresses']['public'].should be_an(Array)
actual['addresses']['public'].first.should be_a(String)
actual['adminPass'].should be_a(String)
actual['flavorId'].should be_an(Integer)
actual['hostId'].should be_a(String)
actual['id'].should be_an(Integer)
actual['imageId'].should be_an(Integer)
actual['metadata'].should be_a(Hash)
actual['name'].should be_a(String)
actual['progress'].should be_an(Integer)
actual['status'].should be_a(String)
end end
end end

View file

@ -0,0 +1,12 @@
require File.dirname(__FILE__) + '/../../../spec_helper'
describe 'Rackspace::Servers.delete_image' do
describe 'success' do
it "should return proper attributes" do
pending
p servers.delete_image(id)
end
end
end

View file

@ -3,8 +3,24 @@ require File.dirname(__FILE__) + '/../../../spec_helper'
describe 'Rackspace::Servers.delete_server' do describe 'Rackspace::Servers.delete_server' do
describe 'success' do describe 'success' do
before(:each) do
# flavor 1 = 256, image 3 = gentoo 2008.0
@server_id = servers.create_server(1, 3).body['server']['id']
end
it "should return proper attributes" do it "should return proper attributes" do
p servers.delete_server(id) eventually(128) do
servers.delete_server(@server_id)
end
end
end
describe 'failure' do
it "should raise a NotFound error if the server does not exist" do
lambda {
servers.delete_server(0)
}.should raise_error(Fog::Errors::NotFound)
end end
end end

View file

@ -3,8 +3,41 @@ require File.dirname(__FILE__) + '/../../../spec_helper'
describe 'Rackspace::Servers.get_server_details' do describe 'Rackspace::Servers.get_server_details' do
describe 'success' do describe 'success' do
before(:each) do
# flavor 1 = 256, image 3 = gentoo 2008.0
@server_id = servers.create_server(1, 3).body['server']['id']
end
after(:each) do
eventually(128) do
servers.delete_server(@server_id)
end
end
it "should return proper attributes" do it "should return proper attributes" do
p servers.get_server_details(id) actual = servers.get_server_details(@server_id).body['server']
actual['addresses'].should be_a(Hash)
actual['addresses']['private'].should be_an(Array)
actual['addresses']['private'].first.should be_a(String)
actual['addresses']['public'].should be_an(Array)
actual['addresses']['public'].first.should be_a(String)
actual['flavorId'].should be_an(Integer)
actual['hostId'].should be_a(String)
actual['id'].should be_an(Integer)
actual['imageId'].should be_an(Integer)
actual['metadata'].should be_a(Hash)
actual['name'].should be_a(String)
actual['progress'].should be_an(Integer)
actual['status'].should be_a(String)
end
end
describe 'failure' do
it "should raise a NotFound error if the server does not exist" do
lambda {
servers.get_server_details(0)
}.should raise_error(Fog::Errors::NotFound)
end end
end end

View file

@ -4,6 +4,7 @@ describe 'Rackspace::Servers.list_flavors' do
describe 'success' do describe 'success' do
it "should return proper attributes" do it "should return proper attributes" do
pending
p servers.list_flavors p servers.list_flavors
end end

View file

@ -4,6 +4,7 @@ describe 'Rackspace::Servers.list_images' do
describe 'success' do describe 'success' do
it "should return proper attributes" do it "should return proper attributes" do
pending
p servers.list_images p servers.list_images
end end

View file

@ -4,6 +4,7 @@ describe 'Rackspace::Servers.list_servers_details' do
describe 'success' do describe 'success' do
it "should return proper attributes" do it "should return proper attributes" do
pending
p servers.list_servers_details p servers.list_servers_details
end end

View file

@ -4,6 +4,7 @@ describe 'Rackspace::Servers.list_servers' do
describe 'success' do describe 'success' do
it "should return proper attributes" do it "should return proper attributes" do
pending
p servers.list_servers p servers.list_servers
end end

View file

@ -0,0 +1,12 @@
require File.dirname(__FILE__) + '/../../../spec_helper'
describe 'Rackspace::Servers.reboot_server' do
describe 'success' do
it "should return proper attributes" do
pending
p servers.reboot_server(id, 'HARD')
end
end
end

View file

@ -0,0 +1,12 @@
require File.dirname(__FILE__) + '/../../../spec_helper'
describe 'Rackspace::Servers.update_server' do
describe 'success' do
it "should return proper attributes" do
pending
p servers.update_server(id, :name => 'foo', :adminPass => 'bar')
end
end
end