From 4641728b17db23f8e85df89aab2d94cf3081fc5b Mon Sep 17 00:00:00 2001 From: Bastien Bonnefoy Date: Wed, 13 Mar 2019 18:07:14 +0000 Subject: [PATCH] Add proxies property based on environment variables for HTTP requests --- portainer_cli/__init__.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/portainer_cli/__init__.py b/portainer_cli/__init__.py index 2d03e53..0e3b2f9 100755 --- a/portainer_cli/__init__.py +++ b/portainer_cli/__init__.py @@ -46,6 +46,7 @@ class PortainerCLI(object): local = False _base_url = 'http://localhost:9000/' _jwt = None + _proxies = {} @property def base_url(self): @@ -67,6 +68,23 @@ def jwt(self, value): self._jwt = value self.persist() + @property + def proxies(self): + return self._proxies + + @proxies.setter + def proxies(self, value): + try: + self._proxies['http'] = os.environ['HTTP_PROXY'] + except KeyError: + self._proxies['http'] = '' + try: + self._proxies['https'] = os.environ['HTTPS_PROXY'] + except KeyError: + self._proxies['https'] = '' + if self._proxies['http'] == '' and self._proxies['https'] == '': + self._proxies = {} + @property def data_path(self): if self.local: @@ -231,7 +249,7 @@ def request(self, path, method=METHOD_GET, data='', printc=False): prepped.headers['Content-Length'] = len(prepped.body) if self.jwt: prepped.headers['Authorization'] = 'Bearer {}'.format(self.jwt) - response = session.send(prepped) + response = session.send(prepped, proxies=self.proxies) logger.debug('request response: {}'.format(response.content)) response.raise_for_status() if printc: @@ -254,6 +272,7 @@ def main(self, command, debug=False, local=local, *args): logging.basicConfig(level=logging.DEBUG) self.local = local self.load() + self.proxies = {} if command == self.COMMAND_CONFIGURE: plac.call(self.configure, args) elif command == self.COMMAND_LOGIN: