in lib/core/configuration.rb [18:59]
def update(connector_settings, service_type = nil)
if connector_settings.connector_status == Connectors::ConnectorStatus::CREATED
connector_class = Connectors::REGISTRY.connector_class(connector_settings.service_type || service_type)
unless connector_class
Utility::Logger.error("Couldn't find connector for service type #{connector_settings.service_type || service_type}")
return
end
configuration = connector_class.configurable_fields_indifferent_access
features = {}
connector_class.kibana_features.each do |feature_definition, _hsh|
feature = feature_definition[:feature]
subfeature = feature_definition[:subfeature]
enabled = feature_definition[:enabled]
features[feature] = {} unless features.key?(feature)
features[feature][subfeature] = { :enabled => enabled }
end
doc = {
:configuration => configuration,
:features => features
}
doc[:service_type] = service_type if service_type && connector_settings.needs_service_type?
new_connector_status = if configuration.values.all? { |setting| setting[:value].present? }
Utility::Logger.debug("All connector configurable fields provided default values for #{connector_settings.formatted}.")
Connectors::ConnectorStatus::CONFIGURED
else
Connectors::ConnectorStatus::NEEDS_CONFIGURATION
end
doc[:status] = new_connector_status
Utility::Logger.info("Changing connector status to #{new_connector_status} for #{connector_settings.formatted}.")
Core::ElasticConnectorActions.update_connector_fields(connector_settings.id, doc)
end
end