From 3e3d3600275d9eb52c26a7bd337493eb42deb0da Mon Sep 17 00:00:00 2001 From: Kyle Maxwell Date: Tue, 7 Mar 2017 22:03:45 -0600 Subject: [PATCH] Add proxy support to fix #4639 (#4946) * Add proxy support to fix #4639 * Update sample app for testing * Fix indentation and remove leftover code * Update sample for new rest template --- .../resources/python/configuration.mustache | 3 ++ .../src/main/resources/python/rest.mustache | 31 ++++++++++++++----- .../python/petstore_api/configuration.py | 3 ++ .../python/petstore_api/rest.py | 25 ++++++++++++++- .../python/petstore_api/configuration.py | 3 ++ .../petstore/python/petstore_api/rest.py | 31 ++++++++++++++----- 6 files changed, 79 insertions(+), 17 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/python/configuration.mustache b/modules/swagger-codegen/src/main/resources/python/configuration.mustache index 5ddc4ab7bca..b3961009f16 100644 --- a/modules/swagger-codegen/src/main/resources/python/configuration.mustache +++ b/modules/swagger-codegen/src/main/resources/python/configuration.mustache @@ -80,6 +80,9 @@ class Configuration(object): # client key file self.key_file = None + # Proxy URL + self.proxy = None + @property def logger_file(self): """ diff --git a/modules/swagger-codegen/src/main/resources/python/rest.mustache b/modules/swagger-codegen/src/main/resources/python/rest.mustache index 910d3001edf..6c2c21d3055 100644 --- a/modules/swagger-codegen/src/main/resources/python/rest.mustache +++ b/modules/swagger-codegen/src/main/resources/python/rest.mustache @@ -76,15 +76,30 @@ class RESTClientObject(object): # key file key_file = Configuration().key_file + # proxy + proxy = Configuration().proxy + # https pool manager - self.pool_manager = urllib3.PoolManager( - num_pools=pools_size, - maxsize=maxsize, - cert_reqs=cert_reqs, - ca_certs=ca_certs, - cert_file=cert_file, - key_file=key_file - ) + if proxy: + self.pool_manager = urllib3.ProxyManager( + num_pools=pools_size, + maxsize=maxsize, + cert_reqs=cert_reqs, + ca_certs=ca_certs, + cert_file=cert_file, + key_file=key_file, + proxy_url=proxy + ) + else: + self.pool_manager = urllib3.PoolManager( + num_pools=pools_size, + maxsize=maxsize, + cert_reqs=cert_reqs, + ca_certs=ca_certs, + cert_file=cert_file, + key_file=key_file + ) + def request(self, method, url, query_params=None, headers=None, body=None, post_params=None, _preload_content=True, _request_timeout=None): diff --git a/samples/client/petstore-security-test/python/petstore_api/configuration.py b/samples/client/petstore-security-test/python/petstore_api/configuration.py index 55b00220da5..99212e2f180 100644 --- a/samples/client/petstore-security-test/python/petstore_api/configuration.py +++ b/samples/client/petstore-security-test/python/petstore_api/configuration.py @@ -89,6 +89,9 @@ class Configuration(object): # client key file self.key_file = None + # Proxy URL + self.proxy = None + @property def logger_file(self): """ diff --git a/samples/client/petstore-security-test/python/petstore_api/rest.py b/samples/client/petstore-security-test/python/petstore_api/rest.py index 2c54f4ceae8..513bbb5aac7 100644 --- a/samples/client/petstore-security-test/python/petstore_api/rest.py +++ b/samples/client/petstore-security-test/python/petstore_api/rest.py @@ -85,10 +85,33 @@ class RESTClientObject(object): # key file key_file = Configuration().key_file + # proxy + proxy = Configuration().proxy + + # https pool manager + if proxy: + self.pool_manager = urllib3.ProxyManager( + num_pools=pools_size, + maxsize=maxsize, + cert_reqs=cert_reqs, + ca_certs=ca_certs, + cert_file=cert_file, + key_file=key_file, + proxy_url=proxy + ) + else: + self.pool_manager = urllib3.PoolManager( + num_pools=pools_size, + maxsize=maxsize, + cert_reqs=cert_reqs, + ca_certs=ca_certs, + cert_file=cert_file, + key_file=key_file + ) + # https pool manager self.pool_manager = urllib3.PoolManager( num_pools=pools_size, - maxsize=maxsize, cert_reqs=cert_reqs, ca_certs=ca_certs, cert_file=cert_file, diff --git a/samples/client/petstore/python/petstore_api/configuration.py b/samples/client/petstore/python/petstore_api/configuration.py index e6763164fa2..d736f570be5 100644 --- a/samples/client/petstore/python/petstore_api/configuration.py +++ b/samples/client/petstore/python/petstore_api/configuration.py @@ -89,6 +89,9 @@ class Configuration(object): # client key file self.key_file = None + # Proxy URL + self.proxy = None + @property def logger_file(self): """ diff --git a/samples/client/petstore/python/petstore_api/rest.py b/samples/client/petstore/python/petstore_api/rest.py index 5fda97044b3..3ed3cf31849 100644 --- a/samples/client/petstore/python/petstore_api/rest.py +++ b/samples/client/petstore/python/petstore_api/rest.py @@ -85,15 +85,30 @@ class RESTClientObject(object): # key file key_file = Configuration().key_file + # proxy + proxy = Configuration().proxy + # https pool manager - self.pool_manager = urllib3.PoolManager( - num_pools=pools_size, - maxsize=maxsize, - cert_reqs=cert_reqs, - ca_certs=ca_certs, - cert_file=cert_file, - key_file=key_file - ) + if proxy: + self.pool_manager = urllib3.ProxyManager( + num_pools=pools_size, + maxsize=maxsize, + cert_reqs=cert_reqs, + ca_certs=ca_certs, + cert_file=cert_file, + key_file=key_file, + proxy_url=proxy + ) + else: + self.pool_manager = urllib3.PoolManager( + num_pools=pools_size, + maxsize=maxsize, + cert_reqs=cert_reqs, + ca_certs=ca_certs, + cert_file=cert_file, + key_file=key_file + ) + def request(self, method, url, query_params=None, headers=None, body=None, post_params=None, _preload_content=True, _request_timeout=None):