From 219327fa63f7bdf0ad5efa8d75a7d8080672b371 Mon Sep 17 00:00:00 2001 From: sanderegg <35365065+sanderegg@users.noreply.github.com> Date: Fri, 1 Apr 2022 11:19:02 +0200 Subject: [PATCH 1/2] a bit more log --- .../simcore_service_director_v2/api/routes/clusters.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/services/director-v2/src/simcore_service_director_v2/api/routes/clusters.py b/services/director-v2/src/simcore_service_director_v2/api/routes/clusters.py index 403ce87634a..33fc7232309 100644 --- a/services/director-v2/src/simcore_service_director_v2/api/routes/clusters.py +++ b/services/director-v2/src/simcore_service_director_v2/api/routes/clusters.py @@ -1,4 +1,5 @@ import logging +from asyncio.log import logger from typing import List from fastapi import APIRouter, Depends, HTTPException @@ -148,13 +149,15 @@ async def get_default_cluster_details( clusters_repo: ClustersRepository = Depends(get_repository(ClustersRepository)), dask_clients_pool: DaskClientsPool = Depends(get_dask_clients_pool), ): - return await _get_cluster_details_with_id( + default_cluster = await _get_cluster_details_with_id( settings=settings, user_id=user_id, cluster_id=DEFAULT_CLUSTER_ID, clusters_repo=clusters_repo, dask_clients_pool=dask_clients_pool, ) + logger.debug("found followind %s", f"{default_cluster=!r}") + return default_cluster @router.get( @@ -170,13 +173,15 @@ async def get_cluster_details( clusters_repo: ClustersRepository = Depends(get_repository(ClustersRepository)), dask_clients_pool: DaskClientsPool = Depends(get_dask_clients_pool), ): - return await _get_cluster_details_with_id( + cluster_details = await _get_cluster_details_with_id( settings=settings, user_id=user_id, cluster_id=cluster_id, clusters_repo=clusters_repo, dask_clients_pool=dask_clients_pool, ) + logger.debug("found followind %s", f"{cluster_details=!r}") + return cluster_details @router.post( From b43e81923aa116e8e4ce9ae49b69a217ae87c605 Mon Sep 17 00:00:00 2001 From: sanderegg <35365065+sanderegg@users.noreply.github.com> Date: Fri, 1 Apr 2022 11:19:20 +0200 Subject: [PATCH 2/2] fix passing of secret strings --- .../director_v2_core.py | 29 +++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/services/web/server/src/simcore_service_webserver/director_v2_core.py b/services/web/server/src/simcore_service_webserver/director_v2_core.py index d32b3fbbd60..8dbb437af72 100644 --- a/services/web/server/src/simcore_service_webserver/director_v2_core.py +++ b/services/web/server/src/simcore_service_webserver/director_v2_core.py @@ -1,4 +1,5 @@ import asyncio +import json import logging from typing import Any, Dict, List, Optional, Tuple, Type, Union from uuid import UUID @@ -12,6 +13,7 @@ from pydantic.types import PositiveInt from servicelib.logging_utils import log_decorator from servicelib.utils import logged_gather +from settings_library.utils_cli import create_json_encoder_wo_secrets from tenacity._asyncio import AsyncRetrying from tenacity.before_sleep import before_sleep_log from tenacity.stop import stop_after_attempt @@ -454,8 +456,7 @@ async def restart(app: web.Application, node_uuid: str) -> None: async def projects_networks_update(app: web.Application, project_id: ProjectID) -> None: settings: DirectorV2Settings = get_plugin_settings(app) backend_url = ( - URL(settings.base_url) - / f"dynamic_services/projects/{project_id}/-/networks" + URL(settings.base_url) / f"dynamic_services/projects/{project_id}/-/networks" ) await _request_director_v2( app, "PATCH", backend_url, expected_status=web.HTTPNoContent @@ -472,7 +473,13 @@ async def create_cluster( "POST", url=(settings.base_url / "clusters").update_query(user_id=int(user_id)), expected_status=web.HTTPCreated, - data=new_cluster.dict(by_alias=True, exclude_unset=True), + data=json.loads( + new_cluster.json( + by_alias=True, + exclude_unset=True, + encoder=create_json_encoder_wo_secrets(ClusterCreate), + ) + ), ) assert isinstance(cluster, dict) # nosec @@ -561,7 +568,13 @@ async def update_cluster( user_id=int(user_id) ), expected_status=web.HTTPOk, - data=cluster_patch.dict(by_alias=True, exclude_unset=True), + data=json.loads( + cluster_patch.json( + by_alias=True, + exclude_unset=True, + encoder=create_json_encoder_wo_secrets(ClusterPatch), + ) + ), on_error={ web.HTTPNotFound.status_code: ( ClusterNotFoundError, @@ -609,7 +622,13 @@ async def ping_cluster(app: web.Application, cluster_ping: ClusterPing) -> None: "POST", url=settings.base_url / "clusters:ping", expected_status=web.HTTPNoContent, - data=cluster_ping.dict(by_alias=True, exclude_unset=True), + data=json.loads( + cluster_ping.json( + by_alias=True, + exclude_unset=True, + encoder=create_json_encoder_wo_secrets(ClusterPing), + ) + ), on_error={ web.HTTPUnprocessableEntity.status_code: ( ClusterPingError,