-
Notifications
You must be signed in to change notification settings - Fork 185
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix AuthorizationException with AWSV4SignerAsyncAuth when the doc ID …
…has special characters. (#848) * Lifecycle integration tests. Signed-off-by: dblock <[email protected]> * Added a test that makes sure the slash is properly encoded. Signed-off-by: dblock <[email protected]> * Added more tests for signer and _make_path. Signed-off-by: Nathalie Jonathan <[email protected]> * Prevent AIOHttpConnection from encoding the url a second time. Signed-off-by: Nathalie Jonathan <[email protected]> --------- Signed-off-by: dblock <[email protected]> Signed-off-by: Nathalie Jonathan <[email protected]> Co-authored-by: dblock <[email protected]>
- Loading branch information
1 parent
bf9add4
commit b9e48dc
Showing
13 changed files
with
445 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
#!/usr/bin/env python | ||
|
||
# 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 | ||
|
||
from opensearchpy import OpenSearch | ||
|
||
# connect to OpenSearch | ||
|
||
|
||
def main() -> None: | ||
""" | ||
An example showing how to create a synchronous connection to | ||
OpenSearch, create an index, index a document and search to | ||
return the document. | ||
""" | ||
host = "localhost" | ||
port = 9200 | ||
auth = ( | ||
"admin", | ||
os.getenv("OPENSEARCH_PASSWORD", "admin"), | ||
) # For testing only. Don't store credentials in code. | ||
|
||
client = OpenSearch( | ||
hosts=[{"host": host, "port": port}], | ||
http_auth=auth, | ||
use_ssl=True, | ||
verify_certs=False, | ||
ssl_show_warn=False, | ||
) | ||
|
||
info = client.info() | ||
print(f"Welcome to {info['version']['distribution']} {info['version']['number']}!") | ||
|
||
index_name = "кино" | ||
index_create_result = client.indices.create(index=index_name) | ||
print(index_create_result) | ||
|
||
document = {"название": "Солярис", "автор": "Андрей Тарковский", "год": "2011"} | ||
id = "соларис@2011" | ||
doc_insert_result = client.index( | ||
index=index_name, body=document, id=id, refresh=True | ||
) | ||
print(doc_insert_result) | ||
|
||
doc_delete_result = client.delete(index=index_name, id=id) | ||
print(doc_delete_result) | ||
|
||
index_delete_result = client.indices.delete(index=index_name) | ||
print(index_delete_result) | ||
|
||
|
||
if __name__ == "__main__": | ||
main() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
#!/usr/bin/env python | ||
|
||
# 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 asyncio | ||
import os | ||
|
||
from opensearchpy import AsyncOpenSearch | ||
|
||
|
||
async def main() -> None: | ||
""" | ||
An example showing how to create an asynchronous connection | ||
to OpenSearch, create an index, index a document and | ||
search to return the document. | ||
""" | ||
# connect to OpenSearch | ||
host = "localhost" | ||
port = 9200 | ||
auth = ( | ||
"admin", | ||
os.getenv("OPENSEARCH_PASSWORD", "admin"), | ||
) # For testing only. Don't store credentials in code. | ||
|
||
client = AsyncOpenSearch( | ||
hosts=[{"host": host, "port": port}], | ||
http_auth=auth, | ||
use_ssl=True, | ||
verify_certs=False, | ||
ssl_show_warn=False, | ||
) | ||
|
||
try: | ||
info = await client.info() | ||
print( | ||
f"Welcome to {info['version']['distribution']} {info['version']['number']}!" | ||
) | ||
|
||
index_name = "кино" | ||
index_create_result = await client.indices.create(index=index_name) | ||
print(index_create_result) | ||
|
||
document = {"название": "Солярис", "автор": "Андрей Тарковский", "год": "2011"} | ||
id = "соларис@2011" | ||
doc_insert_result = await client.index( | ||
index=index_name, body=document, id=id, refresh=True | ||
) | ||
print(doc_insert_result) | ||
|
||
doc_delete_result = await client.delete(index=index_name, id=id) | ||
print(doc_delete_result) | ||
|
||
index_delete_result = await client.indices.delete(index=index_name) | ||
print(index_delete_result) | ||
|
||
finally: | ||
await client.close() | ||
|
||
|
||
if __name__ == "__main__": | ||
loop = asyncio.new_event_loop() | ||
asyncio.set_event_loop(loop) | ||
loop.run_until_complete(main()) | ||
loop.close() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.