[ 
https://issues.apache.org/jira/browse/LIBCLOUD-959?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

David L. Day closed LIBCLOUD-959.
---------------------------------
    Resolution: Not A Problem

Appears to be an issue with combination of requests/urllib3, https, and being 
behind a corporate firewall. Recreated issue with a call to 
https://www.google.com and requests.

> AZURE_BLOBS upload_object fails on both Container and Driver
> ------------------------------------------------------------
>
>                 Key: LIBCLOUD-959
>                 URL: https://issues.apache.org/jira/browse/LIBCLOUD-959
>             Project: Libcloud
>          Issue Type: Bug
>          Components: Storage
>         Environment: Python 2.7.11
>            Reporter: David L. Day
>
> The upload_object method on both the driver and container objects fails for 
> Provider.AZURE_BLOBS. Listing containers and objects works.
> {noformat}
> > pip list
> Package         Version
> --------------- ---------
> apache-libcloud 2.2.1
> asn1crypto      0.23.0
> certifi         2017.11.5
> cffi            1.11.2
> chardet         3.0.4
> cryptography    2.1.3
> enum34          1.1.6
> idna            2.6
> ipaddress       1.0.18
> pip             9.0.1
> pycparser       2.18
> pyOpenSSL       17.3.0
> requests        2.18.4
> setuptools      36.6.0
> six             1.11.0
> urllib3         1.22
> wheel           0.30.0
> {noformat}
> Code to reproduce:
> {code:python}
> # -*- coding: utf-8 -*-
> import libcloud.security
> from libcloud.storage.types import Provider
> from libcloud.storage.providers import get_driver
> key = ''
> secret = ''
> cls = get_driver(Provider.AZURE_BLOBS)
> driver = cls(key=key, secret=secret)
> print "Containers: ", driver.list_containers()
> testing = driver.get_container(container_name='testing')
> print "Objects in 'testing': ", testing.list_objects()
> print "Downloading LICENSE.txt:"
> lic = testing.get_object('LICENSE.txt')
> testing.download_object(lic, 'C:\\Users\\dayd3\\Downloads\\LICENSE.txt')
> print "Uploading via driver:"
> driver.upload_object(file_path='C:\\Users\\dayd3\\Downloads\\test.txt', 
> container=testing, object_name='test/test.txt')
> print "Uploading via container:"
> testing.upload_object(file_path='C:\\Users\\dayd3\\Downloads\\test.txt', 
> object_name='test/test.txt')}}
> {code}
> Error:
> {noformat}
> > python azure.py
> Containers:  [<Container: name=testing, provider=Microsoft Azure (blobs)>]
> Objects in 'testing':  []
> Uploading via driver:
> Traceback (most recent call last):
>   File "azure.py", line 15, in <module>
>     driver.upload_object(file_path='C:\\Users\\dayd3\\Downloads\\test.txt', 
> container=testing, object_name='test/test.txt')
>   File 
> "C:\Users\dayd3\Envs\libcloud\lib\site-packages\libcloud\storage\drivers\azure_blobs.py",
>  line 771, in upload_object
>     use_lease=ex_use_lease)
>   File 
> "C:\Users\dayd3\Envs\libcloud\lib\site-packages\libcloud\storage\drivers\azure_blobs.py",
>  line 895, in _put_object
>     stream=stream)
>   File 
> "C:\Users\dayd3\Envs\libcloud\lib\site-packages\libcloud\storage\base.py", 
> line 627, in _upload_object
>     headers=headers, raw=True)
>   File 
> "C:\Users\dayd3\Envs\libcloud\lib\site-packages\libcloud\common\base.py", 
> line 590, in request
>     stream=stream)
>   File "C:\Users\dayd3\Envs\libcloud\lib\site-packages\libcloud\http.py", 
> line 230, in prepared_request
>     verify=self.ca_cert if self.ca_cert is not None else self.verify)
>   File "C:\Users\dayd3\Envs\libcloud\lib\site-packages\requests\sessions.py", 
> line 618, in send
>     r = adapter.send(request, **kwargs)
>   File "C:\Users\dayd3\Envs\libcloud\lib\site-packages\requests\adapters.py", 
> line 508, in send
>     raise ConnectionError(e, request=request)
> requests.exceptions.ConnectionError: 
> HTTPSConnectionPool(host='dmainnovbdl1.blob.core.windows.net', port=443): Max 
> retries exceeded with url: /testing/test/test.txt (Caused by 
> NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 
> 0x0000000003B6A6D8>: Failed to establish a new connection: [Errno 11004] 
> getaddrinfo failed',))
> {noformat}
> I'm receiving the same problem with download_object. I've updated the code 
> sample above, and here's the output:
> {noformat}
> Containers:  [<Container: name=testing, provider=Microsoft Azure (blobs)>]    
>                                                         
> Objects in 'testing':  [<Object: name=LICENSE.txt, size=6019, 
> hash=0x8D526E7516C1176, provider=Microsoft Azure (blobs) ...>]          
> Downloading LICENSE.txt:                                                      
>                                                         
> Traceback (most recent call last):                                            
>                                                         
>   File "azure.py", line 16, in <module>                                       
>                                                         
>     testing.download_object(lic, 'C:\\Users\\dayd3\\Downloads\\LICENSE.txt')  
>                                                         
>   File 
> "C:\Users\dayd3\Envs\libcloud\lib\site-packages\libcloud\storage\base.py", 
> line 162, in download_object                        
>     delete_on_failure=delete_on_failure)                                      
>                                                         
>   File 
> "C:\Users\dayd3\Envs\libcloud\lib\site-packages\libcloud\storage\drivers\azure_blobs.py",
>  line 546, in download_object         
>     response = self.connection.request(obj_path, raw=True, data=None)         
>                                                         
>   File 
> "C:\Users\dayd3\Envs\libcloud\lib\site-packages\libcloud\common\base.py", 
> line 590, in request                                 
>     stream=stream)                                                            
>                                                         
>   File "C:\Users\dayd3\Envs\libcloud\lib\site-packages\libcloud\http.py", 
> line 230, in prepared_request                               
>     verify=self.ca_cert if self.ca_cert is not None else self.verify)         
>                                                         
>   File "C:\Users\dayd3\Envs\libcloud\lib\site-packages\requests\sessions.py", 
> line 618, in send                                       
>     r = adapter.send(request, **kwargs)                                       
>                                                         
>   File "C:\Users\dayd3\Envs\libcloud\lib\site-packages\requests\adapters.py", 
> line 508, in send                                       
>     raise ConnectionError(e, request=request)                                 
>                                                         
> requests.exceptions.ConnectionError: 
> HTTPSConnectionPool(host='dmainnovbdl1.blob.core.windows.net', port=443): Max 
> retries exceeded wi
> th url: /testing/LICENSE.txt (Caused by 
> NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 
> 0x0000000003DE57F0>:
>  Failed to establish a new connection: [Errno 11004] getaddrinfo failed',))   
>                                                         
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to