Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add logging for expiration, discovery and caching. Remove some debug logs #1223

Merged
merged 2 commits into from
Feb 6, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions fence/resources/ga4gh/passports.py
Original file line number Diff line number Diff line change
Expand Up @@ -515,8 +515,8 @@ def put_gen3_usernames_for_passport_into_cache(
)

logger.debug(
f"Cached users {user_ids_from_passports} for provided passport in "
f"database cache and placed in in-memory cache. "
f"Cached {user_ids_from_passports} passport in "
f"database. "
f"Expires: {expires_at}"
)

Expand Down
25 changes: 13 additions & 12 deletions fence/resources/google/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -582,7 +582,9 @@ def _update_service_account_db_entry(
return service_account_db_entry


def get_or_create_proxy_group_id(expires=None, user_id=None, username=None, session=None, storage_manager=None):
def get_or_create_proxy_group_id(
expires=None, user_id=None, username=None, session=None, storage_manager=None
):
"""
If no username returned from token or database, create a new proxy group
for the given user. Also, add the access privileges.
Expand All @@ -598,17 +600,18 @@ def get_or_create_proxy_group_id(expires=None, user_id=None, username=None, sess
db_session = session or current_app.scoped_session()
manager = storage_manager or flask.current_app.storage_manager

logger.info(f"Proxy Group: {user_id}, {username}")
proxy_group_id = _get_proxy_group_id(user_id=user_id, username=username, session=db_session)
logger.info(f"{proxy_group_id}")
logger.info(f"Getting proxy group for: {user_id}, {username}")
proxy_group_id = _get_proxy_group_id(
user_id=user_id, username=username, session=db_session
)
if not proxy_group_id:
try:
logger.info(
f"No proxy group found for {user_id}, {username}... attempting to create one"
)
user_by_id = query_for_user_by_id(db_session, user_id)
logger.info(f"user_by_id: {user_by_id}")
user_by_username = query_for_user(
session=db_session, username=username
)
logger.info(f"user_by_username: {user_by_username}")
user_by_username = query_for_user(session=db_session, username=username)
except Exception:
user_by_id = None
user_by_username = None
Expand All @@ -630,10 +633,8 @@ def get_or_create_proxy_group_id(expires=None, user_id=None, username=None, sess

proxy_group_id = _create_proxy_group(user_id, username, session=db_session).id

privileges = (
db_session
.query(AccessPrivilege)
.filter(AccessPrivilege.user_id == user_id)
privileges = db_session.query(AccessPrivilege).filter(
AccessPrivilege.user_id == user_id
)

for p in privileges:
Expand Down
2 changes: 2 additions & 0 deletions fence/resources/openid/idp_oauth2.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ def get_value_from_discovery_doc(self, key, default_value):
using their discovery url.
"""
if self.discovery_url:
self.logger.debug(f"Using {self.discovery_url} to get discovery doc")
return_value = default_value
if self.discovery_doc.status_code == requests.codes.ok:
return_value = self.discovery_doc.json().get(key)
Expand Down Expand Up @@ -125,6 +126,7 @@ def get_value_from_discovery_doc(self, key, default_value):
)
# no `discovery_url`, try to use `discovery` config instead
else:
self.logger.debug(f"Using discovery from fence settings")
return_value = self.settings.get("discovery", {}).get(key, default_value)

if not return_value:
Expand Down
4 changes: 3 additions & 1 deletion fence/resources/openid/ras_oauth2.py
Original file line number Diff line number Diff line change
Expand Up @@ -298,7 +298,9 @@ def update_user_authorization(self, user, pkey_cache, db_session=None):
db_session = db_session or current_app.scoped_session()
try:
token_endpoint = self.get_value_from_discovery_doc("token_endpoint", "")

self.logger.info(
f"Using token_endpoint {token_endpoint} from discovery doc"
)
# this get_access_token also persists the refresh token in the db
token = self.get_access_token(user, token_endpoint, db_session)
userinfo = self.get_userinfo(token)
Expand Down
4 changes: 4 additions & 0 deletions fence/sync/passport_sync/ras_sync.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,10 @@ def _parse_single_visa(self, user, encoded_visa, expires, parse_consent_code):
if permission_expiration and expires <= permission_expiration:
project[full_phsid] = privileges
info["tags"] = {"dbgap_role": permission.get("role", "")}
else:
self.logger.info(
f"dbGaP permission for {full_phsid} expired at {permission_expiration}"
)
else:
# Remove visas if its invalid or expired
user.ga4gh_visas_v1 = []
Expand Down
1 change: 0 additions & 1 deletion fence/sync/sync_users.py
Original file line number Diff line number Diff line change
Expand Up @@ -2521,7 +2521,6 @@ def sync_single_user_visas(
)

if user_projects:
self.logger.info("Sync to storage backend [sync_single_user_visas]")
self.sync_to_storage_backend(
user_projects,
info,
Expand Down
Loading