Class: Core::ConnectorSettings
- Inherits:
-
Object
- Object
- Core::ConnectorSettings
show all
- Defined in:
- lib/core/connector_settings.rb
Defined Under Namespace
Classes: ConnectorNotFoundError
Constant Summary
collapse
- DEFAULT_REQUEST_PIPELINE =
'ent-search-generic-ingestion'
true
- DEFAULT_REDUCE_WHITESPACE =
true
- DEFAULT_RUN_ML_INFERENCE =
true
- DEFAULT_FILTERING =
{}
- DEFAULT_PAGE_SIZE =
100
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(es_response, connectors_meta) ⇒ ConnectorSettings
Returns a new instance of ConnectorSettings.
37
38
39
40
|
# File 'lib/core/connector_settings.rb', line 37
def initialize(es_response, connectors_meta)
@elasticsearch_response = es_response.with_indifferent_access
@connectors_meta = connectors_meta.with_indifferent_access
end
|
Class Method Details
.fetch_by_id(connector_id) ⇒ Object
.fetch_connectors_by_query(query, page_size) ⇒ Object
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
# File 'lib/core/connector_settings.rb', line 119
def self.fetch_connectors_by_query(query, page_size)
connectors_meta = ElasticConnectorActions.connectors_meta
results = []
offset = 0
loop do
response = ElasticConnectorActions.search_connectors(query, page_size, offset)
hits = response.dig('hits', 'hits') || []
total = response.dig('hits', 'total', 'value') || 0
results += hits.map do |hit|
Core::ConnectorSettings.new(hit, connectors_meta)
end
break if results.size >= total
offset += hits.size
end
results
end
|
.fetch_crawler_connectors(page_size = DEFAULT_PAGE_SIZE) ⇒ Object
.fetch_native_connectors(page_size = DEFAULT_PAGE_SIZE) ⇒ Object
42
43
44
45
|
# File 'lib/core/connector_settings.rb', line 42
def self.fetch_native_connectors(page_size = DEFAULT_PAGE_SIZE)
query = { term: { is_native: true } }
fetch_connectors_by_query(query, page_size)
end
|
Instance Method Details
#[](property_name) ⇒ Object
56
57
58
59
|
# File 'lib/core/connector_settings.rb', line 56
def [](property_name)
@elasticsearch_response[:_source][property_name]
end
|
#configuration ⇒ Object
77
78
79
|
# File 'lib/core/connector_settings.rb', line 77
def configuration
self[:configuration]
end
|
#connector_status ⇒ Object
65
66
67
|
# File 'lib/core/connector_settings.rb', line 65
def connector_status
self[:status]
end
|
#connector_status_allows_sync? ⇒ Boolean
105
106
107
108
109
|
# File 'lib/core/connector_settings.rb', line 105
def formatted
properties = ["ID: #{id}"]
properties << "Service type: #{service_type}" if service_type
"connector (#{properties.join(', ')})"
end
|
#id ⇒ Object
52
53
54
|
# File 'lib/core/connector_settings.rb', line 52
def id
@elasticsearch_response[:_id]
end
|
#index_name ⇒ Object
61
62
63
|
# File 'lib/core/connector_settings.rb', line 61
def index_name
self[:index_name]
end
|
#needs_service_type? ⇒ Boolean
111
112
113
|
# File 'lib/core/connector_settings.rb', line 111
def needs_service_type?
service_type.to_s.strip.empty?
end
|
#reduce_whitespace? ⇒ Boolean
#request_pipeline ⇒ Object
#run_ml_inference? ⇒ Boolean
#scheduling_settings ⇒ Object
81
82
83
|
# File 'lib/core/connector_settings.rb', line 81
def scheduling_settings
self[:scheduling]
end
|
#service_type ⇒ Object
73
74
75
|
# File 'lib/core/connector_settings.rb', line 73
def service_type
self[:service_type]
end
|
#valid_index_name? ⇒ Boolean