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

Steve V commented on LIBCLOUD-791:
----------------------------------

I'm experiencing the same issue using libcloud through saltstack. I can 
interact with the Linode API through the command line using curl no problem 
from the same machine though. So it seems that with what Jacob is also saying, 
something about the way that libcloud calls the API is causing the failure.

I just heard from Linode, and they are saying TLS v1.2 is required. The server 
I am trying from indeed supports TLS 1.2, but maybe libcloud is attempting to 
use the wrong version?

> 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