dcb79cc322
* Merged types into .py code. Signed-off-by: dblock <dblock@amazon.com> * Fix: nox -rs generate. Signed-off-by: dblock <dblock@amazon.com> * Updated CHANGELOG. Signed-off-by: dblock <dblock@amazon.com> * Use lowest common python version for lint. Signed-off-by: dblock <dblock@amazon.com> * Fix: don't typeshed. Signed-off-by: dblock <dblock@amazon.com> * Removed unneeded comment. Signed-off-by: dblock <dblock@amazon.com> * Simplify OPENSEARCH_URL. Signed-off-by: dblock <dblock@amazon.com> * Fix: positional ignore_status used as chunk_size. Signed-off-by: dblock <dblock@amazon.com> * Fix: parse version string. Signed-off-by: dblock <dblock@amazon.com> * Remove future annotations for Python 3.6. Signed-off-by: dblock <dblock@amazon.com> * Fix: types in documentation. Signed-off-by: dblock <dblock@amazon.com> * Improve CHANGELOG text. Signed-off-by: dblock <dblock@amazon.com> * Re-added missing separator. Signed-off-by: dblock <dblock@amazon.com> * Remove duplicate licenses. Signed-off-by: dblock <dblock@amazon.com> * Get rid of Optional[Any]. Signed-off-by: dblock <dblock@amazon.com> * Fix docs with AsyncOpenSearch. Signed-off-by: dblock <dblock@amazon.com> * Fix: undo comment. Signed-off-by: dblock <dblock@amazon.com> --------- Signed-off-by: dblock <dblock@amazon.com>
45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
# -*- 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.
|
|
|
|
import os
|
|
import time
|
|
from typing import Any
|
|
from unittest import SkipTest
|
|
|
|
from opensearchpy import AsyncOpenSearch
|
|
from opensearchpy.exceptions import ConnectionError
|
|
|
|
OPENSEARCH_URL = os.environ.get("OPENSEARCH_URL", "https://admin:admin@localhost:9200")
|
|
|
|
|
|
async def get_test_client(nowait: bool = False, **kwargs: Any) -> Any:
|
|
# construct kwargs from the environment
|
|
kw = {"timeout": 30}
|
|
|
|
from opensearchpy import AsyncConnection
|
|
|
|
async_connection = AsyncConnection()
|
|
if hasattr(async_connection, "AIOHttpConnection"):
|
|
kw["connection_class"] = getattr(async_connection, "AIOHttpConnection")
|
|
|
|
kw.update(kwargs)
|
|
client = AsyncOpenSearch(OPENSEARCH_URL, **kw) # type: ignore
|
|
|
|
# wait for yellow status
|
|
for _ in range(1 if nowait else 100):
|
|
try:
|
|
await client.cluster.health(wait_for_status="yellow")
|
|
return client
|
|
except ConnectionError:
|
|
time.sleep(0.1)
|
|
else:
|
|
# timeout
|
|
raise SkipTest("OpenSearch failed to start.")
|