def are_config_settings_valid()

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