diff --git a/software/software/config.py b/software/software/config.py index e7264621..3cabbb52 100644 --- a/software/software/config.py +++ b/software/software/config.py @@ -131,8 +131,20 @@ def read_config(): def get_mgmt_ip(): # Check if initial config is complete - if not os.path.exists('/etc/platform/.initial_config_complete'): + if not os.path.exists(tsc.INITIAL_CONFIG_COMPLETE_FLAG): return None + + # Due to https://storyboard.openstack.org/#!/story/2010722 + # the management IP for AIO-SX can be reconfigured during the startup. + # Check if /var/run/._config_complete exists to be sure that IP + # address will be the correct mgmt IP + try: + if tsc.system_mode == constants.SYSTEM_MODE_SIMPLEX and \ + not os.path.exists(tsc.VOLATILE_CONTROLLER_CONFIG_COMPLETE): + return None + except Exception: + logging.info("not able to get system_mode, continue sw-patch services") + mgmt_hostname = socket.gethostname() return utils.gethostbyname(mgmt_hostname) diff --git a/sw-patch/cgcs-patch/cgcs_patch/config.py b/sw-patch/cgcs-patch/cgcs_patch/config.py index 603d2fb8..d7f9dc4c 100644 --- a/sw-patch/cgcs-patch/cgcs_patch/config.py +++ b/sw-patch/cgcs-patch/cgcs_patch/config.py @@ -79,8 +79,20 @@ def read_config(): def get_mgmt_ip(): # Check if initial config is complete - if not os.path.exists('/etc/platform/.initial_config_complete'): + if not os.path.exists(tsc.INITIAL_CONFIG_COMPLETE_FLAG): return None + + # Due to https://storyboard.openstack.org/#!/story/2010722 + # the management IP for AIO-SX can be reconfigured during the startup. + # Check if /var/run/._config_complete exists to be sure that IP + # address will be the correct mgmt IP + try: + if tsc.system_mode == constants.SYSTEM_MODE_SIMPLEX and \ + not os.path.exists(tsc.VOLATILE_CONTROLLER_CONFIG_COMPLETE): + return None + except Exception: + logging.info("not able to get system_mode, continue sw-patch services") + mgmt_hostname = socket.gethostname() return utils.gethostbyname(mgmt_hostname) diff --git a/sw-patch/cgcs-patch/cgcs_patch/constants.py b/sw-patch/cgcs-patch/cgcs_patch/constants.py index 06830c6e..491399d3 100644 --- a/sw-patch/cgcs-patch/cgcs_patch/constants.py +++ b/sw-patch/cgcs-patch/cgcs_patch/constants.py @@ -56,3 +56,6 @@ LOOPBACK_INTERFACE_NAME = "lo" SEMANTIC_PREAPPLY = 'pre-apply' SEMANTIC_PREREMOVE = 'pre-remove' SEMANTIC_ACTIONS = [SEMANTIC_PREAPPLY, SEMANTIC_PREREMOVE] + +SYSTEM_MODE_SIMPLEX = "simplex" +SYSTEM_MODE_DUPLEX = "duplex"