in connectors/protocol/connectors.py [0:0]
def validated_doc(self, source_klass):
simple_config = source_klass.get_simple_configuration()
current_config = self.configuration.to_dict()
if self.configuration.is_empty():
# sets the defaults and the flag to NEEDS_CONFIGURATION
self.log_debug("Populated configuration")
return {
"configuration": simple_config,
"status": Status.NEEDS_CONFIGURATION.value,
}
missing_fields = simple_config.keys() - current_config.keys()
fields_missing_properties = filter_nested_dict_by_keys(
DEFAULT_CONFIGURATION.keys(), current_config
)
if not missing_fields and not fields_missing_properties:
return {}
doc = {"configuration": {}}
if missing_fields:
doc["configuration"] = self.updated_configuration_fields(
missing_fields, current_config, simple_config
)
if fields_missing_properties:
updated_config = self.updated_configuration_field_properties(
fields_missing_properties, simple_config
)
doc["configuration"] = deep_merge_dicts(
doc["configuration"], updated_config
)
return doc