Support integ test with security plugin enabled
Removed a docker-compose.yml file which wasn't being used. Signed-off-by: Rushi Agrawal <[email protected]>
This commit is contained in:
@@ -1,15 +0,0 @@
|
|||||||
version: '3'
|
|
||||||
|
|
||||||
services:
|
|
||||||
|
|
||||||
opensearch:
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
args:
|
|
||||||
- SECURE_INTEGRATION=${SECURE_INTEGRATION:-false}
|
|
||||||
- OPENSEARCH_VERSION=${OPENSEARCH_VERSION:-latest}
|
|
||||||
command: /usr/share/opensearch/opensearch-run.sh
|
|
||||||
ports:
|
|
||||||
- "9200:9200"
|
|
||||||
user: opensearch
|
|
||||||
@@ -65,15 +65,19 @@ END
|
|||||||
if [[ "$i" == "$((NUMBER_OF_NODES-1))" ]]; then local_detach=$DETACH; fi
|
if [[ "$i" == "$((NUMBER_OF_NODES-1))" ]]; then local_detach=$DETACH; fi
|
||||||
|
|
||||||
echo -e "\033[34;1mINFO: building $CLUSTER container\033[0m"
|
echo -e "\033[34;1mINFO: building $CLUSTER container\033[0m"
|
||||||
echo 'cluster is' $CLUSTER
|
|
||||||
docker build \
|
docker build \
|
||||||
--file=.ci/$CLUSTER/Dockerfile \
|
--file=.ci/$CLUSTER/Dockerfile \
|
||||||
--build-arg SECURE_INTEGRATION=false \
|
--build-arg SECURE_INTEGRATION=$SECURE_INTEGRATION \
|
||||||
--tag=$CLUSTER \
|
--tag=$CLUSTER-secure-$SECURE_INTEGRATION \
|
||||||
.
|
.
|
||||||
|
|
||||||
echo -e "\033[34;1mINFO:\033[0m Starting container $node_name \033[0m"
|
echo -e "\033[34;1mINFO:\033[0m Starting container $node_name \033[0m"
|
||||||
set -x
|
set -x
|
||||||
|
healthcmd="curl -vvv -s --fail http://localhost:9200/_cluster/health || exit 1"
|
||||||
|
if [[ "$SECURE_INTEGRATION" == "true" ]]; then
|
||||||
|
healthcmd="curl -vvv -s --insecure -u admin:admin --fail https://localhost:9200/_cluster/health || exit 1"
|
||||||
|
fi
|
||||||
|
|
||||||
docker run \
|
docker run \
|
||||||
--name "$node_name" \
|
--name "$node_name" \
|
||||||
--network "$network_name" \
|
--network "$network_name" \
|
||||||
@@ -84,13 +88,13 @@ END
|
|||||||
--ulimit nofile=65536:65536 \
|
--ulimit nofile=65536:65536 \
|
||||||
--ulimit memlock=-1:-1 \
|
--ulimit memlock=-1:-1 \
|
||||||
--detach="$local_detach" \
|
--detach="$local_detach" \
|
||||||
--health-cmd="curl -vvv -s --fail $opensearch_url/_cluster/health || exit 1" \
|
--health-cmd="$(echo $healthcmd)" \
|
||||||
--health-interval=2s \
|
--health-interval=2s \
|
||||||
--health-retries=20 \
|
--health-retries=20 \
|
||||||
--health-timeout=2s \
|
--health-timeout=2s \
|
||||||
--rm \
|
--rm \
|
||||||
-d \
|
-d \
|
||||||
$CLUSTER;
|
$CLUSTER-secure-$SECURE_INTEGRATION;
|
||||||
|
|
||||||
set +x
|
set +x
|
||||||
if wait_for_container "$opensearch_node_name" "$network_name"; then
|
if wait_for_container "$opensearch_node_name" "$network_name"; then
|
||||||
|
|||||||
+8
-2
@@ -8,13 +8,19 @@
|
|||||||
export TEST_SUITE="${TEST_SUITE:=oss}"
|
export TEST_SUITE="${TEST_SUITE:=oss}"
|
||||||
export PYTHON_VERSION="${PYTHON_VERSION:=3.9}"
|
export PYTHON_VERSION="${PYTHON_VERSION:=3.9}"
|
||||||
export PYTHON_CONNECTION_CLASS="${PYTHON_CONNECTION_CLASS:=Urllib3HttpConnection}"
|
export PYTHON_CONNECTION_CLASS="${PYTHON_CONNECTION_CLASS:=Urllib3HttpConnection}"
|
||||||
export OPENSEARCH_URL_EXTENSION="${OPENSEARCH_URL_EXTENSION:=http}"
|
export CLUSTER="${1:-opensearch}"
|
||||||
export CLUSTER="${1:=opensearch}"
|
export SECURE_INTEGRATION="${2:-false}"
|
||||||
|
if [[ "$SECURE_INTEGRATION" == "true" ]]; then
|
||||||
|
export OPENSEARCH_URL_EXTENSION="https"
|
||||||
|
else
|
||||||
|
export OPENSEARCH_URL_EXTENSION="http"
|
||||||
|
fi
|
||||||
|
|
||||||
script_path=$(dirname $(realpath -s $0))
|
script_path=$(dirname $(realpath -s $0))
|
||||||
source $script_path/functions/imports.sh
|
source $script_path/functions/imports.sh
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
|
echo -e "\033[1m>>>>> Start server container >>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m"
|
||||||
DETACH=true bash .ci/run-opensearch.sh
|
DETACH=true bash .ci/run-opensearch.sh
|
||||||
|
|
||||||
if [[ -n "$RUNSCRIPTS" ]]; then
|
if [[ -n "$RUNSCRIPTS" ]]; then
|
||||||
|
|||||||
@@ -3,16 +3,17 @@ name: Integration tests
|
|||||||
on: [push, pull_request]
|
on: [push, pull_request]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
assemble:
|
integration:
|
||||||
name: Assemble
|
name: Integ
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
cluster: ["opendistro", "opensearch"]
|
cluster: ["opendistro", "opensearch"]
|
||||||
|
secured: ["true", "false"]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
- run: "./.ci/run-tests ${{ matrix.cluster }} "
|
- run: "./.ci/run-tests ${{ matrix.cluster }} ${{ matrix.secured }}"
|
||||||
name: Integ ${{ matrix.cluster }}
|
name: Integ ${{ matrix.stack_version }} ${{ matrix.cluster }} secured=${{ matrix.secured }}
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ class OpenSearchTestCase(TestCase):
|
|||||||
def teardown_method(self, _):
|
def teardown_method(self, _):
|
||||||
# Hidden indices expanded in wildcards in OpenSearch 7.7
|
# Hidden indices expanded in wildcards in OpenSearch 7.7
|
||||||
expand_wildcards = ["open", "closed"]
|
expand_wildcards = ["open", "closed"]
|
||||||
if self.opensearch_version() >= (7, 7):
|
if self.opensearch_version() >= (1, 0):
|
||||||
expand_wildcards.append("hidden")
|
expand_wildcards.append("hidden")
|
||||||
|
|
||||||
self.client.indices.delete(
|
self.client.indices.delete(
|
||||||
|
|||||||
@@ -103,6 +103,10 @@ def run_all(argv=None):
|
|||||||
"-vv",
|
"-vv",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
secured = False
|
||||||
|
if environ.get("OPENSEARCH_URL", "").startswith("https://"):
|
||||||
|
secured = True
|
||||||
|
|
||||||
ignores = []
|
ignores = []
|
||||||
# Python 3.6+ is required for async
|
# Python 3.6+ is required for async
|
||||||
if sys.version_info < (3, 6):
|
if sys.version_info < (3, 6):
|
||||||
@@ -113,18 +117,34 @@ def run_all(argv=None):
|
|||||||
ignores.extend(
|
ignores.extend(
|
||||||
[
|
[
|
||||||
"test_opensearch/test_server/",
|
"test_opensearch/test_server/",
|
||||||
|
"test_opensearch/test_server_secured/",
|
||||||
"test_opensearch/test_async/test_server/",
|
"test_opensearch/test_async/test_server/",
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
if ignores:
|
|
||||||
argv.extend(["--ignore=%s" % ignore for ignore in ignores])
|
|
||||||
|
|
||||||
# Jenkins, only run server tests
|
# Jenkins/Github actions, only run server tests
|
||||||
if environ.get("TEST_TYPE") == "server":
|
if environ.get("TEST_TYPE") == "server":
|
||||||
test_dir = abspath(dirname(__file__))
|
test_dir = abspath(dirname(__file__))
|
||||||
argv.append(join(test_dir, "test_server"))
|
if secured:
|
||||||
if sys.version_info >= (3, 6):
|
argv.append(join(test_dir, "test_server_secured"))
|
||||||
argv.append(join(test_dir, "test_async/test_server"))
|
ignores.extend(
|
||||||
|
[
|
||||||
|
"test_opensearch/test_server/",
|
||||||
|
"test_opensearch/test_async/test_server/",
|
||||||
|
]
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
argv.append(join(test_dir, "test_server"))
|
||||||
|
if sys.version_info >= (3, 6):
|
||||||
|
argv.append(join(test_dir, "test_async/test_server"))
|
||||||
|
ignores.extend(
|
||||||
|
[
|
||||||
|
"test_opensearch/test_server_secured/",
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
if ignores:
|
||||||
|
argv.extend(["--ignore=%s" % ignore for ignore in ignores])
|
||||||
|
|
||||||
# Not in CI, run all tests specified.
|
# Not in CI, run all tests specified.
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
# The OpenSearch Contributors require contributions made to
|
||||||
|
# this file be licensed under the Apache-2.0 license or a
|
||||||
|
# compatible open source license.
|
||||||
|
#
|
||||||
|
# Modifications Copyright OpenSearch Contributors. See
|
||||||
|
# GitHub history for details.
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
# The OpenSearch Contributors require contributions made to
|
||||||
|
# this file be licensed under the Apache-2.0 license or a
|
||||||
|
# compatible open source license.
|
||||||
|
#
|
||||||
|
# Modifications Copyright OpenSearch Contributors. See
|
||||||
|
# GitHub history for details.
|
||||||
|
|
||||||
|
from unittest import TestCase
|
||||||
|
|
||||||
|
from opensearch import OpenSearch
|
||||||
|
from opensearch.helpers.test import OPENSEARCH_URL
|
||||||
|
|
||||||
|
|
||||||
|
class TestSecurity(TestCase):
|
||||||
|
def test_security(self):
|
||||||
|
client = OpenSearch(
|
||||||
|
OPENSEARCH_URL,
|
||||||
|
http_auth=("admin", "admin"),
|
||||||
|
verify_certs=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
info = client.info()
|
||||||
|
self.assertNotEqual(info["version"]["number"], "")
|
||||||
|
self.assertNotEqual(info["tagline"], "")
|
||||||
|
self.assertTrue(
|
||||||
|
"build_flavor" in info["version"] or "distribution" in info["version"]
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user