All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/3] scripts: Python 3 compatibility fixes
@ 2018-03-12 18:55 Eduardo Habkost
  2018-03-12 18:55 ` [Qemu-devel] [PATCH 1/3] qemu.py: Use items() instead of iteritems() Eduardo Habkost
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Eduardo Habkost @ 2018-03-12 18:55 UTC (permalink / raw)
  To: qemu-devel; +Cc: Lukáš Doktor, Cleber Rosa

Fix a few incompatibilities, which should be enough to allow
device-crash-test to work with Python 3.

Eduardo Habkost (3):
  qemu.py: Use items() instead of iteritems()
  qmp.py: Encode json data before sending
  device-crash-test: Use 'python' binary

 scripts/qemu.py           | 2 +-
 scripts/qmp/qmp.py        | 2 +-
 scripts/device-crash-test | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

-- 
2.14.3

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Qemu-devel] [PATCH 1/3] qemu.py: Use items() instead of iteritems()
  2018-03-12 18:55 [Qemu-devel] [PATCH 0/3] scripts: Python 3 compatibility fixes Eduardo Habkost
@ 2018-03-12 18:55 ` Eduardo Habkost
  2018-03-12 19:24   ` Daniel P. Berrangé
  2018-03-12 23:02   ` Philippe Mathieu-Daudé
  2018-03-12 18:55 ` [Qemu-devel] [PATCH 2/3] qmp.py: Encode json data before sending Eduardo Habkost
  2018-03-12 18:55 ` [Qemu-devel] [PATCH 3/3] device-crash-test: Use 'python' binary Eduardo Habkost
  2 siblings, 2 replies; 10+ messages in thread
From: Eduardo Habkost @ 2018-03-12 18:55 UTC (permalink / raw)
  To: qemu-devel
  Cc: Lukáš Doktor, Cleber Rosa, Philippe Mathieu-Daudé

items() is less efficient on Python 2.x, but makes the code work
on both Python 2 and Python 3.

Cc: Lukáš Doktor <ldoktor@redhat.com>
Cc: Philippe Mathieu-Daudé <f4bug@amsat.org>
Cc: Cleber Rosa <crosa@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 scripts/qemu.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/qemu.py b/scripts/qemu.py
index 305a946562..08a3e9af5a 100644
--- a/scripts/qemu.py
+++ b/scripts/qemu.py
@@ -277,7 +277,7 @@ class QEMUMachine(object):
     def qmp(self, cmd, conv_keys=True, **args):
         '''Invoke a QMP command and return the response dict'''
         qmp_args = dict()
-        for key, value in args.iteritems():
+        for key, value in args.items():
             if conv_keys:
                 qmp_args[key.replace('_', '-')] = value
             else:
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Qemu-devel] [PATCH 2/3] qmp.py: Encode json data before sending
  2018-03-12 18:55 [Qemu-devel] [PATCH 0/3] scripts: Python 3 compatibility fixes Eduardo Habkost
  2018-03-12 18:55 ` [Qemu-devel] [PATCH 1/3] qemu.py: Use items() instead of iteritems() Eduardo Habkost
@ 2018-03-12 18:55 ` Eduardo Habkost
  2018-03-12 19:24   ` Daniel P. Berrangé
  2018-03-12 23:03   ` Philippe Mathieu-Daudé
  2018-03-12 18:55 ` [Qemu-devel] [PATCH 3/3] device-crash-test: Use 'python' binary Eduardo Habkost
  2 siblings, 2 replies; 10+ messages in thread
From: Eduardo Habkost @ 2018-03-12 18:55 UTC (permalink / raw)
  To: qemu-devel; +Cc: Lukáš Doktor, Cleber Rosa

On Python 3, json.dumps() return a str object, which can't be
sent directly through a socket and must be encoded into a bytes
object.  Use .encode('utf-8'), which will work on both Python 2
and Python 3.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 scripts/qmp/qmp.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/qmp/qmp.py b/scripts/qmp/qmp.py
index 07c9632e9e..5c8cf6a056 100644
--- a/scripts/qmp/qmp.py
+++ b/scripts/qmp/qmp.py
@@ -166,7 +166,7 @@ class QEMUMonitorProtocol(object):
         """
         self.logger.debug(">>> %s", qmp_cmd)
         try:
-            self.__sock.sendall(json.dumps(qmp_cmd))
+            self.__sock.sendall(json.dumps(qmp_cmd).encode('utf-8'))
         except socket.error as err:
             if err[0] == errno.EPIPE:
                 return
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Qemu-devel] [PATCH 3/3] device-crash-test: Use 'python' binary
  2018-03-12 18:55 [Qemu-devel] [PATCH 0/3] scripts: Python 3 compatibility fixes Eduardo Habkost
  2018-03-12 18:55 ` [Qemu-devel] [PATCH 1/3] qemu.py: Use items() instead of iteritems() Eduardo Habkost
  2018-03-12 18:55 ` [Qemu-devel] [PATCH 2/3] qmp.py: Encode json data before sending Eduardo Habkost
@ 2018-03-12 18:55 ` Eduardo Habkost
  2018-03-12 19:24   ` Daniel P. Berrangé
  2 siblings, 1 reply; 10+ messages in thread
From: Eduardo Habkost @ 2018-03-12 18:55 UTC (permalink / raw)
  To: qemu-devel; +Cc: Lukáš Doktor, Cleber Rosa

Now the script works with Python 3, so we can use the 'python'
binary provided by the system.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 scripts/device-crash-test | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/device-crash-test b/scripts/device-crash-test
index 36194e4347..7e79a8d885 100755
--- a/scripts/device-crash-test
+++ b/scripts/device-crash-test
@@ -1,4 +1,4 @@
-#!/usr/bin/env python2.7
+#!/usr/bin/env python
 #
 #  Copyright (c) 2017 Red Hat Inc
 #
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 1/3] qemu.py: Use items() instead of iteritems()
  2018-03-12 18:55 ` [Qemu-devel] [PATCH 1/3] qemu.py: Use items() instead of iteritems() Eduardo Habkost
@ 2018-03-12 19:24   ` Daniel P. Berrangé
  2018-03-12 23:02   ` Philippe Mathieu-Daudé
  1 sibling, 0 replies; 10+ messages in thread
From: Daniel P. Berrangé @ 2018-03-12 19:24 UTC (permalink / raw)
  To: Eduardo Habkost
  Cc: qemu-devel, Lukáš Doktor, Philippe Mathieu-Daudé,
	Cleber Rosa

On Mon, Mar 12, 2018 at 03:55:01PM -0300, Eduardo Habkost wrote:
> items() is less efficient on Python 2.x, but makes the code work
> on both Python 2 and Python 3.
> 
> Cc: Lukáš Doktor <ldoktor@redhat.com>
> Cc: Philippe Mathieu-Daudé <f4bug@amsat.org>
> Cc: Cleber Rosa <crosa@redhat.com>
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
>  scripts/qemu.py | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/scripts/qemu.py b/scripts/qemu.py
> index 305a946562..08a3e9af5a 100644
> --- a/scripts/qemu.py
> +++ b/scripts/qemu.py
> @@ -277,7 +277,7 @@ class QEMUMachine(object):
>      def qmp(self, cmd, conv_keys=True, **args):
>          '''Invoke a QMP command and return the response dict'''
>          qmp_args = dict()
> -        for key, value in args.iteritems():
> +        for key, value in args.items():
>              if conv_keys:
>                  qmp_args[key.replace('_', '-')] = value
>              else:

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 2/3] qmp.py: Encode json data before sending
  2018-03-12 18:55 ` [Qemu-devel] [PATCH 2/3] qmp.py: Encode json data before sending Eduardo Habkost
@ 2018-03-12 19:24   ` Daniel P. Berrangé
  2018-03-12 23:03   ` Philippe Mathieu-Daudé
  1 sibling, 0 replies; 10+ messages in thread
From: Daniel P. Berrangé @ 2018-03-12 19:24 UTC (permalink / raw)
  To: Eduardo Habkost; +Cc: qemu-devel, Lukáš Doktor, Cleber Rosa

On Mon, Mar 12, 2018 at 03:55:02PM -0300, Eduardo Habkost wrote:
> On Python 3, json.dumps() return a str object, which can't be
> sent directly through a socket and must be encoded into a bytes
> object.  Use .encode('utf-8'), which will work on both Python 2
> and Python 3.
> 
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
>  scripts/qmp/qmp.py | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/scripts/qmp/qmp.py b/scripts/qmp/qmp.py
> index 07c9632e9e..5c8cf6a056 100644
> --- a/scripts/qmp/qmp.py
> +++ b/scripts/qmp/qmp.py
> @@ -166,7 +166,7 @@ class QEMUMonitorProtocol(object):
>          """
>          self.logger.debug(">>> %s", qmp_cmd)
>          try:
> -            self.__sock.sendall(json.dumps(qmp_cmd))
> +            self.__sock.sendall(json.dumps(qmp_cmd).encode('utf-8'))
>          except socket.error as err:
>              if err[0] == errno.EPIPE:
>                  return

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 3/3] device-crash-test: Use 'python' binary
  2018-03-12 18:55 ` [Qemu-devel] [PATCH 3/3] device-crash-test: Use 'python' binary Eduardo Habkost
@ 2018-03-12 19:24   ` Daniel P. Berrangé
  0 siblings, 0 replies; 10+ messages in thread
From: Daniel P. Berrangé @ 2018-03-12 19:24 UTC (permalink / raw)
  To: Eduardo Habkost; +Cc: qemu-devel, Lukáš Doktor, Cleber Rosa

On Mon, Mar 12, 2018 at 03:55:03PM -0300, Eduardo Habkost wrote:
> Now the script works with Python 3, so we can use the 'python'
> binary provided by the system.
> 
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
>  scripts/device-crash-test | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/scripts/device-crash-test b/scripts/device-crash-test
> index 36194e4347..7e79a8d885 100755
> --- a/scripts/device-crash-test
> +++ b/scripts/device-crash-test
> @@ -1,4 +1,4 @@
> -#!/usr/bin/env python2.7
> +#!/usr/bin/env python
>  #
>  #  Copyright (c) 2017 Red Hat Inc
>  #

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 1/3] qemu.py: Use items() instead of iteritems()
  2018-03-12 18:55 ` [Qemu-devel] [PATCH 1/3] qemu.py: Use items() instead of iteritems() Eduardo Habkost
  2018-03-12 19:24   ` Daniel P. Berrangé
@ 2018-03-12 23:02   ` Philippe Mathieu-Daudé
  2018-03-13  1:25     ` Eduardo Habkost
  1 sibling, 1 reply; 10+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-12 23:02 UTC (permalink / raw)
  To: Eduardo Habkost, qemu-devel; +Cc: Lukáš Doktor, Cleber Rosa

On 03/12/2018 07:55 PM, Eduardo Habkost wrote:
> items() is less efficient on Python 2.x, but makes the code work
> on both Python 2 and Python 3.
> 
> Cc: Lukáš Doktor <ldoktor@redhat.com>
> Cc: Philippe Mathieu-Daudé <f4bug@amsat.org>
> Cc: Cleber Rosa <crosa@redhat.com>
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
>  scripts/qemu.py | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/scripts/qemu.py b/scripts/qemu.py
> index 305a946562..08a3e9af5a 100644
> --- a/scripts/qemu.py
> +++ b/scripts/qemu.py
> @@ -277,7 +277,7 @@ class QEMUMachine(object):
>      def qmp(self, cmd, conv_keys=True, **args):
>          '''Invoke a QMP command and return the response dict'''
>          qmp_args = dict()
> -        for key, value in args.iteritems():
> +        for key, value in args.items():
>              if conv_keys:
>                  qmp_args[key.replace('_', '-')] = value
>              else:
> 

http://lists.nongnu.org/archive/html/qemu-devel/2017-12/msg04046.html

;)

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 2/3] qmp.py: Encode json data before sending
  2018-03-12 18:55 ` [Qemu-devel] [PATCH 2/3] qmp.py: Encode json data before sending Eduardo Habkost
  2018-03-12 19:24   ` Daniel P. Berrangé
@ 2018-03-12 23:03   ` Philippe Mathieu-Daudé
  1 sibling, 0 replies; 10+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-12 23:03 UTC (permalink / raw)
  To: Eduardo Habkost, qemu-devel; +Cc: Lukáš Doktor, Cleber Rosa

On 03/12/2018 07:55 PM, Eduardo Habkost wrote:
> On Python 3, json.dumps() return a str object, which can't be
> sent directly through a socket and must be encoded into a bytes
> object.  Use .encode('utf-8'), which will work on both Python 2
> and Python 3.
> 
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
>  scripts/qmp/qmp.py | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/scripts/qmp/qmp.py b/scripts/qmp/qmp.py
> index 07c9632e9e..5c8cf6a056 100644
> --- a/scripts/qmp/qmp.py
> +++ b/scripts/qmp/qmp.py
> @@ -166,7 +166,7 @@ class QEMUMonitorProtocol(object):
>          """
>          self.logger.debug(">>> %s", qmp_cmd)
>          try:
> -            self.__sock.sendall(json.dumps(qmp_cmd))
> +            self.__sock.sendall(json.dumps(qmp_cmd).encode('utf-8'))
>          except socket.error as err:
>              if err[0] == errno.EPIPE:
>                  return
> 

http://lists.nongnu.org/archive/html/qemu-devel/2017-12/msg04047.html

;)

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 1/3] qemu.py: Use items() instead of iteritems()
  2018-03-12 23:02   ` Philippe Mathieu-Daudé
@ 2018-03-13  1:25     ` Eduardo Habkost
  0 siblings, 0 replies; 10+ messages in thread
From: Eduardo Habkost @ 2018-03-13  1:25 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé
  Cc: qemu-devel, Lukáš Doktor, Cleber Rosa

On Tue, Mar 13, 2018 at 12:02:39AM +0100, Philippe Mathieu-Daudé wrote:
> On 03/12/2018 07:55 PM, Eduardo Habkost wrote:
> > items() is less efficient on Python 2.x, but makes the code work
> > on both Python 2 and Python 3.
> > 
> > Cc: Lukáš Doktor <ldoktor@redhat.com>
> > Cc: Philippe Mathieu-Daudé <f4bug@amsat.org>
> > Cc: Cleber Rosa <crosa@redhat.com>
> > Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> > ---
> >  scripts/qemu.py | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/scripts/qemu.py b/scripts/qemu.py
> > index 305a946562..08a3e9af5a 100644
> > --- a/scripts/qemu.py
> > +++ b/scripts/qemu.py
> > @@ -277,7 +277,7 @@ class QEMUMachine(object):
> >      def qmp(self, cmd, conv_keys=True, **args):
> >          '''Invoke a QMP command and return the response dict'''
> >          qmp_args = dict()
> > -        for key, value in args.iteritems():
> > +        for key, value in args.items():
> >              if conv_keys:
> >                  qmp_args[key.replace('_', '-')] = value
> >              else:
> > 
> 
> http://lists.nongnu.org/archive/html/qemu-devel/2017-12/msg04046.html

Oops, that series had fallen through the cracks, sorry!

I remember merging a series with fixes for Python 3, but now I
see there were two separate series: "Support building with py2 or
py3¨ (already merged), and yours ("iotests: python3
compatibility¨).

-- 
Eduardo

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2018-03-13  1:25 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-12 18:55 [Qemu-devel] [PATCH 0/3] scripts: Python 3 compatibility fixes Eduardo Habkost
2018-03-12 18:55 ` [Qemu-devel] [PATCH 1/3] qemu.py: Use items() instead of iteritems() Eduardo Habkost
2018-03-12 19:24   ` Daniel P. Berrangé
2018-03-12 23:02   ` Philippe Mathieu-Daudé
2018-03-13  1:25     ` Eduardo Habkost
2018-03-12 18:55 ` [Qemu-devel] [PATCH 2/3] qmp.py: Encode json data before sending Eduardo Habkost
2018-03-12 19:24   ` Daniel P. Berrangé
2018-03-12 23:03   ` Philippe Mathieu-Daudé
2018-03-12 18:55 ` [Qemu-devel] [PATCH 3/3] device-crash-test: Use 'python' binary Eduardo Habkost
2018-03-12 19:24   ` Daniel P. Berrangé

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.