Merge "Optionalize instance_uuid in console_auth_token_get_valid()"

This commit is contained in:
Zuul
2018-01-08 15:47:26 +00:00
committed by Gerrit Code Review
2 changed files with 18 additions and 10 deletions
+8 -2
View File
@@ -2052,16 +2052,22 @@ def console_auth_token_create(context, values):
return IMPL.console_auth_token_create(context, values)
def console_auth_token_get_valid(context, token_hash, instance_uuid):
def console_auth_token_get_valid(context, token_hash, instance_uuid=None):
"""Get a valid console authorization by token_hash and instance_uuid.
The console authorizations expire at the time specified by their
'expires' column. An expired console auth token will not be returned
to the caller - it is treated as if it does not exist.
If instance_uuid is specified, the token is validated against both
expiry and instance_uuid.
If instance_uuid is not specified, the token is validated against
expiry only.
"""
return IMPL.console_auth_token_get_valid(context,
token_hash,
instance_uuid)
instance_uuid=instance_uuid)
def console_auth_token_destroy_all_by_instance(context, instance_uuid):
+10 -8
View File
@@ -1864,7 +1864,7 @@ def instance_destroy(context, instance_uuid, constraint=None):
filter_by(instance_uuid=instance_uuid).\
soft_delete()
# NOTE(snikitin): We can't use model_query here, because there is no
# column 'deleted' in 'tags' table.
# column 'deleted' in 'tags' or 'console_auth_tokens' tables.
context.session.query(models.Tag).filter_by(
resource_id=instance_uuid).delete()
context.session.query(models.ConsoleAuthToken).filter_by(
@@ -6646,13 +6646,15 @@ def console_auth_token_create(context, values):
@pick_context_manager_reader
def console_auth_token_get_valid(context, token_hash, instance_uuid):
_check_instance_exists_in_project(context, instance_uuid)
return context.session.query(models.ConsoleAuthToken).\
filter_by(token_hash=token_hash).\
filter_by(instance_uuid=instance_uuid).\
filter(models.ConsoleAuthToken.expires > timeutils.utcnow_ts()).\
first()
def console_auth_token_get_valid(context, token_hash, instance_uuid=None):
if instance_uuid is not None:
_check_instance_exists_in_project(context, instance_uuid)
query = context.session.query(models.ConsoleAuthToken).\
filter_by(token_hash=token_hash)
if instance_uuid is not None:
query = query.filter_by(instance_uuid=instance_uuid)
return query.filter(
models.ConsoleAuthToken.expires > timeutils.utcnow_ts()).first()
@pick_context_manager_writer