added remote store client (#552)
Signed-off-by: saimedhi <[email protected]>
This commit is contained in:
@@ -10,6 +10,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
|||||||
- Added benchmarks ([#537](https://github.com/opensearch-project/opensearch-py/pull/537))
|
- Added benchmarks ([#537](https://github.com/opensearch-project/opensearch-py/pull/537))
|
||||||
- Added guide on making raw JSON REST requests ([#542](https://github.com/opensearch-project/opensearch-py/pull/542))
|
- Added guide on making raw JSON REST requests ([#542](https://github.com/opensearch-project/opensearch-py/pull/542))
|
||||||
- Added support for AWS SigV4 for urllib3 ([#547](https://github.com/opensearch-project/opensearch-py/pull/547))
|
- Added support for AWS SigV4 for urllib3 ([#547](https://github.com/opensearch-project/opensearch-py/pull/547))
|
||||||
|
- Added `remote store` client APIs ([#552](https://github.com/opensearch-project/opensearch-py/pull/552))
|
||||||
### Changed
|
### Changed
|
||||||
- Generate `tasks` client from API specs ([#508](https://github.com/opensearch-project/opensearch-py/pull/508))
|
- Generate `tasks` client from API specs ([#508](https://github.com/opensearch-project/opensearch-py/pull/508))
|
||||||
- Generate `ingest` client from API specs ([#513](https://github.com/opensearch-project/opensearch-py/pull/513))
|
- Generate `ingest` client from API specs ([#513](https://github.com/opensearch-project/opensearch-py/pull/513))
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ from .ingest import IngestClient
|
|||||||
from .nodes import NodesClient
|
from .nodes import NodesClient
|
||||||
from .plugins import PluginsClient
|
from .plugins import PluginsClient
|
||||||
from .remote import RemoteClient
|
from .remote import RemoteClient
|
||||||
|
from .remote_store import RemoteStoreClient
|
||||||
from .security import SecurityClient
|
from .security import SecurityClient
|
||||||
from .snapshot import SnapshotClient
|
from .snapshot import SnapshotClient
|
||||||
from .tasks import TasksClient
|
from .tasks import TasksClient
|
||||||
@@ -217,6 +218,7 @@ class AsyncOpenSearch(object):
|
|||||||
self.security = SecurityClient(self)
|
self.security = SecurityClient(self)
|
||||||
self.snapshot = SnapshotClient(self)
|
self.snapshot = SnapshotClient(self)
|
||||||
self.tasks = TasksClient(self)
|
self.tasks = TasksClient(self)
|
||||||
|
self.remote_store = RemoteStoreClient(self)
|
||||||
|
|
||||||
self.features = FeaturesClient(self)
|
self.features = FeaturesClient(self)
|
||||||
|
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ from .indices import IndicesClient
|
|||||||
from .ingest import IngestClient
|
from .ingest import IngestClient
|
||||||
from .nodes import NodesClient
|
from .nodes import NodesClient
|
||||||
from .remote import RemoteClient
|
from .remote import RemoteClient
|
||||||
|
from .remote_store import RemoteStoreClient
|
||||||
from .security import SecurityClient
|
from .security import SecurityClient
|
||||||
from .snapshot import SnapshotClient
|
from .snapshot import SnapshotClient
|
||||||
from .tasks import TasksClient
|
from .tasks import TasksClient
|
||||||
@@ -67,6 +68,7 @@ class AsyncOpenSearch(object):
|
|||||||
security: SecurityClient
|
security: SecurityClient
|
||||||
snapshot: SnapshotClient
|
snapshot: SnapshotClient
|
||||||
tasks: TasksClient
|
tasks: TasksClient
|
||||||
|
remote_store: RemoteStoreClient
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
hosts: Any = ...,
|
hosts: Any = ...,
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
# 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.
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# THIS CODE IS GENERATED AND MANUAL EDITS WILL BE LOST.
|
||||||
|
#
|
||||||
|
# To contribute, kindly make essential modifications through either the "opensearch-py client generator":
|
||||||
|
# https://github.com/opensearch-project/opensearch-py/blob/main/utils/generate-api.py
|
||||||
|
# or the "OpenSearch API specification" available at:
|
||||||
|
# https://github.com/opensearch-project/opensearch-api-specification/blob/main/OpenSearch.openapi.json
|
||||||
|
# -----------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
from .utils import SKIP_IN_PATH, NamespacedClient, query_params
|
||||||
|
|
||||||
|
|
||||||
|
class RemoteStoreClient(NamespacedClient):
|
||||||
|
@query_params("cluster_manager_timeout", "wait_for_completion")
|
||||||
|
async def restore(self, body, params=None, headers=None):
|
||||||
|
"""
|
||||||
|
Restores from remote store.
|
||||||
|
|
||||||
|
|
||||||
|
:arg body: Comma-separated list of index IDs
|
||||||
|
:arg cluster_manager_timeout: Operation timeout for connection
|
||||||
|
to cluster-manager node.
|
||||||
|
:arg wait_for_completion: Should this request wait until the
|
||||||
|
operation has completed before returning. (default: false)
|
||||||
|
"""
|
||||||
|
if body in SKIP_IN_PATH:
|
||||||
|
raise ValueError("Empty value passed for a required argument 'body'.")
|
||||||
|
|
||||||
|
return await self.transport.perform_request(
|
||||||
|
"POST", "/_remotestore/_restore", params=params, headers=headers, body=body
|
||||||
|
)
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
# 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.
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# THIS CODE IS GENERATED AND MANUAL EDITS WILL BE LOST.
|
||||||
|
#
|
||||||
|
# To contribute, kindly make essential modifications through either the "opensearch-py client generator":
|
||||||
|
# https://github.com/opensearch-project/opensearch-py/blob/main/utils/generate-api.py
|
||||||
|
# or the "OpenSearch API specification" available at:
|
||||||
|
# https://github.com/opensearch-project/opensearch-api-specification/blob/main/OpenSearch.openapi.json
|
||||||
|
# -----------------------------------------------------
|
||||||
|
|
||||||
|
from typing import Any, Collection, MutableMapping, Optional, Tuple, Union
|
||||||
|
|
||||||
|
from .utils import NamespacedClient
|
||||||
|
|
||||||
|
class RemoteStoreClient(NamespacedClient):
|
||||||
|
async def restore(
|
||||||
|
self,
|
||||||
|
*,
|
||||||
|
body: Any,
|
||||||
|
cluster_manager_timeout: Optional[Any] = ...,
|
||||||
|
wait_for_completion: Optional[Any] = ...,
|
||||||
|
pretty: Optional[bool] = ...,
|
||||||
|
human: Optional[bool] = ...,
|
||||||
|
error_trace: Optional[bool] = ...,
|
||||||
|
format: Optional[str] = ...,
|
||||||
|
filter_path: Optional[Union[str, Collection[str]]] = ...,
|
||||||
|
request_timeout: Optional[Union[int, float]] = ...,
|
||||||
|
ignore: Optional[Union[int, Collection[int]]] = ...,
|
||||||
|
opaque_id: Optional[str] = ...,
|
||||||
|
http_auth: Optional[Union[str, Tuple[str, str]]] = ...,
|
||||||
|
api_key: Optional[Union[str, Tuple[str, str]]] = ...,
|
||||||
|
params: Optional[MutableMapping[str, Any]] = ...,
|
||||||
|
headers: Optional[MutableMapping[str, str]] = ...,
|
||||||
|
) -> Any: ...
|
||||||
@@ -50,6 +50,7 @@ from .ingest import IngestClient
|
|||||||
from .nodes import NodesClient
|
from .nodes import NodesClient
|
||||||
from .plugins import PluginsClient
|
from .plugins import PluginsClient
|
||||||
from .remote import RemoteClient
|
from .remote import RemoteClient
|
||||||
|
from .remote_store import RemoteStoreClient
|
||||||
from .security import SecurityClient
|
from .security import SecurityClient
|
||||||
from .snapshot import SnapshotClient
|
from .snapshot import SnapshotClient
|
||||||
from .tasks import TasksClient
|
from .tasks import TasksClient
|
||||||
@@ -217,6 +218,7 @@ class OpenSearch(object):
|
|||||||
self.security = SecurityClient(self)
|
self.security = SecurityClient(self)
|
||||||
self.snapshot = SnapshotClient(self)
|
self.snapshot = SnapshotClient(self)
|
||||||
self.tasks = TasksClient(self)
|
self.tasks = TasksClient(self)
|
||||||
|
self.remote_store = RemoteStoreClient(self)
|
||||||
|
|
||||||
self.features = FeaturesClient(self)
|
self.features = FeaturesClient(self)
|
||||||
|
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ from .indices import IndicesClient
|
|||||||
from .ingest import IngestClient
|
from .ingest import IngestClient
|
||||||
from .nodes import NodesClient
|
from .nodes import NodesClient
|
||||||
from .remote import RemoteClient
|
from .remote import RemoteClient
|
||||||
|
from .remote_store import RemoteStoreClient
|
||||||
from .security import SecurityClient
|
from .security import SecurityClient
|
||||||
from .snapshot import SnapshotClient
|
from .snapshot import SnapshotClient
|
||||||
from .tasks import TasksClient
|
from .tasks import TasksClient
|
||||||
@@ -67,6 +68,7 @@ class OpenSearch(object):
|
|||||||
security: SecurityClient
|
security: SecurityClient
|
||||||
snapshot: SnapshotClient
|
snapshot: SnapshotClient
|
||||||
tasks: TasksClient
|
tasks: TasksClient
|
||||||
|
remote_store: RemoteStoreClient
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
hosts: Any = ...,
|
hosts: Any = ...,
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
# 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.
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# THIS CODE IS GENERATED AND MANUAL EDITS WILL BE LOST.
|
||||||
|
#
|
||||||
|
# To contribute, kindly make essential modifications through either the "opensearch-py client generator":
|
||||||
|
# https://github.com/opensearch-project/opensearch-py/blob/main/utils/generate-api.py
|
||||||
|
# or the "OpenSearch API specification" available at:
|
||||||
|
# https://github.com/opensearch-project/opensearch-api-specification/blob/main/OpenSearch.openapi.json
|
||||||
|
# -----------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
from .utils import SKIP_IN_PATH, NamespacedClient, query_params
|
||||||
|
|
||||||
|
|
||||||
|
class RemoteStoreClient(NamespacedClient):
|
||||||
|
@query_params("cluster_manager_timeout", "wait_for_completion")
|
||||||
|
def restore(self, body, params=None, headers=None):
|
||||||
|
"""
|
||||||
|
Restores from remote store.
|
||||||
|
|
||||||
|
|
||||||
|
:arg body: Comma-separated list of index IDs
|
||||||
|
:arg cluster_manager_timeout: Operation timeout for connection
|
||||||
|
to cluster-manager node.
|
||||||
|
:arg wait_for_completion: Should this request wait until the
|
||||||
|
operation has completed before returning. (default: false)
|
||||||
|
"""
|
||||||
|
if body in SKIP_IN_PATH:
|
||||||
|
raise ValueError("Empty value passed for a required argument 'body'.")
|
||||||
|
|
||||||
|
return self.transport.perform_request(
|
||||||
|
"POST", "/_remotestore/_restore", params=params, headers=headers, body=body
|
||||||
|
)
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
# 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.
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# THIS CODE IS GENERATED AND MANUAL EDITS WILL BE LOST.
|
||||||
|
#
|
||||||
|
# To contribute, kindly make essential modifications through either the "opensearch-py client generator":
|
||||||
|
# https://github.com/opensearch-project/opensearch-py/blob/main/utils/generate-api.py
|
||||||
|
# or the "OpenSearch API specification" available at:
|
||||||
|
# https://github.com/opensearch-project/opensearch-api-specification/blob/main/OpenSearch.openapi.json
|
||||||
|
# -----------------------------------------------------
|
||||||
|
|
||||||
|
from typing import Any, Collection, MutableMapping, Optional, Tuple, Union
|
||||||
|
|
||||||
|
from .utils import NamespacedClient
|
||||||
|
|
||||||
|
class RemoteStoreClient(NamespacedClient):
|
||||||
|
def restore(
|
||||||
|
self,
|
||||||
|
*,
|
||||||
|
body: Any,
|
||||||
|
cluster_manager_timeout: Optional[Any] = ...,
|
||||||
|
wait_for_completion: Optional[Any] = ...,
|
||||||
|
pretty: Optional[bool] = ...,
|
||||||
|
human: Optional[bool] = ...,
|
||||||
|
error_trace: Optional[bool] = ...,
|
||||||
|
format: Optional[str] = ...,
|
||||||
|
filter_path: Optional[Union[str, Collection[str]]] = ...,
|
||||||
|
request_timeout: Optional[Union[int, float]] = ...,
|
||||||
|
ignore: Optional[Union[int, Collection[int]]] = ...,
|
||||||
|
opaque_id: Optional[str] = ...,
|
||||||
|
http_auth: Optional[Union[str, Tuple[str, str]]] = ...,
|
||||||
|
api_key: Optional[Union[str, Tuple[str, str]]] = ...,
|
||||||
|
params: Optional[MutableMapping[str, Any]] = ...,
|
||||||
|
headers: Optional[MutableMapping[str, str]] = ...,
|
||||||
|
) -> Any: ...
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# 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 test_opensearchpy.test_cases import OpenSearchTestCase
|
||||||
|
|
||||||
|
|
||||||
|
class TestRemoteStore(OpenSearchTestCase):
|
||||||
|
def test_remote_store_restore(self):
|
||||||
|
self.client.remote_store.restore(body=["index-1"])
|
||||||
|
self.assert_url_called("POST", "/_remotestore/_restore")
|
||||||
Reference in New Issue
Block a user