-
Notifications
You must be signed in to change notification settings - Fork 188
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix point in time rest api #191
Changes from 7 commits
6709579
216ba33
fdd2e9d
fb8460c
faefc8e
add6177
ac48aae
07daaf4
c9af990
2a71d40
226c1bc
55d9d0c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
- [Using IAM credentials for authentication](#using-iam-credentials-for-authentication) | ||
- [Pre-requisites to use `AWSV4SignerAuth`](#pre-requisites-to-use-awsv4signerauth) | ||
|
||
# Getting Started with the OpenSearch Python Client | ||
# User guide of OpenSearch Python Client | ||
|
||
## Setup | ||
|
||
|
@@ -23,8 +23,9 @@ from opensearchpy import OpenSearch | |
If you prefer to add the client manually or just want to examine the source code, see [opensearch-py on GitHub](https://github.com/opensearch-project/opensearch-py). | ||
|
||
|
||
## Sample code | ||
|
||
## Example | ||
In the example given below, we create a client, an index with non-default settings, insert a | ||
document in the index, search for the document, delete the document and finally delete the index. | ||
```python | ||
from opensearchpy import OpenSearch | ||
|
||
|
@@ -119,7 +120,39 @@ response = client.indices.delete( | |
print('\nDeleting index:') | ||
print(response) | ||
``` | ||
## Making API Calls | ||
|
||
### Point in Time API calls | ||
```python | ||
|
||
# create a point in time on a index | ||
index_name = "test-index" | ||
response = client.create_point_in_time(index=index_name, | ||
keep_alive="1m") | ||
|
||
pit_id = response.get("pit_id") | ||
print('\n Point in time ID:') | ||
print(pit_id) | ||
|
||
# To list all point in time which are plive in the cluster | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. nit: *alive |
||
response = client.list_all_point_in_time() | ||
print('\n List of all Point in Time:') | ||
print(response) | ||
|
||
# delete point in time | ||
Arpit-Bandejiya marked this conversation as resolved.
Show resolved
Hide resolved
|
||
body = { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. nit: should we have better variable naming, applies to pit_id as well |
||
"pit_id": [pit_id] | ||
} | ||
|
||
response = client.delete_point_in_time(body=body) | ||
# To delete all point in time | ||
# client.delete_point_in_time(body=None, all=True) | ||
|
||
print('\n The deleted point in time:') | ||
print(response) | ||
|
||
|
||
``` | ||
## Using IAM credentials for authentication | ||
|
||
Refer the AWS documentation regarding usage of IAM credentials to sign requests to OpenSearch APIs - [Signing HTTP requests to Amazon OpenSearch Service.](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/request-signing.html#request-signing-python) | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -48,7 +48,7 @@ def format(session): | |
session.install("black", "isort") | ||
|
||
session.run("isort", "--profile=black", *SOURCE_FILES) | ||
session.run("black", "--target-version=py27", *SOURCE_FILES) | ||
session.run("black", "--target-version=py33", *SOURCE_FILES) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix for running lint formatter in nox, the py27 is not supported any more. We have update it in other places in the same file but this was left. |
||
session.run("python", "utils/license-headers.py", "fix", *SOURCE_FILES) | ||
|
||
lint(session) | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
# 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. | ||
# | ||
# Licensed to Elasticsearch B.V. under one or more contributor | ||
# license agreements. See the NOTICE file distributed with | ||
# this work for additional information regarding copyright | ||
# ownership. Elasticsearch B.V. licenses this file to you under | ||
# the Apache License, Version 2.0 (the "License"); you may | ||
# not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, | ||
# software distributed under the License is distributed on an | ||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
# KIND, either express or implied. See the License for the | ||
# specific language governing permissions and limitations | ||
# under the License. | ||
|
||
from test_opensearchpy.test_cases import OpenSearchTestCase | ||
|
||
|
||
class TestPointInTime(OpenSearchTestCase): | ||
def test_create_one_point_in_time(self): | ||
index_name = "test-index" | ||
self.client.create_point_in_time(index=index_name) | ||
self.assert_url_called("POST", "/test-index/_search/point_in_time") | ||
|
||
def test_delete_one_point_in_time(self): | ||
self.client.delete_point_in_time(body={"pit_id": ["Sample-PIT-ID"]}) | ||
self.assert_url_called("DELETE", "/_search/point_in_time") | ||
|
||
def test_delete_all_point_in_time(self): | ||
self.client.delete_point_in_time(all=True) | ||
self.assert_url_called("DELETE", "/_search/point_in_time/_all") | ||
|
||
def test_list_all_point_in_time(self): | ||
self.client.list_all_point_in_time() | ||
self.assert_url_called("GET", "/_search/point_in_time/_all") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we give a brief about Point In Time here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will update it with the official documentation link later.