From 1543374ce1b97cdd79f37a0f0bbf26132480cce6 Mon Sep 17 00:00:00 2001 From: Dariusz Suchojad Date: Sat, 9 Dec 2023 16:39:36 +0100 Subject: [PATCH] GH #755 - Log environment details. --- code/zato-common/src/zato/common/api.py | 1 + .../src/zato/server/base/parallel/__init__.py | 25 +++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/code/zato-common/src/zato/common/api.py b/code/zato-common/src/zato/common/api.py index 3dd31a11d0..4367118f4c 100644 --- a/code/zato-common/src/zato/common/api.py +++ b/code/zato-common/src/zato/common/api.py @@ -140,6 +140,7 @@ class OS_Env: class EnvVariable: Key_Prefix = 'Zato_Config' Key_Missing_Suffix = '_Missing' + Log_Env_Details = 'Zato_Log_Env_Details' # ################################################################################################################################ # ################################################################################################################################ diff --git a/code/zato-server/src/zato/server/base/parallel/__init__.py b/code/zato-server/src/zato/server/base/parallel/__init__.py index 58c84b0ab3..cf2ed56020 100644 --- a/code/zato-server/src/zato/server/base/parallel/__init__.py +++ b/code/zato-server/src/zato/server/base/parallel/__init__.py @@ -34,8 +34,9 @@ from zato.broker import BrokerMessageReceiver from zato.broker.client import BrokerClient from zato.bunch import Bunch -from zato.common.api import DATA_FORMAT, default_internal_modules, EnvFile, GENERIC, HotDeploy, IPC, KVDB as CommonKVDB, \ - RATE_LIMIT, SERVER_STARTUP, SEC_DEF_TYPE, SERVER_UP_STATUS, ZatoKVDB as CommonZatoKVDB, ZATO_ODB_POOL_NAME +from zato.common.api import DATA_FORMAT, default_internal_modules, EnvFile, EnvVariable, GENERIC, HotDeploy, IPC, \ + KVDB as CommonKVDB, RATE_LIMIT, SERVER_STARTUP, SEC_DEF_TYPE, SERVER_UP_STATUS, ZatoKVDB as CommonZatoKVDB, \ + ZATO_ODB_POOL_NAME from zato.common.audit import audit_pii from zato.common.audit_log import AuditLog from zato.common.bearer_token import BearerTokenManager @@ -919,6 +920,23 @@ def handle_enmasse_auto_from(self) -> 'None': # .. and run enmasse with each of them. _ = commands.run_enmasse_async(file_path) +# ################################################################################################################################ + + def log_environment_details(self): + + # First, we need to have the correct variable set .. + if asbool(os.environ.get(EnvVariable.Log_Env_Details)): + + # .. now, we need to have the correct file available .. + path = ['~', 'env', 'details', 'all-zato-env-details.json'] + path = os.path.join(path) + path = os.path.expanduser(path) + + if os.path.exists(path): + with open(path) as f: + data = f.read() + self.logger.info(f'Environment details:\n{d}') + # ################################################################################################################################ @staticmethod @@ -1223,6 +1241,9 @@ def start_server(parallel_server:'ParallelServer', zato_deployment_key:'str'='') if self.deploy_auto_from: self.handle_enmasse_auto_from() + # Optionally, if we appear to be a Docker quickstart environment, log all details about the environment. + self.log_environment_details() + logger.info('Started `%s@%s` (pid: %s)', server.name, server.cluster.name, self.pid) # ################################################################################################################################