in src/extension/src/file_handlers/ExtConfigSettingsHandler.py [0:0]
def are_config_settings_valid(self, config_settings_json):
""" Validates all the configs in <seq_no>.settings file. Raises an exception if any issues found """
try:
if config_settings_json is None or type(config_settings_json) is not dict or not bool(config_settings_json):
self.logger.log_error("Configuration settings not of expected format")
return False
# file contains "runtimeSettings"
if self.runtime_settings_key not in config_settings_json or type(config_settings_json[self.runtime_settings_key]) != list or config_settings_json[self.runtime_settings_key] is None or len(config_settings_json[self.runtime_settings_key]) == 0:
self.logger.log_error("runtimeSettings not of expected format")
return False
# file contains "handlerSettings"
if self.handler_settings_key not in config_settings_json[self.runtime_settings_key][0] or type(config_settings_json[self.runtime_settings_key][0][self.handler_settings_key]) is not dict \
or config_settings_json[self.runtime_settings_key][0][self.handler_settings_key] is None or not bool(config_settings_json[self.runtime_settings_key][0][self.handler_settings_key]):
self.logger.log_error("handlerSettings not of expected format")
return False
# file contains "publicSettings"
if self.public_settings_key not in config_settings_json[self.runtime_settings_key][0][self.handler_settings_key] or type(config_settings_json[self.runtime_settings_key][0][self.handler_settings_key][self.public_settings_key]) is not dict \
or config_settings_json[self.runtime_settings_key][0][self.handler_settings_key][self.public_settings_key] is None or not bool(config_settings_json[self.runtime_settings_key][0][self.handler_settings_key][self.public_settings_key]):
self.logger.log_error("publicSettings not of expected format")
return False
# verifying Configuration settings contain all the mandatory keys
for public_setting in [self.public_settings_all_keys.operation, self.public_settings_all_keys.activity_id, self.public_settings_all_keys.start_time]:
if public_setting in config_settings_json[self.runtime_settings_key][0][self.handler_settings_key][self.public_settings_key] and config_settings_json[self.runtime_settings_key][0][self.handler_settings_key][self.public_settings_key][public_setting]:
continue
else:
self.logger.log_error("Mandatory key missing in publicSettings section of the configuration settings: " + str(public_setting))
return False
return True
except Exception as error:
self.logger.log_error(error)
return False