elastic-enterprise-search 0.3.1 → 7.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.ci/.gitignore +1 -0
- data/.ci/Dockerfile +12 -0
- data/.ci/certs/README.md +50 -0
- data/.ci/certs/ca.crt +20 -0
- data/.ci/certs/ca.key +27 -0
- data/.ci/certs/testnode.crt +21 -0
- data/.ci/certs/testnode.key +27 -0
- data/.ci/certs/testnode_no_san.crt +19 -0
- data/.ci/certs/testnode_no_san.key +27 -0
- data/.ci/functions/cleanup.sh +67 -0
- data/.ci/functions/imports.sh +59 -0
- data/.ci/functions/wait-for-container.sh +36 -0
- data/.ci/jobs/defaults.yml +69 -0
- data/.ci/jobs/elastic+enterprise-search-ruby+7.11.yml +12 -0
- data/.ci/jobs/elastic+enterprise-search-ruby+master.yml +12 -0
- data/.ci/jobs/elastic+enterprise-search-ruby+pull-request.yml +19 -0
- data/.ci/run-elasticsearch.sh +127 -0
- data/.ci/run-enterprise-search.sh +71 -0
- data/.ci/run-local.sh +14 -0
- data/.ci/run-repository.sh +49 -0
- data/.ci/run-tests +27 -0
- data/.ci/test-matrix.yml +14 -0
- data/.github/workflows/rubocop.yml +15 -0
- data/.github/workflows/testing.yml +40 -0
- data/.gitignore +4 -0
- data/.rubocop.yml +52 -0
- data/CONTRIBUTING.md +43 -0
- data/Gemfile +23 -1
- data/{LICENSE.txt → LICENSE} +33 -32
- data/README.md +27 -147
- data/Rakefile +48 -1
- data/docs/guide/app-search-api.asciidoc +186 -0
- data/docs/guide/connecting.asciidoc +125 -0
- data/docs/guide/development.asciidoc +42 -0
- data/docs/guide/enterprise-search-api.asciidoc +46 -0
- data/docs/guide/index.asciidoc +19 -0
- data/docs/guide/installation.asciidoc +18 -0
- data/docs/guide/overview.asciidoc +59 -0
- data/docs/guide/release_notes/710.asciidoc +4 -0
- data/docs/guide/release_notes/711.asciidoc +27 -0
- data/docs/guide/release_notes/712.asciidoc +38 -0
- data/docs/guide/release_notes/index.asciidoc +14 -0
- data/docs/guide/workplace-search-api.asciidoc +121 -0
- data/elastic-enterprise-search.gemspec +49 -13
- data/lib/elastic-enterprise-search.rb +20 -1
- data/lib/elastic/.rubocop.yml +6 -0
- data/lib/elastic/app-search/api/add_meta_engine_source.rb +51 -0
- data/lib/elastic/app-search/api/api_logs.rb +62 -0
- data/lib/elastic/app-search/api/count_analytics.rb +52 -0
- data/lib/elastic/app-search/api/create_curation.rb +54 -0
- data/lib/elastic/app-search/api/create_engine.rb +53 -0
- data/lib/elastic/app-search/api/create_synonym_set.rb +51 -0
- data/lib/elastic/app-search/api/curation.rb +53 -0
- data/lib/elastic/app-search/api/delete_curation.rb +53 -0
- data/lib/elastic/app-search/api/delete_documents.rb +51 -0
- data/lib/elastic/app-search/api/delete_engine.rb +50 -0
- data/lib/elastic/app-search/api/delete_meta_engine_source.rb +51 -0
- data/lib/elastic/app-search/api/delete_synonym_set.rb +53 -0
- data/lib/elastic/app-search/api/documents.rb +51 -0
- data/lib/elastic/app-search/api/engine.rb +50 -0
- data/lib/elastic/app-search/api/index_documents.rb +51 -0
- data/lib/elastic/app-search/api/list_curations.rb +52 -0
- data/lib/elastic/app-search/api/list_documents.rb +52 -0
- data/lib/elastic/app-search/api/list_engines.rb +49 -0
- data/lib/elastic/app-search/api/list_synonym_sets.rb +52 -0
- data/lib/elastic/app-search/api/log_clickthrough.rb +57 -0
- data/lib/elastic/app-search/api/multi_search.rb +51 -0
- data/lib/elastic/app-search/api/put_curation.rb +57 -0
- data/lib/elastic/app-search/api/put_documents.rb +51 -0
- data/lib/elastic/app-search/api/put_schema.rb +51 -0
- data/lib/elastic/app-search/api/put_search_settings.rb +51 -0
- data/lib/elastic/app-search/api/put_synonym_set.rb +54 -0
- data/lib/elastic/app-search/api/query_suggestion.rb +54 -0
- data/lib/elastic/app-search/api/reset_search_settings.rb +50 -0
- data/lib/elastic/app-search/api/schema.rb +50 -0
- data/lib/elastic/app-search/api/search.rb +50 -0
- data/lib/elastic/app-search/api/search_settings.rb +50 -0
- data/lib/elastic/app-search/api/synonym_set.rb +53 -0
- data/lib/elastic/app-search/api/top_clicks_analytics.rb +54 -0
- data/lib/elastic/app-search/api/top_queries_analytics.rb +53 -0
- data/lib/elastic/app-search/app_search.rb +82 -0
- data/lib/elastic/enterprise-search/api/health.rb +43 -0
- data/lib/elastic/enterprise-search/api/put_read_only.rb +44 -0
- data/lib/elastic/enterprise-search/api/read_only.rb +43 -0
- data/lib/elastic/enterprise-search/api/stats.rb +45 -0
- data/lib/elastic/enterprise-search/api/version.rb +43 -0
- data/lib/elastic/enterprise-search/client.rb +93 -15
- data/lib/elastic/enterprise-search/configuration.rb +32 -16
- data/lib/elastic/enterprise-search/exceptions.rb +19 -0
- data/lib/elastic/enterprise-search/request.rb +59 -81
- data/lib/elastic/enterprise-search/utils.rb +28 -1
- data/lib/elastic/enterprise-search/version.rb +20 -1
- data/lib/elastic/enterprise_search.rb +38 -0
- data/lib/elastic/workplace-search/api/add_user_permissions.rb +54 -0
- data/lib/elastic/workplace-search/api/create_analytics_event.rb +59 -0
- data/lib/elastic/workplace-search/api/create_external_identity.rb +51 -0
- data/lib/elastic/workplace-search/api/delete_documents.rb +51 -0
- data/lib/elastic/workplace-search/api/delete_external_identity.rb +53 -0
- data/lib/elastic/workplace-search/api/external_identity.rb +53 -0
- data/lib/elastic/workplace-search/api/index_documents.rb +52 -0
- data/lib/elastic/workplace-search/api/list_external_identities.rb +51 -0
- data/lib/elastic/workplace-search/api/list_permissions.rb +51 -0
- data/lib/elastic/workplace-search/api/put_external_identity.rb +54 -0
- data/lib/elastic/workplace-search/api/put_user_permissions.rb +54 -0
- data/lib/elastic/workplace-search/api/remove_user_permissions.rb +54 -0
- data/lib/elastic/workplace-search/api/search.rb +60 -0
- data/lib/elastic/workplace-search/api/user_permissions.rb +53 -0
- data/lib/elastic/workplace-search/workplace_search.rb +84 -0
- data/spec/app-search/api_count_analytics_spec.rb +34 -0
- data/spec/app-search/api_curations_spec.rb +97 -0
- data/spec/app-search/api_documents_spec.rb +102 -0
- data/spec/app-search/api_engines_spec.rb +67 -0
- data/spec/app-search/api_log_clickthrough_spec.rb +34 -0
- data/spec/app-search/api_logs_spec.rb +36 -0
- data/spec/app-search/api_meta_engines_spec.rb +72 -0
- data/spec/app-search/api_query_suggestion_spec.rb +39 -0
- data/spec/app-search/api_schema_spec.rb +48 -0
- data/spec/app-search/api_search_and_multi_search_spec.rb +48 -0
- data/spec/app-search/api_search_settings_spec.rb +76 -0
- data/spec/app-search/api_spec_helper.rb +14 -0
- data/spec/app-search/api_synonyms_spec.rb +79 -0
- data/spec/app-search/api_top_clicks_analytics_spec.rb +44 -0
- data/spec/app-search/api_top_queries_analytics_spec.rb +34 -0
- data/spec/app-search/client_spec.rb +88 -0
- data/spec/app-search/date_spec.rb +69 -0
- data/spec/enterprise-search/client_spec.rb +107 -0
- data/spec/enterprise-search/request_spec.rb +136 -0
- data/spec/enterprise-search/utils_spec.rb +46 -0
- data/spec/fixtures/vcr/app_search/add_meta_engine_source.yml +109 -0
- data/spec/fixtures/vcr/app_search/api_documents.yml +56 -0
- data/spec/fixtures/vcr/app_search/api_index_documents.yml +57 -0
- data/spec/fixtures/vcr/app_search/api_log_clickthrough.yml +54 -0
- data/spec/fixtures/vcr/app_search/api_logs.yml +70 -0
- data/spec/fixtures/vcr/app_search/api_put_schema.yml +109 -0
- data/spec/fixtures/vcr/app_search/api_put_search_settings.yml +56 -0
- data/spec/fixtures/vcr/app_search/api_query_suggestion.yml +59 -0
- data/spec/fixtures/vcr/app_search/api_reset_search_settings.yml +56 -0
- data/spec/fixtures/vcr/app_search/api_schema.yml +56 -0
- data/spec/fixtures/vcr/app_search/api_search_settings.yml +56 -0
- data/spec/fixtures/vcr/app_search/api_top_clicks_analytics.yml +55 -0
- data/spec/fixtures/vcr/app_search/api_top_clicks_analytics_query.yml +55 -0
- data/spec/fixtures/vcr/app_search/api_top_queries_analytics.yml +55 -0
- data/spec/fixtures/vcr/app_search/count_analytics.yml +55 -0
- data/spec/fixtures/vcr/app_search/create_and_update_document.yml +107 -0
- data/spec/fixtures/vcr/app_search/create_curation.yml +113 -0
- data/spec/fixtures/vcr/app_search/create_engine.yml +55 -0
- data/spec/fixtures/vcr/app_search/create_meta_engine.yml +56 -0
- data/spec/fixtures/vcr/app_search/create_synonym_set.yml +56 -0
- data/spec/fixtures/vcr/app_search/delete_curation.yml +56 -0
- data/spec/fixtures/vcr/app_search/delete_engine.yml +55 -0
- data/spec/fixtures/vcr/app_search/delete_meta_engine_source.yml +56 -0
- data/spec/fixtures/vcr/app_search/delete_synonym_set.yml +56 -0
- data/spec/fixtures/vcr/app_search/get_curation.yml +56 -0
- data/spec/fixtures/vcr/app_search/get_engine.yml +55 -0
- data/spec/fixtures/vcr/app_search/index_and_delete_document.yml +107 -0
- data/spec/fixtures/vcr/app_search/list_curations.yml +56 -0
- data/spec/fixtures/vcr/app_search/list_documents.yml +57 -0
- data/spec/fixtures/vcr/app_search/list_engines.yml +55 -0
- data/spec/fixtures/vcr/app_search/list_synonym_sets.yml +56 -0
- data/spec/fixtures/vcr/app_search/multi_query_search.yml +63 -0
- data/spec/fixtures/vcr/app_search/put_curation.yml +113 -0
- data/spec/fixtures/vcr/app_search/put_synonym_set.yml +56 -0
- data/spec/fixtures/vcr/app_search/search.yml +57 -0
- data/spec/fixtures/vcr/app_search/single_query_search.yml +60 -0
- data/spec/fixtures/vcr/app_search/synonym_set.yml +56 -0
- data/spec/fixtures/vcr/workplace_search/add_user_permissions.yml +53 -0
- data/spec/fixtures/vcr/workplace_search/clear_user_permissions.yml +53 -0
- data/spec/fixtures/vcr/workplace_search/create_analytics_event.yml +55 -0
- data/spec/fixtures/vcr/workplace_search/create_external_identity.yml +53 -0
- data/spec/fixtures/vcr/workplace_search/delete_documents.yml +53 -0
- data/spec/fixtures/vcr/workplace_search/delete_external_identity.yml +53 -0
- data/spec/fixtures/vcr/workplace_search/index_documents.yml +55 -0
- data/spec/fixtures/vcr/workplace_search/list_external_identities.yml +53 -0
- data/spec/fixtures/vcr/workplace_search/list_permissions.yml +53 -0
- data/spec/fixtures/vcr/workplace_search/oauth_request_token.yml +57 -0
- data/spec/fixtures/vcr/workplace_search/put_external_identity.yml +53 -0
- data/spec/fixtures/vcr/workplace_search/put_user_permissions.yml +103 -0
- data/spec/fixtures/vcr/workplace_search/remove_user_permissions.yml +53 -0
- data/spec/fixtures/vcr/workplace_search/retrieve_external_identity.yml +53 -0
- data/spec/fixtures/vcr/workplace_search/search_request.yml +60 -0
- data/spec/fixtures/vcr/workplace_search/user_permissions_empty.yml +53 -0
- data/spec/integration/enterprise_search_api_spec.rb +96 -0
- data/spec/spec_helper.rb +27 -14
- data/spec/webmock_requires.rb +4 -0
- data/spec/workplace-search/client_spec.rb +77 -0
- data/spec/workplace-search/create_analytics_event_spec.rb +59 -0
- data/spec/workplace-search/documents_spec.rb +80 -0
- data/spec/workplace-search/external_identities_spec.rb +84 -0
- data/spec/workplace-search/permissions_spec.rb +136 -0
- data/spec/workplace-search/search_spec.rb +53 -0
- metadata +279 -47
- data/.circleci/config.yml +0 -68
- data/.travis.yml +0 -15
- data/NOTICE.txt +0 -3
- data/lib/elastic/enterprise-search.rb +0 -7
- data/lib/elastic/enterprise-search/client/content_source_documents.rb +0 -46
- data/lib/elastic/enterprise-search/client/permissions.rb +0 -30
- data/logo-enterprise-search.png +0 -0
- data/spec/client/content_source_documents_spec.rb +0 -55
- data/spec/client/permissions_spec.rb +0 -75
- data/spec/configuration_spec.rb +0 -19
- data/spec/fixtures/vcr/add_user_permissions.yml +0 -55
- data/spec/fixtures/vcr/async_create_or_update_document_success.yml +0 -51
- data/spec/fixtures/vcr/destroy_documents_success.yml +0 -51
- data/spec/fixtures/vcr/get_user_permissions.yml +0 -55
- data/spec/fixtures/vcr/list_all_permissions.yml +0 -55
- data/spec/fixtures/vcr/list_all_permissions_with_paging.yml +0 -55
- data/spec/fixtures/vcr/remove_user_permissions.yml +0 -55
- data/spec/fixtures/vcr/update_user_permissions.yml +0 -55
@@ -0,0 +1,12 @@
|
|
1
|
+
---
|
2
|
+
- job:
|
3
|
+
name: elastic+enterprise-search-ruby+7.11
|
4
|
+
display-name: 'elastic / enterprise-search-ruby # 7.11'
|
5
|
+
description: Testing the enterprise-search-ruby 7.11 branch.
|
6
|
+
junit_results: "*-junit.xml"
|
7
|
+
parameters:
|
8
|
+
- string:
|
9
|
+
name: branch_specifier
|
10
|
+
default: refs/heads/7.11
|
11
|
+
description: the Git branch specifier to build (<branchName>, <tagName>,
|
12
|
+
<commitId>, etc.)
|
@@ -0,0 +1,12 @@
|
|
1
|
+
---
|
2
|
+
- job:
|
3
|
+
name: elastic+enterprise-search-ruby+master
|
4
|
+
display-name: 'elastic / enterprise-search-ruby # master'
|
5
|
+
description: Testing the enterprise-search-ruby master branch.
|
6
|
+
junit_results: "*-junit.xml"
|
7
|
+
parameters:
|
8
|
+
- string:
|
9
|
+
name: branch_specifier
|
10
|
+
default: refs/heads/master
|
11
|
+
description: the Git branch specifier to build (<branchName>, <tagName>,
|
12
|
+
<commitId>, etc.)
|
@@ -0,0 +1,19 @@
|
|
1
|
+
---
|
2
|
+
- job:
|
3
|
+
name: elastic+enterprise-search-ruby+pull-request
|
4
|
+
display-name: 'elastic / enterprise-search-ruby # pull-request'
|
5
|
+
description: Testing of enterprise-search-ruby pull requests.
|
6
|
+
junit_results: "*-junit.xml"
|
7
|
+
scm:
|
8
|
+
- git:
|
9
|
+
branches:
|
10
|
+
- ${ghprbActualCommit}
|
11
|
+
refspec: +refs/pull/*:refs/remotes/origin/pr/*
|
12
|
+
triggers:
|
13
|
+
- github-pull-request:
|
14
|
+
org-list:
|
15
|
+
- elastic
|
16
|
+
allow-whitelist-orgs-as-admins: true
|
17
|
+
github-hooks: true
|
18
|
+
status-context: clients-ci
|
19
|
+
cancel-builds-on-update: true
|
@@ -0,0 +1,127 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
#
|
3
|
+
# Launch one or more Elasticsearch nodes via the Docker image,
|
4
|
+
# to form a cluster suitable for running the REST API tests.
|
5
|
+
#
|
6
|
+
# Export the STACK_VERSION variable, eg. '8.0.0-SNAPSHOT'.
|
7
|
+
# Export the TEST_SUITE variable, eg. 'free' or 'platinum' defaults to 'free'.
|
8
|
+
# Export the NUMBER_OF_NODES variable to start more than 1 node
|
9
|
+
|
10
|
+
# Version 1.2.0
|
11
|
+
# - Initial version of the run-elasticsearch.sh script
|
12
|
+
# - Deleting the volume should not dependent on the container still running
|
13
|
+
# - Fixed `ES_JAVA_OPTS` config
|
14
|
+
# - Moved to STACK_VERSION and TEST_VERSION
|
15
|
+
# - Refactored into functions and imports
|
16
|
+
# - Support NUMBER_OF_NODES
|
17
|
+
# - Added 5 retries on docker pull for fixing transient network errors
|
18
|
+
|
19
|
+
script_path=$(dirname $(realpath -s $0))
|
20
|
+
source $script_path/functions/imports.sh
|
21
|
+
set -euo pipefail
|
22
|
+
|
23
|
+
echo -e "\033[34;1mINFO:\033[0m Take down node if called twice with the same arguments (DETACH=true) or on seperate terminals \033[0m"
|
24
|
+
cleanup_node $es_node_name
|
25
|
+
|
26
|
+
master_node_name=${es_node_name}
|
27
|
+
cluster_name=${moniker}${suffix}
|
28
|
+
|
29
|
+
declare -a volumes
|
30
|
+
environment=($(cat <<-END
|
31
|
+
--env node.name=$es_node_name
|
32
|
+
--env cluster.name=$cluster_name
|
33
|
+
--env cluster.initial_master_nodes=$master_node_name
|
34
|
+
--env discovery.seed_hosts=$master_node_name
|
35
|
+
--env cluster.routing.allocation.disk.threshold_enabled=false
|
36
|
+
--env bootstrap.memory_lock=true
|
37
|
+
--env node.attr.testattr=test
|
38
|
+
--env path.repo=/tmp
|
39
|
+
--env repositories.url.allowed_urls=http://snapshot.test*
|
40
|
+
END
|
41
|
+
))
|
42
|
+
if [[ "$TEST_SUITE" == "platinum" ]]; then
|
43
|
+
environment+=($(cat <<-END
|
44
|
+
--env ELASTIC_PASSWORD=$elastic_password
|
45
|
+
--env xpack.license.self_generated.type=trial
|
46
|
+
--env xpack.security.enabled=true
|
47
|
+
--env xpack.security.http.ssl.enabled=true
|
48
|
+
--env xpack.security.http.ssl.verification_mode=certificate
|
49
|
+
--env xpack.security.http.ssl.key=certs/testnode.key
|
50
|
+
--env xpack.security.http.ssl.certificate=certs/testnode.crt
|
51
|
+
--env xpack.security.http.ssl.certificate_authorities=certs/ca.crt
|
52
|
+
--env xpack.security.transport.ssl.enabled=true
|
53
|
+
--env xpack.security.transport.ssl.key=certs/testnode.key
|
54
|
+
--env xpack.security.transport.ssl.certificate=certs/testnode.crt
|
55
|
+
--env xpack.security.transport.ssl.certificate_authorities=certs/ca.crt
|
56
|
+
END
|
57
|
+
))
|
58
|
+
volumes+=($(cat <<-END
|
59
|
+
--volume $ssl_cert:/usr/share/elasticsearch/config/certs/testnode.crt
|
60
|
+
--volume $ssl_key:/usr/share/elasticsearch/config/certs/testnode.key
|
61
|
+
--volume $ssl_ca:/usr/share/elasticsearch/config/certs/ca.crt
|
62
|
+
END
|
63
|
+
))
|
64
|
+
fi
|
65
|
+
|
66
|
+
cert_validation_flags=""
|
67
|
+
if [[ "$TEST_SUITE" == "platinum" ]]; then
|
68
|
+
cert_validation_flags="--insecure --cacert /usr/share/elasticsearch/config/certs/ca.crt --resolve ${es_node_name}:443:127.0.0.1"
|
69
|
+
fi
|
70
|
+
|
71
|
+
# Pull the container, retry on failures up to 5 times with
|
72
|
+
# short delays between each attempt. Fixes most transient network errors.
|
73
|
+
docker_pull_attempts=0
|
74
|
+
until [ "$docker_pull_attempts" -ge 5 ]
|
75
|
+
do
|
76
|
+
docker pull docker.elastic.co/elasticsearch/"$elasticsearch_container" && break
|
77
|
+
docker_pull_attempts=$((docker_pull_attempts+1))
|
78
|
+
echo "Failed to pull image, retrying in 10 seconds (retry $docker_pull_attempts/5)..."
|
79
|
+
sleep 10
|
80
|
+
done
|
81
|
+
|
82
|
+
NUMBER_OF_NODES=${NUMBER_OF_NODES-1}
|
83
|
+
http_port=9200
|
84
|
+
for (( i=0; i<$NUMBER_OF_NODES; i++, http_port++ )); do
|
85
|
+
node_name=${es_node_name}$i
|
86
|
+
node_url=${external_elasticsearch_url/9200/${http_port}}$i
|
87
|
+
if [[ "$i" == "0" ]]; then node_name=$es_node_name; fi
|
88
|
+
environment+=($(cat <<-END
|
89
|
+
--env node.name=$node_name
|
90
|
+
END
|
91
|
+
))
|
92
|
+
echo "$i: $http_port $node_url "
|
93
|
+
volume_name=${node_name}-${suffix}-data
|
94
|
+
volumes+=($(cat <<-END
|
95
|
+
--volume $volume_name:/usr/share/elasticsearch/data${i}
|
96
|
+
END
|
97
|
+
))
|
98
|
+
|
99
|
+
# make sure we detach for all but the last node if DETACH=false (default) so all nodes are started
|
100
|
+
local_detach="true"
|
101
|
+
if [[ "$i" == "$((NUMBER_OF_NODES-1))" ]]; then local_detach=$DETACH; fi
|
102
|
+
echo -e "\033[34;1mINFO:\033[0m Starting container $node_name \033[0m"
|
103
|
+
set -x
|
104
|
+
docker run \
|
105
|
+
--name "$node_name" \
|
106
|
+
--network "$network_name" \
|
107
|
+
--env "ES_JAVA_OPTS=-Xms1g -Xmx1g" \
|
108
|
+
"${environment[@]}" \
|
109
|
+
"${volumes[@]}" \
|
110
|
+
--publish "$http_port":9200 \
|
111
|
+
--ulimit nofile=65536:65536 \
|
112
|
+
--ulimit memlock=-1:-1 \
|
113
|
+
--detach="$local_detach" \
|
114
|
+
--health-cmd="curl $cert_validation_flags --fail $elasticsearch_url/_cluster/health || exit 1" \
|
115
|
+
--health-interval=2s \
|
116
|
+
--health-retries=20 \
|
117
|
+
--health-timeout=2s \
|
118
|
+
--rm \
|
119
|
+
docker.elastic.co/elasticsearch/"$elasticsearch_container";
|
120
|
+
|
121
|
+
set +x
|
122
|
+
if wait_for_container "$es_node_name" "$network_name"; then
|
123
|
+
echo -e "\033[32;1mSUCCESS:\033[0m Running on: $node_url\033[0m"
|
124
|
+
fi
|
125
|
+
|
126
|
+
done
|
127
|
+
|
@@ -0,0 +1,71 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
#
|
3
|
+
# Launch one App Search node via the Docker image,
|
4
|
+
# to form a cluster suitable for running the REST API tests.
|
5
|
+
#
|
6
|
+
# Export the STACK_VERSION variable, eg. '8.0.0-SNAPSHOT'.
|
7
|
+
|
8
|
+
# Version 1.1.0
|
9
|
+
# - Initial version of the run-app-search.sh script
|
10
|
+
# - Refactored .ci version
|
11
|
+
|
12
|
+
script_path=$(dirname $(realpath -s $0))
|
13
|
+
source $script_path/functions/imports.sh
|
14
|
+
set -euo pipefail
|
15
|
+
|
16
|
+
CONTAINER_NAME=${CONTAINER_NAME-enterprise-search}
|
17
|
+
APP_SEARCH_SECRET_SESSION_KEY=${APP_SEARCH_SECRET_SESSION_KEY-int_test_secret}
|
18
|
+
|
19
|
+
echo -e "\033[34;1mINFO:\033[0m Take down node if called twice with the same arguments (DETACH=true) or on seperate terminals \033[0m"
|
20
|
+
cleanup_node $CONTAINER_NAME
|
21
|
+
|
22
|
+
http_port=3002
|
23
|
+
url=http://127.0.0.1:${http_port}
|
24
|
+
|
25
|
+
# Pull the container, retry on failures up to 5 times with
|
26
|
+
# short delays between each attempt. Fixes most transient network errors.
|
27
|
+
docker_pull_attempts=0
|
28
|
+
until [ "$docker_pull_attempts" -ge 5 ]
|
29
|
+
do
|
30
|
+
docker pull docker.elastic.co/enterprise-search/enterprise-search:"$STACK_VERSION" && break
|
31
|
+
docker_pull_attempts=$((docker_pull_attempts+1))
|
32
|
+
echo "Failed to pull image, retrying in 10 seconds (retry $docker_pull_attempts/5)..."
|
33
|
+
sleep 10
|
34
|
+
done
|
35
|
+
|
36
|
+
echo -e "\033[34;1mINFO:\033[0m Starting container $CONTAINER_NAME \033[0m"
|
37
|
+
set -x
|
38
|
+
docker run \
|
39
|
+
--name "$CONTAINER_NAME" \
|
40
|
+
--network "$network_name" \
|
41
|
+
--env "elasticsearch.host=$elasticsearch_url" \
|
42
|
+
--env "elasticsearch.username=elastic" \
|
43
|
+
--env "elasticsearch.password=$elastic_password" \
|
44
|
+
--env "ENT_SEARCH_DEFAULT_PASSWORD=$elastic_password" \
|
45
|
+
--env "secret_management.encryption_keys=[$APP_SEARCH_SECRET_SESSION_KEY]" \
|
46
|
+
--env "enterprise_search.listen_port=$http_port" \
|
47
|
+
--env "log_level=info" \
|
48
|
+
--env "hide_version_info=false" \
|
49
|
+
--env "worker.threads=2" \
|
50
|
+
--env "allow_es_settings_modification=true" \
|
51
|
+
--env "JAVA_OPTS=-Xms1g -Xmx2g" \
|
52
|
+
--env "elasticsearch.ssl.enabled=true" \
|
53
|
+
--env "elasticsearch.ssl.verify=true" \
|
54
|
+
--env "elasticsearch.ssl.certificate=/usr/share/app-search/config/certs/testnode.crt" \
|
55
|
+
--env "elasticsearch.ssl.certificate_authority=/usr/share/app-search/config/certs/ca.crt" \
|
56
|
+
--env "elasticsearch.ssl.key=/usr/share/app-search/config/certs/testnode.key" \
|
57
|
+
--volume $ssl_cert:/usr/share/app-search/config/certs/testnode.crt \
|
58
|
+
--volume $ssl_key:/usr/share/app-search/config/certs/testnode.key \
|
59
|
+
--volume $ssl_ca:/usr/share/app-search/config/certs/ca.crt \
|
60
|
+
--publish "$http_port":3002 \
|
61
|
+
--detach="$DETACH" \
|
62
|
+
--health-cmd="curl --insecure --fail ${url} || exit 1" \
|
63
|
+
--health-interval=30s \
|
64
|
+
--health-retries=50 \
|
65
|
+
--health-timeout=10s \
|
66
|
+
--rm \
|
67
|
+
docker.elastic.co/enterprise-search/enterprise-search:"$STACK_VERSION";
|
68
|
+
|
69
|
+
if wait_for_container "$CONTAINER_NAME" "$network_name"; then
|
70
|
+
echo -e "\033[32;1mSUCCESS:\033[0m Running on: ${url}\033[0m"
|
71
|
+
fi
|
data/.ci/run-local.sh
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
#
|
3
|
+
export TEST_SUITE=platinum
|
4
|
+
export CONTAINER_NAME=enterprise-search
|
5
|
+
|
6
|
+
script_path=$(dirname $(realpath -s $0))
|
7
|
+
source $script_path/functions/imports.sh
|
8
|
+
set -euo pipefail
|
9
|
+
|
10
|
+
echo -e "\033[1m>>>>> Start [$STACK_VERSION container] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m"
|
11
|
+
DETACH=true bash .ci/run-elasticsearch.sh
|
12
|
+
|
13
|
+
echo -e "\033[1m>>>>> Running run-enterprise-search.sh >>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m"
|
14
|
+
bash .ci/run-enterprise-search.sh
|
@@ -0,0 +1,49 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
#
|
3
|
+
# Called by entry point `run-test` use this script to add your repository specific test commands
|
4
|
+
#
|
5
|
+
# Once called Elasticsearch is up and running
|
6
|
+
#
|
7
|
+
# Its recommended to call `imports.sh` as defined here so that you get access to all variables defined there
|
8
|
+
#
|
9
|
+
# Any parameters that test-matrix.yml defines should be declared here with appropiate defaults
|
10
|
+
|
11
|
+
script_path=$(dirname $(realpath -s $0))
|
12
|
+
source $script_path/functions/imports.sh
|
13
|
+
set -euo pipefail
|
14
|
+
|
15
|
+
echo -e "\033[34;1mINFO:\033[0m VERSION: ${STACK_VERSION}\033[0m"
|
16
|
+
echo -e "\033[34;1mINFO:\033[0m TEST_SUITE: ${TEST_SUITE}\033[0m"
|
17
|
+
echo -e "\033[34;1mINFO:\033[0m RUBY_VERSION: ${RUBY_VERSION}\033[0m"
|
18
|
+
echo -e "\033[34;1mINFO:\033[0m RUNSCRIPTS: ${RUNSCRIPTS}\033[0m"
|
19
|
+
echo -e "\033[34;1mINFO:\033[0m URL: ${elasticsearch_url}\033[0m"
|
20
|
+
|
21
|
+
echo -e "\033[34;1mINFO:\033[0m pinging Elasticsearch ..\033[0m"
|
22
|
+
curl --insecure --fail $external_elasticsearch_url/_cluster/health?pretty
|
23
|
+
|
24
|
+
if [[ "$RUNSCRIPTS" = *"enterprise-search"* ]]; then
|
25
|
+
enterprise_search_url="http://localhost:3002"
|
26
|
+
echo -e "\033[34;1mINFO:\033[0m pinging Enterprise Search ..\033[0m"
|
27
|
+
curl -I --fail $enterprise_search_url
|
28
|
+
fi
|
29
|
+
|
30
|
+
echo -e "\033[32;1mSUCCESS:\033[0m successfully started the ${STACK_VERSION} stack.\033[0m"
|
31
|
+
|
32
|
+
echo -e "\033[32;1mBUILD: \033[31mRuby \e[0m container.\033[0m"
|
33
|
+
|
34
|
+
docker build \
|
35
|
+
--file .ci/Dockerfile \
|
36
|
+
--tag elastic/enterprise-search-ruby \
|
37
|
+
--build-arg RUBY_VERSION=${RUBY_VERSION} \
|
38
|
+
.
|
39
|
+
|
40
|
+
echo -e "\033[32;1mRUN: \033[31mRuby \e[0m container.\033[0m"
|
41
|
+
|
42
|
+
docker run \
|
43
|
+
--network ${network_name} \
|
44
|
+
--name enterprise-search-ruby \
|
45
|
+
--env "ELASTIC_ENTERPRISE_HOST=http://${CONTAINER_NAME}:3002" \
|
46
|
+
--rm \
|
47
|
+
--volume `pwd`:/code/enterprise-search-ruby \
|
48
|
+
elastic/enterprise-search-ruby \
|
49
|
+
rake spec:integration
|
data/.ci/run-tests
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
#
|
3
|
+
# Version 1.1
|
4
|
+
# - Moved to .ci folder and seperated out `run-repository.sh`
|
5
|
+
# - Add `$RUNSCRIPTS` env var for running Elasticsearch dependent products
|
6
|
+
export TEST_SUITE=platinum
|
7
|
+
export CONTAINER_NAME=enterprise-search
|
8
|
+
export RUNSCRIPTS=enterprise-search
|
9
|
+
|
10
|
+
script_path=$(dirname $(realpath -s $0))
|
11
|
+
source $script_path/functions/imports.sh
|
12
|
+
set -euo pipefail
|
13
|
+
|
14
|
+
echo -e "\033[1m>>>>> Start [$STACK_VERSION container] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m"
|
15
|
+
DETACH=true bash .ci/run-elasticsearch.sh
|
16
|
+
|
17
|
+
if [[ -n "$RUNSCRIPTS" ]]; then
|
18
|
+
for RUNSCRIPT in ${RUNSCRIPTS//,/ } ; do
|
19
|
+
echo -e "\033[1m>>>>> Running run-$RUNSCRIPT.sh >>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m"
|
20
|
+
CONTAINER_NAME=${RUNSCRIPT} \
|
21
|
+
DETACH=true \
|
22
|
+
bash .ci/run-${RUNSCRIPT}.sh
|
23
|
+
done
|
24
|
+
fi
|
25
|
+
|
26
|
+
echo -e "\033[1m>>>>> Repository specific tests >>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m"
|
27
|
+
bash .ci/run-repository.sh
|
data/.ci/test-matrix.yml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
name: rubocop
|
2
|
+
on: [push, pull_request]
|
3
|
+
|
4
|
+
jobs:
|
5
|
+
rubocop:
|
6
|
+
runs-on: ubuntu-latest
|
7
|
+
steps:
|
8
|
+
- uses: actions/checkout@v2
|
9
|
+
- uses: ruby/setup-ruby@v1
|
10
|
+
with:
|
11
|
+
ruby-version: 2.7
|
12
|
+
- name: Run Rubocop
|
13
|
+
run: |
|
14
|
+
bundle install
|
15
|
+
bundle exec rubocop
|
@@ -0,0 +1,40 @@
|
|
1
|
+
name: master
|
2
|
+
on: [push, pull_request]
|
3
|
+
|
4
|
+
jobs:
|
5
|
+
test-ruby:
|
6
|
+
env:
|
7
|
+
ENDPOINT: http://localhost:8080
|
8
|
+
strategy:
|
9
|
+
matrix:
|
10
|
+
ruby: [ 2.5, 2.6, 2.7, 3.0 ]
|
11
|
+
|
12
|
+
runs-on: ubuntu-latest
|
13
|
+
steps:
|
14
|
+
- uses: actions/checkout@v2
|
15
|
+
- uses: ruby/setup-ruby@v1
|
16
|
+
with:
|
17
|
+
ruby-version: ${{ matrix.ruby }}
|
18
|
+
- name: Build and test with Rake
|
19
|
+
run: |
|
20
|
+
ruby -v
|
21
|
+
bundle install
|
22
|
+
bundle exec rake spec:client
|
23
|
+
test-jruby:
|
24
|
+
env:
|
25
|
+
ENDPOINT: http://localhost:3002/api/ws/v1
|
26
|
+
strategy:
|
27
|
+
fail-fast: false
|
28
|
+
matrix:
|
29
|
+
ruby: [ jruby-9.2 ]
|
30
|
+
runs-on: ubuntu-latest
|
31
|
+
steps:
|
32
|
+
- uses: actions/checkout@v2
|
33
|
+
- uses: ruby/setup-ruby@v1
|
34
|
+
with:
|
35
|
+
ruby-version: ${{ matrix.ruby }}
|
36
|
+
- name: Build and test with Rake
|
37
|
+
run: |
|
38
|
+
ruby -v
|
39
|
+
bundle install
|
40
|
+
bundle exec rake spec:client
|
data/.gitignore
CHANGED
data/.rubocop.yml
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
AllCops:
|
2
|
+
TargetRubyVersion: 2.5
|
3
|
+
Layout/EndAlignment:
|
4
|
+
AutoCorrect: true
|
5
|
+
Style/StringLiterals:
|
6
|
+
EnforcedStyle: single_quotes
|
7
|
+
Layout/LineLength:
|
8
|
+
Max: 120
|
9
|
+
Style/SymbolArray:
|
10
|
+
EnforcedStyle: brackets
|
11
|
+
Style/WordArray:
|
12
|
+
EnforcedStyle: brackets
|
13
|
+
Layout/EmptyLinesAroundAttributeAccessor:
|
14
|
+
Enabled: true
|
15
|
+
Layout/SpaceAroundMethodCallOperator:
|
16
|
+
Enabled: true
|
17
|
+
Lint/DeprecatedOpenSSLConstant:
|
18
|
+
Enabled: true
|
19
|
+
Lint/MixedRegexpCaptureTypes:
|
20
|
+
Enabled: true
|
21
|
+
Lint/RaiseException:
|
22
|
+
Enabled: true
|
23
|
+
Lint/StructNewOverride:
|
24
|
+
Enabled: true
|
25
|
+
Naming/FileName:
|
26
|
+
Enabled: false
|
27
|
+
Style/ExponentialNotation:
|
28
|
+
Enabled: true
|
29
|
+
Style/HashEachMethods:
|
30
|
+
Enabled: true
|
31
|
+
Style/HashTransformKeys:
|
32
|
+
Enabled: true
|
33
|
+
Style/HashTransformValues:
|
34
|
+
Enabled: true
|
35
|
+
Style/RedundantFetchBlock:
|
36
|
+
Enabled: true
|
37
|
+
Style/RedundantRegexpCharacterClass:
|
38
|
+
Enabled: true
|
39
|
+
Style/RedundantRegexpEscape:
|
40
|
+
Enabled: true
|
41
|
+
Style/SlicingWithRange:
|
42
|
+
Enabled: true
|
43
|
+
Metrics/BlockLength:
|
44
|
+
Exclude:
|
45
|
+
- 'spec/**/*'
|
46
|
+
Metrics/MethodLength:
|
47
|
+
Max: 15
|
48
|
+
Metrics/AbcSize:
|
49
|
+
Max: 20
|
50
|
+
Style/RegexpLiteral:
|
51
|
+
EnforcedStyle: mixed
|
52
|
+
AllowInnerSlashes: true
|