Re: [ovirt-users] Python-SDK4: Managing accents?

2017-06-13 Thread nicolas

El 2017-06-13 13:30, Juan Hernández escribió:

On 06/13/2017 01:58 PM, nico...@devels.es wrote:

Currently all our scripts are python2-based, not sure if running them
with Python3 would need a major change, but currently we're happy with
Python2. I'm still not clear if this is a bug or an additional option
should be supplied in order to make this work.

Thanks.



It is a but. I think it was introduced recently. Please try to use
version 4.1.3 and check if it works correctly. Open a bug reporting the
results. We will probably need to do something like this to fix it:

  Fix parsing of multi-byte UTF-8 characters
  https://gerrit.ovirt.org/78112



Done [1].

Thanks!

  [1]: https://bugzilla.redhat.com/show_bug.cgi?id=1461060


El 2017-06-12 14:48, Fabrice Bacchella escribió:

Did you try with python 3 ? UTF management changed a lot with this
version, it might works better in your case.


Le 12 juin 2017 à 12:33, nico...@devels.es a écrit :

Hi,

We're running Python SDK (ovirt-engine-sdk-python) ver 4.1.4 and
we're having some issues getting values that contain accents. For
example, this snippet fails:

   import ovirtsdk4 as sdk
   import ovirtsdk4.types as types

   # Create the connection to the server:
   connection = sdk.Connection(
   url='https://fqdn/ovirt-engine/api',
   username='...',
   password='...',
   ca_file='...',
   debug=True,
   )

   users_service = connection.system_service().users_service()
   users = users_service.list()

   connection.close()

This snippet fails in the "users = users_service.list()" line,
because one of the records have a tilde (ó).

The trace is:
Traceback (most recent call last):
 File "lista_users", line 23, in 
   users = users_service.list()
 File
"/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/services.py",
line 22155, in list
   return self._internal_get(headers, query, wait)
 File
"/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/service.py",
line 202, in _internal_get
   return future.wait() if wait else future
 File
"/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/service.py",
line 53, in wait
   return self._code(response)
 File
"/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/service.py",
line 197, in callback
   return self._internal_read_body(response)
 File
"/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/service.py",
line 310, in _internal_read_body
   return reader.Reader.read(response.body)
 File
"/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/reader.py",
line 297, in read
   cursor = xml.XmlReader(io.BytesIO(source.encode('utf-8')))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position
1899: ordinal not in range(128)

Opening the source code (ovirtsdk4/reader.py) file and seeking the
exact line that fails I can see:

   if isinstance(source, str):
   cursor = 
xml.XmlReader(io.BytesIO(source.encode('utf-8')))


If I add a line just after the 'if' being "cursor =
cursor.decode('utf-8')", it seems to work, but I guess the source
code should handle this kind of situations.

Is this a known issue? Should I open a BZ? Any workaround meanwhile?

Thanks.
___
Users mailing list
Users@ovirt.org
http://lists.ovirt.org/mailman/listinfo/users

___
Users mailing list
Users@ovirt.org
http://lists.ovirt.org/mailman/listinfo/users

___
Users mailing list
Users@ovirt.org
http://lists.ovirt.org/mailman/listinfo/users


Re: [ovirt-users] Python-SDK4: Managing accents?

2017-06-13 Thread Juan Hernández
On 06/13/2017 01:58 PM, nico...@devels.es wrote:
> Currently all our scripts are python2-based, not sure if running them
> with Python3 would need a major change, but currently we're happy with
> Python2. I'm still not clear if this is a bug or an additional option
> should be supplied in order to make this work.
> 
> Thanks.
> 

It is a but. I think it was introduced recently. Please try to use
version 4.1.3 and check if it works correctly. Open a bug reporting the
results. We will probably need to do something like this to fix it:

  Fix parsing of multi-byte UTF-8 characters
  https://gerrit.ovirt.org/78112

> El 2017-06-12 14:48, Fabrice Bacchella escribió:
>> Did you try with python 3 ? UTF management changed a lot with this
>> version, it might works better in your case.
>>
>>> Le 12 juin 2017 à 12:33, nico...@devels.es a écrit :
>>>
>>> Hi,
>>>
>>> We're running Python SDK (ovirt-engine-sdk-python) ver 4.1.4 and
>>> we're having some issues getting values that contain accents. For
>>> example, this snippet fails:
>>>
>>>import ovirtsdk4 as sdk
>>>import ovirtsdk4.types as types
>>>
>>># Create the connection to the server:
>>>connection = sdk.Connection(
>>>url='https://fqdn/ovirt-engine/api',
>>>username='...',
>>>password='...',
>>>ca_file='...',
>>>debug=True,
>>>)
>>>
>>>users_service = connection.system_service().users_service()
>>>users = users_service.list()
>>>
>>>connection.close()
>>>
>>> This snippet fails in the "users = users_service.list()" line,
>>> because one of the records have a tilde (ó).
>>>
>>> The trace is:
>>> Traceback (most recent call last):
>>>  File "lista_users", line 23, in 
>>>users = users_service.list()
>>>  File
>>> "/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/services.py",
>>> line 22155, in list
>>>return self._internal_get(headers, query, wait)
>>>  File
>>> "/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/service.py",
>>> line 202, in _internal_get
>>>return future.wait() if wait else future
>>>  File
>>> "/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/service.py",
>>> line 53, in wait
>>>return self._code(response)
>>>  File
>>> "/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/service.py",
>>> line 197, in callback
>>>return self._internal_read_body(response)
>>>  File
>>> "/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/service.py",
>>> line 310, in _internal_read_body
>>>return reader.Reader.read(response.body)
>>>  File
>>> "/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/reader.py",
>>> line 297, in read
>>>cursor = xml.XmlReader(io.BytesIO(source.encode('utf-8')))
>>> UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position
>>> 1899: ordinal not in range(128)
>>>
>>> Opening the source code (ovirtsdk4/reader.py) file and seeking the
>>> exact line that fails I can see:
>>>
>>>if isinstance(source, str):
>>>cursor = xml.XmlReader(io.BytesIO(source.encode('utf-8')))
>>>
>>> If I add a line just after the 'if' being "cursor =
>>> cursor.decode('utf-8')", it seems to work, but I guess the source
>>> code should handle this kind of situations.
>>>
>>> Is this a known issue? Should I open a BZ? Any workaround meanwhile?
>>>
>>> Thanks.
>>> ___
>>> Users mailing list
>>> Users@ovirt.org
>>> http://lists.ovirt.org/mailman/listinfo/users
> ___
> Users mailing list
> Users@ovirt.org
> http://lists.ovirt.org/mailman/listinfo/users

___
Users mailing list
Users@ovirt.org
http://lists.ovirt.org/mailman/listinfo/users


Re: [ovirt-users] Python-SDK4: Managing accents?

2017-06-13 Thread nicolas
Currently all our scripts are python2-based, not sure if running them 
with Python3 would need a major change, but currently we're happy with 
Python2. I'm still not clear if this is a bug or an additional option 
should be supplied in order to make this work.


Thanks.

El 2017-06-12 14:48, Fabrice Bacchella escribió:

Did you try with python 3 ? UTF management changed a lot with this
version, it might works better in your case.


Le 12 juin 2017 à 12:33, nico...@devels.es a écrit :

Hi,

We're running Python SDK (ovirt-engine-sdk-python) ver 4.1.4 and we're 
having some issues getting values that contain accents. For example, 
this snippet fails:


   import ovirtsdk4 as sdk
   import ovirtsdk4.types as types

   # Create the connection to the server:
   connection = sdk.Connection(
   url='https://fqdn/ovirt-engine/api',
   username='...',
   password='...',
   ca_file='...',
   debug=True,
   )

   users_service = connection.system_service().users_service()
   users = users_service.list()

   connection.close()

This snippet fails in the "users = users_service.list()" line, because 
one of the records have a tilde (ó).


The trace is:
Traceback (most recent call last):
 File "lista_users", line 23, in 
   users = users_service.list()
 File 
"/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/services.py", 
line 22155, in list

   return self._internal_get(headers, query, wait)
 File 
"/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/service.py", 
line 202, in _internal_get

   return future.wait() if wait else future
 File 
"/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/service.py", 
line 53, in wait

   return self._code(response)
 File 
"/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/service.py", 
line 197, in callback

   return self._internal_read_body(response)
 File 
"/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/service.py", 
line 310, in _internal_read_body

   return reader.Reader.read(response.body)
 File 
"/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/reader.py", 
line 297, in read

   cursor = xml.XmlReader(io.BytesIO(source.encode('utf-8')))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 
1899: ordinal not in range(128)


Opening the source code (ovirtsdk4/reader.py) file and seeking the 
exact line that fails I can see:


   if isinstance(source, str):
   cursor = xml.XmlReader(io.BytesIO(source.encode('utf-8')))

If I add a line just after the 'if' being "cursor = 
cursor.decode('utf-8')", it seems to work, but I guess the source code 
should handle this kind of situations.


Is this a known issue? Should I open a BZ? Any workaround meanwhile?

Thanks.
___
Users mailing list
Users@ovirt.org
http://lists.ovirt.org/mailman/listinfo/users

___
Users mailing list
Users@ovirt.org
http://lists.ovirt.org/mailman/listinfo/users


Re: [ovirt-users] Python-SDK4: Managing accents?

2017-06-12 Thread Fabrice Bacchella
Did you try with python 3 ? UTF management changed a lot with this version, it 
might works better in your case.

> Le 12 juin 2017 à 12:33, nico...@devels.es a écrit :
> 
> Hi,
> 
> We're running Python SDK (ovirt-engine-sdk-python) ver 4.1.4 and we're having 
> some issues getting values that contain accents. For example, this snippet 
> fails:
> 
>import ovirtsdk4 as sdk
>import ovirtsdk4.types as types
> 
># Create the connection to the server:
>connection = sdk.Connection(
>url='https://fqdn/ovirt-engine/api',
>username='...',
>password='...',
>ca_file='...',
>debug=True,
>)
> 
>users_service = connection.system_service().users_service()
>users = users_service.list()
> 
>connection.close()
> 
> This snippet fails in the "users = users_service.list()" line, because one of 
> the records have a tilde (ó).
> 
> The trace is:
> Traceback (most recent call last):
>  File "lista_users", line 23, in 
>users = users_service.list()
>  File 
> "/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/services.py",
>  line 22155, in list
>return self._internal_get(headers, query, wait)
>  File 
> "/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/service.py",
>  line 202, in _internal_get
>return future.wait() if wait else future
>  File 
> "/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/service.py",
>  line 53, in wait
>return self._code(response)
>  File 
> "/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/service.py",
>  line 197, in callback
>return self._internal_read_body(response)
>  File 
> "/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/service.py",
>  line 310, in _internal_read_body
>return reader.Reader.read(response.body)
>  File 
> "/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/reader.py",
>  line 297, in read
>cursor = xml.XmlReader(io.BytesIO(source.encode('utf-8')))
> UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 1899: 
> ordinal not in range(128)
> 
> Opening the source code (ovirtsdk4/reader.py) file and seeking the exact line 
> that fails I can see:
> 
>if isinstance(source, str):
>cursor = xml.XmlReader(io.BytesIO(source.encode('utf-8')))
> 
> If I add a line just after the 'if' being "cursor = cursor.decode('utf-8')", 
> it seems to work, but I guess the source code should handle this kind of 
> situations.
> 
> Is this a known issue? Should I open a BZ? Any workaround meanwhile?
> 
> Thanks.
> ___
> Users mailing list
> Users@ovirt.org
> http://lists.ovirt.org/mailman/listinfo/users

___
Users mailing list
Users@ovirt.org
http://lists.ovirt.org/mailman/listinfo/users


[ovirt-users] Python-SDK4: Managing accents?

2017-06-12 Thread nicolas

Hi,

We're running Python SDK (ovirt-engine-sdk-python) ver 4.1.4 and we're 
having some issues getting values that contain accents. For example, 
this snippet fails:


import ovirtsdk4 as sdk
import ovirtsdk4.types as types

# Create the connection to the server:
connection = sdk.Connection(
url='https://fqdn/ovirt-engine/api',
username='...',
password='...',
ca_file='...',
debug=True,
)

users_service = connection.system_service().users_service()
users = users_service.list()

connection.close()

This snippet fails in the "users = users_service.list()" line, because 
one of the records have a tilde (ó).


The trace is:
Traceback (most recent call last):
  File "lista_users", line 23, in 
users = users_service.list()
  File 
"/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/services.py", 
line 22155, in list

return self._internal_get(headers, query, wait)
  File 
"/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/service.py", 
line 202, in _internal_get

return future.wait() if wait else future
  File 
"/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/service.py", 
line 53, in wait

return self._code(response)
  File 
"/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/service.py", 
line 197, in callback

return self._internal_read_body(response)
  File 
"/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/service.py", 
line 310, in _internal_read_body

return reader.Reader.read(response.body)
  File 
"/home/ovirt/prueba/ejemplo2/lib/python2.7/site-packages/ovirtsdk4/reader.py", 
line 297, in read

cursor = xml.XmlReader(io.BytesIO(source.encode('utf-8')))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 
1899: ordinal not in range(128)


Opening the source code (ovirtsdk4/reader.py) file and seeking the exact 
line that fails I can see:


if isinstance(source, str):
cursor = xml.XmlReader(io.BytesIO(source.encode('utf-8')))

If I add a line just after the 'if' being "cursor = 
cursor.decode('utf-8')", it seems to work, but I guess the source code 
should handle this kind of situations.


Is this a known issue? Should I open a BZ? Any workaround meanwhile?

Thanks.
___
Users mailing list
Users@ovirt.org
http://lists.ovirt.org/mailman/listinfo/users