From 3b4dd0dbde544909128573f8381b751f22a657a2 Mon Sep 17 00:00:00 2001 From: Leonid Maksimov Date: Wed, 4 Oct 2023 14:12:14 +0200 Subject: [PATCH] Improve logging during price uploading --- connect_ext_ppr/service.py | 4 +-- connect_ext_ppr/services/pricing.py | 47 +++++++++++++++++++++++++++-- connect_ext_ppr/tasks_manager.py | 3 ++ 3 files changed, 49 insertions(+), 5 deletions(-) diff --git a/connect_ext_ppr/service.py b/connect_ext_ppr/service.py index e3bfdc0..dada108 100644 --- a/connect_ext_ppr/service.py +++ b/connect_ext_ppr/service.py @@ -304,7 +304,7 @@ def create_ppr(ppr, user_id, deployment, db, client, logger): return new_ppr, file_instance, active_configuration except DBAPIError as ex: - logger.error(ex) + logger.exception(ex) db.rollback() raise ExtensionHttpError.EXT_003() @@ -390,7 +390,7 @@ def add_new_deployment_request(db, dr_data, deployment, account_id, logger): db.commit() return deployment_request except DBAPIError as ex: - logger.error(ex) + logger.exception(ex) db.rollback() raise ExtensionHttpError.EXT_003() diff --git a/connect_ext_ppr/services/pricing.py b/connect_ext_ppr/services/pricing.py index 1970585..8eb5c1f 100644 --- a/connect_ext_ppr/services/pricing.py +++ b/connect_ext_ppr/services/pricing.py @@ -8,8 +8,7 @@ from connect_ext_ppr.errors import PriceUpdateError from connect_ext_ppr.client.exception import CBCClientError -from connect_ext_ppr.utils import execute_with_retry - +from connect_ext_ppr.utils import execute_with_retry, create_dr_file_to_media PRICELIST_COLUMNS = { 'MPN': str, @@ -46,6 +45,7 @@ def apply_pricelist_to_marketplace( cbc_service, connect_client, marketplace, + logger, ): """ @param DeploymentRequest deployment_request: @@ -56,24 +56,63 @@ def apply_pricelist_to_marketplace( @returns None @raises ClientError, CBCClientError """ + logger.info( + 'Pricelist uploading %s_%s_%s: started.', + deployment_request.id, + marketplace.pricelist_id, + marketplace.marketplace, + ) + reseller_id = _identify_reseller_id( client=connect_client, batch_id=marketplace.pricelist_id, marketplace_id=marketplace.marketplace, hub_id=deployment_request.deployment.hub_id, ) + logger.info( + 'Pricelist uploading %s_%s_%s: reseller id %s.', + deployment_request.id, + marketplace.pricelist_id, + marketplace.marketplace, + reseller_id, + ) excel_file, file_name, dataset = _prepare_file( client=connect_client, batch_id=marketplace.pricelist_id, ) + create_dr_file_to_media( + client=connect_client, + account_id=deployment_request.deployment.account_id, + dr_id=deployment_request.id, + filename=file_name, + content=excel_file, + ) + excel_file.seek(0) + + logger.info( + 'Pricelist uploading %s_%s_%s: filename "%s", dataset "%s".', + deployment_request.id, + marketplace.pricelist_id, + marketplace.marketplace, + file_name, + dataset, + ) try: - _process_batch( + data_id = _process_batch( cbc_service=cbc_service, excel_file=excel_file, file_name=file_name, reseller_id=reseller_id, deployment=deployment_request.deployment, dataset=dataset, + logger=logger, + ) + logger.info( + 'Pricelist uploading %s_%s_%s: data_id "%s".', + deployment_request.id, + marketplace.pricelist_id, + marketplace.marketplace, + data_id, ) finally: excel_file.close() @@ -314,6 +353,7 @@ def _process_batch( reseller_id, deployment, dataset, + logger, ): excel_file.seek(0) @@ -322,6 +362,7 @@ def _process_batch( exception_class=CBCClientError, args=(reseller_id, deployment.vendor_id, excel_file), ) + logger.info('Parsed price: %s', parsed_price) data_id = parsed_price['dataId'] diff --git a/connect_ext_ppr/tasks_manager.py b/connect_ext_ppr/tasks_manager.py index 20a7025..648e73d 100644 --- a/connect_ext_ppr/tasks_manager.py +++ b/connect_ext_ppr/tasks_manager.py @@ -328,6 +328,7 @@ def apply_pricelist_task( connect_client, marketplace, db, + logger, **kwargs, ): """ Applies a price list for a sinle marketplace @@ -337,6 +338,7 @@ def apply_pricelist_task( @param Client connect_client: @param MarketplaceConfiguration marketplace: @param Session db: + @param Logger logger: @returns bool @raises TaskException @@ -348,6 +350,7 @@ def apply_pricelist_task( cbc_service, connect_client, marketplace, + logger, ) except (ClientError, CBCClientError) as e: raise TaskException(f'Error while processing pricelist: {e}')