Re: [Qemu-devel] [PATCH v5 08/11] iotests: remove default filters from qmp_log

2018-12-20 Thread Vladimir Sementsov-Ogievskiy
20.12.2018 5:29, John Snow wrote:
> Several places in iotests deal with serializing objects into JSON
> strings, but to add pretty-printing it seems desireable to localize
> all of those cases.
> 
> log() seems like a good candidate for that centralized behavior.
> log() can already serialize json objects, but when it does so,
> it assumes filters=[] operates on QMP objects, not strings.
> 
> qmp_log currently operates by dumping outgoing and incoming QMP
> objects into strings and filtering them assuming that filters=[]
> are string filters.
> 
> To have qmp_log use log's serialization, qmp_log will need to
> accept only qmp filters, not text filters.
> 
> However, only a single caller of qmp_log actually requires any
> filters at all. I remove the default filter and add it explicitly
> to the caller in preparation for refactoring qmp_log to use rich
> filters instead.
> 
> test 206 is amended to name the filter explicitly and the default
> is removed.
> 
> Signed-off-by: John Snow

Reviewed-by: Vladimir Sementsov-Ogievskiy 

-- 
Best regards,
Vladimir


Re: [Qemu-devel] [PATCH v5 08/11] iotests: remove default filters from qmp_log

2018-12-19 Thread Eric Blake

On 12/19/18 8:29 PM, John Snow wrote:

Several places in iotests deal with serializing objects into JSON
strings, but to add pretty-printing it seems desireable to localize


s/desireable/desirable/


all of those cases.

log() seems like a good candidate for that centralized behavior.
log() can already serialize json objects, but when it does so,
it assumes filters=[] operates on QMP objects, not strings.

qmp_log currently operates by dumping outgoing and incoming QMP
objects into strings and filtering them assuming that filters=[]
are string filters.

To have qmp_log use log's serialization, qmp_log will need to
accept only qmp filters, not text filters.

However, only a single caller of qmp_log actually requires any
filters at all. I remove the default filter and add it explicitly
to the caller in preparation for refactoring qmp_log to use rich
filters instead.

test 206 is amended to name the filter explicitly and the default
is removed.

Signed-off-by: John Snow 
---
  tests/qemu-iotests/206| 8 ++--
  tests/qemu-iotests/iotests.py | 2 +-
  2 files changed, 7 insertions(+), 3 deletions(-)



Reviewed-by: Eric Blake 

--
Eric Blake, Principal Software Engineer
Red Hat, Inc.   +1-919-301-3266
Virtualization:  qemu.org | libvirt.org



[Qemu-devel] [PATCH v5 08/11] iotests: remove default filters from qmp_log

2018-12-19 Thread John Snow
Several places in iotests deal with serializing objects into JSON
strings, but to add pretty-printing it seems desireable to localize
all of those cases.

log() seems like a good candidate for that centralized behavior.
log() can already serialize json objects, but when it does so,
it assumes filters=[] operates on QMP objects, not strings.

qmp_log currently operates by dumping outgoing and incoming QMP
objects into strings and filtering them assuming that filters=[]
are string filters.

To have qmp_log use log's serialization, qmp_log will need to
accept only qmp filters, not text filters.

However, only a single caller of qmp_log actually requires any
filters at all. I remove the default filter and add it explicitly
to the caller in preparation for refactoring qmp_log to use rich
filters instead.

test 206 is amended to name the filter explicitly and the default
is removed.

Signed-off-by: John Snow 
---
 tests/qemu-iotests/206| 8 ++--
 tests/qemu-iotests/iotests.py | 2 +-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/tests/qemu-iotests/206 b/tests/qemu-iotests/206
index 128c334c7c..e92550fa59 100755
--- a/tests/qemu-iotests/206
+++ b/tests/qemu-iotests/206
@@ -26,7 +26,9 @@ from iotests import imgfmt
 iotests.verify_image_format(supported_fmts=['qcow2'])
 
 def blockdev_create(vm, options):
-result = vm.qmp_log('blockdev-create', job_id='job0', options=options)
+result = vm.qmp_log('blockdev-create',
+filters=[iotests.filter_testfiles],
+job_id='job0', options=options)
 
 if 'return' in result:
 assert result['return'] == {}
@@ -52,7 +54,9 @@ with iotests.FilePath('t.qcow2') as disk_path, \
   'filename': disk_path,
   'size': 0 })
 
-vm.qmp_log('blockdev-add', driver='file', filename=disk_path,
+vm.qmp_log('blockdev-add',
+   filters=[iotests.filter_testfiles],
+   driver='file', filename=disk_path,
node_name='imgfile')
 
 blockdev_create(vm, { 'driver': imgfmt,
diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
index 565eebb1ab..57fe20db45 100644
--- a/tests/qemu-iotests/iotests.py
+++ b/tests/qemu-iotests/iotests.py
@@ -460,7 +460,7 @@ class VM(qtest.QEMUQtestMachine):
 result.append(filter_qmp_event(ev))
 return result
 
-def qmp_log(self, cmd, filters=[filter_testfiles], **kwargs):
+def qmp_log(self, cmd, filters=[], **kwargs):
 full_cmd = OrderedDict((
 ("execute", cmd),
 ("arguments", ordered_kwargs(kwargs))
-- 
2.17.2