Skip to content

Commit 625c834

Browse files
authored
Upgrade API to ES 8.0.0
1 parent 5e2cfeb commit 625c834

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+1895
-1186
lines changed

.ci/Dockerfile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
ARG PYTHON_VERSION=3.8
2+
FROM python:${PYTHON_VERSION}
3+
4+
WORKDIR /code/elasticsearch-py
5+
6+
COPY dev-requirements.txt .
7+
RUN python -m pip install -r dev-requirements.txt
8+
9+
COPY . .

.ci/certs/ca.crt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDSTCCAjGgAwIBAgIUIwN+0zglsexRKwE1RGHvlCcmrdwwDQYJKoZIhvcNAQEL
3+
BQAwNDEyMDAGA1UEAxMpRWxhc3RpYyBDZXJ0aWZpY2F0ZSBUb29sIEF1dG9nZW5l
4+
cmF0ZWQgQ0EwHhcNMTkwMjEzMDcyMjQwWhcNMjIwMjEyMDcyMjQwWjA0MTIwMAYD
5+
VQQDEylFbGFzdGljIENlcnRpZmljYXRlIFRvb2wgQXV0b2dlbmVyYXRlZCBDQTCC
6+
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANILs0JO0e7x29zeVx21qalK
7+
XKdX+AMlGJPH75wWO/Jq6YHtxt1wYIg762krOBXfG6JsFSOIwIv5VrzGGRGjSPt9
8+
OXQyXrDDiQvsBT3rpzLNdDs7KMl2tZswwv7w9ujgud0cYnS1MOpn81rfPc73DvMg
9+
xuhplofDx6fn3++PjVRU2FNiIVWyEoaxRjCeGPMBubKZYaYbQA6vYM4Z+ByG727B
10+
AyAER3t7xmvYti/EoO2hv2HQk5zgcj/Oq3AJKhnt8LH8fnfm3TnYNM1htvXqhN05
11+
vsvhvm2PHfnA5qLlSr/3W0aI/U/PqfsFDCgyRV097sMIaKkmavb0Ue7aQ7lgtp0C
12+
AwEAAaNTMFEwHQYDVR0OBBYEFDRKlCMowWR1rwxE0d1lTEQe5O71MB8GA1UdIwQY
13+
MBaAFDRKlCMowWR1rwxE0d1lTEQe5O71MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI
14+
hvcNAQELBQADggEBAKbCJ95EBpeuvF70KEt6QU70k/SH1NRvM9YzKryV0D975Jvu
15+
HOSm9HgSTULeAUFZIa4oYyf3QUfVoI+2T/aQrfXA3gfrJWsHURkyNmiHOFAbYHqi
16+
xA6i249G2GTEjc1+le/M2N2CcDKAmurW6vSGK4upXQbPd6KmnhHREX74zkWjnOa+
17+
+tibbSSOCT4Tmja2DbBxAPuivU9IB1g/hIUmbYQqKffQrBJA0658tz6w63a/Q7xN
18+
pCvvbSgiMZ6qcVIcJkBT2IooYie+ax45pQECHthgIUcQAzfmIfqlU0Qfl8rDgAmn
19+
0c1o6HQjKGU2aVGgSRuaaiHaSZjbPIZVS51sOoI=
20+
-----END CERTIFICATE-----

.ci/certs/ca.pem

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDSTCCAjGgAwIBAgIUIwN+0zglsexRKwE1RGHvlCcmrdwwDQYJKoZIhvcNAQEL
3+
BQAwNDEyMDAGA1UEAxMpRWxhc3RpYyBDZXJ0aWZpY2F0ZSBUb29sIEF1dG9nZW5l
4+
cmF0ZWQgQ0EwHhcNMTkwMjEzMDcyMjQwWhcNMjIwMjEyMDcyMjQwWjA0MTIwMAYD
5+
VQQDEylFbGFzdGljIENlcnRpZmljYXRlIFRvb2wgQXV0b2dlbmVyYXRlZCBDQTCC
6+
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANILs0JO0e7x29zeVx21qalK
7+
XKdX+AMlGJPH75wWO/Jq6YHtxt1wYIg762krOBXfG6JsFSOIwIv5VrzGGRGjSPt9
8+
OXQyXrDDiQvsBT3rpzLNdDs7KMl2tZswwv7w9ujgud0cYnS1MOpn81rfPc73DvMg
9+
xuhplofDx6fn3++PjVRU2FNiIVWyEoaxRjCeGPMBubKZYaYbQA6vYM4Z+ByG727B
10+
AyAER3t7xmvYti/EoO2hv2HQk5zgcj/Oq3AJKhnt8LH8fnfm3TnYNM1htvXqhN05
11+
vsvhvm2PHfnA5qLlSr/3W0aI/U/PqfsFDCgyRV097sMIaKkmavb0Ue7aQ7lgtp0C
12+
AwEAAaNTMFEwHQYDVR0OBBYEFDRKlCMowWR1rwxE0d1lTEQe5O71MB8GA1UdIwQY
13+
MBaAFDRKlCMowWR1rwxE0d1lTEQe5O71MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI
14+
hvcNAQELBQADggEBAKbCJ95EBpeuvF70KEt6QU70k/SH1NRvM9YzKryV0D975Jvu
15+
HOSm9HgSTULeAUFZIa4oYyf3QUfVoI+2T/aQrfXA3gfrJWsHURkyNmiHOFAbYHqi
16+
xA6i249G2GTEjc1+le/M2N2CcDKAmurW6vSGK4upXQbPd6KmnhHREX74zkWjnOa+
17+
+tibbSSOCT4Tmja2DbBxAPuivU9IB1g/hIUmbYQqKffQrBJA0658tz6w63a/Q7xN
18+
pCvvbSgiMZ6qcVIcJkBT2IooYie+ax45pQECHthgIUcQAzfmIfqlU0Qfl8rDgAmn
19+
0c1o6HQjKGU2aVGgSRuaaiHaSZjbPIZVS51sOoI=
20+
-----END CERTIFICATE-----

.ci/certs/testnode.crt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDIjCCAgqgAwIBAgIUI4QU6jA1dYSCbdIA6oAb2TBEluowDQYJKoZIhvcNAQEL
3+
BQAwNDEyMDAGA1UEAxMpRWxhc3RpYyBDZXJ0aWZpY2F0ZSBUb29sIEF1dG9nZW5l
4+
cmF0ZWQgQ0EwHhcNMTkwMjEzMDcyMzEzWhcNMjIwMjEyMDcyMzEzWjATMREwDwYD
5+
VQQDEwhpbnN0YW5jZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJeT
6+
yOy6EAScZxrULKjHePciiz38grivCrhFFV+dThaRCcl3DhDzb9Eny5q5iEw3WvLQ
7+
Rqmf01jncNIhaocTt66VqveXaMubbE8O0LcG6e4kpFO+JtnVF8JTARTc+ux/1uD6
8+
hO1VG/HItM7WQrQxh4hfB2u1AX2YQtoqEtXXEC+UHWfl4QzuzXjBnKCkO/L9/6Tf
9+
yNFQWXxKnIiTs8Xm9sEhhSCBJPlLTQu+MX4vR2Uwj5XZmflDUr+ZTenl9qYxL6b3
10+
SWhh/qEl4GAj1+tS7ZZOxE0237mUh3IIFYSWSaMm8K2m/BYHkLNWL5B1dMic0lsv
11+
osSoYrQuCef4HQMCitsCAwEAAaNNMEswHQYDVR0OBBYEFFMg4l1GLW8lYbwASY+r
12+
YeWYRzIiMB8GA1UdIwQYMBaAFDRKlCMowWR1rwxE0d1lTEQe5O71MAkGA1UdEwQC
13+
MAAwDQYJKoZIhvcNAQELBQADggEBAEQrgh1xALpumQTzsjxFRGque/vlKTgRs5Kh
14+
xtgapr6wjIbdq7dagee+4yNOKzS5lGVXCgwrJlHESv9qY0uumT/33vK2uduJ7NAd
15+
fR2ZzyBnhMX+mkYhmGrGYCTUMUIwOIQYa4Evis4W+LHmCIDG03l7gLHfdIBe9VMO
16+
pDZum8f6ng0MM49s8/rXODNYKw8kFyUhnfChqMi/2yggb1uUIfKlJJIchkgYjE13
17+
zuC+fjo029Pq1jeMIdxugLf/7I/8NiW1Yj9aCXevUXG1qzHFEuKAinBXYOZO/vWS
18+
LaEqOhwrzNynwgGpYAr7Rfgv4AflltYIIav4PZT03P7fbyAAf8s=
19+
-----END CERTIFICATE-----

.ci/certs/testnode.key

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
-----BEGIN RSA PRIVATE KEY-----
2+
MIIEpQIBAAKCAQEAl5PI7LoQBJxnGtQsqMd49yKLPfyCuK8KuEUVX51OFpEJyXcO
3+
EPNv0SfLmrmITDda8tBGqZ/TWOdw0iFqhxO3rpWq95doy5tsTw7Qtwbp7iSkU74m
4+
2dUXwlMBFNz67H/W4PqE7VUb8ci0ztZCtDGHiF8Ha7UBfZhC2ioS1dcQL5QdZ+Xh
5+
DO7NeMGcoKQ78v3/pN/I0VBZfEqciJOzxeb2wSGFIIEk+UtNC74xfi9HZTCPldmZ
6+
+UNSv5lN6eX2pjEvpvdJaGH+oSXgYCPX61Ltlk7ETTbfuZSHcggVhJZJoybwrab8
7+
FgeQs1YvkHV0yJzSWy+ixKhitC4J5/gdAwKK2wIDAQABAoIBAQCRFTJna/xy/WUu
8+
59FLR4qAOj8++JgCwACpue4oU7/vl6nffSYokWoAr2+RzG4qTX2vFi3cpA8+dGCn
9+
sLZvTi8tWzKGxBTZdg2oakzaMzLr74SeZ052iCGyrZJGbvF6Ny7srr1XEXSq6+os
10+
ZCb6pMHOhO7saBdiKMAsY8MdjTl/33AduuE6ztqv+L92xTr2g4QlbT1KvWlEgppU
11+
k4Gy7zdETkPBTSH/17ZwyGJoJICIAhbL4IpmOM4dPIg8nFkVPPpy6p0z4uGjtgnK
12+
nreZ2EKMzCafBaHn7A77gpi0OrQdl6pe0fsGqv/323YjCJPbwwl5TsoNq44DzwiX
13+
3M7XiVJxAoGBAOCne56vdN4uZmCgLVGT2JSUNVPOu4bfjrxWH6cslzrPT2Zhp3lO
14+
M4axZ3gmcervV252YEZXntXDHHCSfrECllRN1WFD63XmyQ/CkhuvZkkeRHfzL1TE
15+
EdqHOTqs4sRETZ7+RITFC81DZQkWWOKeyXMjyPBqd7RnThQHijB1c8Y5AoGBAKy6
16+
CVKBx+zz5crVD0tz4UhOmz1wRNN0CL0l+FXRuFSgbzMIvwpfiqe25crgeLHe2M2/
17+
TogdWbjZ2nUZQTzoRsSkQ6cKHpj+G/gWurp/UcHHXFVwgLSPF7c3KHDtiYq7Vqw0
18+
bvmhM03LI6+ZIPRV7hLBr7WP7UmpAiREMF7tTnmzAoGBAIkx3w3WywFQxtblmyeB
19+
qbd7F2IaE23XoxyjX+tBEQ4qQqwcoSE0v8TXHIBEwjceeX+NLVhn9ClJYVniLRq+
20+
oL3VVqVyzB4RleJZCc98e3PV1yyFx/b1Uo3pHOsXX9lKeTjKwV9v0rhFGzPEgP3M
21+
yOvXA8TG0FnM6OLUg/D6GX0JAoGAMuHS4TVOGeV3ahr9mHKYiN5vKNgrzka+VEod
22+
L9rJ/FQOrfADpyCiDen5I5ygsXU+VM3oanyK88NpcVlxOGoMft0M+OYoQVWKE7lO
23+
ZKYhBX6fGqQ7pfUJPXXIOgwfmni5fZ0sm+j63g3bg10OsiumKGxaQJgXhL1+3gQg
24+
Y7ZwibUCgYEAlZoFFvkMLjpOSaHk1z5ZZnt19X0QUIultBwkumSqMPm+Ks7+uDrx
25+
thGUCoz4ecr/ci4bIUY7mB+zfAbqnBOMxreJqCRbAIuRypo1IlWkTp8DywoDOfMW
26+
NfzjVmzJ7EJu44nGmVAi1jw4Pbseivvi1ujMCoPgaE8I1uSh144bwN8=
27+
-----END RSA PRIVATE KEY-----
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
- job:
3+
name: elastic+elasticsearch-py+master
4+
display-name: 'elastic / elasticsearch-py # master'
5+
description: Testing the elasticsearch-py 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.)

.ci/run-elasticsearch.sh

Lines changed: 204 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,204 @@
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 ELASTICSEARCH_VERSION variable, eg. 'elasticsearch:8.0.0-SNAPSHOT'.
7+
8+
# Version 1.0.2
9+
# - Initial version of the run-elasticsearch.sh script
10+
# - Deleting the volume should not dependent on the container still running
11+
# - Fixed `ES_JAVA_OPTS` config
12+
13+
if [[ -z "$ELASTICSEARCH_VERSION" ]]; then
14+
echo -e "\033[31;1mERROR:\033[0m Required environment variable [ELASTICSEARCH_VERSION] not set\033[0m"
15+
exit 1
16+
fi
17+
18+
set -euxo pipefail
19+
20+
SCRIPT_PATH=$(dirname $(realpath -s $0))
21+
22+
moniker=$(echo "$ELASTICSEARCH_VERSION" | tr -C "[:alnum:]" '-')
23+
suffix=rest-test
24+
25+
NODE_NAME=${NODE_NAME-${moniker}node1}
26+
MASTER_NODE_NAME=${MASTER_NODE_NAME-${NODE_NAME}}
27+
CLUSTER_NAME=${CLUSTER_NAME-${moniker}${suffix}}
28+
HTTP_PORT=${HTTP_PORT-9200}
29+
30+
ELASTIC_PASSWORD=${ELASTIC_PASSWORD-changeme}
31+
SSL_CERT=${SSL_CERT-"${SCRIPT_PATH}/certs/testnode.crt"}
32+
SSL_KEY=${SSL_KEY-"${SCRIPT_PATH}/certs/testnode.key"}
33+
SSL_CA=${SSL_CA-"${SCRIPT_PATH}/certs/ca.crt"}
34+
SSL_CA_PEM=${SSL_CA-"${SCRIPT_PATH}/certs/ca.pem"}
35+
36+
DETACH=${DETACH-false}
37+
CLEANUP=${CLEANUP-false}
38+
39+
volume_name=${NODE_NAME}-${suffix}-data
40+
network_default=${moniker}${suffix}
41+
NETWORK_NAME=${NETWORK_NAME-"$network_default"}
42+
43+
set +x
44+
45+
function cleanup_volume {
46+
if [[ "$(docker volume ls -q -f name=$1)" ]]; then
47+
echo -e "\033[34;1mINFO:\033[0m Removing volume $1\033[0m"
48+
(docker volume rm "$1") || true
49+
fi
50+
}
51+
function container_running {
52+
if [[ "$(docker ps -q -f name=$1)" ]]; then
53+
return 0;
54+
else return 1;
55+
fi
56+
}
57+
function cleanup_node {
58+
if container_running "$1"; then
59+
echo -e "\033[34;1mINFO:\033[0m Removing container $1\033[0m"
60+
(docker container rm --force --volumes "$1") || true
61+
fi
62+
echo -e "\033[34;1mINFO:\033[0m Removing volume $1-${suffix}-data\033[0m"
63+
cleanup_volume "$1-${suffix}-data"
64+
}
65+
function cleanup_network {
66+
if [[ "$(docker network ls -q -f name=$1)" ]]; then
67+
echo -e "\033[34;1mINFO:\033[0m Removing network $1\033[0m"
68+
(docker network rm "$1") || true
69+
fi
70+
}
71+
72+
function cleanup {
73+
if [[ "$DETACH" != "true" ]] || [[ "$1" == "1" ]]; then
74+
echo -e "\033[34;1mINFO:\033[0m clean the node and volume on startup (1) OR on exit if not detached\033[0m"
75+
cleanup_node "$NODE_NAME"
76+
fi
77+
if [[ "$DETACH" != "true" ]]; then
78+
echo -e "\033[34;1mINFO:\033[0m clean the network if not detached (start and exit)\033[0m"
79+
cleanup_network "$NETWORK_NAME"
80+
fi
81+
};
82+
trap "cleanup 0" EXIT
83+
84+
if [[ "$CLEANUP" == "true" ]]; then
85+
trap - EXIT
86+
if [[ -z "$(docker network ls -q -f name=${NETWORK_NAME})" ]]; then
87+
echo -e "\033[34;1mINFO:\033[0m $NETWORK_NAME is already deleted\033[0m"
88+
exit 0
89+
fi
90+
containers=$(docker network inspect -f '{{ range $key, $value := .Containers }}{{ printf "%s\n" .Name}}{{ end }}' ${NETWORK_NAME})
91+
while read -r container; do
92+
cleanup_node "$container"
93+
done <<< "$containers"
94+
cleanup_network "$NETWORK_NAME"
95+
echo -e "\033[32;1mSUCCESS:\033[0m Cleaned up and exiting\033[0m"
96+
exit 0
97+
fi
98+
99+
echo -e "\033[34;1mINFO:\033[0m Making sure previous run leftover infrastructure is removed \033[0m"
100+
cleanup 1
101+
102+
echo -e "\033[34;1mINFO:\033[0m Creating network $NETWORK_NAME if it does not exist already \033[0m"
103+
docker network inspect "$NETWORK_NAME" > /dev/null 2>&1 || docker network create "$NETWORK_NAME"
104+
105+
environment=($(cat <<-END
106+
--env node.name=$NODE_NAME
107+
--env cluster.name=$CLUSTER_NAME
108+
--env cluster.initial_master_nodes=$MASTER_NODE_NAME
109+
--env discovery.seed_hosts=$MASTER_NODE_NAME
110+
--env cluster.routing.allocation.disk.threshold_enabled=false
111+
--env bootstrap.memory_lock=true
112+
--env node.attr.testattr=test
113+
--env path.repo=/tmp
114+
--env repositories.url.allowed_urls=http://snapshot.test*
115+
END
116+
))
117+
118+
volumes=($(cat <<-END
119+
--volume $volume_name:/usr/share/elasticsearch/data
120+
END
121+
))
122+
123+
if [[ "$ELASTICSEARCH_VERSION" != *oss* ]]; then
124+
environment+=($(cat <<-END
125+
--env ELASTIC_PASSWORD=$ELASTIC_PASSWORD
126+
--env xpack.license.self_generated.type=trial
127+
--env xpack.security.enabled=true
128+
--env xpack.security.http.ssl.enabled=true
129+
--env xpack.security.http.ssl.verification_mode=certificate
130+
--env xpack.security.http.ssl.key=certs/testnode.key
131+
--env xpack.security.http.ssl.certificate=certs/testnode.crt
132+
--env xpack.security.http.ssl.certificate_authorities=certs/ca.crt
133+
--env xpack.security.transport.ssl.enabled=true
134+
--env xpack.security.transport.ssl.key=certs/testnode.key
135+
--env xpack.security.transport.ssl.certificate=certs/testnode.crt
136+
--env xpack.security.transport.ssl.certificate_authorities=certs/ca.crt
137+
END
138+
))
139+
volumes+=($(cat <<-END
140+
--volume $SSL_CERT:/usr/share/elasticsearch/config/certs/testnode.crt
141+
--volume $SSL_KEY:/usr/share/elasticsearch/config/certs/testnode.key
142+
--volume $SSL_CA:/usr/share/elasticsearch/config/certs/ca.crt
143+
--volume $SSL_CA_PEM:/usr/share/elasticsearch/config/certs/ca.pem
144+
END
145+
))
146+
fi
147+
148+
url="http://$NODE_NAME"
149+
if [[ "$ELASTICSEARCH_VERSION" != *oss* ]]; then
150+
url="https://elastic:$ELASTIC_PASSWORD@$NODE_NAME"
151+
fi
152+
153+
cert_validation_flags="--insecure"
154+
if [[ "$NODE_NAME" == "instance" ]]; then
155+
cert_validation_flags="--cacert /usr/share/elasticsearch/config/certs/ca.pem --resolve ${NODE_NAME}:443:127.0.0.1"
156+
fi
157+
158+
echo -e "\033[34;1mINFO:\033[0m Starting container $NODE_NAME \033[0m"
159+
160+
set -x
161+
docker run \
162+
--name "$NODE_NAME" \
163+
--network "$NETWORK_NAME" \
164+
--env "ES_JAVA_OPTS=-Xms1g -Xmx1g" \
165+
"${environment[@]}" \
166+
"${volumes[@]}" \
167+
--publish "$HTTP_PORT":9200 \
168+
--ulimit nofile=65536:65536 \
169+
--ulimit memlock=-1:-1 \
170+
--detach="$DETACH" \
171+
--health-cmd="curl $cert_validation_flags --fail $url:9200/_cluster/health || exit 1" \
172+
--health-interval=2s \
173+
--health-retries=20 \
174+
--health-timeout=2s \
175+
--rm \
176+
docker.elastic.co/elasticsearch/"$ELASTICSEARCH_VERSION";
177+
set +x
178+
179+
if [[ "$DETACH" == "true" ]]; then
180+
until ! container_running "$NODE_NAME" || (container_running "$NODE_NAME" && [[ "$(docker inspect -f "{{.State.Health.Status}}" ${NODE_NAME})" != "starting" ]]); do
181+
echo ""
182+
docker inspect -f "{{range .State.Health.Log}}{{.Output}}{{end}}" ${NODE_NAME}
183+
echo -e "\033[34;1mINFO:\033[0m waiting for node $NODE_NAME to be up\033[0m"
184+
sleep 2;
185+
done;
186+
187+
# Always show logs if the container is running, this is very useful both on CI as well as while developing
188+
if container_running $NODE_NAME; then
189+
docker logs $NODE_NAME
190+
fi
191+
192+
if ! container_running $NODE_NAME || [[ "$(docker inspect -f "{{.State.Health.Status}}" ${NODE_NAME})" != "healthy" ]]; then
193+
cleanup 1
194+
echo
195+
echo -e "\033[31;1mERROR:\033[0m Failed to start ${ELASTICSEARCH_VERSION} in detached mode beyond health checks\033[0m"
196+
echo -e "\033[31;1mERROR:\033[0m dumped the docker log before shutting the node down\033[0m"
197+
exit 1
198+
else
199+
echo
200+
echo -e "\033[32;1mSUCCESS:\033[0m Detached and healthy: ${NODE_NAME} on docker network: ${NETWORK_NAME}\033[0m"
201+
echo -e "\033[32;1mSUCCESS:\033[0m Running on: ${url/$NODE_NAME/localhost}:${HTTP_PORT}\033[0m"
202+
exit 0
203+
fi
204+
fi

.ci/run-repository.sh

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/usr/bin/env bash
2+
3+
# Called by entry point `run-test` use this script to add your repository specific test commands
4+
# Once called Elasticsearch is up and running and the following parameters are available to this script
5+
6+
# ELASTICSEARCH_VERSION -- version e.g Major.Minor.Patch(-Prelease)
7+
# ELASTICSEARCH_CONTAINER -- the docker moniker as a reference to know which docker image distribution is used
8+
# ELASTICSEARCH_URL -- The url at which elasticsearch is reachable
9+
# NETWORK_NAME -- The docker network name
10+
# NODE_NAME -- The docker container name also used as Elasticsearch node name
11+
12+
# When run in CI the test-matrix is used to define additional variables
13+
# TEST_SUITE -- either `oss` or `xpack`, defaults to `oss` in `run-tests`
14+
15+
set -e
16+
17+
echo -e "\033[34;1mINFO:\033[0m URL ${ELASTICSEARCH_URL}\033[0m"
18+
echo -e "\033[34;1mINFO:\033[0m VERSION ${ELASTICSEARCH_VERSION}\033[0m"
19+
echo -e "\033[34;1mINFO:\033[0m CONTAINER ${ELASTICSEARCH_CONTAINER}\033[0m"
20+
echo -e "\033[34;1mINFO:\033[0m TEST_SUITE ${TEST_SUITE}\033[0m"
21+
echo -e "\033[34;1mINFO:\033[0m PYTHON_VERSION ${PYTHON_VERSION}\033[0m"
22+
echo -e "\033[34;1mINFO:\033[0m PYTHON_CONNECTION_CLASS ${PYTHON_CONNECTION_CLASS}\033[0m"
23+
24+
echo -e "\033[1m>>>>> Build [elastic/elasticsearch-py container] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m"
25+
26+
docker build \
27+
--file .ci/Dockerfile \
28+
--tag elastic/elasticsearch-py \
29+
--build-arg PYTHON_VERSION=${PYTHON_VERSION} \
30+
.
31+
32+
echo -e "\033[1m>>>>> Run [elastic/elasticsearch-py container] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m"
33+
34+
docker run \
35+
--network=${NETWORK_NAME} \
36+
--env "ELASTICSEARCH_HOST=${ELASTICSEARCH_URL}" \
37+
--env "TEST_SUITE=${TEST_SUITE}" \
38+
--env "PYTHON_CONNECTION_CLASS=${PYTHON_CONNECTION_CLASS}" \
39+
--name elasticsearch-py \
40+
--rm \
41+
elastic/elasticsearch-py \
42+
python setup.py test

0 commit comments

Comments
 (0)