Skip to content

Commit c609e0d

Browse files
committed
Version 4.8
1 parent 2028d95 commit c609e0d

File tree

4 files changed

+25
-16
lines changed

4 files changed

+25
-16
lines changed

src/redfish/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
""" Redfish restful library """
22

33
__all__ = ["rest", "ris", "hpilo"]
4-
__version__ = "4.7.0.0"
4+
__version__ = "4.8.0.0"
55

66
import logging
77

src/redfish/rest/connections.py

+11-13
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,12 @@ class HttpConnection(object):
128128
def __init__(self, base_url, cert_data, **client_kwargs):
129129
self._conn = None
130130
self.base_url = base_url
131-
self._connection_properties = client_kwargs
131+
# Default values for connection properties
132+
self._connection_properties = {
133+
'timeout': urllib3.util.Timeout(connect=4800, read=4800),
134+
'retries': urllib3.util.Retry(connect=50, read=50, redirect=50),
135+
}
136+
self._connection_properties.update(client_kwargs)
132137
if cert_data:
133138
if ("cert_file" in cert_data and cert_data["cert_file"]) or (
134139
"ca_certs" in cert_data and cert_data["ca_certs"]
@@ -157,17 +162,13 @@ def _init_connection(self):
157162
cert_reqs = "CERT_NONE"
158163
self._connection_properties.update(self._connection_properties.pop("ca_cert_data"))
159164

160-
timeout = urllib3.util.Timeout(connect=4800, read=4800)
161-
retries = urllib3.util.Retry(connect=50, read=50, redirect=50)
162165
if self.proxy:
163166
if self.proxy.startswith("socks"):
164167
LOGGER.info("Initializing a SOCKS proxy.")
165168
http = SOCKSProxyManager(
166169
self.proxy,
167170
cert_reqs=cert_reqs,
168171
maxsize=50,
169-
timeout=timeout,
170-
retries=retries,
171172
**self._connection_properties
172173
)
173174
else:
@@ -176,8 +177,6 @@ def _init_connection(self):
176177
self.proxy,
177178
cert_reqs=cert_reqs,
178179
maxsize=50,
179-
timeout=timeout,
180-
retries=retries,
181180
**self._connection_properties
182181
)
183182
else:
@@ -187,12 +186,11 @@ def _init_connection(self):
187186
except KeyError:
188187
pass
189188

190-
if "timeout" not in self._connection_properties:
191-
http = PoolManager(
192-
maxsize=50, cert_reqs=cert_reqs, timeout=timeout, retries=retries, **self._connection_properties
193-
)
194-
else:
195-
http = PoolManager(cert_reqs=cert_reqs, maxsize=50, retries=retries, **self._connection_properties)
189+
http = PoolManager(
190+
cert_reqs=cert_reqs,
191+
maxsize=50,
192+
**self._connection_properties
193+
)
196194

197195
self._conn = http.request
198196

src/redfish/rest/containers.py

+12
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626

2727
from six import BytesIO, StringIO, string_types, text_type
2828
from six.moves import http_client
29+
from urllib3.util import Timeout, Retry
2930

3031

3132
class JSONEncoder(json.JSONEncoder):
@@ -49,6 +50,17 @@ def default(self, obj):
4950
return jsondict
5051
if isinstance(obj, bytes):
5152
obj = obj.decode("utf-8")
53+
if isinstance(obj, Timeout):
54+
jsondict = OrderedDict()
55+
jsondict["connect_timeout"] = obj.connect_timeout
56+
jsondict["read_timeout"] = obj.read_timeout
57+
return jsondict
58+
if isinstance(obj, Retry):
59+
jsondict = OrderedDict()
60+
jsondict["connect"] = obj.connect
61+
jsondict["read"] = obj.read
62+
jsondict["redirect"] = obj.redirect
63+
return jsondict
5264
return json.JSONEncoder.default(self, obj)
5365

5466

src/redfish/ris/ris.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -237,8 +237,7 @@ class RisMonolith(Dictable):
237237
"""Monolithic cache of RIS data. This takes a :class:`redfish.rest.v1.RestClient` and uses it to
238238
gather data from a server and saves it in a modifiable database called monolith.
239239
240-
:param client: client to use for data retrieval. Client is saved as a weakref, using it requires
241-
parenthesis and will not survive if the client used in init is removed.
240+
:param client: client to use for data retrieval.
242241
:type client: :class:`redfish.rest.v1.RestClient`
243242
:param typepath: The compatibility class to use for differentiating between Redfish/LegacyRest.
244243
:type typepath: :class:`redfish.rest.ris.Typesandpathdefines`

0 commit comments

Comments
 (0)