diff --git a/lib/fog/rackspace/requests/servers/create_server.rb b/lib/fog/rackspace/requests/servers/create_server.rb index e67663197..fb5a8c670 100644 --- a/lib/fog/rackspace/requests/servers/create_server.rb +++ b/lib/fog/rackspace/requests/servers/create_server.rb @@ -21,19 +21,19 @@ unless Fog.mocking? # ==== Returns # * response<~Fog::AWS::Response>: # * body<~Hash>: - # * 'servers'<~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 + # * 'server'<~Hash>: # * 'addresses'<~Hash>: # * 'public'<~Array> - public 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 + # * 'name<~String> - Name of server + # * 'progress'<~Integer> - Progress through current status + # * 'status'<~String> - Current server status def create_server(flavor_id, image_id, options = {}) data = { 'server' => { diff --git a/lib/fog/rackspace/requests/servers/get_server_details.rb b/lib/fog/rackspace/requests/servers/get_server_details.rb index 9b0c30c48..84e46ddff 100644 --- a/lib/fog/rackspace/requests/servers/get_server_details.rb +++ b/lib/fog/rackspace/requests/servers/get_server_details.rb @@ -4,23 +4,23 @@ unless Fog.mocking? module Rackspace class Servers - # List server details for id + # Get details about a server # # ==== Returns # * response<~Fog::AWS::Response>: # * body<~Hash>: - # * 'servers'<~Array>: - # * '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 + # * 'server'<~Hash>: # * 'addresses'<~Hash>: # * 'public'<~Array> - public 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 + # * 'name<~String> - Name of server + # * 'progress'<~Integer> - Progress through current status + # * 'status'<~String> - Current server status def get_server_details(id) request( :expects => 200, diff --git a/lib/fog/rackspace/requests/servers/update_server.rb b/lib/fog/rackspace/requests/servers/update_server.rb index 1e137e6a5..ed15b7262 100644 --- a/lib/fog/rackspace/requests/servers/update_server.rb +++ b/lib/fog/rackspace/requests/servers/update_server.rb @@ -7,11 +7,12 @@ unless Fog.mocking? # Update an existing server # # ==== Parameters + # # server_id<~Integer> - Id of server to update # * options<~Hash>: # * name<~String> - New name for server # * adminPass<~String> - New admin password for server # - def update_server(options = {}) + def update_server(server_id, options = {}) request( :body => options.to_json, :expects => 204, diff --git a/spec/aws/requests/ec2/run_instances_spec.rb b/spec/aws/requests/ec2/run_instances_spec.rb index 63a024281..51244f70f 100644 --- a/spec/aws/requests/ec2/run_instances_spec.rb +++ b/spec/aws/requests/ec2/run_instances_spec.rb @@ -8,6 +8,7 @@ describe 'EC2.run_instances' do end it "should return proper attributes" do + # ami-5ee70037 = gentoo actual = ec2.run_instances('ami-5ee70037', 1, 1) @instance_id = actual.body['instancesSet'].first['instanceId'] actual.body['groupSet'].should be_an(Array) diff --git a/spec/rackspace/requests/servers/create_image_spec.rb b/spec/rackspace/requests/servers/create_image_spec.rb new file mode 100644 index 000000000..9c571850f --- /dev/null +++ b/spec/rackspace/requests/servers/create_image_spec.rb @@ -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 \ No newline at end of file diff --git a/spec/rackspace/requests/servers/create_server_spec.rb b/spec/rackspace/requests/servers/create_server_spec.rb index 44da7c540..78d59d622 100644 --- a/spec/rackspace/requests/servers/create_server_spec.rb +++ b/spec/rackspace/requests/servers/create_server_spec.rb @@ -3,18 +3,30 @@ require File.dirname(__FILE__) + '/../../../spec_helper' describe 'Rackspace::Servers.create_server' do describe 'success' do - it "should return proper attributes" do - # flavor 1 = 256 - # image 3 = gentoo 2008.0 - 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' + after(:each) do + eventually(128) do + servers.delete_server(@server_id) 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 diff --git a/spec/rackspace/requests/servers/delete_image.rb b/spec/rackspace/requests/servers/delete_image.rb new file mode 100644 index 000000000..e4c8dccd2 --- /dev/null +++ b/spec/rackspace/requests/servers/delete_image.rb @@ -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 \ No newline at end of file diff --git a/spec/rackspace/requests/servers/delete_server_spec.rb b/spec/rackspace/requests/servers/delete_server_spec.rb index 372bdbb0e..a9683ddcd 100644 --- a/spec/rackspace/requests/servers/delete_server_spec.rb +++ b/spec/rackspace/requests/servers/delete_server_spec.rb @@ -3,8 +3,24 @@ require File.dirname(__FILE__) + '/../../../spec_helper' describe 'Rackspace::Servers.delete_server' 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 - 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 diff --git a/spec/rackspace/requests/servers/get_server_details_spec.rb b/spec/rackspace/requests/servers/get_server_details_spec.rb index 795561945..5a5dc021e 100644 --- a/spec/rackspace/requests/servers/get_server_details_spec.rb +++ b/spec/rackspace/requests/servers/get_server_details_spec.rb @@ -3,8 +3,41 @@ require File.dirname(__FILE__) + '/../../../spec_helper' describe 'Rackspace::Servers.get_server_details' 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 - 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 diff --git a/spec/rackspace/requests/servers/list_flavors_spec.rb b/spec/rackspace/requests/servers/list_flavors_spec.rb index 3674bb48b..7c758c138 100644 --- a/spec/rackspace/requests/servers/list_flavors_spec.rb +++ b/spec/rackspace/requests/servers/list_flavors_spec.rb @@ -4,6 +4,7 @@ describe 'Rackspace::Servers.list_flavors' do describe 'success' do it "should return proper attributes" do + pending p servers.list_flavors end diff --git a/spec/rackspace/requests/servers/list_images_spec.rb b/spec/rackspace/requests/servers/list_images_spec.rb index 653d3aec6..8f4dff286 100644 --- a/spec/rackspace/requests/servers/list_images_spec.rb +++ b/spec/rackspace/requests/servers/list_images_spec.rb @@ -4,6 +4,7 @@ describe 'Rackspace::Servers.list_images' do describe 'success' do it "should return proper attributes" do + pending p servers.list_images end diff --git a/spec/rackspace/requests/servers/list_servers_details_spec.rb b/spec/rackspace/requests/servers/list_servers_details_spec.rb index a4dcc6f5f..48eadb76a 100644 --- a/spec/rackspace/requests/servers/list_servers_details_spec.rb +++ b/spec/rackspace/requests/servers/list_servers_details_spec.rb @@ -4,6 +4,7 @@ describe 'Rackspace::Servers.list_servers_details' do describe 'success' do it "should return proper attributes" do + pending p servers.list_servers_details end diff --git a/spec/rackspace/requests/servers/list_servers_spec.rb b/spec/rackspace/requests/servers/list_servers_spec.rb index a5bf1449b..262b3eee8 100644 --- a/spec/rackspace/requests/servers/list_servers_spec.rb +++ b/spec/rackspace/requests/servers/list_servers_spec.rb @@ -4,6 +4,7 @@ describe 'Rackspace::Servers.list_servers' do describe 'success' do it "should return proper attributes" do + pending p servers.list_servers end diff --git a/spec/rackspace/requests/servers/reboot_server.rb b/spec/rackspace/requests/servers/reboot_server.rb new file mode 100644 index 000000000..dbcc9f5aa --- /dev/null +++ b/spec/rackspace/requests/servers/reboot_server.rb @@ -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 \ No newline at end of file diff --git a/spec/rackspace/requests/servers/update_server.rb b/spec/rackspace/requests/servers/update_server.rb new file mode 100644 index 000000000..2652b7b56 --- /dev/null +++ b/spec/rackspace/requests/servers/update_server.rb @@ -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 \ No newline at end of file