Merge "Fixed broken vncproxy flush tokens patch" into stable/essex

This commit is contained in:
Jenkins 2013-03-25 18:01:18 +00:00 committed by Gerrit Code Review
commit e52e691261
3 changed files with 15 additions and 10 deletions

View File

@ -1561,12 +1561,14 @@ class API(BaseAPI):
return {'url': connect_info['access_url']}
@wrap_check_policy
def validate_vnc_console(self, context, instance_id, host, port):
def validate_vnc_console(self, context, instance_id, host, port,
console_type):
"""Validate VNC Console for an instance."""
instance = self.get(context, instance_id)
output = self._call_compute_message('get_vnc_console',
context,
instance)
context,
instance,
params={"console_type": console_type})
return (port == output['port'] and host == output['host'])
@wrap_check_policy

View File

@ -84,14 +84,15 @@ class ConsoleAuthManager(manager.Manager):
LOG.audit(_("Received Token: %(token)s, %(token_dict)s)"), locals())
def _validate_console(self, token):
def _validate_console(self, context, token):
console_valid = False
token_dict = self.tokens[token]
try:
console_valid = self.compute_api.validate_vnc_console(context,
token_dict['instance_uuid'],
token_dict['instance_id'],
token_dict['host'],
token_dict['port'])
token_dict['port'],
token_dict['console_type'])
except exception.InstanceNotFound:
pass
return console_valid
@ -99,7 +100,7 @@ class ConsoleAuthManager(manager.Manager):
def check_token(self, context, token):
token_valid = token in self.tokens
LOG.audit(_("Checking Token: %(token)s, %(token_valid)s)"), locals())
if token_valid and self._validate_console(token):
if token_valid and self._validate_console(context, token):
return self.tokens[token]
def delete_tokens_for_instance(self, context, instance_id):

View File

@ -767,7 +767,8 @@ class ComputeTestCase(BaseTestCase):
console_valid = self.compute_api.validate_vnc_console(self.context,
instance['uuid'],
'myhost',
'5900')
'5900',
'novnc')
self.assertTrue(console_valid)
self.compute.terminate_instance(self.context, instance['uuid'])
@ -783,7 +784,8 @@ class ComputeTestCase(BaseTestCase):
console_valid = self.compute_api.validate_vnc_console(self.context,
instance['uuid'],
'myhost',
'5900')
'5900',
'novnc')
self.assertFalse(console_valid)
self.compute.terminate_instance(self.context, instance['uuid'])
@ -793,7 +795,7 @@ class ComputeTestCase(BaseTestCase):
self.compute.run_instance(self.context, instance['uuid'])
self.assertRaises(exception.InstanceNotFound,
self.compute_api.validate_vnc_console,
self.context, 5555, 'myhost', '5900')
self.context, 5555, 'myhost', '5900', 'novnc')
self.compute.terminate_instance(self.context, instance['uuid'])
def test_xvpvnc_vnc_console(self):