diff --git a/omniadvisor/config/common_config.ini b/omniadvisor/config/common_config.ini index 404c99f09cc12b8a228bf774a0b6562839da1499..cb390b5fec16e9904fca992ea33bde7f22a2dcb8 100755 --- a/omniadvisor/config/common_config.ini +++ b/omniadvisor/config/common_config.ini @@ -28,4 +28,8 @@ spark.fetch.trace.timeout=30 # Spark从History Sever抓取Trace的间隔用时 spark.fetch.trace.interval=5 # Spark任务执行的超时时间,对比基线的比例 -spark.exec.timeout.ratio=10.0 \ No newline at end of file +spark.exec.timeout.ratio=10.0 + +[webpage] +# admin 页面显示的时区 +admin.timezone=Asia/Shanghai \ No newline at end of file diff --git a/omniadvisor/src/common/constant.py b/omniadvisor/src/common/constant.py index aae0cdc6f985da90e0dca34526ffbbedbe018521..6ca9e8f61fb77597c3db6f1ed496843d6f8ae3ad 100644 --- a/omniadvisor/src/common/constant.py +++ b/omniadvisor/src/common/constant.py @@ -61,6 +61,9 @@ def check_oa_conf() -> None: raise ValueError('The spark history username and password should be provided, or leave both blank, please check' ' common configuration.') + if not OA_CONF.admin_timezone: + raise ValueError('The admin timezone can not be empty, please check common configuration.') + class OmniAdvisorConf: """ @@ -144,6 +147,8 @@ class OmniAdvisorConf: spark_fetch_trace_timeout = _common_config.getint('spark', 'spark.fetch.trace.timeout') spark_fetch_trace_interval = _common_config.getint('spark', 'spark.fetch.trace.interval') spark_exec_timeout_ratio = _common_config.getfloat('spark', 'spark.exec.timeout.ratio') + # webpage页 + admin_timezone = _common_config.get('webpage', 'admin.timezone') # django secret key django_secret_key = CryptoTool.get_django_secretkey() if not django_secret_key: diff --git a/omniadvisor/src/omniadvisor/repository/__init__.py b/omniadvisor/src/omniadvisor/repository/__init__.py index 8116a638a1b8360451ab861e9476b19304fa730e..5734acf395a579766d66d65b1edc26ef3ce5124b 100644 --- a/omniadvisor/src/omniadvisor/repository/__init__.py +++ b/omniadvisor/src/omniadvisor/repository/__init__.py @@ -1,7 +1,8 @@ import django from django.conf import settings -from server.engine.settings import DATABASES +from common.constant import OA_CONF +from server.engine.settings import DATABASES, USE_TZ if not settings.configured: @@ -10,7 +11,8 @@ if not settings.configured: DATABASES=DATABASES, DEBUG=False, INSTALLED_APPS=['server'], - USE_TZ=False + USE_TZ=USE_TZ, + TIME_ZONE=OA_CONF.admin_timezone ) # 初始化 Django 环境 django.setup() diff --git a/omniadvisor/src/omniadvisor/service/spark_service/spark_executor.py b/omniadvisor/src/omniadvisor/service/spark_service/spark_executor.py index 62de86f11a2eea5fffb4cf54699f4b78bbb74323..7bbcdb679aa8ca5e7dd16f771607acec568787ba 100644 --- a/omniadvisor/src/omniadvisor/service/spark_service/spark_executor.py +++ b/omniadvisor/src/omniadvisor/service/spark_service/spark_executor.py @@ -3,6 +3,8 @@ from typing import Tuple from dataclasses import dataclass from datetime import datetime +from django.utils import timezone + from common.constant import OA_CONF from omniadvisor.utils.utils import run_cmd from omniadvisor.utils.logger import global_logger @@ -36,13 +38,13 @@ class SparkExecutor: # 命令列表需全为str类型 cmd_fields = ['timeout', str(timeout)] + cmd_fields - start_time = datetime.now() + start_time = timezone.now() try: exitcode, output = run_cmd(cmd_fields=cmd_fields) except Exception: global_logger.error('During Spark command submission, unknown error occurred.') raise - end_time = datetime.now() + end_time = timezone.now() if exitcode == 0: application_id, total_time_taken = cls._parser_spark_output(spark_output=output) diff --git a/omniadvisor/src/server/engine/settings.py b/omniadvisor/src/server/engine/settings.py index 29ba3deba431fc8d02a0f3c01760b1cf0fca3075..e50db8958258eb1f57fdb2fed410c54604a96550 100644 --- a/omniadvisor/src/server/engine/settings.py +++ b/omniadvisor/src/server/engine/settings.py @@ -121,12 +121,11 @@ AUTH_PASSWORD_VALIDATORS = [ LANGUAGE_CODE = 'en-us' -# TIME_ZONE = 'UTC' -TIME_ZONE = 'Asia/Shanghai' +TIME_ZONE = OA_CONF.admin_timezone USE_I18N = True -USE_TZ = False +USE_TZ = True # Static files (CSS, JavaScript, Images) diff --git a/omniadvisor/tests/omniadvisor/common/test_constant.py b/omniadvisor/tests/omniadvisor/common/test_constant.py index d72a7e142a2d14d28a941b86ecc1e5badaaec939..1d920ecccc91b2771951041c2bc02662ed0b9f89 100644 --- a/omniadvisor/tests/omniadvisor/common/test_constant.py +++ b/omniadvisor/tests/omniadvisor/common/test_constant.py @@ -23,7 +23,8 @@ class TestConstant: postgresql_database_user='user', postgresql_database_password='password', postgresql_database_host='host', - postgresql_database_port='port' + postgresql_database_port='port', + admin_timezone='Asia/Shanghai' )) def test_check_oa_conf_when_normal(self): # 不应抛异常