I wrote a script with python to automate some things with JIRA and I used the module Requests:

#!/usr/bin/python
# m.ortiz
# Requiere modulo requests: http://docs.python-requests.org/en/latest/
# Documentacion de este script:FIXME

# modulos
import sys,requests

The thing is, when there was not network connectivity this error raised:

Traceback (most recent call last):
  File "ot_conectividad_jira.py", line 56, in <module>
    main()
  File "ot_conectividad_jira.py", line 34, in main
    r = requests.get(jiraURL+TICKET, auth=(user, pasw),timeout=5)
  File "/usr/lib/python2.7/site-packages/requests-2.13.0-py2.7.egg/requests/api.py", line 70, in get
    return request('get', url, params=params, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests-2.13.0-py2.7.egg/requests/api.py", line 56, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests-2.13.0-py2.7.egg/requests/sessions.py", line 488, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python2.7/site-packages/requests-2.13.0-py2.7.egg/requests/sessions.py", line 609, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests-2.13.0-py2.7.egg/requests/adapters.py", line 487, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='myjirala.jira.com', port=443): Max retries exceeded with url: /rest/api/latest/issue/TICKET-123 (Caused by NewConnectionError('<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0xffb675ec>: Failed to establish a new connection: [Errno 8] Name or service not known',))

So I had to add some error handling for that. Error handling is well explained here.

The first thing to do was to import the exception from the error:

requests.exceptions.ConnectionError: HTTPSConnectionPool(host='myjirala.jira.com', port=443): Max retries exceeded with url: /rest/api/latest/issue/ESB-7483 (Caused by NewConnectionError('<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0xffb675ec>: Failed to establish a new connection: [Errno 8] Name or service not known',))

Like this:

#!/usr/bin/python
# m.ortiz
# Requiere modulo requests: http://docs.python-requests.org/en/latest/
# Documentacion de este script:FIXME

# modulos
import sys,requests
from requests import ConnectionError

Then define a Rise statement with a try, except block. Here «Rise» will force the error (so I don’t need to unplug my cable):

    # Request Json from JIRA API
    try :
        r = requests.get(jiraURL+TICKET, auth=(user, pasw),timeout=5)
        rlink = requests.get(jiraURL+TICKET+jiraRlink, auth=(user,pasw), timeout=5)
        raise ConnectionError('Fake Error to be called')
    except ConnectionError :
        print 'Error de conectividad, verifique su conexion a internet.'
        exit()

Although it worked I fully tested removing the raise statement and unplugging the cable, everything worked as expected.

$ python ot_conectividad_jira.py ABC-123


 [ Estas Analizando el ticket: ABC-123]

Error de conectividad, verifique su conexion a internet.