diff --git a/src/spaceone/config/conf/global_conf.py b/src/spaceone/config/conf/global_conf.py index 28230d4..56c6790 100644 --- a/src/spaceone/config/conf/global_conf.py +++ b/src/spaceone/config/conf/global_conf.py @@ -39,3 +39,17 @@ # System Token Settings TOKEN = "" + +# Default Domain Unified Cost Configuration +DEFAULT_UNIFIED_COST_CONFIG = { + + "run_hour": 0, + "aggregation_day": 15, + "is_last_day": False, + "exchange_source": "Yahoo Finance!", + "exchange_date": 15, + "is_exchange_last_day": False, + "exchange_rate_mode": "AUTO", + # "custom_exchange_rate": {}, + "currency": "KRW", +} diff --git a/src/spaceone/config/service/domain_config_service.py b/src/spaceone/config/service/domain_config_service.py index 4e404a7..74eb1de 100644 --- a/src/spaceone/config/service/domain_config_service.py +++ b/src/spaceone/config/service/domain_config_service.py @@ -2,6 +2,7 @@ from spaceone.core.service import * +from spaceone.core import config from spaceone.config.manager.domain_config_manager import DomainConfigManager from spaceone.config.model import DomainConfig @@ -117,10 +118,15 @@ def get(self, params: dict) -> DomainConfig: domain_config_vo (object) """ - return self.domain_config_mgr.get_domain_config( + domain_config_vo = self.domain_config_mgr.get_domain_config( params["name"], params["domain_id"] ) + if domain_config_vo.name == "settings": + domain_config_vo = self._get_config_vo_with_default_unified_cost_config(domain_config_vo) + + return domain_config_vo + @transaction(permission="config:DomainConfig.read", role_types=["DOMAIN_ADMIN"]) @check_required(["domain_id"]) @append_query_filter(["name", "domain_id"]) @@ -162,3 +168,11 @@ def stat(self, params: dict) -> dict: query = params.get("query", {}) return self.domain_config_mgr.state_domain_configs(query) + + def _get_config_vo_with_default_unified_cost_config(self, domain_config_vo) -> DomainConfig: + domain_config_data: dict = domain_config_vo.data + if not domain_config_data.get("unified_cost_config", {}): + domain_config_data["unified_cost_config"] = config.get_global("DEFAULT_UNIFIED_COST_CONFIG", {}) + domain_config_vo = self.domain_config_mgr.update_domain_config_by_vo({"data": domain_config_data}, + domain_config_vo) + return domain_config_vo