Skip to content

Commit

Permalink
Refactor credential handling to support null values and streamline up…
Browse files Browse the repository at this point in the history
…dates
  • Loading branch information
arash77 committed Feb 11, 2025
1 parent 672ac60 commit fa860a6
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 21 deletions.
14 changes: 7 additions & 7 deletions lib/galaxy/managers/credentials.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ def add_or_update_credential(
existing_user_credentials: List[Tuple[UserCredentials, CredentialsGroup, Credential]],
group_id: DecodedDatabaseIdField,
name: str,
value: str,
value: Optional[str],
is_secret: bool = False,
) -> None:
credential = next(
Expand All @@ -140,11 +140,12 @@ def add_or_update_credential(
),
None,
)

if credential:
credential.is_set = bool(value)
if not is_secret:
credential.value = value
if value is not None:
credential.is_set = True
if not is_secret:
credential.value = value
self.session.add(credential)
else:
credential = Credential(
group_id=group_id,
Expand All @@ -153,8 +154,7 @@ def add_or_update_credential(
is_set=bool(value),
value=value if not is_secret else None,
)

self.session.add(credential)
self.session.add(credential)

def update_current_group(
self,
Expand Down
27 changes: 13 additions & 14 deletions lib/galaxy/webapps/galaxy/services/credentials.py
Original file line number Diff line number Diff line change
Expand Up @@ -231,13 +231,12 @@ def _create_or_update_credentials(
raise RequestParameterInvalidException(
f"Variable '{variable_payload.name}' is not defined for service '{service_name}'."
)
if variable_payload.value is not None:
self.credentials_manager.add_or_update_credential(
existing_user_credentials,
user_credential_group_id,
variable_payload.name,
variable_payload.value,
)
self.credentials_manager.add_or_update_credential(
existing_user_credentials,
user_credential_group_id,
variable_payload.name,
variable_payload.value,
)
for secret_payload in group.secrets:
if not any(s.name == secret_payload.name for s in source_credentials.secrets):
raise RequestParameterInvalidException(
Expand All @@ -246,13 +245,13 @@ def _create_or_update_credentials(
if secret_payload.value is not None:
vault_ref = f"{source_type}|{source_id}|{service_name}|{service_version}|{group.name}|{secret_payload.name}"
user_vault.write_secret(vault_ref, secret_payload.value)
self.credentials_manager.add_or_update_credential(
existing_user_credentials,
user_credential_group_id,
secret_payload.name,
secret_payload.value,
is_secret=True,
)
self.credentials_manager.add_or_update_credential(
existing_user_credentials,
user_credential_group_id,
secret_payload.name,
secret_payload.value,
is_secret=True,
)
self.credentials_manager.update_current_group(user.id, user_credentials_id, service_payload.current_group)
session.commit()

Expand Down

0 comments on commit fa860a6

Please sign in to comment.