Skip to content

Commit 3daa385

Browse files
authored
Release 1.71.0 (#197)
1 parent 0c57387 commit 3daa385

File tree

4,862 files changed

+286224
-135355
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

4,862 files changed

+286224
-135355
lines changed

pyproject.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "py-pure-client"
3-
version = "1.70.2"
3+
version = "1.71.0"
44
description = "Pure Storage Python clients for FlashArray, FlashBlade, and Pure1 APIs"
55
authors = [
66
{ name = "Pure Storage", email = "[email protected]" }
@@ -20,7 +20,6 @@ dependencies = [
2020
'urllib3 >= 1.26.17',
2121
'paramiko >= 3.4.0',
2222
'pyjwt >=2.0.0',
23-
'requests >= 2.32.0',
2423
'pydantic >= 1.10.14',
2524
'aenum >= 3.1.15'
2625
]

pypureclient/_helpers.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import uuid
2+
import json
3+
4+
from typing import Union, Tuple, Optional
5+
6+
from .keywords import Headers
7+
from .exceptions import PureError
8+
from ._version import __default_user_agent__
9+
from .configuration import Configuration
10+
11+
from ._transport.exceptions import ApiException
12+
from ._transport.api_client import ApiClient
13+
from ._transport.configuration import Configuration as _TransportConfiguration
14+
15+
16+
def create_transport_config(target: str, configuration: Configuration, ssl_cert: Optional[str], verify_ssl: Optional[bool]) -> _TransportConfiguration:
17+
_transport_configuration = _TransportConfiguration.based_on(configuration)
18+
_transport_configuration.host = 'https://{}'.format(target)
19+
if verify_ssl is not None:
20+
_transport_configuration.verify_ssl = verify_ssl
21+
elif _transport_configuration.verify_ssl is None:
22+
# legacy, if both verify_ssl is set to None (meaning unset), we're falling back to the legacy default
23+
_transport_configuration.verify_ssl = False
24+
if ssl_cert:
25+
_transport_configuration.ssl_cert = ssl_cert
26+
return _transport_configuration
27+
28+
29+
def create_api_client(configuration: Configuration, user_agent: str, _models_package = None) -> ApiClient:
30+
_api_client = ApiClient(configuration=configuration, models_package=_models_package)
31+
_api_client.user_agent = user_agent or __default_user_agent__
32+
return _api_client
33+
34+
35+
def get_target_versions(configuration: Configuration, target_type, key_to_check, user_agent: str = None, timeout: Union[int, Tuple[float, float]]=None):
36+
try:
37+
with create_api_client(configuration=configuration, user_agent=user_agent) as _client:
38+
_response_data = _client.call_api(
39+
'/api/api_version',
40+
'GET',
41+
header_params={Headers.x_request_id: str(uuid.uuid4())},
42+
response_types_map = {'200': "bytearray"},
43+
_request_timeout=timeout,
44+
_return_http_data_only=True)
45+
_data = json.loads(_response_data)
46+
if key_to_check in _data:
47+
return _data[key_to_check]
48+
else:
49+
raise PureError("Failed to retrieve '{}' from response ('{}').\nPlease make sure {} is {}.".format(key_to_check, _data, configuration.host, target_type))
50+
except ApiException as e:
51+
raise PureError("Failed to retrieve supported REST versions from target array {}. status code: {}, error: {}"
52+
.format(configuration.host, e.status, e.body))

pypureclient/_transport/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
import urllib3
2+
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

0 commit comments

Comments
 (0)