From c21d9a40d14b0a343110f1208960443b32e5d84e Mon Sep 17 00:00:00 2001 From: seolmin Date: Tue, 17 Dec 2024 16:50:52 +0900 Subject: [PATCH] fix: add duplication validation logic when using load method in DataTable resource Signed-off-by: seolmin --- .../service/private_data_table_service.py | 15 +++++++++++++++ .../service/public_data_table_service.py | 12 ++++++++++++ 2 files changed, 27 insertions(+) diff --git a/src/spaceone/dashboard/service/private_data_table_service.py b/src/spaceone/dashboard/service/private_data_table_service.py index 13fa2d6..5695caa 100644 --- a/src/spaceone/dashboard/service/private_data_table_service.py +++ b/src/spaceone/dashboard/service/private_data_table_service.py @@ -4,6 +4,8 @@ from spaceone.core.service import * from spaceone.core.error import * + +from spaceone.dashboard.error.data_table import ERROR_UNAVAILABLE_DATA_TABLE from spaceone.dashboard.manager.private_data_table_manager import ( PrivateDataTableManager, ) @@ -383,6 +385,12 @@ def load(self, params: PrivateDataTableLoadRequest) -> dict: params.end, params.vars, ) + + if ds_mgr.state == "UNAVAILABLE": + raise ERROR_UNAVAILABLE_DATA_TABLE( + data_table_id=pri_data_table_vo.data_table_id + ) + return ds_mgr.response_data(params.sort, params.page) else: @@ -398,12 +406,19 @@ def load(self, params: PrivateDataTableLoadRequest) -> dict: widget_id, domain_id, ) + dt_mgr.load( params.granularity, params.start, params.end, params.vars, ) + + if dt_mgr.state == "UNAVAILABLE": + raise ERROR_UNAVAILABLE_DATA_TABLE( + data_table_id=pri_data_table_vo.data_table_id + ) + return dt_mgr.response_data(params.sort, params.page) @transaction( diff --git a/src/spaceone/dashboard/service/public_data_table_service.py b/src/spaceone/dashboard/service/public_data_table_service.py index 910207f..7c508ed 100644 --- a/src/spaceone/dashboard/service/public_data_table_service.py +++ b/src/spaceone/dashboard/service/public_data_table_service.py @@ -413,6 +413,12 @@ def load(self, params: PublicDataTableLoadRequest) -> dict: params.end, params.vars, ) + + if ds_mgr.state == "UNAVAILABLE": + raise ERROR_UNAVAILABLE_DATA_TABLE( + data_table_id=pub_data_table_vo.data_table_id + ) + return ds_mgr.response_data(params.sort, params.page) else: @@ -434,6 +440,12 @@ def load(self, params: PublicDataTableLoadRequest) -> dict: params.end, params.vars, ) + + if dt_mgr.state == "UNAVAILABLE": + raise ERROR_UNAVAILABLE_DATA_TABLE( + data_table_id=pub_data_table_vo.data_table_id + ) + return dt_mgr.response_data(params.sort, params.page) @transaction(