diff options
| author | Russell Bryant <rbryant@redhat.com> | 2012-08-15 17:08:15 -0400 |
|---|---|---|
| committer | Russell Bryant <rbryant@redhat.com> | 2012-08-16 12:03:01 -0400 |
| commit | ea54ad3dd2053404cb2fbbaa1a3613a5dece6345 (patch) | |
| tree | fdc626eed7eb698b0b1f17e8ff6d7987539640f0 | |
| parent | 574a78f066da5032c53069bc7a8be8fe14ea9d04 (diff) | |
| download | nova-ea54ad3dd2053404cb2fbbaa1a3613a5dece6345.tar.gz nova-ea54ad3dd2053404cb2fbbaa1a3613a5dece6345.tar.xz nova-ea54ad3dd2053404cb2fbbaa1a3613a5dece6345.zip | |
Fix use of non-existant var pool.
This code was using pool, but this variable did not exist. It was
erroneously removed in f50ce35c9cf2e05d205485586da1cb6d5433ba56.
This patch fixes the bug, as well as introduces unit tests for this API
that would have caught the problem.
Part of bug 1037183.
Change-Id: I0784aa314a0224198049dbcbe160084bdd1deee1
| -rw-r--r-- | nova/console/api.py | 2 | ||||
| -rw-r--r-- | nova/tests/console/test_console.py | 70 |
2 files changed, 70 insertions, 2 deletions
diff --git a/nova/console/api.py b/nova/console/api.py index 32004094a..b974f4d93 100644 --- a/nova/console/api.py +++ b/nova/console/api.py @@ -43,7 +43,7 @@ class API(base.Base): def delete_console(self, context, instance_uuid, console_uuid): console = self.db.console_get(context, console_uuid, instance_uuid) topic = rpc.queue_get_for(context, FLAGS.console_topic, - pool['host']) + console['pool']['host']) rpcapi = console_rpcapi.ConsoleAPI(topic=topic) rpcapi.remove_console(context, console['id']) diff --git a/nova/tests/console/test_console.py b/nova/tests/console/test_console.py index 8f9b87fa9..f1e1edc54 100644 --- a/nova/tests/console/test_console.py +++ b/nova/tests/console/test_console.py @@ -18,11 +18,14 @@ """Tests For Console proxy.""" +from nova.console import api as console_api +from nova.console import rpcapi as console_rpcapi from nova import context from nova import db from nova import exception from nova import flags from nova.openstack.common import importutils +from nova.openstack.common import rpc from nova import test FLAGS = flags.FLAGS @@ -30,7 +33,7 @@ flags.DECLARE('console_driver', 'nova.console.manager') class ConsoleTestCase(test.TestCase): - """Test case for console proxy""" + """Test case for console proxy manager""" def setUp(self): super(ConsoleTestCase, self).setUp() self.flags(console_driver='nova.console.fake.FakeConsoleProxy', @@ -116,3 +119,68 @@ class ConsoleTestCase(test.TestCase): self.context, console_id) db.instance_destroy(self.context, instance['uuid']) + + +class ConsoleAPITestCase(test.TestCase): + """Test case for console API""" + def setUp(self): + super(ConsoleAPITestCase, self).setUp() + + self.context = context.RequestContext('fake', 'fake') + self.console_api = console_api.API() + self.fake_uuid = '00000000-aaaa-bbbb-cccc-000000000000' + self.fake_instance = { + 'id': 1, + 'uuid': self.fake_uuid, + 'host': 'fake_host' + } + self.fake_console = { + 'pool': {'host': 'fake_host'}, + 'id': 'fake_id' + } + + def _fake_cast(_ctxt, _topic, _msg): + pass + self.stubs.Set(rpc, 'cast', _fake_cast) + + def _fake_db_console_get(_ctxt, _console_uuid, _instance_uuid): + return self.fake_console + self.stubs.Set(db, 'console_get', _fake_db_console_get) + + def _fake_db_console_get_all_by_instance(_ctxt, _instance_uuid): + return [self.fake_console] + self.stubs.Set(db, 'console_get_all_by_instance', + _fake_db_console_get_all_by_instance) + + def _fake_instance_get_by_uuid(_ctxt, _instance_uuid): + return self.fake_instance + self.stubs.Set(db, 'instance_get_by_uuid', _fake_instance_get_by_uuid) + + def test_get_consoles(self): + console = self.console_api.get_consoles(self.context, self.fake_uuid) + self.assertEqual(console, [self.fake_console]) + + def test_get_console(self): + console = self.console_api.get_console(self.context, self.fake_uuid, + 'fake_id') + self.assertEqual(console, self.fake_console) + + def test_delete_console(self): + self.mox.StubOutWithMock(console_rpcapi.ConsoleAPI, 'remove_console') + + console_rpcapi.ConsoleAPI.remove_console(self.context, 'fake_id') + + self.mox.ReplayAll() + + self.console_api.delete_console(self.context, self.fake_uuid, + 'fake_id') + + def test_create_console(self): + self.mox.StubOutWithMock(console_rpcapi.ConsoleAPI, 'add_console') + + console_rpcapi.ConsoleAPI.add_console(self.context, + self.fake_instance['id']) + + self.mox.ReplayAll() + + self.console_api.create_console(self.context, self.fake_uuid) |
