Merge "Fixed broken vncproxy flush tokens patch" into stable/essex
This commit is contained in:
commit
e52e691261
|
@ -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
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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):
|
||||
|
|
Loading…
Reference in New Issue