diff --git a/src/interdomain/Config.py b/src/interdomain/Config.py index 38d04994fb0fa1951fb465bc127eb72659dc2eaf..f8e81dd2b598e403b032830d9ef7ad1e155d5ae1 100644 --- a/src/interdomain/Config.py +++ b/src/interdomain/Config.py @@ -11,3 +11,14 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. + +from common.Settings import get_setting + +SETTING_NAME_TOPOLOGY_ABSTRACTOR = 'TOPOLOGY_ABSTRACTOR' +TRUE_VALUES = {'Y', 'YES', 'TRUE', 'T', 'E', 'ENABLE', 'ENABLED'} + +def is_topology_abstractor_enabled() -> bool: + is_enabled = get_setting(SETTING_NAME_TOPOLOGY_ABSTRACTOR, default=None) + if is_enabled is None: return False + str_is_enabled = str(is_enabled).upper() + return str_is_enabled in TRUE_VALUES diff --git a/src/interdomain/service/__main__.py b/src/interdomain/service/__main__.py index f867dc378020f3ef2ca8fb43b3beed538a1ebb9c..b986f8921fd212318dad3598d91e93418a6b51b7 100644 --- a/src/interdomain/service/__main__.py +++ b/src/interdomain/service/__main__.py @@ -18,6 +18,7 @@ from common.Constants import ServiceNameEnum from common.Settings import ( ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, get_env_var_name, get_log_level, get_metrics_port, wait_for_environment_variables) +from interdomain.Config import is_topology_abstractor_enabled from .topology_abstractor.TopologyAbstractor import TopologyAbstractor from .InterdomainService import InterdomainService from .RemoteDomainClients import RemoteDomainClients @@ -63,14 +64,17 @@ def main(): grpc_service.start() # Subscribe to Context Events - topology_abstractor = TopologyAbstractor() - topology_abstractor.start() + topology_abstractor_enabled = is_topology_abstractor_enabled() + if topology_abstractor_enabled: + topology_abstractor = TopologyAbstractor() + topology_abstractor.start() # Wait for Ctrl+C or termination signal while not terminate.wait(timeout=1.0): pass LOGGER.info('Terminating...') - topology_abstractor.stop() + if topology_abstractor_enabled: + topology_abstractor.stop() grpc_service.stop() remote_domain_clients.stop()