libcloud-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Simon Smith <...@arcode.com>
Subject Re: httplib error when using Rackspace cloudfiles driver
Date Tue, 11 Oct 2011 18:04:41 GMT
Thanks!  I'm using what is probably an early 2.7 version, and we might 
be using an old httplib as well.  I will check out all three upgrade 
avenues.  I really appreciate your time and help!!!

  On 10/11/11 1:59 PM, Tomaž Muraus wrote:
> Actually, I just checked the trunk version and we already call str() on the
> header value there - please try your script with the trunk version.
>
> Also out of curiosity which exact Python version are you using? I tested it
> with 2.7.2 and it looks like httplib.py there already calls str() on the
> value internally.
>
>      def putheader(self, header, *values):
>>          """Send a request header line to the server.
>>          For example: h.putheader('Accept', 'text/html')
>>          """
>>          if self.__state != _CS_REQ_STARTED:
>>              raise CannotSendHeader()
>>          hdr = '%s: %s' % (header, '\r\n\t'.join([str(v) for v in values]))
>
>
> Looking at your stacktrace that is not the case for the version you are
> using :)
>
> Thanks,
> Tomaz
>
> 2011/10/11 Tomaž Muraus<tomaz@apache.org>
>
>> Hi,
>>
>> Which version of libcloud are you using (0.5.2, trunk?).
>>
>> It would also be very useful if you can run your script with
>> LIBCLOUD_DEBUG=/dev/stdout environment variable set -
>> LIBCLOUD_DEBUG=/dev/stdout python my_script.py.
>>
>> This should log all the requests and hopefully the offending header which
>> is making it fail.
>>
>> P.S. I think calling str() on the 'value' in common/base.py:L385 would fix
>> it, but I'm still interested where the 'long' value is coming from (probably
>> it's a content-length or something like that).
>>
>> Thanks,
>> Tomaz
>>
>> On Tue, Oct 11, 2011 at 7:19 PM, Simon Smith<sgs@arcode.com>  wrote:
>>
>>> I'm getting an httplib.py error when trying to upload a file, see python
>>> session below.  Note that 'test2' is a previously-created container.   I
>>> looked at the code and it isn't obvious what is going on.  I can go add
>>> debugging code but first wanted to see if anyone else had run into this.
>>>   (Note: I have not had any problems using libcloud to create new Rackspace
>>> computing nodes).
>>>
>>> Thanks - Simon
>>>
>>>>>> from libcloud.storage.types import Provider
>>>>>> from libcloud.storage.providers import get_driver
>>>>>> CloudFiles = get_driver(Provider.**CLOUDFILES_US)
>>>>>> driver = CloudFiles('<redacted>','<**redacted>')
>>> /var/www/html/ops/resources/**python/libcloud/httplib_ssl.**
>>> pyc/qqPIGI8-vn-gxQ_**YSAuiF22D8YyOdnxVQ8LYN4UQEbk:**55: UserWarning: SSL
>>> certificate verification is disabled, this can pose a security risk. For
>>> more information how to enable the SSL certificate verification, please
>>> visit the libcloud documentation.
>>>>>> cont = driver.get_container('test2')
>>>>>> driver.upload_object('file.**txt',cont,'testfile2')
>>> Traceback (most recent call last):
>>>   File "<stdin>", line 1, in<module>
>>>   File "python/libcloud/storage/**drivers/cloudfiles.py", line 304, in
>>> upload_object
>>>   File "python/libcloud/storage/**drivers/cloudfiles.py", line 398, in
>>> _put_object
>>>   File "python/libcloud/storage/base.**py", line 534, in _upload_object
>>>   File "python/libcloud/storage/**drivers/cloudfiles.py", line 123, in
>>> request
>>>   File "python/libcloud/common/base.**py", line 385, in request
>>>   File "/home/arcmgr/lib/python2.7/**httplib.py", line 924, in putheader
>>>     str = '%s: %s' % (header, '\r\n\t'.join(values))
>>> TypeError: sequence item 0: expected string, long found
>>>
>>>
>>>
>>>
>>>


Mime
View raw message