From 0a2d839f1b8b1bc67c3fd3bf5ecc0c4c5ab36b0e Mon Sep 17 00:00:00 2001 From: Brian Waldon Date: Thu, 10 Nov 2011 21:06:05 -0500 Subject: Converting consoles calls to use instance objects Related to blueprint internal-uuids Change-Id: I39da4d98ff64e8db22eecb1966f6506e8f14361e --- nova/api/ec2/cloud.py | 12 ++++++------ nova/compute/api.py | 12 ++++++------ nova/tests/test_compute.py | 29 +++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 12 deletions(-) (limited to 'nova') diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py index 393df2870..de9b9e660 100644 --- a/nova/api/ec2/cloud.py +++ b/nova/api/ec2/cloud.py @@ -951,8 +951,8 @@ class CloudController(object): else: ec2_id = instance_id instance_id = ec2utils.ec2_id_to_id(ec2_id) - output = self.compute_api.get_console_output( - context, instance_id=instance_id) + instance = self.compute_api.get(context, instance_id) + output = self.compute_api.get_console_output(context, instance) now = utils.utcnow() return {"InstanceId": ec2_id, "Timestamp": now, @@ -961,15 +961,15 @@ class CloudController(object): def get_ajax_console(self, context, instance_id, **kwargs): ec2_id = instance_id[0] instance_id = ec2utils.ec2_id_to_id(ec2_id) - return self.compute_api.get_ajax_console(context, - instance_id=instance_id) + instance = self.compute_api.get(context, instance_id) + return self.compute_api.get_ajax_console(context, instance) def get_vnc_console(self, context, instance_id, **kwargs): """Returns vnc browser url. Used by OS dashboard.""" ec2_id = instance_id instance_id = ec2utils.ec2_id_to_id(ec2_id) - return self.compute_api.get_vnc_console(context, - instance_id=instance_id) + instance = self.compute_api.get(context, instance_id) + return self.compute_api.get_vnc_console(context, instance) def describe_volumes(self, context, volume_id=None, **kwargs): if volume_id: diff --git a/nova/compute/api.py b/nova/compute/api.py index 64884fbde..5996fe5e2 100644 --- a/nova/compute/api.py +++ b/nova/compute/api.py @@ -1456,11 +1456,11 @@ class API(base.Base): """Write a file to the given instance.""" self._cast_compute_message('inject_file', context, instance_id) - def get_ajax_console(self, context, instance_id): + def get_ajax_console(self, context, instance): """Get a url to an AJAX Console.""" output = self._call_compute_message('get_ajax_console', context, - instance_id) + instance['id']) rpc.cast(context, '%s' % FLAGS.ajax_console_proxy_topic, {'method': 'authorize_ajax_console', 'args': {'token': output['token'], 'host': output['host'], @@ -1468,12 +1468,11 @@ class API(base.Base): return {'url': '%s/?token=%s' % (FLAGS.ajax_console_proxy_url, output['token'])} - def get_vnc_console(self, context, instance_id): + def get_vnc_console(self, context, instance): """Get a url to a VNC Console.""" - instance = self.get(context, instance_id) output = self._call_compute_message('get_vnc_console', context, - instance_id) + instance['id']) rpc.call(context, '%s' % FLAGS.vncproxy_topic, {'method': 'authorize_vnc_console', 'args': {'token': output['token'], @@ -1487,8 +1486,9 @@ class API(base.Base): 'hostignore', 'portignore')} - def get_console_output(self, context, instance_id): + def get_console_output(self, context, instance): """Get console output for an an instance.""" + instance_id = instance['id'] return self._call_compute_message('get_console_output', context, instance_id) diff --git a/nova/tests/test_compute.py b/nova/tests/test_compute.py index a4d86deec..0a0224beb 100644 --- a/nova/tests/test_compute.py +++ b/nova/tests/test_compute.py @@ -1839,4 +1839,33 @@ class ComputeAPITestCase(BaseTestCase): instance = self.compute_api.get(self.context, instance_id) self.compute_api.add_fixed_ip(self.context, instance, '1') self.compute_api.remove_fixed_ip(self.context, instance, '192.168.1.1') + + def test_vnc_console(self): + """Make sure we can a vnc console for an instance.""" + def vnc_rpc_call_wrapper(*args, **kwargs): + return {'token': 'asdf', 'host': '0.0.0.0', 'port': 8080} + + self.stubs.Set(rpc, 'call', vnc_rpc_call_wrapper) + + instance_id = self._create_instance() + instance = self.compute_api.get(self.context, instance_id) + console = self.compute_api.get_vnc_console(self.context, instance) + self.compute_api.delete(self.context, instance) + + def test_ajax_console(self): + """Make sure we can a vnc console for an instance.""" + def ajax_rpc_call_wrapper(*args, **kwargs): + return {'token': 'asdf', 'host': '0.0.0.0', 'port': 8080} + + self.stubs.Set(rpc, 'call', ajax_rpc_call_wrapper) + + instance_id = self._create_instance() + instance = self.compute_api.get(self.context, instance_id) + console = self.compute_api.get_ajax_console(self.context, instance) + self.compute_api.delete(self.context, instance) + + def test_console_output(self): + instance_id = self._create_instance() + instance = self.compute_api.get(self.context, instance_id) + console = self.compute_api.get_console_output(self.context, instance) self.compute_api.delete(self.context, instance) -- cgit