in connectors/agent/config.py [0:0]
def config_changed(self, new_config):
"""See if configuration passed in new_config will update currently stored configuration
This method takes the new configuration received from the agent and see if there are any changes
to existing configuration.
If new_config contains new values for relevant fields, then True is returned, otherwise it returns False.
"""
# TODO: For now manually check, need to think of a better way?
# Not super proud of this function, but hey it's tested
logger.debug("Checking if config changed")
current_config = self._default_config.copy()
current_config.update(self.specific_config)
def _log_level_changed():
new_config_log_level = nested_get_from_dict(
new_config, ("service", "log_level")
)
current_config_log_level = nested_get_from_dict(
current_config, ("service", "log_level")
)
if new_config_log_level is None:
return False
return current_config_log_level != new_config_log_level
def _elasticsearch_config_changed():
return current_config.get("elasticsearch") != new_config.get(
"elasticsearch"
)
def _connectors_config_changes():
current_connectors = current_config.get("connectors", [])
new_connectors = new_config.get("connectors", [])
if len(current_connectors) != len(new_connectors):
return True
current_connectors_dict = {
connector["connector_id"]: connector for connector in current_connectors
}
new_connectors_dict = {
connector["connector_id"]: connector for connector in new_connectors
}
if set(current_connectors_dict.keys()) != set(new_connectors_dict.keys()):
return True
for connector_id in current_connectors_dict:
current_connector = current_connectors_dict[connector_id]
new_connector = new_connectors_dict[connector_id]
if current_connector != new_connector:
return True
return False
if _log_level_changed():
logger.debug("log_level changed")
return True
if _elasticsearch_config_changed():
logger.debug("elasticsearch changed")
return True
if _connectors_config_changes():
logger.debug("connectors changed")
return True
return False