Skip to content
This repository was archived by the owner on Jan 20, 2020. It is now read-only.

Commit ab87575

Browse files
author
Feng Honglin
committed
Merge pull request #1 from docker/global_session
use global sessions to handle cookies (TUT-686)
2 parents 9383498 + ad58c17 commit ab87575

1 file changed

Lines changed: 22 additions & 3 deletions

File tree

dockercloud/api/http.py

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,26 @@
1111

1212
logger = logging.getLogger("python-dockercloud")
1313

14+
global_session = Session()
15+
16+
17+
def get_session():
18+
return global_session
19+
20+
21+
def close_session():
22+
try:
23+
global global_session
24+
global_session.close()
25+
except:
26+
pass
27+
28+
29+
def new_session():
30+
close_session()
31+
global global_session
32+
global_session = Session()
33+
1434

1535
def send_request(method, path, inject_header=True, **kwargs):
1636
json = None
@@ -24,17 +44,16 @@ def send_request(method, path, inject_header=True, **kwargs):
2444
# construct headers
2545
headers = {'Content-Type': 'application/json', 'User-Agent': user_agent}
2646
headers.update(dockercloud.auth.get_auth_header())
27-
logger.info("Request: %s, %s, %s, %s" % (method, url, headers, kwargs))
2847

2948
# construct request
30-
s = Session()
49+
s = get_session()
3150
req = Request(method, url, headers=headers, **kwargs)
32-
3351
# get environment proxies
3452
env_proxies = utils.get_environ_proxies(url) or {}
3553
kw_args = {'proxies': env_proxies}
3654

3755
# make the request
56+
logger.info("Request: %s, %s, %s, %s, %s" % (method, url, headers, s.cookies, kwargs))
3857
response = s.send(req.prepare(), **kw_args)
3958
status_code = getattr(response, 'status_code', None)
4059
logger.info("Response: Status %s, %s, %s" % (str(status_code), response.headers, response.text))

0 commit comments

Comments
 (0)