summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorBrian Waldon <brian.waldon@rackspace.com>2011-11-10 21:06:05 -0500
committerBrian Waldon <brian.waldon@rackspace.com>2011-11-11 13:33:56 -0500
commit0a2d839f1b8b1bc67c3fd3bf5ecc0c4c5ab36b0e (patch)
treeea9b3023f685fd925df76066564622204306185e /nova
parent6bd44ccb3a4bf8536f6bca9b81517d2b24c31f14 (diff)
Converting consoles calls to use instance objects
Related to blueprint internal-uuids Change-Id: I39da4d98ff64e8db22eecb1966f6506e8f14361e
Diffstat (limited to 'nova')
-rw-r--r--nova/api/ec2/cloud.py12
-rw-r--r--nova/compute/api.py12
-rw-r--r--nova/tests/test_compute.py29
3 files changed, 41 insertions, 12 deletions
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)