34 Commits

Author SHA1 Message Date
Oleksandr Loyko 4091816f84 Fixed lint error. (#875)
Signed-off-by: Alex Loyko <alex.loyko96@gmail.com>
2024-12-21 08:39:12 -05:00
nathaliellenaa b9e48dc847 Fix AuthorizationException with AWSV4SignerAsyncAuth when the doc ID has special characters. (#848)
* Lifecycle integration tests.

Signed-off-by: dblock <dblock@amazon.com>

* Added a test that makes sure the slash is properly encoded.

Signed-off-by: dblock <dblock@amazon.com>

* Added more tests for signer and _make_path.

Signed-off-by: Nathalie Jonathan <nathhjo@amazon.com>

* Prevent AIOHttpConnection from encoding the url a second time.

Signed-off-by: Nathalie Jonathan <nathhjo@amazon.com>

---------

Signed-off-by: dblock <dblock@amazon.com>
Signed-off-by: Nathalie Jonathan <nathhjo@amazon.com>
Co-authored-by: dblock <dblock@amazon.com>
2024-11-27 17:50:22 -05:00
samypr100 1269cdc95a feat(AsyncOpenSearch): consistent pool_maxsize setting (#845)
Signed-off-by: samypr100 <3933065+samypr100@users.noreply.github.com>
2024-11-12 09:21:32 -05:00
Daniel (dB.) Doubrovkine 55f9940d51 Remove HEAD-handling hack. (#794)
* remove HEAD -> GET workaround

Signed-off-by: dblock <dblock@amazon.com>

* Removed remaining HEAD-handling code.

Signed-off-by: dblock <dblock@amazon.com>

* Fixed remaining references to admin:admin.

Signed-off-by: dblock <dblock@amazon.com>

---------

Signed-off-by: dblock <dblock@amazon.com>
Co-authored-by: Vincent Castaneda <vincent.castaneda@sage.com>
2024-08-15 10:15:13 -04:00
Hugo van Kemenade 6e3f1a1194 Remove redundant mock backport dependency and upgrade syntax for Python 3.8+ (#785)
* Upgrade syntax with pyupgrade --py38-plus

Signed-off-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>

* Convert to f-strings with flynt

Signed-off-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>

* Format with Black

Signed-off-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>

* Remove redundant mock backport dependency

Signed-off-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>

* isort imports

Signed-off-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>

* Add changelog entry

Signed-off-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>

---------

Signed-off-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2024-07-20 16:19:20 -04:00
Hugo van Kemenade de96d28e45 Remove redundant six dependency (#781)
* Don't create universal wheel for Python 3 only

Signed-off-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>

* Update Black target version to match min Python supported

Signed-off-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>

* Upgrade files using six to Python 3 syntax

Signed-off-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>

* Remove redundant six dependency

Signed-off-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>

* Format with Black

Signed-off-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>

* Add changelog entry

Signed-off-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>

---------

Signed-off-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2024-07-20 12:30:37 -04:00
Sai Medhini Reddy Maryada 58e9b1d66c Introduced service time metrics to OpenSearch-Py client. (#716)
* Introduced service time metrics to opensearch-py client

Signed-off-by: saimedhi <saimedhi@amazon.com>

* Introduced service time metrics to opensearch-py client

Signed-off-by: saimedhi <saimedhi@amazon.com>

* Introduced service time metrics to opensearch-py client

Signed-off-by: saimedhi <saimedhi@amazon.com>

* Added service time metrics

Signed-off-by: saimedhi <saimedhi@amazon.com>

---------

Signed-off-by: saimedhi <saimedhi@amazon.com>
Signed-off-by: Sai Medhini Reddy Maryada <117196660+saimedhi@users.noreply.github.com>
2024-04-15 07:20:46 -04:00
odelmarcelle 3eba72c320 Reusable async client (#639)
* set aiohttp.ClientSession to None after close()

Signed-off-by: odlmarce <delmarcelle.olivier@gmail.com>

* add test

Signed-off-by: odlmarce <delmarcelle.olivier@gmail.com>

* update changelog

Signed-off-by: odlmarce <delmarcelle.olivier@gmail.com>

* update changelog + format
Signed-off-by: odlmarce <delmarcelle.olivier@gmail.com>

* update changelog
Signed-off-by: odlmarce <delmarcelle.olivier@gmail.com>

* add tests using `with` and synchronous client
Signed-off-by: odlmarce <delmarcelle.olivier@gmail.com>

* fix `urllib3.exceptions.ClosedPoolError` breaking synchronous client after `close`
Signed-off-by: odlmarce <delmarcelle.olivier@gmail.com>

* update changelog
Signed-off-by: odlmarce <delmarcelle.olivier@gmail.com>

* separate tests
Signed-off-by: odlmarce <delmarcelle.olivier@gmail.com>

* refactor pool factory as lambda
Signed-off-by: odlmarce <delmarcelle.olivier@gmail.com>

---------

Signed-off-by: odlmarce <delmarcelle.olivier@gmail.com>
2024-01-02 13:33:24 -05:00
Samuel Orji 6f26eb3e8e remove unnecessary utf-8 header in .py files (#615)
* remove unnecessary utf-8 header in .py files

Signed-off-by: samuel orji <awesomeorji@gmail.com>

* review feedback: add link to changelog

Signed-off-by: samuel orji <awesomeorji@gmail.com>

---------

Signed-off-by: samuel orji <awesomeorji@gmail.com>
2023-11-24 16:19:50 -05:00
Daniel (dB.) Doubrovkine 1801ada270 Added pylint, enforce naming. (#590)
* Added pylint.

Signed-off-by: dblock <dblock@amazon.com>

* Enforce pylint:invalid-name.

Signed-off-by: dblock <dblock@amazon.com>

* Updated the generated code header to prevent broken links.

Signed-off-by: dblock <dblock@amazon.com>

* Swapped order of messages.

Signed-off-by: dblock <dblock@amazon.com>

---------

Signed-off-by: dblock <dblock@amazon.com>
2023-11-21 10:04:39 -08:00
Daniel (dB.) Doubrovkine cec268e48d Fix for 592 (#594)
* Prepare for next developer iteration, 2.4.1.

Signed-off-by: dblock <dblock@amazon.com>

* Fix: sync opensearchpy without iohttp.

Signed-off-by: dblock <dblock@amazon.com>

* Use nox to run tests.

Signed-off-by: dblock <dblock@amazon.com>

---------

Signed-off-by: dblock <dblock@amazon.com>
2023-11-15 16:33:43 -08:00
Daniel (dB.) Doubrovkine f02d6dee27 Avoid decoding request body unless it needs to be logged. (#571)
Signed-off-by: dblock <dblock@amazon.com>
Signed-off-by: Daniel (dB.) Doubrovkine <dblock@amazon.com>
2023-11-12 11:42:45 -08:00
Daniel (dB.) Doubrovkine 58b83d8c06 Added Windows CI. (#569)
Signed-off-by: dblock <dblock@amazon.com>
2023-11-09 17:41:37 -08:00
Daniel (dB.) Doubrovkine 56c96d7c4f Expanded type coverage to benchmarks, samples and tests. (#566)
* Renamed json samples to fix duplicate module name.

Signed-off-by: dblock <dblock@amazon.com>

* Enabled mypy on all source files.

Signed-off-by: dblock <dblock@amazon.com>

* Added missing types.

Signed-off-by: dblock <dblock@amazon.com>

* Added CHANGELOG.

Signed-off-by: dblock <dblock@amazon.com>

* Move type: ignore to fix untyped decorator makes function untyped.

Signed-off-by: dblock <dblock@amazon.com>

* Fix nox -rs lint-3.7.

Signed-off-by: dblock <dblock@amazon.com>

* Fixed incorrect import.

Signed-off-by: dblock <dblock@amazon.com>

* Fix broken test.

Signed-off-by: dblock <dblock@amazon.com>

* Fixed TestBulk::test_bulk_works_with_bytestring_body.

Signed-off-by: dblock <dblock@amazon.com>

---------

Signed-off-by: dblock <dblock@amazon.com>
2023-11-09 10:51:20 -05:00
Daniel (dB.) Doubrovkine dcb79cc322 Merge .pyi type stubs inline (#563)
* 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>
2023-11-06 10:08:19 -08:00
Daniel (dB.) Doubrovkine 0da60b2623 Added a utf-8 header to all .py files (#557)
Signed-off-by: dblock <dblock@amazon.com>
2023-10-26 13:34:34 -04:00
Daniel (dB.) Doubrovkine 627e717534 Remove support for Python 2.x. (#548)
Signed-off-by: dblock <dblock@amazon.com>
2023-10-24 07:57:21 -07:00
Daniel (dB.) Doubrovkine a1f942b6f9 Added support for AWS Sigv4 for UrlLib3. (#547)
* WIP: Added support for AWS Sigv4 for UrlLib3.

Signed-off-by: dblock <dblock@amazon.com>

* Refactored common implementation.

Signed-off-by: dblock <dblock@amazon.com>

* Added sigv4 samples.

Signed-off-by: dblock <dblock@amazon.com>

* Updated CHANGELOG.

Signed-off-by: dblock <dblock@amazon.com>

* Add documentation.

Signed-off-by: dblock <dblock@amazon.com>

* Use the correct class in tests.

Signed-off-by: dblock <dblock@amazon.com>

* Renamed samples.

Signed-off-by: dblock <dblock@amazon.com>

* Split up requests and urllib3 unit tests.

Signed-off-by: dblock <dblock@amazon.com>

* Rename AWSV4Signer.

Signed-off-by: dblock <dblock@amazon.com>

* Clarified documentation of when to use Urllib3AWSV4SignerAuth vs. RequestHttpConnection.

Signed-off-by: dblock <dblock@amazon.com>

* Move fetch_url inside the signer class.

Signed-off-by: dblock <dblock@amazon.com>

* Added unit test for Urllib3AWSV4SignerAuth adding headers.

Signed-off-by: dblock <dblock@amazon.com>

* Added unit test for signing to include query string.

Signed-off-by: dblock <dblock@amazon.com>

---------

Signed-off-by: dblock <dblock@amazon.com>
2023-10-23 19:46:19 -04:00
Daniel (dB.) Doubrovkine 7a638cdafc Align pool_maxsize for different connection pool implementations. (#535)
* Align pool_maxsize for different connection pool implementations.

Signed-off-by: dblock <dblock@amazon.com>

* Document connection classes and settings.

Signed-off-by: dblock <dblock@amazon.com>

* Undo change in async for backwards compatibility.

Signed-off-by: dblock <dblock@amazon.com>

* Fix: typo.

Signed-off-by: dblock <dblock@amazon.com>

---------

Signed-off-by: dblock <dblock@amazon.com>
2023-10-12 18:55:31 -04:00
Daniel (dB.) Doubrovkine 2bfc409177 Fix: typos. (#526)
* Fix: typo.

Signed-off-by: dblock <dblock@amazon.com>

* Fix: typo.

Signed-off-by: dblock <dblock@amazon.com>

* Fixed its.

Signed-off-by: dblock <dblock@amazon.com>

* Added Visual Code settings to .gitignore.

Signed-off-by: dblock <dblock@amazon.com>

* Added loop type for async client.

Signed-off-by: dblock <dblock@amazon.com>

---------

Signed-off-by: dblock <dblock@amazon.com>
2023-10-09 10:45:18 -07:00
Dan Jones 12ebe82cba Fix string/tuple/no auth on AsyncHttpConnection class (#424)
* Fix string/tuple/no auth on AsyncHttpConnection class. Fixes #283

Signed-off-by: dannosaur <461956+dannosaur@users.noreply.github.com>

* Update for PR comments. Add tests.

Signed-off-by: dannosaur <461956+dannosaur@users.noreply.github.com>

* Moving tests to its own file.

Also had to install asynctest into the dev-requirements to get access to the context managers necessary to mock out aiohttp.

Signed-off-by: dannosaur <461956+dannosaur@users.noreply.github.com>

* Update CHANGELOG

Signed-off-by: dannosaur <461956+dannosaur@users.noreply.github.com>

* Linter fixes. Add license text to new file.

Signed-off-by: dannosaur <461956+dannosaur@users.noreply.github.com>

* Move AsyncContextManagerMock to utils package for future re-use

Signed-off-by: dannosaur <461956+dannosaur@users.noreply.github.com>

* Lint

Signed-off-by: dannosaur <461956+dannosaur@users.noreply.github.com>

* Refactor async tests - remove asynctest package

Signed-off-by: dannosaur <461956+dannosaur@users.noreply.github.com>

* Switch out to using aiounittest for async testing prior to py3.8

Signed-off-by: dannosaur <461956+dannosaur@users.noreply.github.com>

* Use RequestContextManager from opensearchpy._asycn._extra_imports

Signed-off-by: dannosaur <461956+dannosaur@users.noreply.github.com>

* Simplify test somewhat, move to `test_async` since all other async tests are ignored on runners <3.6

Signed-off-by: dannosaur <461956+dannosaur@users.noreply.github.com>

* Lint

Signed-off-by: dannosaur <461956+dannosaur@users.noreply.github.com>

---------

Signed-off-by: dannosaur <461956+dannosaur@users.noreply.github.com>
Signed-off-by: Daniel (dB.) Doubrovkine <dblock@amazon.com>
Co-authored-by: Daniel (dB.) Doubrovkine <dblock@amazon.com>
2023-07-06 18:01:52 -04:00
Sai Medhini Reddy Maryada f1b5706ebd Added 'allow_redirects' parameter in perform_request function for RequestsHttpConnection (#401)
Signed-off-by: saimedhi <saimedhi@amazon.com>
2023-06-13 15:15:00 -04:00
Sai Medhini Reddy Maryada 2b9aee73a5 Added async support for helpers that are merged from opensearch-dsl-py (#329)
Signed-off-by: saimedhi <saimedhi@amazon.com>
2023-03-17 12:03:46 -07:00
Sai Medhini Reddy Maryada c58375aa7b Merging opensearch-dsl-py to opensearch-py (#287)
Signed-off-by: saimedhi <saimedhi@amazon.com>
2023-02-14 15:03:56 -08:00
Sai Medhini Reddy Maryada 93636399ec Removed 'out/opensearchpy' folder which was produced while generating pyi files for plugins (#288)
Signed-off-by: saimedhi <saimedhi@amazon.com>
2023-02-14 11:09:14 -08:00
Harsha Vamsi Kalluri cfb2cf7b60 Adding async support for AWSSigV4 (#254)
* Adding async support for AWSSigV4

Signed-off-by: Harsha Vamsi Kalluri <harshavamsi096@gmail.com>

* Fix names for connection classes

Signed-off-by: Harsha Vamsi Kalluri <harshavamsi096@gmail.com>

* Update tests to async name space

Signed-off-by: Harsha Vamsi Kalluri <harshavamsi096@gmail.com>

* Add import exceptions to python < 3.6

Signed-off-by: Harsha Vamsi Kalluri <harshavamsi096@gmail.com>

Signed-off-by: Harsha Vamsi Kalluri <harshavamsi096@gmail.com>
2023-01-02 17:25:48 -05:00
Jeppe Fihl-Pearson 4c4091b12c Fix DeprecationWarning raised by urllib3 1.26.13 (#246)
* Fix DeprecationWarning raised by urllib3 1.26.13

urllib3 has started to emit a DeprecationWarning whenever
HTTPResponse.getheaders() is called since version 1.26.13.

This changes the one place where this is done to instead use
HTTPResponse.headers instead, which is the recommend way of retrieving
the headers going forwards.

Signed-off-by: Jeppe Fihl-Pearson <jeppe@memrise.com>

* Add CHANGELOG entry

Signed-off-by: Jeppe Fihl-Pearson <jeppe@memrise.com>

Signed-off-by: Jeppe Fihl-Pearson <jeppe@memrise.com>
2022-12-01 11:26:24 -08:00
Neckbuster b6b35f4666 feat: Added pool_maxsize for RequestsHttpConnection (#216)
Signed-off-by: Niket Singh <singhnik82@gmail.com>

Signed-off-by: Niket Singh <singhnik82@gmail.com>
Co-authored-by: Niket Singh <niket.singh@dailyrounds.org>
Co-authored-by: Harsha Vamsi Kalluri <harshavamsi096@gmail.com>
2022-12-01 11:24:59 -08:00
aiudirog 2672f3f572 Check OpenSSL environment variables before defaulting to certifi (#196)
* Check OpenSSL environment variables before defaulting to certifi

Signed-off-by: Roger Aiudi <aiudirog@gmail.com>

* Fix formatting

Signed-off-by: Roger Aiudi <aiudirog@gmail.com>

* Moved CA_CERTS to the base Connection module

Signed-off-by: Roger Aiudi <aiudirog@gmail.com>

* Updated requests Connection to use common CA_CERTS by default

Signed-off-by: Roger Aiudi <aiudirog@gmail.com>

* Pass nox linting

Signed-off-by: Roger Aiudi <aiudirog@gmail.com>

* Update CHANGELOG.md and USER_GUIDE.md

Signed-off-by: Roger Aiudi <aiudirog@gmail.com>

* Updated AIOHttpConnection to only load CA_CERTS if verify_certs is True

Signed-off-by: Roger Aiudi <aiudirog@gmail.com>

* Added test cases for CA_CERTS handling in each Connection implementation

Signed-off-by: Roger Aiudi <aiudirog@gmail.com>

* Move CA cert handling to Connection.default_ca_certs()
Add test cases for the different CA cert configurations

Signed-off-by: Roger Aiudi <aiudirog@gmail.com>

* Update actions to test unsupported Python versions on ubuntu-20.04

Signed-off-by: Roger Aiudi <aiudirog@gmail.com>

* Fix Python versions being interpreted as floats

Signed-off-by: Roger Aiudi <aiudirog@gmail.com>

* Workaround Monkeypatch not available on old pytest versions

Signed-off-by: Roger Aiudi <aiudirog@gmail.com>

Signed-off-by: Roger Aiudi <aiudirog@gmail.com>
Co-authored-by: Harsha Vamsi Kalluri <harshavamsi096@gmail.com>
2022-11-22 11:33:45 -05:00
Arnav Das 2d03dc773b Alerting Plugins (#93)
* Alert Plugin

Signed-off-by: Arnav Das <arnav.das88@gmail.com>

* lint file header license

Signed-off-by: Arnav Das <arnav.das88@gmail.com>

* Tests For Alerting[Monitors]

Signed-off-by: Arnav Das <arnav.das88@gmail.com>

* Tests For Alerting[Destinations]

Signed-off-by: Arnav Das <arnav.das88@gmail.com>

* dynamic lookup 90#issuecomment-1003396742

Signed-off-by: Arnav Das <arnav.das88@gmail.com>

* Alerting Async

Signed-off-by: Arnav Das <arnav.das88@gmail.com>

* Lint Changes

Signed-off-by: Arnav Das <arnav.das88@gmail.com>

* alerting plugins integration tests

Signed-off-by: Arnav Das <arnav.das88@gmail.com>

* Integ UnitTests Skip on OPENSEARCH_VERSION >= 2.0.0

Signed-off-by: Arnav Das <arnav.das88@gmail.com>

* Unit Test Skip Complete

Signed-off-by: Arnav Das <arnav.das88@gmail.com>

* License Headers fixed

Signed-off-by: Arnav Das <arnav.das88@gmail.com>

* test_urllib3_connection timeout

Signed-off-by: Arnav Das <arnav.das88@gmail.com>

* lint

Signed-off-by: Arnav Das <arnav.das88@gmail.com>

* Fix licenses in all files

Signed-off-by: Harsha Vamsi Kalluri <harshavamsi096@gmail.com>

* Remove elastic search licenses on new files

Signed-off-by: Harsha Vamsi Kalluri <harshavamsi096@gmail.com>

* Fix formatting

Signed-off-by: Harsha Vamsi Kalluri <harshavamsi096@gmail.com>

Signed-off-by: Arnav Das <arnav.das88@gmail.com>
Signed-off-by: Harsha Vamsi Kalluri <harshavamsi096@gmail.com>
Co-authored-by: Harsha Vamsi Kalluri <harshavamsi096@gmail.com>
2022-10-03 14:45:18 -04:00
Philip May 96bbbfa336 remove unused "type: ignore" comment
Signed-off-by: Philip May <philip@may.la>
2022-02-01 13:05:37 -08:00
Shivam Dhar cfe1190a22 removes elastic support from opensearch-py library
Signed-off-by: Shivam Dhar <dhshivam@amazon.com>
2022-01-05 22:22:43 +05:30
Trevor McCulloch 1cd15b0845 Parse raw_data on error only if the Content-Type is application/json. (#91)
Some OpenSearch REST APIs will return a Content-Type of text/plain for certain
status codes which will trigger logging when the response is not parsable as
JSON. Checking the content-type first avoids this error.

This frequently happens with 401s, which occurs when we rotate user keys.
The input that triggers this behaviour can be triggered with `curl`:

```
$  curl -k -u"admin:wrong" -w"\n%{http_code}\n%{content_type}\n" https://localhost:9200/_cluster/health
Unauthorized
401
text/plain; charset=UTF-8
```

Signed-off-by: Trevor McCulloch <trevor.mcculloch@benchling.com>
2021-12-22 21:52:49 +02:00
Rushi Agrawal ef0c23c0e4 Rename module to opensearchpy
To avoid conflict with an existing package by name 'opensearch' being
present

Signed-off-by: Rushi Agrawal <rushi.agr@gmail.com>
2021-09-16 21:23:38 +05:30