From c8b178ee95c83611530b1601b651190fea93e784 Mon Sep 17 00:00:00 2001 From: Stavros Sachtouris Date: Mon, 11 Mar 2013 12:05:09 +0200 Subject: [PATCH] Explicetely set http connection poolsize --- kamaki/clients/commissioning_client.py | 3 ++- kamaki/clients/connection/__init__.py | 14 +++++++++++++- kamaki/clients/connection/kamakicon.py | 5 ++++- kamaki/clients/quotaholder/__init__.py | 4 ++-- version | 2 +- 5 files changed, 22 insertions(+), 6 deletions(-) diff --git a/kamaki/clients/commissioning_client.py b/kamaki/clients/commissioning_client.py index 924bfab..0b0eae9 100644 --- a/kamaki/clients/commissioning_client.py +++ b/kamaki/clients/commissioning_client.py @@ -40,9 +40,10 @@ from json import loads as json_loads, dumps as json_dumps class CommissioningClient(Callpoint): - def __init__(self, base_url, token): + def __init__(self, base_url, token, poolsize): super(CommissioningClient, self).__init__() self._kc = Client(base_url, token) + self._kc.http_client.poolsize = poolsize def do_make_call(self, api_call, data): diff --git a/kamaki/clients/connection/__init__.py b/kamaki/clients/connection/__init__.py index b1935e5..f8a0ca0 100644 --- a/kamaki/clients/connection/__init__.py +++ b/kamaki/clients/connection/__init__.py @@ -136,12 +136,24 @@ class HTTPConnection(object): """An abstract HTTP Connection mechanism. Subclass implementation required """ - def __init__(self, method=None, url=None, params={}, headers={}): + def __init__( + self, + method=None, url=None, params={}, headers={}, poolsize=8): self.headers = headers self.params = params self.url = url self.path = '' self.method = method + self.poolsize = poolsize + + @property + def poolsize(self): + return self._poolsize + + @poolsize.setter + def poolsize(self, v): + assert isinstance(v, (int, long)) and v > 0 + self._poolsize = v def set_header(self, name, value): self.headers['%s' % name] = '%s' % value diff --git a/kamaki/clients/connection/kamakicon.py b/kamaki/clients/connection/kamakicon.py index ed0bb30..e79486b 100644 --- a/kamaki/clients/connection/kamakicon.py +++ b/kamaki/clients/connection/kamakicon.py @@ -180,7 +180,10 @@ class KamakiHTTPConnection(HTTPConnection): #get connection from pool try: - conn = get_http_connection(netloc=netloc, scheme=scheme) + conn = get_http_connection( + netloc=netloc, + scheme=scheme, + pool_size=self.poolsize) except ValueError as ve: raise HTTPConnectionError( 'Cannot establish connection to %s %s' % (self.url, ve), diff --git a/kamaki/clients/quotaholder/__init__.py b/kamaki/clients/quotaholder/__init__.py index c4a750a..d781353 100644 --- a/kamaki/clients/quotaholder/__init__.py +++ b/kamaki/clients/quotaholder/__init__.py @@ -42,7 +42,7 @@ class QuotaholderClient(CommissioningClient): api_spec = QuotaholderAPI() appname = 'quotaholder' - def __init__(self, base_url=None, token=None): + def __init__(self, base_url=None, token=None, poolsize=1000): default_url = 'http://127.0.0.1:8008/quotaholder/v' base_url = base_url if base_url else default_url - super(self.__class__, self).__init__(base_url, token) + super(self.__class__, self).__init__(base_url, token, poolsize=1000) diff --git a/version b/version index eb49d7c..c006218 100644 --- a/version +++ b/version @@ -1 +1 @@ -0.7 +0.7.6 -- 1.7.10.4