PelionIoT / mbed-connector-api-python

python library for using connector.mbed.com
Apache License 2.0
2 stars 2 forks source link

Calling getEndpoints() will tank periodically #18

Open BlackstoneEngineering opened 7 years ago

BlackstoneEngineering commented 7 years ago

Problem

Calling getEndpoints will tank the system

╭─ausbla01@U201184 ~/mbed/mbedServiceCheck  ‹deployment-test*›
╰─➤  python mbedServiceCheck.py
Running test suite...
    Checking HTTP services
    Checking Connector services
Traceback (most recent call last):
  File "mbedServiceCheck.py", line 196, in <module>
    check_endpoints()
  File "mbedServiceCheck.py", line 118, in check_endpoints
    buf.append(check_connector())
  File "mbedServiceCheck.py", line 78, in check_connector
    y = x.getEndpoints()
  File "/usr/lib/python2.7/site-packages/mbed_connector_api-1.0.3-py2.7.egg/mbed_connector_api/mbed_connector_api.py", line 139, in getEndpoints
    data = self._getURL("/endpoints", query = q)
  File "/usr/lib/python2.7/site-packages/mbed_connector_api-1.0.3-py2.7.egg/mbed_connector_api/mbed_connector_api.py", line 790, in _getURL
    return r.get(self.address+self.apiVersion+url,headers={"Authorization":"Bearer "+self.bearer},params=query)
  File "/usr/lib/python2.7/site-packages/requests/api.py", line 70, in get
    return request('get', url, params=params, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests/api.py", line 56, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 475, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 596, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests/adapters.py", line 487, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='api.connector.mbed.com', port=443): Max retries exceeded with url: /v2/endpoints (Caused by NewConnectionError('<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0xffb0a34c>: Failed to establish a new connection: [Errno 8] Name or service not known',))

Solution

Wrap everything in try / except and use exit(1) so other programs that use this library dont explode.