[ 
https://issues.apache.org/jira/browse/LIBCLOUD-791?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15098068#comment-15098068
 ] 

ASF GitHub Bot commented on LIBCLOUD-791:
-----------------------------------------

GitHub user Kami opened a pull request:

    https://github.com/apache/libcloud/pull/682

    Throw a more friendly error message if establishing SSL / TLS connection 
fails

    With this change we now throw a more user-friendly error message in case 
establishing SSL / TLS connection fails.
    
    New error message:
    
    ```python
      File "/home/kami/w/lc/libcloud/libcloud/httplib_ssl.py", line 312, in 
connect
        raise new_e
    socket.error: Failed to establish SSL / TLS connection ([Errno 104] 
Connection reset by peer). It is possible that the server doesn't support 
requested SSL / TLS version (TLS v1.0).
    For information on how to work around this issue, please see 
https://libcloud.readthedocs.org/en/latest/other/ssl-certificate-validation.html#changing-used-ssl-tls-version
    ```
    
    Related to https://issues.apache.org/jira/browse/LIBCLOUD-791

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/Kami/libcloud 
friendlier_error_message_on_tls_error

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/libcloud/pull/682.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #682
    
----
commit a9acb7fca02867c3d1aa101c9d457803cfb7aef1
Author: Tomaz Muraus <to...@apache.org>
Date:   2016-01-14T12:47:09Z

    Throw a more friendly error message if establishing SSL / TLS connection 
fails.

----


> Connection to the Linode API drops
> ----------------------------------
>
>                 Key: LIBCLOUD-791
>                 URL: https://issues.apache.org/jira/browse/LIBCLOUD-791
>             Project: Libcloud
>          Issue Type: Bug
>          Components: Compute
>         Environment: apache-libcloud==0.18.0
> Ubuntu 14.04
> Python2.7
>            Reporter: Jacob Riley
>
> When attempting to connect to Linode through the Linode provider, I am 
> receiving a dropped connection. The following DEBUG information is attached.
> I have also found that when taking the below curl request and sending it 
> normally, I do not have any errors on getting a response.
> # -------- begin 140040111659984 request ----------
> curl -i -X GET -H 'Host: api.linode.com' -H 'X-LC-Request-ID: 
> 140040111659984' -H 'Accept-Encoding: gzip,deflate' -H 'User-Agent: 
> libcloud/0.18.0 (Linode) ' --compress 
> 'https://api.linode.com:443/?api_key=sekrit&api_responseFormat=json&api_action=avail.linodeplans'
> Traceback (most recent call last):
>   File "test.py", line 6, in <module>
>     p.worker.consume_queue()
>   File "/srv/auction-balancer/Auction-Balancer/sae/prov/util/worker.py", line 
> 53, in wrapped_func
>     channel.start_consuming()
>   File 
> "/srv/auction-balancer/Auction-Balancer/provenv/local/lib/python2.7/site-packages/pika/adapters/blocking_connection.py",
>  line 1681, in start_consuming
>     self.connection.process_data_events(time_limit=None)
>   File 
> "/srv/auction-balancer/Auction-Balancer/provenv/local/lib/python2.7/site-packages/pika/adapters/blocking_connection.py",
>  line 656, in process_data_events
>     self._dispatch_channel_events()
>   File 
> "/srv/auction-balancer/Auction-Balancer/provenv/local/lib/python2.7/site-packages/pika/adapters/blocking_connection.py",
>  line 469, in _dispatch_channel_events
>     impl_channel._get_cookie()._dispatch_events()
>   File 
> "/srv/auction-balancer/Auction-Balancer/provenv/local/lib/python2.7/site-packages/pika/adapters/blocking_connection.py",
>  line 1310, in _dispatch_events
>     evt.body)
>   File "/srv/auction-balancer/Auction-Balancer/sae/prov/util/worker.py", line 
> 45, in callback
>     success = func(message)
>   File "/srv/auction-balancer/Auction-Balancer/sae/prov/util/worker.py", line 
> 102, in consume_queue
>     node = server.create_node('linode', name=machine_name, size_id='Linode 
> 1024', image_id='Ubuntu 14.04 LTS')
>   File "/srv/auction-balancer/Auction-Balancer/sae/prov/util/provider.py", 
> line 78, in create_node
>     size = [s for s in driver.list_sizes() if s.name == size_id][0]
>   File 
> "/srv/auction-balancer/Auction-Balancer/provenv/local/lib/python2.7/site-packages/libcloud/compute/drivers/linode.py",
>  line 405, in list_sizes
>     data = self.connection.request(API_ROOT, params=params).objects[0]
>   File 
> "/srv/auction-balancer/Auction-Balancer/provenv/local/lib/python2.7/site-packages/libcloud/common/base.py",
>  line 784, in request
>     headers=headers)
>   File 
> "/srv/auction-balancer/Auction-Balancer/provenv/local/lib/python2.7/site-packages/libcloud/common/base.py",
>  line 443, in request
>     headers)
>   File "/usr/lib/python2.7/httplib.py", line 979, in request
>     self._send_request(method, url, body, headers)
>   File "/usr/lib/python2.7/httplib.py", line 1013, in _send_request
>     self.endheaders(body)
>   File "/usr/lib/python2.7/httplib.py", line 975, in endheaders
>     self._send_output(message_body)
>   File "/usr/lib/python2.7/httplib.py", line 835, in _send_output
>     self.send(msg)
>   File "/usr/lib/python2.7/httplib.py", line 797, in send
>     self.connect()
>   File 
> "/srv/auction-balancer/Auction-Balancer/provenv/local/lib/python2.7/site-packages/libcloud/httplib_ssl.py",
>  line 280, in connect
>     ssl_version=libcloud.security.SSL_VERSION)
>   File "/usr/lib/python2.7/ssl.py", line 487, in wrap_socket
>     ciphers=ciphers)
>   File "/usr/lib/python2.7/ssl.py", line 243, in __init__
>     self.do_handshake()
>   File "/usr/lib/python2.7/ssl.py", line 405, in do_handshake
>     self._sslobj.do_handshake()
> socket.error: [Errno 104] Connection reset by peer
> Testing with a separate library also based on httplib , I found that it is 
> not failing when connecting to the Linode API however.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to