add hook for osapi

This commit is contained in:
Anthony Young
2011-03-24 17:44:27 -07:00
parent f2f08a5b03
commit 06c0eff8ec
3 changed files with 13 additions and 2 deletions

View File

@@ -537,6 +537,7 @@ class CloudController(object):
instance_id=instance_id)
def get_vnc_console(self, context, instance_id, **kwargs):
"""Returns vnc browser url to the dashboard."""
ec2_id = instance_id
instance_id = ec2utils.ec2_id_to_id(ec2_id)
return self.compute_api.get_vnc_console(context,

View File

@@ -481,6 +481,16 @@ class Controller(wsgi.Controller):
return faults.Fault(exc.HTTPNotFound())
return exc.HTTPAccepted()
@scheduler_api.redirect_handler
def get_vnc_console(self, req, id):
""" Returns a url to an instance's ajaxterm console. """
try:
self.compute_api.get_vnc_console(req.environ['nova.context'],
int(id))
except exception.NotFound:
return faults.Fault(exc.HTTPNotFound())
return exc.HTTPAccepted()
@scheduler_api.redirect_handler
def diagnostics(self, req, id):
"""Permit Admins to retrieve server diagnostics."""

View File

@@ -69,7 +69,7 @@ class NovaAuthMiddleware(object):
middleware = self
middleware.tokens = {}
class Proxy():
class TopicProxy():
@staticmethod
def authorize_vnc_console(context, **kwargs):
data = kwargs
@@ -92,7 +92,7 @@ class NovaAuthMiddleware(object):
conn = rpc.Connection.instance(new=True)
consumer = rpc.TopicAdapterConsumer(
connection=conn,
proxy=Proxy,
proxy=TopicProxy,
topic=FLAGS.vnc_console_proxy_topic)
utils.LoopingCall(consumer.fetch,