6
6
import logging
7
7
import requests
8
8
9
- __version__ = '0.1.1 '
9
+ __version__ = '0.1.2 '
10
10
11
11
logger = logging .getLogger (__name__ )
12
12
13
+ # This is quite high, as the WLS server will, by default,
14
+ # do operations that take "approximately 5 minutes" synchronous.
15
+ DEFAULT_TIMEOUT = 305
13
16
14
17
class WLSException (Exception ):
15
18
"""Superclass for exceptions thrown by this module"""
@@ -100,7 +103,8 @@ class WLS(object):
100
103
:param bool verify_ssl: Whether to verify certificates on SSL connections.
101
104
"""
102
105
103
- def __init__ (self , host , username , password , version = 'latest' , verify = True ):
106
+ def __init__ (self , host , username , password , version = 'latest' , verify = True ,
107
+ timeout = DEFAULT_TIMEOUT ):
104
108
self .session = requests .Session ()
105
109
self .session .verify = verify
106
110
self .session .auth = (username , password )
@@ -110,6 +114,7 @@ def __init__(self, host, username, password, version='latest', verify=True):
110
114
self .session .headers .update (
111
115
{'Accept' : 'application/json' , 'User-Agent' : user_agent , 'X-Requested-By' : user_agent }
112
116
)
117
+ self .timeout = timeout
113
118
self .base_url = '{}/management/weblogic/{}' .format (host , version )
114
119
collection = self .get (self .base_url )
115
120
self .version = collection ['version' ]
@@ -125,7 +130,7 @@ def get(self, url, **kwargs):
125
130
126
131
Returns the decoded JSON.
127
132
"""
128
- response = self .session .get (url , ** kwargs )
133
+ response = self .session .get (url , timeout = self . timeout , ** kwargs )
129
134
return self ._handle_response (response )
130
135
131
136
def post (self , url , prefer_async = False , ** kwargs ):
@@ -136,7 +141,7 @@ def post(self, url, prefer_async=False, **kwargs):
136
141
WLSObject. Otherwise it will return the decoded JSON
137
142
"""
138
143
headers = {'Prefer' : 'respond-async' } if prefer_async else None
139
- response = self .session .post (url , headers = headers , ** kwargs )
144
+ response = self .session .post (url , headers = headers , timeout = self . timeout , ** kwargs )
140
145
return self ._handle_response (response )
141
146
142
147
def delete (self , url , prefer_async = False , ** kwargs ):
@@ -147,7 +152,7 @@ def delete(self, url, prefer_async=False, **kwargs):
147
152
WLSObject. Otherwise it will return the decoded JSON
148
153
"""
149
154
headers = {'Prefer' : 'respond-async' } if prefer_async else None
150
- response = self .session .delete (url , headers = headers , ** kwargs )
155
+ response = self .session .delete (url , headers = headers , timeout = self . timeout , ** kwargs )
151
156
return self ._handle_response (response )
152
157
153
158
def _handle_response (self , response ):
0 commit comments