pior / appsecrets

Python 3.6+ library to manage your application secrets with Google Cloud KMS
https://pypi.org/project/appsecrets/
MIT License
1 stars 0 forks source link

Improve error handling when http call fails #5

Closed pior closed 6 years ago

pior commented 6 years ago
self = <httplib2.Http object at 0x7fdea2a31d30>
  | conn = <httplib2.HTTPSConnectionWithTimeout object at 0x7fdeaad25358>
  | request_uri = '/discovery/v1/apis/cloudkms/v1/rest', method = 'GET', body = None
  | headers = {'accept-encoding': 'gzip, deflate', 'user-agent': 'Python-httplib2/0.11.1 (gzip)'}
  |  
  | def _conn_request(self, conn, request_uri, method, body, headers):
  | i = 0
  | seen_bad_status_line = False
  | while i < RETRIES:
  | i += 1
  | try:
  | if conn.sock is None:
  | >                   conn.connect()
  |  
  | /base_install/pyenv_root/versions/3.6.1/lib/python3.6/site-packages/httplib2/__init__.py:1182:
  | _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  |  
  | self = <httplib2.HTTPSConnectionWithTimeout object at 0x7fdeaad25358>
  |  
  | def connect(self):
  | """Connect to a host on a given (SSL) port."""
  | if self.proxy_info and self.proxy_info.isgood():
  | use_proxy = True
  | proxy_type, proxy_host, proxy_port, proxy_rdns, proxy_user, proxy_pass, proxy_headers = self.proxy_info.astuple()
  |  
  | host = proxy_host
  | port = proxy_port
  | else:
  | use_proxy = False
  |  
  | host = self.host
  | port = self.port
  | proxy_type = None
  | proxy_headers = None
  |  
  | socket_err = None
  |  
  | address_info = socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM)
  | for family, socktype, proto, canonname, sockaddr in address_info:
  | try:
  | if use_proxy:
  | sock = socks.socksocket(family, socktype, proto)
  |  
  | sock.setproxy(proxy_type, proxy_host, proxy_port, proxy_rdns, proxy_user, proxy_pass)
  | else:
  | sock = socket.socket(family, socktype, proto)
  | sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
  | if has_timeout(self.timeout):
  | sock.settimeout(self.timeout)
  | >               sock.connect((self.host, self.port))
  | E               socket.gaierror: [Errno -3] Temporary failure in name resolution
  |  
  | /base_install/pyenv_root/versions/3.6.1/lib/python3.6/site-packages/httplib2/__init__.py:1006: gaierror
  |  
  | During handling of the above exception, another exception occurred:

...

  | _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  | /base_install/pyenv_root/versions/3.6.1/lib/python3.6/site-packages/appsecrets/api.py:14: in decrypt
  | return self._store.decrypt(name)
  | /base_install/pyenv_root/versions/3.6.1/lib/python3.6/site-packages/appsecrets/stores.py:31: in decrypt
  | return self._crypto.decrypt(self._read_cipher(name))
  | /base_install/pyenv_root/versions/3.6.1/lib/python3.6/site-packages/appsecrets/crypto/google_kms.py:21: in decrypt
  | response = self._api_resource.decrypt(name=self._key_id, body=body).execute()
  | /base_install/pyenv_root/versions/3.6.1/lib/python3.6/site-packages/appsecrets/crypto/google_kms.py:28: in _api_resource
  | client = googleapiclient.discovery.build('cloudkms', 'v1')
  | /base_install/pyenv_root/versions/3.6.1/lib/python3.6/site-packages/oauth2client/_helpers.py:133: in positional_wrapper
  | return wrapped(*args, **kwargs)
  | /base_install/pyenv_root/versions/3.6.1/lib/python3.6/site-packages/googleapiclient/discovery.py:229: in build
  | requested_url, discovery_http, cache_discovery, cache)
  | /base_install/pyenv_root/versions/3.6.1/lib/python3.6/site-packages/googleapiclient/discovery.py:276: in _retrieve_discovery_doc
  | resp, content = http.request(actual_url)
  | /base_install/pyenv_root/versions/3.6.1/lib/python3.6/site-packages/httplib2/__init__.py:1509: in request
  | (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
  | /base_install/pyenv_root/versions/3.6.1/lib/python3.6/site-packages/httplib2/__init__.py:1259: in _request
  | (response, content) = self._conn_request(conn, request_uri, method, body, headers)
  | _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  |  
  | self = <httplib2.Http object at 0x7fdea2a31d30>
  | conn = <httplib2.HTTPSConnectionWithTimeout object at 0x7fdeaad25358>
  | request_uri = '/discovery/v1/apis/cloudkms/v1/rest', method = 'GET', body = None
  | headers = {'accept-encoding': 'gzip, deflate', 'user-agent': 'Python-httplib2/0.11.1 (gzip)'}
  |  
  | def _conn_request(self, conn, request_uri, method, body, headers):
  | i = 0
  | seen_bad_status_line = False
  | while i < RETRIES:
  | i += 1
  | try:
  | if conn.sock is None:
  | conn.connect()
  | conn.request(method, request_uri, body, headers)
  | except socket.timeout:
  | conn.close()
  | raise
  | except socket.gaierror:
  | conn.close()
  | >               raise ServerNotFoundError("Unable to find the server at %s" % conn.host)
  | E               httplib2.ServerNotFoundError: Unable to find the server at www.googleapis.com
  |  
  | /base_install/pyenv_root/versions/3.6.1/lib/python3.6/site-packages/httplib2/__init__.py:1189: ServerNotFoundError