From 212ea7b3edd0a4fd73d400d90c5751d903e8c405 Mon Sep 17 00:00:00 2001 From: Sean Handley Date: Sun, 15 Jul 2012 17:27:44 +0200 Subject: [PATCH] Allow setting of memory and disk drives. --- lib/fog/serverlove/models/compute/server.rb | 8 ++++- .../requests/compute/server_tests.rb | 33 +++++++++++++++---- 2 files changed, 33 insertions(+), 8 deletions(-) diff --git a/lib/fog/serverlove/models/compute/server.rb b/lib/fog/serverlove/models/compute/server.rb index 03e10cba9..49ffda088 100644 --- a/lib/fog/serverlove/models/compute/server.rb +++ b/lib/fog/serverlove/models/compute/server.rb @@ -10,6 +10,12 @@ module Fog attribute :name attribute :cpu + attribute :mem + attribute :ide_0_0, :aliases => 'ide:0:0' + attribute :ide_0_1, :aliases => 'ide:0:1' + attribute :ide_1_0, :aliases => 'ide:1:0' + attribute :ide_1_1, :aliases => 'ide:1:1' + attribute :boot attribute :persistent attribute :vnc_password, :aliases => 'vnc:password' attribute :status @@ -38,7 +44,7 @@ module Fog end def allowed_attributes - allowed = [:name, :cpu, :persistent, :vnc_password] + allowed = [:name, :cpu, :mem, :persistent, :vnc_password] attributes.select {|k,v| allowed.include? k} end end diff --git a/tests/serverlove/requests/compute/server_tests.rb b/tests/serverlove/requests/compute/server_tests.rb index 44ff4a6e8..83834a0f2 100644 --- a/tests/serverlove/requests/compute/server_tests.rb +++ b/tests/serverlove/requests/compute/server_tests.rb @@ -5,15 +5,16 @@ Shindo.tests('Fog::Compute[:serverlove] | server requests', ['serverlove']) do 'name' => String, 'user' => String, 'status' => String, - 'started' => String, + 'started' => Fog::Nullable::String, 'cpu' => Integer, + 'mem' => Integer, 'persistent' => Fog::Nullable::String, - 'vnc:password' => String + 'vnc:password' => Fog::Nullable::String } tests('success') do - attributes = { 'name' => 'Test', 'cpu' => '1000', 'persistent' => 'true' } + attributes = { 'name' => 'Test', 'cpu' => '1000', 'mem' => '1000', 'persistent' => 'true' } tests("#create_server").formats(@server_format) do @server = Fog::Compute[:serverlove].create_server(attributes).body @@ -29,25 +30,43 @@ Shindo.tests('Fog::Compute[:serverlove] | server requests', ['serverlove']) do Fog::Compute[:serverlove].servers.get(@server['server']).name == "Diff" end - tests("#start_server").succeeds do - Fog::Compute[:serverlove].start_server(@server['server']) + tests("assigns drive to server").succeeds do + @image = Fog::Compute[:serverlove].create_image('name' => 'Test', 'size' => '4234567890').body + # Load centos + Fog::Compute[:serverlove].load_standard_image(@image['drive'], '88ed067f-d2b8-42ce-a25f-5297818a3b6f') + @server['ide:0:0'] = @image['drive'] + @server['boot'] = 'ide:0:0' + Fog::Compute[:serverlove].update_server(@server['server'], { 'ide:0:0' => @server['ide:0:0'], 'boot' => 'ide:0:0'}) end - tests("#reset_server").succeeds do + tests("#start_server").returns(true) do + Fog::Compute[:serverlove].start_server(@server['server']) + Fog::Compute[:serverlove].servers.get(@server['server']).status == "active" + end + + tests("#reset_server").returns(true) do Fog::Compute[:serverlove].reset_server(@server['server']) + Fog::Compute[:serverlove].servers.get(@server['server']).status == "active" end tests("#shutdown_server").succeeds do Fog::Compute[:serverlove].shutdown_server(@server['server']) + # Can't guarantee the OS will honour this command so don't test status end - tests("#stop_server").succeeds do + tests("#stop_server").returns(true) do + Fog::Compute[:serverlove].start_server(@server['server']) Fog::Compute[:serverlove].stop_server(@server['server']) + Fog::Compute[:serverlove].servers.get(@server['server']).status == "stopped" end tests("#destroy_server").succeeds do Fog::Compute[:serverlove].destroy_server(@server['server']) end + + tests("destroy test drive").succeeds do + Fog::Compute[:serverlove].destroy_image(@image['drive']) + end end