Re: [libvirt] [qemu RFC] qapi: add "firmware.json"

2018-04-09 Thread Gerd Hoffmann
  Hi,

> I threw in "-kernel" because, although it also (usually?) means
> "memory", I expected people would want it separate.
> 
> Regarding memory vs. pflash, I thought that these two, combined with the
> access permissions, could cover all of RAM, ROM, and read-only and
> read-write pflash too.
> 
> So, "-bios" (-> ROM) boils down to "memory", with write access denied --
> please see the SeaBIOS example near the end.

Hmm, I'm wondering whenever it is useful to model things this way.  It's
not like you can actually configure things for -bios seabios.rom or
-kernel uboot.elf.  Only pflash allows to actually configure things, and
there are not that many useful combinations.  The code needs
Read+Execute.  Allowing Write could be useful in theory, to allow the
guest doing firmware updates.  But I think nobody actually does that, so
in practice it is fixed.  The varstore can have different permissions,
but it's only two useful combinations.  Either allow access
unconditionally, or allow access in secure contect (aka smm) only.

cheers,
  Gerd

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH V2 2/8] tests: move sexpr2xml tests to WITH_LIBXL

2018-04-09 Thread Jim Fehlig

On 04/09/2018 08:32 AM, Daniel P. Berrangé wrote:

On Fri, Apr 06, 2018 at 02:44:54PM -0600, Jim Fehlig wrote:

In preparation of removing the legacy Xen driver, move the
sexpr2xml tests from WITH_XEN to WITH_LIBXL. Even though the
legacy driver will be removed, we'll want to maintain the ability
to convert sexpr to XML. Requires fixing up the tests to account
for different behavior of Xen vs libxl post parse functions.

There is some test file fallout due to differences in handling
of default values between xend and libxl.




diff --git a/tests/sexpr2xmldata/sexpr2xml-boot-grub.xml 
b/tests/sexpr2xmldata/sexpr2xml-boot-grub.xml
index b9a8716b2..4b9f535fc 100644
--- a/tests/sexpr2xmldata/sexpr2xml-boot-grub.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-boot-grub.xml
@@ -15,7 +15,7 @@
destroy

  
-  
+  


  
@@ -24,6 +24,5 @@
  
  
  
-


For this I wonder if a better solution is actually to make the libxl
driver fill in the memballoon device. IIUC, you can't actually turn
it off, so all libxl guests will have this regardless.


Yes, good point.


So we should
just need to add the element a post-parse callback, and check for
unsupported "model" value when starting the guest


I'll send a follow up along these lines. In the meantime I've pushed this 
series. Good riddance xend...


Regards,
Jim

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

[libvirt] [PATCH] news: announce dropping of legacy Xen driver

2018-04-09 Thread Jim Fehlig
Signed-off-by: Jim Fehlig 
---

Not sure if removal of a feature is a feature, but this seems better
placed under "New features" than "Improvements" or "Bug fixes".

 docs/news.xml | 10 ++
 1 file changed, 10 insertions(+)

diff --git a/docs/news.xml b/docs/news.xml
index 798ab6da4..106979cc1 100644
--- a/docs/news.xml
+++ b/docs/news.xml
@@ -44,6 +44,16 @@
   add this controller when traditional PCI devices are in use.
 
   
+  
+
+  Xen: Drop the legacy xend-based driver
+
+
+  The xm/xend toolstack was deprecated in Xen 4.2 and removed
+  from the Xen sources in the 4.5 development cycle. The libvirt
+  driver based on xend is now removed from the libvirt sources.
+
+  
 
 
   
-- 
2.16.3

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH 2/6] tpm: Add support for external swtpm TPM emulator

2018-04-09 Thread Stefan Berger

On 04/06/2018 10:54 AM, Daniel P. Berrangé wrote:

On Fri, Apr 06, 2018 at 10:49:23AM -0400, Stefan Berger wrote:


I would feel better if we just directly killed the process - with
this approach if something goes wrong with swtpm it may never
respond to this request and stay running.

swtpm can write a pidfile. I am only adding this later in this series.
Problem is with --daemon libvirt doesn't know the pid of the swtpm anymore.

The other option is to not use --daemon, and let libvirt write the pid
file, but that introduces the race with socket path creation again
which is not good.

Sounds like we should leave this as it is? Unless swtpm was broken, there
shouldn't be a reason why the we wouldn't be able to shut down swtpm by
sending a command to it. The socket and its directory must not have
disappeared of course.

Agreed.


I reworked this patch series quite a bit. Primarily in regards to the 
directories for where the data, socket, logfile, and pidfiles are 
stored. At the moment I need the following two additional SELinux rules 
for svirt on Fedora 23 (old).


allow svirt_t virtd_t:fifo_file write;
allow svirt_t virtd_t:process sigchld;

Not sure where I can find the sources for the policy, but maybe there's 
a more recent version that already has it?


Should this first patch be split? Take out the XML parser and generator ?

Regards,
   Stefan



Regards,
Daniel



--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

[libvirt] [PATCH v2 1/1] storage: extend preallocation flags support for qemu-img

2018-04-09 Thread Wim Ten Have
From: Wim ten Have 

This patch adds support to qcow2 formatted filesystem object storage by
instructing qemu-img to build them with preallocation=falloc whenever the
XML described storage  matches its .  For all other
cases the filesystem stored objects are built with preallocation=metadata.

Signed-off-by: Wim ten Have 
---
 src/conf/storage_conf.c|  3 +++
 src/storage/storage_util.c | 10 --
 .../qcow2-nocapacity-convert-prealloc.argv |  2 +-
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c
index 5036ab9ef..2bd077237 100644
--- a/src/conf/storage_conf.c
+++ b/src/conf/storage_conf.c
@@ -1184,6 +1184,9 @@ virStorageVolDefParseXML(virStoragePoolDefPtr pool,
 ret->target.allocation = ret->target.capacity;
 }
 
+if (ret->target.allocation < ret->target.capacity)
+ret->target.sparse = true;
+
 ret->target.path = virXPathString("string(./target/path)", ctxt);
 if (options->formatFromString) {
 char *format = virXPathString("string(./target/format/@type)", ctxt);
diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c
index b4aed0f70..c4f311ded 100644
--- a/src/storage/storage_util.c
+++ b/src/storage/storage_util.c
@@ -856,6 +856,7 @@ struct _virStorageBackendQemuImgInfo {
 const char *compat;
 virBitmapPtr features;
 bool nocow;
+bool sparse;
 
 const char *backingPath;
 int backingFormat;
@@ -884,8 +885,12 @@ 
storageBackendCreateQemuImgOpts(virStorageEncryptionInfoDefPtr enc,
   
virStorageFileFormatTypeToString(info.backingFormat));
 if (info.encryption)
 virBufferAddLit(, "encryption=on,");
-if (info.preallocate)
-virBufferAddLit(, "preallocation=metadata,");
+if (info.preallocate) {
+if (info.sparse)
+virBufferAddLit(, "preallocation=metadata,");
+else
+virBufferAddLit(, "preallocation=falloc,");
+}
 }
 
 if (info.nocow)
@@ -1187,6 +1192,7 @@ 
virStorageBackendCreateQemuImgCmdFromVol(virStoragePoolObjPtr pool,
 .compat = vol->target.compat,
 .features = vol->target.features,
 .nocow = vol->target.nocow,
+.sparse = vol->target.sparse,
 .secretPath = secretPath,
 .secretAlias = NULL,
 };
diff --git 
a/tests/storagevolxml2argvdata/qcow2-nocapacity-convert-prealloc.argv 
b/tests/storagevolxml2argvdata/qcow2-nocapacity-convert-prealloc.argv
index 9073b1b16..b151b9401 100644
--- a/tests/storagevolxml2argvdata/qcow2-nocapacity-convert-prealloc.argv
+++ b/tests/storagevolxml2argvdata/qcow2-nocapacity-convert-prealloc.argv
@@ -1,4 +1,4 @@
 qemu-img convert -f raw -O qcow2 \
--o encryption=on,preallocation=metadata \
+-o encryption=on,preallocation=falloc \
 /var/lib/libvirt/images/sparse.img \
 /var/lib/libvirt/images/OtherDemo.img
-- 
2.14.3

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH v1 1/2] storage: extend preallocation flags support for qemu-img

2018-04-09 Thread Wim ten Have
On Wed, 4 Apr 2018 13:31:39 +0200
Michal Privoznik  wrote:

> On 04/03/2018 04:14 PM, Wim Ten Have wrote:
> > From: Wim ten Have 
> > 
> > This patch adds support to qcow2 formatted filesystem object storage by
> > instructing qemu-img to build them with preallocation=falloc whenever the
> > XML described storage  matches its .  For all other
> > cases the filesystem stored objects are built with preallocation=metadata.
> > 
> > Signed-off-by: Wim ten Have 
...
> >  VIR_STORAGE_VOL_CREATE_PREALLOC_METADATA = 1 << 0,
> > -VIR_STORAGE_VOL_CREATE_REFLINK = 1 << 1, /* perform a btrfs 
> > lightweight copy */
> > +VIR_STORAGE_VOL_CREATE_PREALLOC_FALLOC   = 1 << 1,
> > +VIR_STORAGE_VOL_CREATE_PREALLOC_FULL = 1 << 2,
> > +VIR_STORAGE_VOL_CREATE_REFLINK   = 1 << 3, /* perform a btrfs 
> > lightweight copy */  
> 
> This is not. Imagine there's a mgmt application already written and
> compiled which calls:
> 
> virStorageVolCreateXML(flags = VIR_STORAGE_VOL_CREATE_REFLINK);
> 
> Because it is already compiled it is effectively calling:
> 
> virStorageVolCreateXML(flags = 1);
> 
> and everything works. However, if this change would be merged, the mgmt
> application would be still making the same call but now it would have
> different semantic, because you are changing the numbering. So
> effectively mgmt app would be calling
> 
> virStorageVolCreateXML(flags = VIR_STORAGE_VOL_CREATE_PREALLOC_FALLOC)
> 
> which is obviously wrong. We can not expect mgmt applications to be
> recompiled every time there's a new release of libvirt.
...

  right, let me send v2. (applying and propagating XML target.sparse)

> Also, storagevolxml2argvtest is failing after this change. See 'make check'.

  ?! ... sure I ran 'make check'.  Anyways ... corrections under v2 coming 
forth.

Rgds,
- Wim.

> Michal
> 
> --
> libvir-list mailing list
> libvir-list@redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [PATCH v2 0/1] Fix qcow2 fully allocated filesystem objects.

2018-04-09 Thread Wim Ten Have
From: Wim ten Have 

When tools like virt-install request to create a fully allocated
filesystem object storage by setting the parameter sparse=no, libvirt
doesn't allow that to happen for qcow2 formatted files.

Regardless of its XML instuction request libvirt always targets its
filesystem object storage with preallocation=metadata if format=qcow2
is in effect.  This results in sparse files which could cause problems
since total image storage potentially can overrun actual filesystem
available space.

Changes from v1:
* Fix XML target sparse setting and apply for qcow2.
* Bring the test change under same PATCH.

Wim ten Have (1):
  storage: extend preallocation flags support for qemu-img

 src/conf/storage_conf.c|  3 +++
 src/storage/storage_util.c | 10 --
 .../qcow2-nocapacity-convert-prealloc.argv |  2 +-
 3 files changed, 12 insertions(+), 3 deletions(-)

-- 
2.14.3

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [qemu RFC] qapi: add "firmware.json"

2018-04-09 Thread Laszlo Ersek
On 04/09/18 10:49, Daniel P. Berrangé wrote:
> On Sat, Apr 07, 2018 at 02:01:17AM +0200, Laszlo Ersek wrote:
>> Add a schema that describes the properties of virtual machine firmware.
>>
>> Each firmware executable installed on a host system should come with a
>> JSON file that conforms to this schema, and informs the management
>> applications about the firmware's properties.
>>
>> In addition, a configuration directory with symlinks to the JSON files
>> should exist, with the symlinks carefully named to reflect a priority
>> order. Management applications can then search this directory in priority
>> order for the first firmware executable that satisfies their search
>> criteria. The found JSON file provides the management layer with domain
>> configuration bits that are required to run the firmware binary.
>>
>> Cc: "Daniel P. Berrange" 
>> Cc: Alexander Graf 
>> Cc: Ard Biesheuvel 
>> Cc: David Gibson 
>> Cc: Eric Blake 
>> Cc: Gary Ching-Pang Lin 
>> Cc: Gerd Hoffmann 
>> Cc: Kashyap Chamarthy 
>> Cc: Markus Armbruster 
>> Cc: Michael Roth 
>> Cc: Michal Privoznik 
>> Cc: Peter Krempa 
>> Cc: Peter Maydell 
>> Cc: Thomas Huth 
>> Signed-off-by: Laszlo Ersek 
>> ---
>>
>> Notes:
>> Folks on the CC list, please try to see if the suggested schema is
>> flexible enough to describe the virtual firmware(s) that you are
>> familiar with. Thanks!
>>
>>  Makefile  |   9 ++
>>  Makefile.objs |   4 +
>>  qapi/firmware.json| 343 
>> ++
>>  qapi/qapi-schema.json |   1 +
>>  qmp.c |   5 +
>>  .gitignore|   4 +
>>  6 files changed, 366 insertions(+)
>>  create mode 100644 qapi/firmware.json
>>
> 
>> diff --git a/qapi/firmware.json b/qapi/firmware.json
>> new file mode 100644
>> index ..f267240f44dd
>> --- /dev/null
>> +++ b/qapi/firmware.json
>> @@ -0,0 +1,343 @@
>> +# -*- Mode: Python -*-
>> +
>> +##
>> +# = Firmware
>> +##
>> +
>> +##
>> +# @FirmwareDevice:
>> +#
>> +# Defines the device types that a firmware file can be mapped into.
>> +#
>> +# @memory: The firmware file is to be mapped into memory.
>> +#
>> +# @kernel: The firmware file is to be loaded like a Linux kernel. This is
>> +#  similar to @memory but may imply additional processing that is
>> +#  specific to the target architecture.
>> +#
>> +# @flash: The firmware file is to be mapped into a pflash chip.
>> +#
>> +# Since: 2.13
>> +##
>> +{ 'enum' : 'FirmwareDevice',
>> +  'data' : [ 'memory', 'kernel', 'flash' ] }
>> +
>> +##
>> +# @FirmwareAccess:
>> +#
>> +# Defines the possible permissions for a given access mode to a device that
>> +# maps a firmware file.
>> +#
>> +# @denied: The access is denied.
>> +#
>> +# @permitted: The access is permitted.
>> +#
>> +# @restricted-to-secure-context: The access is permitted for guest code that
>> +#runs in a secure context; otherwise the 
>> access
>> +#is denied. The definition of "secure 
>> context"
>> +#is specific to the target architecture.
>> +#
>> +# Since: 2.13
>> +##
>> +{ 'enum' : 'FirmwareAccess',
>> +  'data' : [ 'denied', 'permitted', 'restricted-to-secure-context' ] }
> 
> I'm not really understanding the purpose of this - what does it map to
> on the command line ?

That's difficult to answer generally, because -bios and -kernel have
different meanings per board type. So I didn't aim at command line
switches here; instead I tried to capture where and how the firmware
wants to "end up" in the virtual hardware. How that maps to a particular
board is a separate question.

For example, OVMF can be loaded in a multitude of ways:

(1) "OVMF.fd" (a unified image that contains an executable and a live
variable store too) can be loaded with "-bios". This will place the full
image into ROM (that is FirmwareDevice=memory, read and exec: permitted,
write: denied). This will not provide a spec-compatible UEFI variable
service to the guest, but many people use OVMF like this. The libvirt
domain XML can accommodate this case:

  OVMF.fd

(2) "OVMF.fd" can be loaded into a single pflash chip (single pflash
drive, read/write). The command line switch is "-drive
if=pflash,format=raw,file=OVMF.fd,unit=0,readonly=off". This gives the
guest a spec-compliant UEFI variable service; however, the variable
store is inseparable from the firmware binary, and upgrading the latter
without losing the former is not possible, from a packaging perspective.
This maps to FirmwareDevice=flash, with all of
read/write/exec=permitted. Libvirt can describe this too in the domain XML:

  OVMF.fd

(3) 

Re: [libvirt] Race condition between qemuDomainCreate and qemuDomainDestroy

2018-04-09 Thread John Ferlan


On 04/09/2018 12:12 PM, Laine Stump wrote:
> On 04/06/2018 12:27 PM, John Ferlan wrote:
>>
>> On 04/03/2018 07:47 AM, Marc Hartmayer wrote:
>>> On Tue, Mar 20, 2018 at 11:25 AM +0100, Marc Hartmayer 
>>>  wrote:
 Hi,

 there is a race condition between 'qemuDomainCreate' and
 'qemuDomainDestroy' causing a NULL pointer segmentation fault when
 accessing priv->monConfig. The race condition can be easily reproduced
 using gdb.

 (gdb) set non-stop on
 # set breakpoint on line 'mon = qemuMonitorOpen(vm, …)'
 (gdb) b qemu_process.c:1799
 # Actually, this second breakpoint is optional but it’s good to see
 where priv->monConfig is set to NULL
 # set breakpoint on line priv->monConfig = NULL;
 (gdb) b qemu_process.c:6589
 (gdb) run
 # continue all threads - just for the case we hit a breakpoint already
 (gdb) c -a

 Now start a domain (that is using QEMU)

 $ virsh start domain

 The first breakpoint will be hit. Now run in a second shell

 $ virsh destroy domain

 The second breakpoint will be hit. Continue the thread where the second
 breakpoint was hit (for this example this is thread 4)

 (gdb) thread apply 4 continue

 Now continue the thread where the first breakpoint was hit.

 => Segmentation fault because of a NULL pointer dereference at
config->value

 Since I'm not very familiar with that part of the code, I wanted to ask
 for your advice.

 Thanks in advance.

 Beste Grüße / Kind regards
Marc Hartmayer

 IBM Deutschland Research & Development GmbH
 Vorsitzende des Aufsichtsrats: Martina Koederitz
 Geschäftsführung: Dirk Wittkopp
 Sitz der Gesellschaft: Böblingen
 Registergericht: Amtsgericht Stuttgart, HRB 243294
>>> Any ideas?
>>>
>> Seeing as no one else has an exact or authoritative answer...
>>
>> qemuDomainCreate{XML|WithFlags} (and a few others) will call
>> qemuProcessBeginJob which calls qemuDomainObjBeginAsyncJob and
>> qemuDomainObjSetAsyncJobMask which IIUC allows QEMU_JOB_DESTROY
>> to be run.
>>
>> The qemuDomainDestroyFlags calls qemuProcessBeginStopJob which calls
>> qemuDomainObjBeginJob (e.g. sync job) using QEMU_JOB_DESTROY, which
>> again IIUC is allowed to happen alongside the Async job because of the
>> mask setting.
>>
>> In the code where you've broken during create, the @vm object lock is
>> dropped allowing destroy to obtain it. So with the perfect timing and
>> storm the window of opportunity does exist that the monConfig could be
>> free'd and thus priv->monConfig set to NULL before or during the create
>> processing uses it in qemuMonitorOpen.  If during the processing, then
>> obviously the config-> would "appear" to be valid, but it may not
>> actually be what was passed.
>>
>> The fix I believe involves using objects for virDomainChrSourceDef
>> rather than VIR_ALLOC'd and VIR_FREE'd memory directly. I've put
>> together a few patches and will post them shortly. Using the patches I
>> don't see a core, but rather the (I believe) expected "error: internal
>> error: qemu unexpectedly closed the monitor"
> 
> Isn't this just a symptom of a wider problem? Your patches fix the
> problem for monConfig, but what about all the other members of the
> domain object that aren't protected with the trappings of virObject?
> Isn't it just as likely that they could fall prey to the same problem?
> 

I don't think it'd be a wider problem as long as the virObjectLock is
held on the object not much can happen. In this case, there was a
perfect storm of sorts where that lock was dropped and we had an allowed
job (DESTROY) processed. That processing messed with one pointer that
was then used in a call when the lock was down.  The @priv pointer used
for monJSON boolean is a @vm pointer and it's only freed if the @vm was
somehow removed - which it couldn't because we have a reference to it
(we only unlock'd and not unref'd).

So could there be more, I hope not, but I never want to say it's
impossible, because someone will open that window of opportunity.

Perhaps this discussion will cause some other poor souls that have had
to walk through that code in the past to chime in!

John

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

[libvirt] [dbus PATCH v2 05/11] APIs should appear in alphabetical order: Move Create method

2018-04-09 Thread Katerina Koukiou
Signed-off-by: Katerina Koukiou 
---
 data/org.libvirt.Domain.xml | 10 +-
 src/domain.c| 48 ++---
 2 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml
index cd8ff4d..3f91354 100644
--- a/data/org.libvirt.Domain.xml
+++ b/data/org.libvirt.Domain.xml
@@ -35,6 +35,11 @@
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetUUIDString"/>
 
+
+  https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainCreateWithFlags"/>
+  
+
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetVcpusFlags"/>
@@ -74,11 +79,6 @@
 value="See 
https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainReset"/>
   
 
-
-  https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainCreateWithFlags"/>
-  
-
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainUndefineFlags"/>
diff --git a/src/domain.c b/src/domain.c
index cfbaf81..4e43a36 100644
--- a/src/domain.c
+++ b/src/domain.c
@@ -218,6 +218,29 @@ virtDBusDomainGetUUID(const gchar *objectPath,
 *value = g_variant_new("s", uuid);
 }
 
+static void
+virtDBusDomainCreate(GVariant *inArgs,
+ GUnixFDList *inFDs G_GNUC_UNUSED,
+ const gchar *objectPath,
+ gpointer userData,
+ GVariant **outArgs G_GNUC_UNUSED,
+ GUnixFDList **outFDs G_GNUC_UNUSED,
+ GError **error)
+{
+virtDBusConnect *connect = userData;
+g_autoptr(virDomain) domain = NULL;
+guint flags;
+
+g_variant_get(inArgs, "(u)", );
+
+domain = virtDBusDomainGetVirDomain(connect, objectPath, error);
+if (!domain)
+return;
+
+if (virDomainCreateWithFlags(domain, flags) < 0)
+virtDBusUtilSetLastVirtError(error);
+}
+
 static void
 virtDBusDomainGetVcpus(GVariant *inArgs,
GUnixFDList *inFDs G_GNUC_UNUSED,
@@ -404,29 +427,6 @@ virtDBusDomainReset(GVariant *inArgs,
 virtDBusUtilSetLastVirtError(error);
 }
 
-static void
-virtDBusDomainCreate(GVariant *inArgs,
- GUnixFDList *inFDs G_GNUC_UNUSED,
- const gchar *objectPath,
- gpointer userData,
- GVariant **outArgs G_GNUC_UNUSED,
- GUnixFDList **outFDs G_GNUC_UNUSED,
- GError **error)
-{
-virtDBusConnect *connect = userData;
-g_autoptr(virDomain) domain = NULL;
-guint flags;
-
-g_variant_get(inArgs, "(u)", );
-
-domain = virtDBusDomainGetVirDomain(connect, objectPath, error);
-if (!domain)
-return;
-
-if (virDomainCreateWithFlags(domain, flags) < 0)
-virtDBusUtilSetLastVirtError(error);
-}
-
 static void
 virtDBusDomainUndefine(GVariant *inArgs,
GUnixFDList *inFDs G_GNUC_UNUSED,
@@ -503,6 +503,7 @@ static virtDBusGDBusPropertyTable 
virtDBusDomainPropertyTable[] = {
 };
 
 static virtDBusGDBusMethodTable virtDBusDomainMethodTable[] = {
+{ "Create", virtDBusDomainCreate },
 { "GetVcpus", virtDBusDomainGetVcpus },
 { "GetXMLDesc", virtDBusDomainGetXMLDesc },
 { "GetStats", virtDBusDomainGetStats },
@@ -510,7 +511,6 @@ static virtDBusGDBusMethodTable virtDBusDomainMethodTable[] 
= {
 { "Destroy", virtDBusDomainDestroy },
 { "Reboot", virtDBusDomainReboot },
 { "Reset", virtDBusDomainReset },
-{ "Create", virtDBusDomainCreate },
 { "Undefine", virtDBusDomainUndefine },
 { "Suspend", virtDBusDomainSuspend },
 { "Resume", virtDBusDomainResume },
-- 
2.15.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [dbus PATCH v2 04/11] APIs should appear in alphabetical order: Move UUID property

2018-04-09 Thread Katerina Koukiou
Signed-off-by: Katerina Koukiou 
---
 data/org.libvirt.Domain.xml |  8 
 src/domain.c| 42 +-
 test/test_domain.py |  2 +-
 3 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml
index edf7491..cd8ff4d 100644
--- a/data/org.libvirt.Domain.xml
+++ b/data/org.libvirt.Domain.xml
@@ -19,10 +19,6 @@
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetName"/>
 
-
-  https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetUUIDString"/>
-
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetOSType"/>
@@ -35,6 +31,10 @@
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetState"/>
 
+
+  https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetUUIDString"/>
+
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetVcpusFlags"/>
diff --git a/src/domain.c b/src/domain.c
index 87c205f..cfbaf81 100644
--- a/src/domain.c
+++ b/src/domain.c
@@ -107,26 +107,6 @@ virtDBusDomainGetName(const gchar *objectPath,
 *value = g_variant_new("s", name);
 }
 
-static void
-virtDBusDomainGetUUID(const gchar *objectPath,
-  gpointer userData,
-  GVariant **value,
-  GError **error)
-{
-virtDBusConnect *connect = userData;
-g_autoptr(virDomain) domain = NULL;
-gchar uuid[VIR_UUID_STRING_BUFLEN] = "";
-
-domain = virtDBusDomainGetVirDomain(connect, objectPath, error);
-if (!domain)
-return;
-
-if (virDomainGetUUIDString(domain, uuid) < 0)
-return virtDBusUtilSetLastVirtError(error);
-
-*value = g_variant_new("s", uuid);
-}
-
 static void
 virtDBusDomainGetOsType(const gchar *objectPath,
 gpointer userData,
@@ -218,6 +198,26 @@ virtDBusDomainGetState(const gchar *objectPath,
 *value = g_variant_new("s", string);
 }
 
+static void
+virtDBusDomainGetUUID(const gchar *objectPath,
+  gpointer userData,
+  GVariant **value,
+  GError **error)
+{
+virtDBusConnect *connect = userData;
+g_autoptr(virDomain) domain = NULL;
+gchar uuid[VIR_UUID_STRING_BUFLEN] = "";
+
+domain = virtDBusDomainGetVirDomain(connect, objectPath, error);
+if (!domain)
+return;
+
+if (virDomainGetUUIDString(domain, uuid) < 0)
+return virtDBusUtilSetLastVirtError(error);
+
+*value = g_variant_new("s", uuid);
+}
+
 static void
 virtDBusDomainGetVcpus(GVariant *inArgs,
GUnixFDList *inFDs G_GNUC_UNUSED,
@@ -495,10 +495,10 @@ static virtDBusGDBusPropertyTable 
virtDBusDomainPropertyTable[] = {
 { "Autostart", virtDBusDomainGetAutostart, NULL },
 { "Id", virtDBusDomainGetId, NULL },
 { "Name", virtDBusDomainGetName, NULL },
-{ "UUID", virtDBusDomainGetUUID, NULL },
 { "OSType", virtDBusDomainGetOsType, NULL },
 { "Persistent", virtDBusDomainGetPersistent, NULL },
 { "State", virtDBusDomainGetState, NULL },
+{ "UUID", virtDBusDomainGetUUID, NULL },
 { 0 }
 };
 
diff --git a/test/test_domain.py b/test/test_domain.py
index c3ffebf..edcf106 100755
--- a/test/test_domain.py
+++ b/test/test_domain.py
@@ -14,10 +14,10 @@ class TestDomain(libvirttest.BaseTestClass):
 assert isinstance(props['Autostart'], dbus.Boolean)
 assert isinstance(props['Id'], dbus.UInt32)
 assert isinstance(props['Name'], dbus.String)
-assert isinstance(props['UUID'], dbus.String)
 assert isinstance(props['OSType'], dbus.String)
 assert isinstance(props['Persistent'], dbus.Boolean)
 assert isinstance(props['State'], dbus.String)
+assert isinstance(props['UUID'], dbus.String)
 
 # Call all methods except Reset and GetStats, because the test backend
 # doesn't support those
-- 
2.15.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [dbus PATCH v2 09/11] APIs should appear in alphabetical order: Move Undefine method

2018-04-09 Thread Katerina Koukiou
Signed-off-by: Katerina Koukiou 
---
 data/org.libvirt.Domain.xml |  8 
 src/domain.c| 40 
 test/test_domain.py | 26 +-
 3 files changed, 37 insertions(+), 37 deletions(-)

diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml
index 673260c..1be94ec 100644
--- a/data/org.libvirt.Domain.xml
+++ b/data/org.libvirt.Domain.xml
@@ -83,15 +83,15 @@
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainResume"/>
 
+
+  https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSuspend"/>
+
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainUndefineFlags"/>
   
 
-
-  https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSuspend"/>
-
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virConnectDomainEventDeviceAddedCallback"/>
diff --git a/src/domain.c b/src/domain.c
index a16e49f..4deef26 100644
--- a/src/domain.c
+++ b/src/domain.c
@@ -448,45 +448,45 @@ virtDBusDomainResume(GVariant *inArgs G_GNUC_UNUSED,
 }
 
 static void
-virtDBusDomainUndefine(GVariant *inArgs,
-   GUnixFDList *inFDs G_GNUC_UNUSED,
-   const gchar *objectPath,
-   gpointer userData,
-   GVariant **outArgs G_GNUC_UNUSED,
-   GUnixFDList **outFDs G_GNUC_UNUSED,
-   GError **error)
+virtDBusDomainSuspend(GVariant *inArgs G_GNUC_UNUSED,
+  GUnixFDList *inFDs G_GNUC_UNUSED,
+  const gchar *objectPath,
+  gpointer userData,
+  GVariant **outArgs G_GNUC_UNUSED,
+  GUnixFDList **outFDs G_GNUC_UNUSED,
+  GError **error)
 {
 virtDBusConnect *connect = userData;
 g_autoptr(virDomain) domain = NULL;
-guint flags;
-
-g_variant_get(inArgs, "(u)", );
 
 domain = virtDBusDomainGetVirDomain(connect, objectPath, error);
 if (!domain)
 return;
 
-if (virDomainUndefineFlags(domain, flags) < 0)
+if (virDomainSuspend(domain) < 0)
 virtDBusUtilSetLastVirtError(error);
 }
 
 static void
-virtDBusDomainSuspend(GVariant *inArgs G_GNUC_UNUSED,
-  GUnixFDList *inFDs G_GNUC_UNUSED,
-  const gchar *objectPath,
-  gpointer userData,
-  GVariant **outArgs G_GNUC_UNUSED,
-  GUnixFDList **outFDs G_GNUC_UNUSED,
-  GError **error)
+virtDBusDomainUndefine(GVariant *inArgs,
+   GUnixFDList *inFDs G_GNUC_UNUSED,
+   const gchar *objectPath,
+   gpointer userData,
+   GVariant **outArgs G_GNUC_UNUSED,
+   GUnixFDList **outFDs G_GNUC_UNUSED,
+   GError **error)
 {
 virtDBusConnect *connect = userData;
 g_autoptr(virDomain) domain = NULL;
+guint flags;
+
+g_variant_get(inArgs, "(u)", );
 
 domain = virtDBusDomainGetVirDomain(connect, objectPath, error);
 if (!domain)
 return;
 
-if (virDomainSuspend(domain) < 0)
+if (virDomainUndefineFlags(domain, flags) < 0)
 virtDBusUtilSetLastVirtError(error);
 }
 
@@ -512,8 +512,8 @@ static virtDBusGDBusMethodTable virtDBusDomainMethodTable[] 
= {
 { "Reboot", virtDBusDomainReboot },
 { "Reset", virtDBusDomainReset },
 { "Resume", virtDBusDomainResume },
-{ "Undefine", virtDBusDomainUndefine },
 { "Suspend", virtDBusDomainSuspend },
+{ "Undefine", virtDBusDomainUndefine },
 { 0 }
 };
 
diff --git a/test/test_domain.py b/test/test_domain.py
index ceda19e..952bf59 100755
--- a/test/test_domain.py
+++ b/test/test_domain.py
@@ -68,19 +68,6 @@ class TestDomain(libvirttest.BaseTestClass):
 
 self.main_loop()
 
-def test_undefine(self):
-def domain_undefined(path, _event):
-assert isinstance(path, dbus.ObjectPath)
-self.loop.quit()
-
-self.connect.connect_to_signal('DomainEvent', domain_undefined, 
arg1='Undefined')
-
-_, domain = self.domain()
-domain.Shutdown(0)
-domain.Undefine(0)
-
-self.main_loop()
-
 def test_suspend(self):
 def domain_suspended(path, _event):
 assert isinstance(path, dbus.ObjectPath)
@@ -96,5 +83,18 @@ class TestDomain(libvirttest.BaseTestClass):
 
 self.main_loop()
 
+def test_undefine(self):
+def domain_undefined(path, _event):
+assert isinstance(path, dbus.ObjectPath)
+self.loop.quit()
+
+self.connect.connect_to_signal('DomainEvent', domain_undefined, 
arg1='Undefined')
+
+_, domain = self.domain()
+domain.Shutdown(0)
+domain.Undefine(0)
+
+self.main_loop()
+
 if __name__ == '__main__':
 libvirttest.run()
-- 

[libvirt] [dbus PATCH v2 11/11] APIs should appear in alphabetical order: Move ListDomains method

2018-04-09 Thread Katerina Koukiou
Also test was renamed from test_list_domains to test_connect_list_domains
to follow the naming convention.

Signed-off-by: Katerina Koukiou 
---
 data/org.libvirt.Connect.xml | 12 +++
 src/connect.c| 82 ++--
 test/test_connect.py | 24 ++---
 3 files changed, 59 insertions(+), 59 deletions(-)

diff --git a/data/org.libvirt.Connect.xml b/data/org.libvirt.Connect.xml
index 5b49ed9..55260cc 100644
--- a/data/org.libvirt.Connect.xml
+++ b/data/org.libvirt.Connect.xml
@@ -25,12 +25,6 @@
   https://libvirt.org/html/libvirt-libvirt-host.html#virConnectGetVersion"/>
 
-
-  https://libvirt.org/html/libvirt-libvirt-domain.html#virConnectListAllDomains"/>
-  
-  
-
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainCreateXML"/>
@@ -73,6 +67,12 @@
   
   
 
+
+  https://libvirt.org/html/libvirt-libvirt-domain.html#virConnectListAllDomains"/>
+  
+  
+
 
   https://libvirt.org/html/libvirt-libvirt-network.html#virConnectListAllNetworks"/>
diff --git a/src/connect.c b/src/connect.c
index 9820de5..a8ff43c 100644
--- a/src/connect.c
+++ b/src/connect.c
@@ -206,46 +206,6 @@ virtDBusConnectGetCapabilities(GVariant *inArgs 
G_GNUC_UNUSED,
 *outArgs = g_variant_new("(s)", capabilities);
 }
 
-static void
-virtDBusConnectListDomains(GVariant *inArgs,
-   GUnixFDList *inFDs G_GNUC_UNUSED,
-   const gchar *objectPath G_GNUC_UNUSED,
-   gpointer userData,
-   GVariant **outArgs,
-   GUnixFDList **outFDs G_GNUC_UNUSED,
-   GError **error)
-{
-virtDBusConnect *connect = userData;
-g_autoptr(virDomainPtr) domains = NULL;
-guint flags;
-GVariantBuilder builder;
-GVariant *gdomains;
-
-g_variant_get(inArgs, "(u)", );
-
-if (!virtDBusConnectOpen(connect, error))
-return;
-
-if (virConnectListAllDomains(connect->connection, , flags) < 0)
-return virtDBusUtilSetLastVirtError(error);
-
-if (!*domains)
-return;
-
-g_variant_builder_init(, G_VARIANT_TYPE("ao"));
-
-for (gint i = 0; domains[i]; i++) {
-g_autofree gchar *path = NULL;
-path = virtDBusUtilBusPathForVirDomain(domains[i],
-   connect->domainPath);
-
-g_variant_builder_add(, "o", path);
-}
-
-gdomains = g_variant_builder_end();
-*outArgs = g_variant_new_tuple(, 1);
-}
-
 static void
 virtDBusConnectDomainCreateXML(GVariant *inArgs,
GUnixFDList *inFDs G_GNUC_UNUSED,
@@ -413,6 +373,46 @@ virtDBusConnectGetSysinfo(GVariant *inArgs,
 *outArgs = g_variant_new("(s)", sysinfo);
 }
 
+static void
+virtDBusConnectListDomains(GVariant *inArgs,
+   GUnixFDList *inFDs G_GNUC_UNUSED,
+   const gchar *objectPath G_GNUC_UNUSED,
+   gpointer userData,
+   GVariant **outArgs,
+   GUnixFDList **outFDs G_GNUC_UNUSED,
+   GError **error)
+{
+virtDBusConnect *connect = userData;
+g_autoptr(virDomainPtr) domains = NULL;
+guint flags;
+GVariantBuilder builder;
+GVariant *gdomains;
+
+g_variant_get(inArgs, "(u)", );
+
+if (!virtDBusConnectOpen(connect, error))
+return;
+
+if (virConnectListAllDomains(connect->connection, , flags) < 0)
+return virtDBusUtilSetLastVirtError(error);
+
+if (!*domains)
+return;
+
+g_variant_builder_init(, G_VARIANT_TYPE("ao"));
+
+for (gint i = 0; domains[i]; i++) {
+g_autofree gchar *path = NULL;
+path = virtDBusUtilBusPathForVirDomain(domains[i],
+   connect->domainPath);
+
+g_variant_builder_add(, "o", path);
+}
+
+gdomains = g_variant_builder_end();
+*outArgs = g_variant_new_tuple(, 1);
+}
+
 static void
 virtDBusConnectListNetworks(GVariant *inArgs,
 GUnixFDList *inFDs G_GNUC_UNUSED,
@@ -575,7 +575,6 @@ static virtDBusGDBusPropertyTable 
virtDBusConnectPropertyTable[] = {
 };
 
 static virtDBusGDBusMethodTable virtDBusConnectMethodTable[] = {
-{ "ListDomains", virtDBusConnectListDomains },
 { "DomainCreateXML", virtDBusConnectDomainCreateXML },
 { "DomainDefineXML", virtDBusConnectDomainDefineXML },
 { "DomainLookupByID", virtDBusConnectDomainLookupByID },
@@ -583,6 +582,7 @@ static virtDBusGDBusMethodTable 
virtDBusConnectMethodTable[] = {
 { "DomainLookupByUUID", virtDBusConnectDomainLookupByUUID },
 { "GetCapabilities", virtDBusConnectGetCapabilities },
 { "GetSysinfo", virtDBusConnectGetSysinfo },
+{ "ListDomains", virtDBusConnectListDomains },
 { "ListNetworks", virtDBusConnectListNetworks },
 { 

[libvirt] [dbus PATCH v2 10/11] APIs should appear in alphabetical order: Move Shutdown method

2018-04-09 Thread Katerina Koukiou
Signed-off-by: Katerina Koukiou 
---
 data/org.libvirt.Domain.xml | 10 +-
 src/domain.c| 48 ++---
 2 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml
index 1be94ec..78378bb 100644
--- a/data/org.libvirt.Domain.xml
+++ b/data/org.libvirt.Domain.xml
@@ -64,11 +64,6 @@
   
   
 
-
-  https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainShutdownFlags"/>
-  
-
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainReboot"/>
@@ -83,6 +78,11 @@
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainResume"/>
 
+
+  https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainShutdownFlags"/>
+  
+
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSuspend"/>
diff --git a/src/domain.c b/src/domain.c
index 4deef26..14f07fc 100644
--- a/src/domain.c
+++ b/src/domain.c
@@ -356,29 +356,6 @@ virtDBusDomainGetXMLDesc(GVariant *inArgs,
 *outArgs = g_variant_new("(s)", xml);
 }
 
-static void
-virtDBusDomainShutdown(GVariant *inArgs,
-   GUnixFDList *inFDs G_GNUC_UNUSED,
-   const gchar *objectPath,
-   gpointer userData,
-   GVariant **outArgs G_GNUC_UNUSED,
-   GUnixFDList **outFDs G_GNUC_UNUSED,
-   GError **error)
-{
-virtDBusConnect *connect = userData;
-g_autoptr(virDomain) domain = NULL;
-guint flags;
-
-g_variant_get(inArgs, "(u)", );
-
-domain = virtDBusDomainGetVirDomain(connect, objectPath, error);
-if (!domain)
-return;
-
-if (virDomainShutdownFlags(domain, flags) < 0)
-virtDBusUtilSetLastVirtError(error);
-}
-
 static void
 virtDBusDomainReboot(GVariant *inArgs,
  GUnixFDList *inFDs G_GNUC_UNUSED,
@@ -447,6 +424,29 @@ virtDBusDomainResume(GVariant *inArgs G_GNUC_UNUSED,
 virtDBusUtilSetLastVirtError(error);
 }
 
+static void
+virtDBusDomainShutdown(GVariant *inArgs,
+   GUnixFDList *inFDs G_GNUC_UNUSED,
+   const gchar *objectPath,
+   gpointer userData,
+   GVariant **outArgs G_GNUC_UNUSED,
+   GUnixFDList **outFDs G_GNUC_UNUSED,
+   GError **error)
+{
+virtDBusConnect *connect = userData;
+g_autoptr(virDomain) domain = NULL;
+guint flags;
+
+g_variant_get(inArgs, "(u)", );
+
+domain = virtDBusDomainGetVirDomain(connect, objectPath, error);
+if (!domain)
+return;
+
+if (virDomainShutdownFlags(domain, flags) < 0)
+virtDBusUtilSetLastVirtError(error);
+}
+
 static void
 virtDBusDomainSuspend(GVariant *inArgs G_GNUC_UNUSED,
   GUnixFDList *inFDs G_GNUC_UNUSED,
@@ -508,10 +508,10 @@ static virtDBusGDBusMethodTable 
virtDBusDomainMethodTable[] = {
 { "GetStats", virtDBusDomainGetStats },
 { "GetVcpus", virtDBusDomainGetVcpus },
 { "GetXMLDesc", virtDBusDomainGetXMLDesc },
-{ "Shutdown", virtDBusDomainShutdown },
 { "Reboot", virtDBusDomainReboot },
 { "Reset", virtDBusDomainReset },
 { "Resume", virtDBusDomainResume },
+{ "Shutdown", virtDBusDomainShutdown },
 { "Suspend", virtDBusDomainSuspend },
 { "Undefine", virtDBusDomainUndefine },
 { 0 }
-- 
2.15.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [dbus PATCH v2 06/11] APIs should appear in alphabetical order: Move Destroy method

2018-04-09 Thread Katerina Koukiou
Signed-off-by: Katerina Koukiou 
---
 data/org.libvirt.Domain.xml | 10 -
 src/domain.c| 49 +++--
 2 files changed, 30 insertions(+), 29 deletions(-)

diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml
index 3f91354..ecd3f04 100644
--- a/data/org.libvirt.Domain.xml
+++ b/data/org.libvirt.Domain.xml
@@ -40,6 +40,11 @@
 value="See 
https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainCreateWithFlags"/>
   
 
+
+  https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainDestroyFlags"/>
+  
+
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetVcpusFlags"/>
@@ -64,11 +69,6 @@
 value="See 
https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainShutdownFlags"/>
   
 
-
-  https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainDestroyFlags"/>
-  
-
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainReboot"/>
diff --git a/src/domain.c b/src/domain.c
index 4e43a36..f797627 100644
--- a/src/domain.c
+++ b/src/domain.c
@@ -241,6 +241,30 @@ virtDBusDomainCreate(GVariant *inArgs,
 virtDBusUtilSetLastVirtError(error);
 }
 
+static void
+virtDBusDomainDestroy(GVariant *inArgs,
+  GUnixFDList *inFDs G_GNUC_UNUSED,
+  const gchar *objectPath,
+  gpointer userData,
+  GVariant **outArgs G_GNUC_UNUSED,
+  GUnixFDList **outFDs G_GNUC_UNUSED,
+  GError **error)
+{
+virtDBusConnect *connect = userData;
+g_autoptr(virDomain) domain = NULL;
+guint flags;
+
+g_variant_get(inArgs, "(u)", );
+
+domain = virtDBusDomainGetVirDomain(connect, objectPath, error);
+if (!domain)
+return;
+
+if (virDomainDestroyFlags(domain, flags) < 0)
+virtDBusUtilSetLastVirtError(error);
+}
+
+
 static void
 virtDBusDomainGetVcpus(GVariant *inArgs,
GUnixFDList *inFDs G_GNUC_UNUSED,
@@ -356,29 +380,6 @@ virtDBusDomainShutdown(GVariant *inArgs,
 virtDBusUtilSetLastVirtError(error);
 }
 
-static void
-virtDBusDomainDestroy(GVariant *inArgs,
-  GUnixFDList *inFDs G_GNUC_UNUSED,
-  const gchar *objectPath,
-  gpointer userData,
-  GVariant **outArgs G_GNUC_UNUSED,
-  GUnixFDList **outFDs G_GNUC_UNUSED,
-  GError **error)
-{
-virtDBusConnect *connect = userData;
-g_autoptr(virDomain) domain = NULL;
-guint flags;
-
-g_variant_get(inArgs, "(u)", );
-
-domain = virtDBusDomainGetVirDomain(connect, objectPath, error);
-if (!domain)
-return;
-
-if (virDomainDestroyFlags(domain, flags) < 0)
-virtDBusUtilSetLastVirtError(error);
-}
-
 static void
 virtDBusDomainReboot(GVariant *inArgs,
  GUnixFDList *inFDs G_GNUC_UNUSED,
@@ -504,11 +505,11 @@ static virtDBusGDBusPropertyTable 
virtDBusDomainPropertyTable[] = {
 
 static virtDBusGDBusMethodTable virtDBusDomainMethodTable[] = {
 { "Create", virtDBusDomainCreate },
+{ "Destroy", virtDBusDomainDestroy },
 { "GetVcpus", virtDBusDomainGetVcpus },
 { "GetXMLDesc", virtDBusDomainGetXMLDesc },
 { "GetStats", virtDBusDomainGetStats },
 { "Shutdown", virtDBusDomainShutdown },
-{ "Destroy", virtDBusDomainDestroy },
 { "Reboot", virtDBusDomainReboot },
 { "Reset", virtDBusDomainReset },
 { "Undefine", virtDBusDomainUndefine },
-- 
2.15.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [dbus PATCH v2 08/11] APIs should appear in alphabetical order: Move Resume method

2018-04-09 Thread Katerina Koukiou
Signed-off-by: Katerina Koukiou 
---
 data/org.libvirt.Domain.xml |  8 
 src/domain.c| 42 +-
 test/test_domain.py | 32 
 3 files changed, 41 insertions(+), 41 deletions(-)

diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml
index 651e517..673260c 100644
--- a/data/org.libvirt.Domain.xml
+++ b/data/org.libvirt.Domain.xml
@@ -79,6 +79,10 @@
 value="See 
https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainReset"/>
   
 
+
+  https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainResume"/>
+
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainUndefineFlags"/>
@@ -88,10 +92,6 @@
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSuspend"/>
 
-
-  https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainResume"/>
-
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virConnectDomainEventDeviceAddedCallback"/>
diff --git a/src/domain.c b/src/domain.c
index 2178352..a16e49f 100644
--- a/src/domain.c
+++ b/src/domain.c
@@ -427,6 +427,26 @@ virtDBusDomainReset(GVariant *inArgs,
 virtDBusUtilSetLastVirtError(error);
 }
 
+static void
+virtDBusDomainResume(GVariant *inArgs G_GNUC_UNUSED,
+ GUnixFDList *inFDs G_GNUC_UNUSED,
+ const gchar *objectPath,
+ gpointer userData,
+ GVariant **outArgs G_GNUC_UNUSED,
+ GUnixFDList **outFDs G_GNUC_UNUSED,
+ GError **error)
+{
+virtDBusConnect *connect = userData;
+g_autoptr(virDomain) domain = NULL;
+
+domain = virtDBusDomainGetVirDomain(connect, objectPath, error);
+if (!domain)
+return;
+
+if (virDomainResume(domain) < 0)
+virtDBusUtilSetLastVirtError(error);
+}
+
 static void
 virtDBusDomainUndefine(GVariant *inArgs,
GUnixFDList *inFDs G_GNUC_UNUSED,
@@ -470,26 +490,6 @@ virtDBusDomainSuspend(GVariant *inArgs G_GNUC_UNUSED,
 virtDBusUtilSetLastVirtError(error);
 }
 
-static void
-virtDBusDomainResume(GVariant *inArgs G_GNUC_UNUSED,
- GUnixFDList *inFDs G_GNUC_UNUSED,
- const gchar *objectPath,
- gpointer userData,
- GVariant **outArgs G_GNUC_UNUSED,
- GUnixFDList **outFDs G_GNUC_UNUSED,
- GError **error)
-{
-virtDBusConnect *connect = userData;
-g_autoptr(virDomain) domain = NULL;
-
-domain = virtDBusDomainGetVirDomain(connect, objectPath, error);
-if (!domain)
-return;
-
-if (virDomainResume(domain) < 0)
-virtDBusUtilSetLastVirtError(error);
-}
-
 static virtDBusGDBusPropertyTable virtDBusDomainPropertyTable[] = {
 { "Active", virtDBusDomainGetActive, NULL },
 { "Autostart", virtDBusDomainGetAutostart, NULL },
@@ -511,9 +511,9 @@ static virtDBusGDBusMethodTable virtDBusDomainMethodTable[] 
= {
 { "Shutdown", virtDBusDomainShutdown },
 { "Reboot", virtDBusDomainReboot },
 { "Reset", virtDBusDomainReset },
+{ "Resume", virtDBusDomainResume },
 { "Undefine", virtDBusDomainUndefine },
 { "Suspend", virtDBusDomainSuspend },
-{ "Resume", virtDBusDomainResume },
 { 0 }
 };
 
diff --git a/test/test_domain.py b/test/test_domain.py
index edcf106..ceda19e 100755
--- a/test/test_domain.py
+++ b/test/test_domain.py
@@ -37,6 +37,22 @@ class TestDomain(libvirttest.BaseTestClass):
 raise e
 domain.Undefine(0)
 
+def test_resume(self):
+def domain_resumed(path, _event):
+assert isinstance(path, dbus.ObjectPath)
+self.loop.quit()
+
+self.connect.connect_to_signal('DomainEvent', domain_resumed, 
arg1='Resumed')
+
+obj, domain = self.domain()
+domain.Suspend()
+domain.Resume()
+
+state = obj.Get('org.libvirt.Domain', 'State', 
dbus_interface=dbus.PROPERTIES_IFACE)
+assert state == 'running'
+
+self.main_loop()
+
 def test_shutdown(self):
 def domain_stopped(path, _event):
 assert isinstance(path, dbus.ObjectPath)
@@ -80,21 +96,5 @@ class TestDomain(libvirttest.BaseTestClass):
 
 self.main_loop()
 
-def test_resume(self):
-def domain_resumed(path, _event):
-assert isinstance(path, dbus.ObjectPath)
-self.loop.quit()
-
-self.connect.connect_to_signal('DomainEvent', domain_resumed, 
arg1='Resumed')
-
-obj, domain = self.domain()
-domain.Suspend()
-domain.Resume()
-
-state = obj.Get('org.libvirt.Domain', 'State', 
dbus_interface=dbus.PROPERTIES_IFACE)
-assert state == 'running'
-
-self.main_loop()
-
 if __name__ == '__main__':
 libvirttest.run()
-- 
2.15.0

--
libvir-list mailing list
libvir-list@redhat.com

[libvirt] [dbus PATCH v2 00/11] Some code move to have functions sorted

2018-04-09 Thread Katerina Koukiou
Better do it now before the projects grows more.

Katerina Koukiou (11):
  APIs should appear in alphabetical order: Move Active property
  APIs should appear in alphabetical order: Move Autostart property
  APIs should appear in alphabetical order: Move Id property
  APIs should appear in alphabetical order: Move UUID property
  APIs should appear in alphabetical order: Move Create method
  APIs should appear in alphabetical order: Move Destroy method
  APIs should appear in alphabetical order: Move GetStats method
  APIs should appear in alphabetical order: Move Resume method
  APIs should appear in alphabetical order: Move Undefine method
  APIs should appear in alphabetical order: Move Shutdown method
  APIs should appear in alphabetical order: Move ListDomains method

 data/org.libvirt.Connect.xml |  12 +--
 data/org.libvirt.Domain.xml  |  54 +--
 src/connect.c|  82 
 src/domain.c | 220 +--
 test/test_connect.py |  24 ++---
 test/test_domain.py  |  46 -
 6 files changed, 219 insertions(+), 219 deletions(-)

-- 
2.15.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [dbus PATCH v2 07/11] APIs should appear in alphabetical order: Move GetStats method

2018-04-09 Thread Katerina Koukiou
Signed-off-by: Katerina Koukiou 
---
 data/org.libvirt.Domain.xml | 14 -
 src/domain.c| 75 ++---
 2 files changed, 44 insertions(+), 45 deletions(-)

diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml
index ecd3f04..651e517 100644
--- a/data/org.libvirt.Domain.xml
+++ b/data/org.libvirt.Domain.xml
@@ -45,6 +45,13 @@
 value="See 
https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainDestroyFlags"/>
   
 
+
+  https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainListGetStats"/>
+  
+  
+  
+
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetVcpusFlags"/>
@@ -57,13 +64,6 @@
   
   
 
-
-  https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainListGetStats"/>
-  
-  
-  
-
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainShutdownFlags"/>
diff --git a/src/domain.c b/src/domain.c
index f797627..2178352 100644
--- a/src/domain.c
+++ b/src/domain.c
@@ -264,6 +264,42 @@ virtDBusDomainDestroy(GVariant *inArgs,
 virtDBusUtilSetLastVirtError(error);
 }
 
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(virDomainStatsRecordPtr, 
virDomainStatsRecordListFree);
+
+static void
+virtDBusDomainGetStats(GVariant *inArgs,
+   GUnixFDList *inFDs G_GNUC_UNUSED,
+   const gchar *objectPath,
+   gpointer userData,
+   GVariant **outArgs,
+   GUnixFDList **outFDs G_GNUC_UNUSED,
+   GError **error)
+{
+virtDBusConnect *connect = userData;
+g_autoptr(virDomain) domain = NULL;
+virDomainPtr domains[2];
+g_autoptr(virDomainStatsRecordPtr) records = NULL;
+guint stats;
+guint flags;
+GVariant *grecords;
+
+g_variant_get(inArgs, "(uu)", , );
+
+domain = virtDBusDomainGetVirDomain(connect, objectPath, error);
+if (!domain)
+return;
+
+domains[0] = domain;
+domains[1] = NULL;
+
+if (virDomainListGetStats(domains, stats, , flags) != 1)
+return virtDBusUtilSetLastVirtError(error);
+
+grecords = virtDBusUtilTypedParamsToGVariant(records[0]->params,
+ records[0]->nparams);
+
+*outArgs = g_variant_new_tuple(, 1);
+}
 
 static void
 virtDBusDomainGetVcpus(GVariant *inArgs,
@@ -320,43 +356,6 @@ virtDBusDomainGetXMLDesc(GVariant *inArgs,
 *outArgs = g_variant_new("(s)", xml);
 }
 
-G_DEFINE_AUTOPTR_CLEANUP_FUNC(virDomainStatsRecordPtr, 
virDomainStatsRecordListFree);
-
-static void
-virtDBusDomainGetStats(GVariant *inArgs,
-   GUnixFDList *inFDs G_GNUC_UNUSED,
-   const gchar *objectPath,
-   gpointer userData,
-   GVariant **outArgs,
-   GUnixFDList **outFDs G_GNUC_UNUSED,
-   GError **error)
-{
-virtDBusConnect *connect = userData;
-g_autoptr(virDomain) domain = NULL;
-virDomainPtr domains[2];
-g_autoptr(virDomainStatsRecordPtr) records = NULL;
-guint stats;
-guint flags;
-GVariant *grecords;
-
-g_variant_get(inArgs, "(uu)", , );
-
-domain = virtDBusDomainGetVirDomain(connect, objectPath, error);
-if (!domain)
-return;
-
-domains[0] = domain;
-domains[1] = NULL;
-
-if (virDomainListGetStats(domains, stats, , flags) != 1)
-return virtDBusUtilSetLastVirtError(error);
-
-grecords = virtDBusUtilTypedParamsToGVariant(records[0]->params,
- records[0]->nparams);
-
-*outArgs = g_variant_new_tuple(, 1);
-}
-
 static void
 virtDBusDomainShutdown(GVariant *inArgs,
GUnixFDList *inFDs G_GNUC_UNUSED,
@@ -506,9 +505,9 @@ static virtDBusGDBusPropertyTable 
virtDBusDomainPropertyTable[] = {
 static virtDBusGDBusMethodTable virtDBusDomainMethodTable[] = {
 { "Create", virtDBusDomainCreate },
 { "Destroy", virtDBusDomainDestroy },
+{ "GetStats", virtDBusDomainGetStats },
 { "GetVcpus", virtDBusDomainGetVcpus },
 { "GetXMLDesc", virtDBusDomainGetXMLDesc },
-{ "GetStats", virtDBusDomainGetStats },
 { "Shutdown", virtDBusDomainShutdown },
 { "Reboot", virtDBusDomainReboot },
 { "Reset", virtDBusDomainReset },
-- 
2.15.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [dbus PATCH v2 02/11] APIs should appear in alphabetical order: Move Autostart property

2018-04-09 Thread Katerina Koukiou
Signed-off-by: Katerina Koukiou 
---
 data/org.libvirt.Domain.xml |  8 
 src/domain.c| 42 +-
 test/test_domain.py |  2 +-
 3 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml
index 1bbb383..fd7b085 100644
--- a/data/org.libvirt.Domain.xml
+++ b/data/org.libvirt.Domain.xml
@@ -7,6 +7,10 @@
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainIsActive"/>
 
+
+  https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetAutostart"/>
+
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetName"/>
@@ -31,10 +35,6 @@
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetState"/>
 
-
-  https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetAutostart"/>
-
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetVcpusFlags"/>
diff --git a/src/domain.c b/src/domain.c
index 92cf21a..5109392 100644
--- a/src/domain.c
+++ b/src/domain.c
@@ -45,6 +45,26 @@ virtDBusDomainGetActive(const gchar *objectPath,
 *value = g_variant_new("b", !!active);
 }
 
+static void
+virtDBusDomainGetAutostart(const gchar *objectPath,
+   gpointer userData,
+   GVariant **value,
+   GError **error)
+{
+virtDBusConnect *connect = userData;
+g_autoptr(virDomain) domain = NULL;
+gint autostart = 0;
+
+domain = virtDBusDomainGetVirDomain(connect, objectPath, error);
+if (!domain)
+return;
+
+if (virDomainGetAutostart(domain, ) < 0)
+return virtDBusUtilSetLastVirtError(error);
+
+*value = g_variant_new("b", !!autostart);
+}
+
 static void
 virtDBusDomainGetName(const gchar *objectPath,
   gpointer userData,
@@ -198,26 +218,6 @@ virtDBusDomainGetState(const gchar *objectPath,
 *value = g_variant_new("s", string);
 }
 
-static void
-virtDBusDomainGetAutostart(const gchar *objectPath,
-   gpointer userData,
-   GVariant **value,
-   GError **error)
-{
-virtDBusConnect *connect = userData;
-g_autoptr(virDomain) domain = NULL;
-gint autostart = 0;
-
-domain = virtDBusDomainGetVirDomain(connect, objectPath, error);
-if (!domain)
-return;
-
-if (virDomainGetAutostart(domain, ) < 0)
-return virtDBusUtilSetLastVirtError(error);
-
-*value = g_variant_new("b", !!autostart);
-}
-
 static void
 virtDBusDomainGetVcpus(GVariant *inArgs,
GUnixFDList *inFDs G_GNUC_UNUSED,
@@ -492,13 +492,13 @@ virtDBusDomainResume(GVariant *inArgs G_GNUC_UNUSED,
 
 static virtDBusGDBusPropertyTable virtDBusDomainPropertyTable[] = {
 { "Active", virtDBusDomainGetActive, NULL },
+{ "Autostart", virtDBusDomainGetAutostart, NULL },
 { "Name", virtDBusDomainGetName, NULL },
 { "UUID", virtDBusDomainGetUUID, NULL },
 { "Id", virtDBusDomainGetId, NULL },
 { "OSType", virtDBusDomainGetOsType, NULL },
 { "Persistent", virtDBusDomainGetPersistent, NULL },
 { "State", virtDBusDomainGetState, NULL },
-{ "Autostart", virtDBusDomainGetAutostart, NULL },
 { 0 }
 };
 
diff --git a/test/test_domain.py b/test/test_domain.py
index 58d389e..9a33758 100755
--- a/test/test_domain.py
+++ b/test/test_domain.py
@@ -11,13 +11,13 @@ class TestDomain(libvirttest.BaseTestClass):
 
 props = obj.GetAll('org.libvirt.Domain', 
dbus_interface=dbus.PROPERTIES_IFACE)
 assert isinstance(props['Active'], dbus.Boolean)
+assert isinstance(props['Autostart'], dbus.Boolean)
 assert isinstance(props['Name'], dbus.String)
 assert isinstance(props['UUID'], dbus.String)
 assert isinstance(props['Id'], dbus.UInt32)
 assert isinstance(props['OSType'], dbus.String)
 assert isinstance(props['Persistent'], dbus.Boolean)
 assert isinstance(props['State'], dbus.String)
-assert isinstance(props['Autostart'], dbus.Boolean)
 
 # Call all methods except Reset and GetStats, because the test backend
 # doesn't support those
-- 
2.15.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [dbus PATCH v2 03/11] APIs should appear in alphabetical order: Move Id property

2018-04-09 Thread Katerina Koukiou
Signed-off-by: Katerina Koukiou 
---
 data/org.libvirt.Domain.xml |  8 
 src/domain.c| 44 ++--
 test/test_domain.py |  2 +-
 3 files changed, 27 insertions(+), 27 deletions(-)

diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml
index fd7b085..edf7491 100644
--- a/data/org.libvirt.Domain.xml
+++ b/data/org.libvirt.Domain.xml
@@ -11,6 +11,10 @@
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetAutostart"/>
 
+
+  https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetID"/>
+
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetName"/>
@@ -19,10 +23,6 @@
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetUUIDString"/>
 
-
-  https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetID"/>
-
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetOSType"/>
diff --git a/src/domain.c b/src/domain.c
index 5109392..87c205f 100644
--- a/src/domain.c
+++ b/src/domain.c
@@ -45,6 +45,27 @@ virtDBusDomainGetActive(const gchar *objectPath,
 *value = g_variant_new("b", !!active);
 }
 
+static void
+virtDBusDomainGetId(const gchar *objectPath,
+gpointer userData,
+GVariant **value,
+GError **error)
+{
+virtDBusConnect *connect = userData;
+g_autoptr(virDomain) domain = NULL;
+guint id;
+
+domain = virtDBusDomainGetVirDomain(connect, objectPath, error);
+if (!domain)
+return;
+
+id = virDomainGetID(domain);
+if (id == (guint)-1)
+id = 0;
+
+*value = g_variant_new("u", id);
+}
+
 static void
 virtDBusDomainGetAutostart(const gchar *objectPath,
gpointer userData,
@@ -106,27 +127,6 @@ virtDBusDomainGetUUID(const gchar *objectPath,
 *value = g_variant_new("s", uuid);
 }
 
-static void
-virtDBusDomainGetId(const gchar *objectPath,
-gpointer userData,
-GVariant **value,
-GError **error)
-{
-virtDBusConnect *connect = userData;
-g_autoptr(virDomain) domain = NULL;
-guint id;
-
-domain = virtDBusDomainGetVirDomain(connect, objectPath, error);
-if (!domain)
-return;
-
-id = virDomainGetID(domain);
-if (id == (guint)-1)
-id = 0;
-
-*value = g_variant_new("u", id);
-}
-
 static void
 virtDBusDomainGetOsType(const gchar *objectPath,
 gpointer userData,
@@ -493,9 +493,9 @@ virtDBusDomainResume(GVariant *inArgs G_GNUC_UNUSED,
 static virtDBusGDBusPropertyTable virtDBusDomainPropertyTable[] = {
 { "Active", virtDBusDomainGetActive, NULL },
 { "Autostart", virtDBusDomainGetAutostart, NULL },
+{ "Id", virtDBusDomainGetId, NULL },
 { "Name", virtDBusDomainGetName, NULL },
 { "UUID", virtDBusDomainGetUUID, NULL },
-{ "Id", virtDBusDomainGetId, NULL },
 { "OSType", virtDBusDomainGetOsType, NULL },
 { "Persistent", virtDBusDomainGetPersistent, NULL },
 { "State", virtDBusDomainGetState, NULL },
diff --git a/test/test_domain.py b/test/test_domain.py
index 9a33758..c3ffebf 100755
--- a/test/test_domain.py
+++ b/test/test_domain.py
@@ -12,9 +12,9 @@ class TestDomain(libvirttest.BaseTestClass):
 props = obj.GetAll('org.libvirt.Domain', 
dbus_interface=dbus.PROPERTIES_IFACE)
 assert isinstance(props['Active'], dbus.Boolean)
 assert isinstance(props['Autostart'], dbus.Boolean)
+assert isinstance(props['Id'], dbus.UInt32)
 assert isinstance(props['Name'], dbus.String)
 assert isinstance(props['UUID'], dbus.String)
-assert isinstance(props['Id'], dbus.UInt32)
 assert isinstance(props['OSType'], dbus.String)
 assert isinstance(props['Persistent'], dbus.Boolean)
 assert isinstance(props['State'], dbus.String)
-- 
2.15.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [dbus PATCH v2 01/11] APIs should appear in alphabetical order: Move Active property

2018-04-09 Thread Katerina Koukiou
Signed-off-by: Katerina Koukiou 
---
 data/org.libvirt.Domain.xml |  8 
 src/domain.c| 44 ++--
 test/test_domain.py |  2 +-
 3 files changed, 27 insertions(+), 27 deletions(-)

diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml
index 7679018..1bbb383 100644
--- a/data/org.libvirt.Domain.xml
+++ b/data/org.libvirt.Domain.xml
@@ -3,6 +3,10 @@
 
 
   
+
+  https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainIsActive"/>
+
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetName"/>
@@ -19,10 +23,6 @@
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetOSType"/>
 
-
-  https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainIsActive"/>
-
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainIsPersistent"/>
diff --git a/src/domain.c b/src/domain.c
index 0066788..92cf21a 100644
--- a/src/domain.c
+++ b/src/domain.c
@@ -24,6 +24,27 @@ virtDBusDomainGetVirDomain(virtDBusConnect *connect,
 return domain;
 }
 
+static void
+virtDBusDomainGetActive(const gchar *objectPath,
+gpointer userData,
+GVariant **value,
+GError **error)
+{
+virtDBusConnect *connect = userData;
+g_autoptr(virDomain) domain = NULL;
+gint active;
+
+domain = virtDBusDomainGetVirDomain(connect, objectPath, error);
+if (!domain)
+return;
+
+active = virDomainIsActive(domain);
+if (active < 0)
+return virtDBusUtilSetLastVirtError(error);
+
+*value = g_variant_new("b", !!active);
+}
+
 static void
 virtDBusDomainGetName(const gchar *objectPath,
   gpointer userData,
@@ -107,27 +128,6 @@ virtDBusDomainGetOsType(const gchar *objectPath,
 *value = g_variant_new("s", osType);
 }
 
-static void
-virtDBusDomainGetActive(const gchar *objectPath,
-gpointer userData,
-GVariant **value,
-GError **error)
-{
-virtDBusConnect *connect = userData;
-g_autoptr(virDomain) domain = NULL;
-gint active;
-
-domain = virtDBusDomainGetVirDomain(connect, objectPath, error);
-if (!domain)
-return;
-
-active = virDomainIsActive(domain);
-if (active < 0)
-return virtDBusUtilSetLastVirtError(error);
-
-*value = g_variant_new("b", !!active);
-}
-
 static void
 virtDBusDomainGetPersistent(const gchar *objectPath,
 gpointer userData,
@@ -491,11 +491,11 @@ virtDBusDomainResume(GVariant *inArgs G_GNUC_UNUSED,
 }
 
 static virtDBusGDBusPropertyTable virtDBusDomainPropertyTable[] = {
+{ "Active", virtDBusDomainGetActive, NULL },
 { "Name", virtDBusDomainGetName, NULL },
 { "UUID", virtDBusDomainGetUUID, NULL },
 { "Id", virtDBusDomainGetId, NULL },
 { "OSType", virtDBusDomainGetOsType, NULL },
-{ "Active", virtDBusDomainGetActive, NULL },
 { "Persistent", virtDBusDomainGetPersistent, NULL },
 { "State", virtDBusDomainGetState, NULL },
 { "Autostart", virtDBusDomainGetAutostart, NULL },
diff --git a/test/test_domain.py b/test/test_domain.py
index 7ec2318..58d389e 100755
--- a/test/test_domain.py
+++ b/test/test_domain.py
@@ -10,11 +10,11 @@ class TestDomain(libvirttest.BaseTestClass):
 obj, domain = self.domain()
 
 props = obj.GetAll('org.libvirt.Domain', 
dbus_interface=dbus.PROPERTIES_IFACE)
+assert isinstance(props['Active'], dbus.Boolean)
 assert isinstance(props['Name'], dbus.String)
 assert isinstance(props['UUID'], dbus.String)
 assert isinstance(props['Id'], dbus.UInt32)
 assert isinstance(props['OSType'], dbus.String)
-assert isinstance(props['Active'], dbus.Boolean)
 assert isinstance(props['Persistent'], dbus.Boolean)
 assert isinstance(props['State'], dbus.String)
 assert isinstance(props['Autostart'], dbus.Boolean)
-- 
2.15.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [qemu RFC] qapi: add "firmware.json"

2018-04-09 Thread Laszlo Ersek
On 04/09/18 10:26, Gerd Hoffmann wrote:
>> +# {
>> +# "executable": {
>> +# "pathname": "/usr/share/OVMF/OVMF_CODE.secboot.fd",
>> +# "description": "OVMF with Secure Boot and SMM-protected varstore",
>> +# "tags": [
>> +# "FD_SIZE_4MB",
>> +# "IA32X64",
>> +# "SECURE_BOOT_ENABLE",
>> +# "SMM_REQUIRE"
>> +# ]
>> +# },
>> +# "type": "uefi",
>> +# "targets": [
>> +# "x86_64"
>> +# ],
>> +# "sysfw-map": {
>> +# "device": "flash",
>> +# "write": "denied"
>> +# },
>> +# "nvram-slots": [
>> +# {
>> +# "slot-id": 1,
>> +# "nvram-map" : {
>> +# "device": "flash",
>> +# "write": "restricted-to-secure-context"
>> +# },
> 
> What is "slot-id"?  The pflash index?

Yes, it might be defined like that, for the i440fx and q35 machine
types. This correspondence would be implemented in libvirtd, I suppose.

However, I don't think such a correspondence is mandatory. At first
approach, slot-id is just the key that tells the nvramslots apart.

> shouldn't we also specify the
> index for the executable somewhere?

Maybe :)

> Maybe the field should be moved
> into FirmwareMapping?

I couldn't come up with a good use case where you wouldn't map the
*system* firmware in a predefined pflash unit (or other device unit). So
I thought that needed no slot-id.

Thanks
Laszlo

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [qemu RFC] qapi: add "firmware.json"

2018-04-09 Thread Laszlo Ersek
On 04/09/18 10:19, Gerd Hoffmann wrote:
>>> +{ 'enum' : 'SystemFirmwareType',
>>> +  'data' : [ 'bios', 'slof', 'uboot', 'uefi' ] }
>>
>> The naming here is quite a bad mixture between firmware interface
>> ('bios', 'uefi') and firmware implementations ('slof', 'uboot'). There
>> could be other implementations of BIOS or UEFI than SeaBIOS and EDK2 ...
>> so I'd suggest to rather name them 'seabios' and 'edk2' here instead.
> 
> uboot for example implements uefi unterfaces too (dunno how complete,
> but reportly recent versions can run uefi shell and grub just fine).

Indeed: when I was struggling with this enum type and tried to look for
more firmware types to add, my googling turned up the "UEFI on Top of
U-Boot" whitepaper, from Alex and Andreas :)

Again, this reaches to the root of the problem: when a user creates a
new domain, using high-level tools, they just want to tick "UEFI". (Dan
has emphasized this to me several times, so I think I get the idea by
now, if not the full environment.) We cannot ask the user, "please be
more specific, do you want UEFI from edk2, or UEFI on top of U-Boot?"

Instead, each of those firmware images will have to come with a JSON
document that states "uefi" in SystemFirmware.type, and the host admin
will be responsible for establishing a priority order between them.
Then, when the user asks for "UEFI" (and no more details), they'll get
(compatibly with the target architecture) whichever firmware the host
admin marked as "higher priority".

(Please be aware that with this argument, I'm trying to put myself into
Dan's shoes. It doesn't come *naturally* to me; in fact I'm viscerally
screaming inside at this amount of "fuzz". Personally I'd say, "I can
give you what you *say*, not what you *mean*, so *say* what you mean".
Apparently, that cannot work here, because what users mean is "UEFI" and
nothing more. I have to accept that.)

Thanks
Laszlo

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [qemu RFC] qapi: add "firmware.json"

2018-04-09 Thread Laszlo Ersek
On 04/09/18 10:08, Thomas Huth wrote:
> On 07.04.2018 02:01, Laszlo Ersek wrote:
>> Add a schema that describes the properties of virtual machine firmware.
> [...]
>> +##
>> +# @SystemFirmware:
>> +#
>> +# Describes a system firmware binary and any NVRAM slots that it requires.
>> +#
>> +# @executable: Identifies the platform firmware executable.
>> +#
>> +# @type: The type by which the system firmware is commonly known. This is 
>> the
>> +#main search key by which management software looks up a system
>> +#firmware image for a new domain.
>> +#
>> +# @targets: a non-empty list of target architectures that are capable of
>> +#   executing the system firmware
>> +#
>> +# @sysfw-map: the mapping requirements of the system firmware binary
>> +#
>> +# @nvram-slots: A list of NVRAM slots that are required by the system 
>> firmware.
>> +#   The @slot-id field must be unique across the list. 
>> Importantly,
>> +#   if any @FirmwareAccess is @restricted-to-secure-context in
>> +#   @sysfw-map or in any @nvram-map in @nvram-slots, then (a) 
>> the
>> +#   virtual machine configuration is required to emulate the 
>> secure
>> +#   code execution context (as defined for @targets), and (b) 
>> the
>> +#   virtual machine configuration is required to actually 
>> restrict
>> +#   the access in question to the secure execution context.
>> +#
>> +# @supports-uefi-secure-boot: Whether the system firmware implements the
>> +# software interfaces for UEFI Secure Boot, as
>> +# defined in the UEFI specification. If the 
>> field
>> +# is missing, its assumed value is 'false'.
>> +#
>> +# @supports-amd-sev: Whether the system firmware supports running under AMD
>> +#Secure Encrypted Virtualization, as specified in the 
>> AMD64
>> +#Architecture Programmer's Manual. If the field is 
>> missing,
>> +#its assumed value is 'false'.
>> +#
>> +# @supports-acpi-s3: Whether the system firmware supports S3 sleep (suspend 
>> to
>> +#RAM), as defined in the ACPI specification. If the 
>> field
>> +#is missing, its assumed value is 'false'.
>> +#
>> +# @supports-acpi-s4: Whether the system firmware supports S4 hibernation
>> +#(suspend to disk), as defined in the ACPI 
>> specification.
>> +#If the field is missing, its assumed value is 'false'.
>> +#
>> +# Since: 2.13
>> +#
>> +# Examples:
>> +#
>> +# {
>> +# "executable": {
>> +# "pathname": "/usr/share/seabios/bios-256k.bin",
>> +# "description": "SeaBIOS",
>> +# "tags": [
>> +# "CONFIG_ROM_SIZE=256"
>> +# ]
>> +# },
>> +# "type": "bios",
>> +# "targets": [
>> +# "i386",
>> +# "x86_64"
>> +# ],
>> +# "sysfw-map": {
>> +# "device": "memory",
>> +# "write": "denied"
>> +# },
>> +# "supports-acpi-s3": true,
>> +# "supports-acpi-s4": true
>> +# }
>> +#
>> +# {
>> +# "executable": {
>> +# "pathname": "/usr/share/OVMF/OVMF_CODE.secboot.fd",
>> +# "description": "OVMF with Secure Boot and SMM-protected varstore",
>> +# "tags": [
>> +# "FD_SIZE_4MB",
>> +# "IA32X64",
>> +# "SECURE_BOOT_ENABLE",
>> +# "SMM_REQUIRE"
>> +# ]
>> +# },
>> +# "type": "uefi",
>> +# "targets": [
>> +# "x86_64"
>> +# ],
>> +# "sysfw-map": {
>> +# "device": "flash",
>> +# "write": "denied"
>> +# },
>> +# "nvram-slots": [
>> +# {
>> +# "slot-id": 1,
>> +# "nvram-map" : {
>> +# "device": "flash",
>> +# "write": "restricted-to-secure-context"
>> +# },
>> +# "templates": [
>> +# {
>> +# "pathname": "/usr/share/OVMF/OVMF_VARS.fd",
>> +# "description": "empty varstore template"
>> +# },
>> +# {
>> +# "pathname": "/usr/share/OVMF/OVMF_VARS.secboot.fd",
>> +# "description": "varstore template with the Microsoft 
>> certificates enrolled for Secure Boot",
>> +# "tags": [
>> +# "mscerts"
>> +# ]
>> +# }
>> +# ]
>> +# }
>> +# ],
>> +# "supports-uefi-secure-boot": true,
>> +# "supports-amd-sev": true,
>> +# "supports-acpi-s3": true
>> +# }
>> +#
>> +# {
>> +# "executable": {
>> +# "pathname": "/usr/share/AAVMF/AAVMF_CODE.fd",
>> +# "description": "ARM64 UEFI firmware",
>> +# "tags": [
>> +# "AARCH64"
>> +# ]
>> +# },
>> +# "type": "uefi",
>> +# "targets": [
>> +# 

Re: [libvirt] [qemu RFC] qapi: add "firmware.json"

2018-04-09 Thread Laszlo Ersek
On 04/09/18 09:26, Thomas Huth wrote:
>  Hi Laszlo,
> 
> On 07.04.2018 02:01, Laszlo Ersek wrote:
>> Add a schema that describes the properties of virtual machine firmware.
>>
>> Each firmware executable installed on a host system should come with a
>> JSON file that conforms to this schema, and informs the management
>> applications about the firmware's properties.
>>
>> In addition, a configuration directory with symlinks to the JSON files
>> should exist, with the symlinks carefully named to reflect a priority
>> order. Management applications can then search this directory in priority
>> order for the first firmware executable that satisfies their search
>> criteria. The found JSON file provides the management layer with domain
>> configuration bits that are required to run the firmware binary.
> [...]
>> +##
>> +# @FirmwareDevice:
>> +#
>> +# Defines the device types that a firmware file can be mapped into.
>> +#
>> +# @memory: The firmware file is to be mapped into memory.
>> +#
>> +# @kernel: The firmware file is to be loaded like a Linux kernel. This is
>> +#  similar to @memory but may imply additional processing that is
>> +#  specific to the target architecture.
>> +#
>> +# @flash: The firmware file is to be mapped into a pflash chip.
>> +#
>> +# Since: 2.13
>> +##
>> +{ 'enum' : 'FirmwareDevice',
>> +  'data' : [ 'memory', 'kernel', 'flash' ] }
> 
> This is not fully clear to me... what is this exactly good for? Is this
> a way to say how the firmware should be loaded, i.e. via "-bios",
> "-kernel" or "-pflash" parameter? If so, the term "memory" is quite
> misleading since files that are loaded via -bios can also end up in an
> emulated ROM chip.

I threw in "-kernel" because, although it also (usually?) means
"memory", I expected people would want it separate.

Regarding memory vs. pflash, I thought that these two, combined with the
access permissions, could cover all of RAM, ROM, and read-only and
read-write pflash too.

So, "-bios" (-> ROM) boils down to "memory", with write access denied --
please see the SeaBIOS example near the end.

> 
> [...]
>> +##
>> +# @NVRAMSlot:
>> +#
>> +# Defines the mapping properties of an NVRAM slot, and associates compatible
>> +# NVRAM templates with the NVRAM slot.
>> +#
>> +# @slot-id: The numeric identifier of the NVRAM slot. The interpretation of
>> +#   @slot-id is specific to the target architecture and the chosen
>> +#   system firmware.
>> +#
>> +# @nvram-map: the mapping requirements of this NVRAM slot
>> +#
>> +# @templates: A non-empty list of @FirmwareFile elements. Any @FirmwareFile
>> +# identified by this list as an NVRAM template can be copied to
>> +# create an actual NVRAM file, and the NVRAM file can be mapped
>> +# into the NVRAM slot identified by @slot-id, subject to the
>> +# mapping requirements in @nvram-map.
>> +#
>> +# Since: 2.13
>> +##
>> +{ 'struct' : 'NVRAMSlot',
>> +  'data'   : { 'slot-id'   : 'uint64',
> 
> Not sure whether I've got the idea here right, so take this with a grain
> of salt: Maybe 'uint64' is not flexible enough here. PAPR uses both, an
> ID and a name (string), see chapter 8.3 in
> https://members.openpowerfoundation.org/document/dl/469 ... but I guess
> we could start with the 'slot-id' here and add a name field later if
> necessary.

I only added "slot-id" as an initial place holder for telling apart the
individual NVRAMSlot elements in "SystemFirmware.nvram-slots". I
expected a scalar wouldn't be expressive enough for all arches, but, as
you say, it can be extended later.

> 
>> +   'nvram-map' : 'FirmwareMapping',
>> +   'templates' : [ 'FirmwareFile' ] } }
>> +
>> +##
>> +# @SystemFirmwareType:
>> +#
>> +# Lists system firmware types commonly used with QEMU virtual machines.
>> +#
>> +# @bios: The system firmware was built from the SeaBIOS project.
>> +#
>> +# @slof: The system firmware was built from the Slimline Open Firmware 
>> project.
>> +#
>> +# @uboot: The system firmware was built from the U-Boot project.
>> +#
>> +# @uefi: The system firmware was built from the edk2 (EFI Development Kit 
>> II)
>> +#project.
>> +#
>> +# Since: 2.13
>> +##
>> +{ 'enum' : 'SystemFirmwareType',
>> +  'data' : [ 'bios', 'slof', 'uboot', 'uefi' ] }
> 
> The naming here is quite a bad mixture between firmware interface
> ('bios', 'uefi') and firmware implementations ('slof', 'uboot'). There
> could be other implementations of BIOS or UEFI than SeaBIOS and EDK2 ...
> so I'd suggest to rather name them 'seabios' and 'edk2' here instead.

Sure, I'm totally ready to follow community advice here (too).

In fact this is the one element I dislike the most about the schema --
it's the fuzziest part, yet it is the most important element for
libvirt. Because users and higher level apps just want to say "give me
UEFI". If I have to ask "OK, but UEFI built from edk2 or something
else?", then it's a lost cause 

Re: [libvirt] [libvirt PATCH v2 05/44] Deprecate QEMU_CAPS_PCI_MULTIFUNCTION

2018-04-09 Thread Andrea Bolognani
On Mon, 2018-04-09 at 17:19 +0200, Ján Tomko wrote:
> Supported since QEMU 0.13, but we require QEMU 0.15.

s/0.15/1.5.0/

> diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
> index 24eb8cbc5b..288de59de1 100644
> --- a/tests/qemuxml2argvtest.c
> +++ b/tests/qemuxml2argvtest.c
> @@ -846,7 +846,6 @@ mymain(void)
>  QEMU_CAPS_ENABLE_KVM,
>  QEMU_CAPS_BOOT_MENU,
>  QEMU_CAPS_PIIX3_USB_UHCI,
> -QEMU_CAPS_PCI_MULTIFUNCTION,
>  QEMU_CAPS_DRIVE_AIO,
>  QEMU_CAPS_CCID_PASSTHRU,
>  QEMU_CAPS_CHARDEV_SPICEVMC,
> 
> [ ...etc... ]

There are a couple new instances introduced by commit d47de9e6988,
you'll want to get rid of those as well.

Reviewed-by: Andrea Bolognani 

-- 
Andrea Bolognani / Red Hat / Virtualization

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] Race condition between qemuDomainCreate and qemuDomainDestroy

2018-04-09 Thread Laine Stump
On 04/06/2018 12:27 PM, John Ferlan wrote:
>
> On 04/03/2018 07:47 AM, Marc Hartmayer wrote:
>> On Tue, Mar 20, 2018 at 11:25 AM +0100, Marc Hartmayer 
>>  wrote:
>>> Hi,
>>>
>>> there is a race condition between 'qemuDomainCreate' and
>>> 'qemuDomainDestroy' causing a NULL pointer segmentation fault when
>>> accessing priv->monConfig. The race condition can be easily reproduced
>>> using gdb.
>>>
>>> (gdb) set non-stop on
>>> # set breakpoint on line 'mon = qemuMonitorOpen(vm, …)'
>>> (gdb) b qemu_process.c:1799
>>> # Actually, this second breakpoint is optional but it’s good to see
>>> where priv->monConfig is set to NULL
>>> # set breakpoint on line priv->monConfig = NULL;
>>> (gdb) b qemu_process.c:6589
>>> (gdb) run
>>> # continue all threads - just for the case we hit a breakpoint already
>>> (gdb) c -a
>>>
>>> Now start a domain (that is using QEMU)
>>>
>>> $ virsh start domain
>>>
>>> The first breakpoint will be hit. Now run in a second shell
>>>
>>> $ virsh destroy domain
>>>
>>> The second breakpoint will be hit. Continue the thread where the second
>>> breakpoint was hit (for this example this is thread 4)
>>>
>>> (gdb) thread apply 4 continue
>>>
>>> Now continue the thread where the first breakpoint was hit.
>>>
>>> => Segmentation fault because of a NULL pointer dereference at
>>>config->value
>>>
>>> Since I'm not very familiar with that part of the code, I wanted to ask
>>> for your advice.
>>>
>>> Thanks in advance.
>>>
>>> Beste Grüße / Kind regards
>>>Marc Hartmayer
>>>
>>> IBM Deutschland Research & Development GmbH
>>> Vorsitzende des Aufsichtsrats: Martina Koederitz
>>> Geschäftsführung: Dirk Wittkopp
>>> Sitz der Gesellschaft: Böblingen
>>> Registergericht: Amtsgericht Stuttgart, HRB 243294
>> Any ideas?
>>
> Seeing as no one else has an exact or authoritative answer...
>
> qemuDomainCreate{XML|WithFlags} (and a few others) will call
> qemuProcessBeginJob which calls qemuDomainObjBeginAsyncJob and
> qemuDomainObjSetAsyncJobMask which IIUC allows QEMU_JOB_DESTROY
> to be run.
>
> The qemuDomainDestroyFlags calls qemuProcessBeginStopJob which calls
> qemuDomainObjBeginJob (e.g. sync job) using QEMU_JOB_DESTROY, which
> again IIUC is allowed to happen alongside the Async job because of the
> mask setting.
>
> In the code where you've broken during create, the @vm object lock is
> dropped allowing destroy to obtain it. So with the perfect timing and
> storm the window of opportunity does exist that the monConfig could be
> free'd and thus priv->monConfig set to NULL before or during the create
> processing uses it in qemuMonitorOpen.  If during the processing, then
> obviously the config-> would "appear" to be valid, but it may not
> actually be what was passed.
>
> The fix I believe involves using objects for virDomainChrSourceDef
> rather than VIR_ALLOC'd and VIR_FREE'd memory directly. I've put
> together a few patches and will post them shortly. Using the patches I
> don't see a core, but rather the (I believe) expected "error: internal
> error: qemu unexpectedly closed the monitor"

Isn't this just a symptom of a wider problem? Your patches fix the
problem for monConfig, but what about all the other members of the
domain object that aren't protected with the trappings of virObject?
Isn't it just as likely that they could fall prey to the same problem?

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH 0/8] Simplify & standarize more parts of driver URI handling

2018-04-09 Thread Daniel P . Berrangé
On Mon, Apr 09, 2018 at 04:45:43PM +0100, Daniel P. Berrangé wrote:
> The motivating goal of this series was/is to make it possible to answer
> whether there is any driver registered to handle a given URI scheme
> without having to call into the drivers.
> 
> Ultimately this ended up being a nice simplification and cleanup of
> driver URI opening code, removing repetative logic from all drivers.

BTW, this is rebased above Jim's v2 patch for killing the XenD driver

https://www.redhat.com/archives/libvir-list/2018-April/msg00524.html


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 :|

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [dbus PATCH] APIs should appear in aplhabetical order in all files.

2018-04-09 Thread Katerina Koukiou
On Mon, 2018-04-09 at 17:45 +0200, Pavel Hrdina wrote:
> On Mon, Apr 09, 2018 at 05:10:48PM +0200, Katerina Koukiou wrote:
> > In C and XML files the order is:
> > 1) properties
> > 2) methods
> > 3) signals
> > All of them sorted in their category alphabetically.
> > 
> > Signed-off-by: Katerina Koukiou 
> > ---
> >  data/org.libvirt.Connect.xml |  12 +--
> >  data/org.libvirt.Domain.xml  |  54 ++--
> >  src/connect.c|   2 +-
> >  src/domain.c | 200 +
> > --
> >  4 files changed, 134 insertions(+), 134 deletions(-)
> 
> I would split it into two patches, one per each file to make the diff
> less crazy.  I'm also considering to split it per every
> property/method
> move to make the diff clean and obvious that it's a simple
> move.  It's
> easy to miss something.

Ok I 'll split per property/method and repost. I agree the patch is not
readable.

> 
> > diff --git a/data/org.libvirt.Connect.xml
> > b/data/org.libvirt.Connect.xml
> > index 5b49ed9..55260cc 100644
> > --- a/data/org.libvirt.Connect.xml
> > +++ b/data/org.libvirt.Connect.xml
> > @@ -25,12 +25,6 @@
> > >  value="See https://libvirt.org/html/libvirt-libvirt-host.h
> > tml#virConnectGetVersion"/>;
> >  
> > -
> > -   > -value="See https://libvirt.org/html/libvirt-libvirt-domain
> > .html#virConnectListAllDomains"/>;
> > -  
> > -  
> > -
> >  
> > >  value="See https://libvirt.org/html/libvirt-libvirt-domain
> > .html#virDomainCreateXML"/>;
> > @@ -73,6 +67,12 @@
> >
> >
> >  
> > +
> > +   > +value="See https://libvirt.org/html/libvirt-libvirt-domain
> > .html#virConnectListAllDomains"/>;
> > +  
> > +  
> > +
> >  
> > >  value="See https://libvirt.org/html/libvirt-libvirt-networ
> > k.html#virConnectListAllNetworks"/>;
> > diff --git a/data/org.libvirt.Domain.xml
> > b/data/org.libvirt.Domain.xml
> > index 7679018..78378bb 100644
> > --- a/data/org.libvirt.Domain.xml
> > +++ b/data/org.libvirt.Domain.xml
> > @@ -3,25 +3,25 @@
> >  
> >  
> >
> > -
> > +
> > > -value="See https://libvirt.org/html/libvirt-libvirt-domain
> > .html#virDomainGetName"/>;
> > +value="See https://libvirt.org/html/libvirt-libvirt-domain
> > .html#virDomainIsActive"/>;
> >  
> > -
> > +
> > > -value="See https://libvirt.org/html/libvirt-libvirt-domain
> > .html#virDomainGetUUIDString"/>;
> > +value="See https://libvirt.org/html/libvirt-libvirt-domain
> > .html#virDomainGetAutostart"/>;
> >  
> >  
> > >  value="See https://libvirt.org/html/libvirt-libvirt-domain
> > .html#virDomainGetID"/>;
> >  
> > -
> > +
> > > -value="See https://libvirt.org/html/libvirt-libvirt-domain
> > .html#virDomainGetOSType"/>;
> > +value="See https://libvirt.org/html/libvirt-libvirt-domain
> > .html#virDomainGetName"/>;
> >  
> > -
> > +
> > > -value="See https://libvirt.org/html/libvirt-libvirt-domain
> > .html#virDomainIsActive"/>;
> > +value="See https://libvirt.org/html/libvirt-libvirt-domain
> > .html#virDomainGetOSType"/>;
> >  
> >  
> > > @@ -31,21 +31,19 @@
> > >  value="See https://libvirt.org/html/libvirt-libvirt-domain
> > .html#virDomainGetState"/>;
> >  
> > -
> > +
> > > -value="See https://libvirt.org/html/libvirt-libvirt-domain
> > .html#virDomainGetAutostart"/>;
> > +value="See https://libvirt.org/html/libvirt-libvirt-domain
> > .html#virDomainGetUUIDString"/>;
> >  
> > -
> > +
> > > -value="See https://libvirt.org/html/libvirt-libvirt-domain
> > .html#virDomainGetVcpusFlags"/>;
> > +value="See https://libvirt.org/html/libvirt-libvirt-domain
> > .html#virDomainCreateWithFlags"/>;
> >
> > -  
> >  
> > -
> > +
> > > -value="See https://libvirt.org/html/libvirt-libvirt-domain
> > .html#virDomainGetXMLDesc"/>;
> > +value="See https://libvirt.org/html/libvirt-libvirt-domain
> > .html#virDomainDestroyFlags"/>;
> >
> > -  
> >  
> >  
> > > @@ -54,15 +52,17 @@
> >
> >
> >  
> > -
> > +
> > > -value="See https://libvirt.org/html/libvirt-libvirt-domain
> > .html#virDomainShutdownFlags"/>;
> > +value="See https://libvirt.org/html/libvirt-libvirt-domain
> > .html#virDomainGetVcpusFlags"/>;
> >
> > +  
> >  
> > -
> > +
> > > -value="See https://libvirt.org/html/libvirt-libvirt-domain
> > .html#virDomainDestroyFlags"/>;
> > +value="See https://libvirt.org/html/libvirt-libvirt-domain
> > .html#virDomainGetXMLDesc"/>;
> >
> > +  
> >  
> >  
> > > @@ -74,23 +74,23 @@
> >  

Re: [libvirt] [libvirt PATCH v2 04/44] Require QEMU 1.5.0

2018-04-09 Thread Andrea Bolognani
On Thu, 2018-04-05 at 14:22 +0200, Ján Tomko wrote:
> According to the policy described on https://libvirt.org/platforms.html
> the QEMU versions in the oldest relevant releses are:

Empty line here. Possibly indent the distros with two spaces.

> SLES 12: 2.0.0
> RHEL 7: 1.5.3
> Ubuntu 14.04: 2.0.0
> 
> Set the minimum to 1.5.0 and drop support for RHEL 6.
> 
> This lets us drop the -help parsing code and assume lots of
> capabilities.

Except we already dropped the -help parsing code in the previous
commit, and we haven't started assuming capabilities yet :)

So I would use

  This will let us assume lots of capabilities.

here.

> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> index 0be39b76dd..f427cfdeaa 100644
> --- a/src/qemu/qemu_capabilities.c
> +++ b/src/qemu/qemu_capabilities.c
> @@ -3755,6 +3755,9 @@ virQEMUCapsProbeQMPSchemaCapabilities(virQEMUCapsPtr 
> qemuCaps,
>  return 0;
>  }
>  
> +#define QEMU_MIN_MAJOR 1
> +#define QEMU_MIN_MINOR 5
> +#define QEMU_MIN_MICRO 0
>  
>  int
>  virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps,
> @@ -3785,9 +3788,12 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps,
>  VIR_DEBUG("Got version %d.%d.%d (%s)",
>major, minor, micro, NULLSTR(package));
>  
> -if (major < 1 || (major == 1 && minor < 2)) {
> -VIR_DEBUG("Not new enough for QMP capabilities detection");
> -ret = 0;
> +if (major < QEMU_MIN_MAJOR ||
> +(major == QEMU_MIN_MAJOR && minor < QEMU_MIN_MINOR)) {
> +virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> +   _("QEMU version >= %d.%d.%d is required, but %d.%d.%d 
> found"),
> +   QEMU_MIN_MAJOR, QEMU_MIN_MINOR, QEMU_MIN_MICRO,
> +   major, minor, micro);
>  goto cleanup;
>  }

I think it would make more sense for the check and the error message
to be converted in the previous commit, where you raise the minimum
QEMU version to 1.2.0, so that this commit will end up only changing
QEMU_MIN_MINOR to 5 and dropping "ret = 0" (along with the expected
test suite churn, of course).

With the comments addressed,

  Reviewed-by: Andrea Bolognani 

-- 
Andrea Bolognani / Red Hat / Virtualization

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [libvirt PATCH v2 14/44] Deprecate QEMU_CAPS_SDL

2018-04-09 Thread Eric Blake
On 04/09/2018 10:33 AM, Daniel P. Berrangé wrote:
> On Mon, Apr 09, 2018 at 05:20:07PM +0200, Ján Tomko wrote:
>> Implied by QEMU >= 1.2.0.
>>

>> +++ b/src/qemu/qemu_capabilities.h
>> @@ -85,7 +85,7 @@ typedef enum {
>>  /* 25 */
>>  X_QEMU_CAPS_BALLOON, /* -balloon available */
>>  X_QEMU_CAPS_DEVICE, /* Is the -device arg available */
>> -QEMU_CAPS_SDL, /* Is the new -sdl arg available */
>> +X_QEMU_CAPS_SDL, /* Is the new -sdl arg available */
> 
> Hmm, even if -sdl is available, QEMU might have been built without SDL
> support. I wonder if there is any way we can probe to see if SDL is
> truely available

I'm not sure if qemu's query-command-line-options tracks this yet (one
of Markus' goal on cleaning up QemuOpts to be introspectible); there's
also Marc-Andre's work towards making query-qmp-schema actually be
compiled with appropriate #if conditionals, but that won't land before
qemu 2.13.

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



signature.asc
Description: OpenPGP digital signature
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

[libvirt] [PATCH 7/8] driver: enforce a non-NULL URI scheme

2018-04-09 Thread Daniel P . Berrangé
Now that the legacy Xen driver has been dropped, we no longer need to
support URIs such as "/path/to/xend/socket", and so can mandate that a
URI scheme must always be present.

Signed-off-by: Daniel P. Berrangé 
---
 src/libvirt.c  | 15 ++
 src/remote/remote_driver.c | 74 --
 2 files changed, 41 insertions(+), 48 deletions(-)

diff --git a/src/libvirt.c b/src/libvirt.c
index 30345af10d..600beaa4d5 100644
--- a/src/libvirt.c
+++ b/src/libvirt.c
@@ -905,7 +905,7 @@ virConnectGetDefaultURI(virConfPtr conf,
 static int
 virConnectCheckURIMissingSlash(const char *uristr, virURIPtr uri)
 {
-if (!uri->scheme || !uri->path || !uri->server)
+if (!uri->path || !uri->server)
 return 0;
 
 /* To avoid false positives, only check drivers that mandate
@@ -1018,6 +1018,13 @@ virConnectOpenInternal(const char *name,
   NULLSTR(ret->uri->user), ret->uri->port,
   NULLSTR(ret->uri->path));
 
+if (ret->uri->scheme == NULL) {
+virReportError(VIR_ERR_NO_CONNECT,
+   _("URI '%s' does not include a driver name"),
+   name);
+goto failed;
+}
+
 if (virConnectCheckURIMissingSlash(uristr,
ret->uri) < 0) {
 goto failed;
@@ -1038,7 +1045,7 @@ virConnectOpenInternal(const char *name,
  * not being able to connect to libvirtd or not being able to find
  * certificates. */
 if (STREQ(virConnectDriverTab[i]->hypervisorDriver->name, "remote") &&
-ret->uri != NULL && ret->uri->scheme != NULL &&
+ret->uri != NULL &&
 (
 #ifndef WITH_PHYP
  STRCASEEQ(ret->uri->scheme, "phyp") ||
@@ -1081,10 +1088,6 @@ virConnectOpenInternal(const char *name,
 VIR_DEBUG("No URI, skipping driver with URI whitelist");
 continue;
 }
-if (!ret->uri->scheme) {
-VIR_DEBUG("No URI scheme, skipping driver with URI whitelist");
-continue;
-}
 VIR_DEBUG("Checking for supported URI schemes");
 for (s = 0; virConnectDriverTab[i]->uriSchemes[s] != NULL; s++) {
 if (STREQ(ret->uri->scheme, 
virConnectDriverTab[i]->uriSchemes[s])) {
diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
index 901a2ebfbd..ce2ea27cd8 100644
--- a/src/remote/remote_driver.c
+++ b/src/remote/remote_driver.c
@@ -771,51 +771,41 @@ doRemoteOpen(virConnectPtr conn,
  * URIs we don't care about */
 
 if (conn->uri) {
-if (!conn->uri->scheme) {
-/* This is the ///var/lib/xen/xend-socket local path style */
-if (!conn->uri->path)
-return VIR_DRV_OPEN_DECLINED;
-if (conn->uri->path[0] != '/')
-return VIR_DRV_OPEN_DECLINED;
-
-transport = trans_unix;
-} else {
-transport_str = get_transport_from_scheme(conn->uri->scheme);
+transport_str = get_transport_from_scheme(conn->uri->scheme);
 
-if (!transport_str) {
-if (conn->uri->server)
-transport = trans_tls;
-else
-transport = trans_unix;
-} else {
-if (STRCASEEQ(transport_str, "tls")) {
-transport = trans_tls;
-} else if (STRCASEEQ(transport_str, "unix")) {
-if (conn->uri->server) {
-virReportError(VIR_ERR_INVALID_ARG,
-   _("using unix socket and remote "
- "server '%s' is not supported."),
-   conn->uri->server);
-return VIR_DRV_OPEN_ERROR;
-} else {
-transport = trans_unix;
-}
-} else if (STRCASEEQ(transport_str, "ssh")) {
-transport = trans_ssh;
-} else if (STRCASEEQ(transport_str, "libssh2")) {
-transport = trans_libssh2;
-} else if (STRCASEEQ(transport_str, "ext")) {
-transport = trans_ext;
-} else if (STRCASEEQ(transport_str, "tcp")) {
-transport = trans_tcp;
-} else if (STRCASEEQ(transport_str, "libssh")) {
-transport = trans_libssh;
-} else {
-virReportError(VIR_ERR_INVALID_ARG, "%s",
-   _("remote_open: transport in URL not 
recognised "
- "(should be 
tls|unix|ssh|ext|tcp|libssh2)"));
+if (!transport_str) {
+if (conn->uri->server)
+transport = trans_tls;
+else
+transport = trans_unix;
+  

[libvirt] [PATCH 6/8] driver: ensure NULL URI isn't passed to drivers with whitelisted URIs

2018-04-09 Thread Daniel P . Berrangé
Ensuring that we don't call the virDrvConnectOpen method with a NULL URI
means that the drivers can drop various checks for NULL URIs. These were
not needed anymore since the probe functionality was split

Signed-off-by: Daniel P. Berrangé 
---
 src/bhyve/bhyve_driver.c| 26 +++--
 src/esx/esx_driver.c|  4 ---
 src/hyperv/hyperv_driver.c  |  4 ---
 src/interface/interface_backend_netcf.c | 40 +++--
 src/interface/interface_backend_udev.c  | 40 +++--
 src/libvirt.c   |  6 +++-
 src/libxl/libxl_driver.c| 34 ++---
 src/lxc/lxc_driver.c| 33 +
 src/network/bridge_driver.c | 40 +++--
 src/node_device/node_device_driver.c| 40 +++--
 src/nwfilter/nwfilter_driver.c  | 26 +++--
 src/openvz/openvz_driver.c  | 38 +++-
 src/phyp/phyp_driver.c  |  3 --
 src/qemu/qemu_driver.c  | 52 +++--
 src/secret/secret_driver.c  | 40 +++--
 src/storage/storage_driver.c| 40 +++--
 src/test/test_driver.c  |  4 ---
 src/uml/uml_driver.c| 44 +---
 src/vbox/vbox_common.c  |  3 --
 src/vbox/vbox_driver.c  |  3 --
 src/vmware/vmware_driver.c  | 17 ---
 src/vz/vz_driver.c  |  3 --
 src/xenapi/xenapi_driver.c  |  3 --
 23 files changed, 224 insertions(+), 319 deletions(-)

diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c
index 21754dfc10..7d6439d79d 100644
--- a/src/bhyve/bhyve_driver.c
+++ b/src/bhyve/bhyve_driver.c
@@ -199,21 +199,17 @@ bhyveConnectOpen(virConnectPtr conn,
 {
  virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
 
- if (conn->uri == NULL) {
- return VIR_DRV_OPEN_DECLINED;
- } else {
- if (STRNEQ_NULLABLE(conn->uri->path, "/system")) {
-virReportError(VIR_ERR_INTERNAL_ERROR,
-   _("Unexpected bhyve URI path '%s', try 
bhyve:///system"),
-   conn->uri->path);
-return VIR_DRV_OPEN_ERROR;
- }
-
- if (bhyve_driver == NULL) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
-"%s", _("bhyve state driver is not active"));
- return VIR_DRV_OPEN_ERROR;
- }
+ if (STRNEQ_NULLABLE(conn->uri->path, "/system")) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+_("Unexpected bhyve URI path '%s', try 
bhyve:///system"),
+conn->uri->path);
+ return VIR_DRV_OPEN_ERROR;
+ }
+
+ if (bhyve_driver == NULL) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+"%s", _("bhyve state driver is not active"));
+ return VIR_DRV_OPEN_ERROR;
  }
 
  if (virConnectOpenEnsureACL(conn) < 0)
diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c
index 9b6944ba59..335d9a970d 100644
--- a/src/esx/esx_driver.c
+++ b/src/esx/esx_driver.c
@@ -851,10 +851,6 @@ esxConnectOpen(virConnectPtr conn, virConnectAuthPtr auth,
 
 virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
 
-/* Decline if the URI is NULL or the scheme is NULL */
-if (!conn->uri)
-return VIR_DRV_OPEN_DECLINED;
-
 if (STRCASENEQ(conn->uri->scheme, "vpx") &&
 conn->uri->path && STRNEQ(conn->uri->path, "/")) {
 VIR_WARN("Ignoring unexpected path '%s' for non-vpx scheme '%s'",
diff --git a/src/hyperv/hyperv_driver.c b/src/hyperv/hyperv_driver.c
index 4ad8855dcc..d02c0ac373 100644
--- a/src/hyperv/hyperv_driver.c
+++ b/src/hyperv/hyperv_driver.c
@@ -128,10 +128,6 @@ hypervConnectOpen(virConnectPtr conn, virConnectAuthPtr 
auth,
 
 virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
 
-/* Decline if the URI is NULL or the scheme is NULL */
-if (conn->uri == NULL)
-return VIR_DRV_OPEN_DECLINED;
-
 /* Require server part */
 if (conn->uri->server == NULL) {
 virReportError(VIR_ERR_INVALID_ARG, "%s",
diff --git a/src/interface/interface_backend_netcf.c 
b/src/interface/interface_backend_netcf.c
index ff3443c8e6..cc2402febb 100644
--- a/src/interface/interface_backend_netcf.c
+++ b/src/interface/interface_backend_netcf.c
@@ -159,31 +159,25 @@ netcfConnectOpen(virConnectPtr conn,
 {
 virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
 
-/* Verify uri was specified */
-if (conn->uri == NULL) {
-/* Only hypervisor drivers are permitted to auto-open on NULL uri */
-return VIR_DRV_OPEN_DECLINED;
-} else {
-if (driver == NULL) {
-virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-   _("interface state 

[libvirt] [PATCH 4/8] driver: allow drivers to indicate if they permit remote connections

2018-04-09 Thread Daniel P . Berrangé
Add a localOnly flag to the virConnectDriver struct which allows a
driver to indicate whether it is local-only, or permits remote
connections. Stateful drivers running inside libvirtd are generally
local only. This allows us to remote the check for uri->server != NULL
from most drivers.

Signed-off-by: Daniel P. Berrangé 
---
 src/bhyve/bhyve_driver.c| 4 +---
 src/driver.h| 2 ++
 src/interface/interface_backend_netcf.c | 5 +
 src/interface/interface_backend_udev.c  | 5 +
 src/libvirt.c   | 5 +
 src/libxl/libxl_driver.c| 5 +
 src/lxc/lxc_driver.c| 5 +
 src/network/bridge_driver.c | 5 +
 src/node_device/node_device_driver.c| 4 
 src/node_device/node_device_hal.c   | 1 +
 src/node_device/node_device_udev.c  | 1 +
 src/nwfilter/nwfilter_driver.c  | 5 +
 src/openvz/openvz_driver.c  | 5 +
 src/qemu/qemu_driver.c  | 7 +--
 src/secret/secret_driver.c  | 5 +
 src/storage/storage_driver.c| 5 +
 src/test/test_driver.c  | 5 +
 src/uml/uml_driver.c| 6 +-
 src/vbox/vbox_common.c  | 4 
 src/vbox/vbox_driver.c  | 8 +---
 src/vmware/vmware_driver.c  | 5 +
 src/vz/vz_driver.c  | 5 +
 22 files changed, 29 insertions(+), 73 deletions(-)

diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c
index a0bc400480..cc1d4ba6fb 100644
--- a/src/bhyve/bhyve_driver.c
+++ b/src/bhyve/bhyve_driver.c
@@ -205,9 +205,6 @@ bhyveConnectOpen(virConnectPtr conn,
  if (!conn->uri->scheme || STRNEQ(conn->uri->scheme, "bhyve"))
  return VIR_DRV_OPEN_DECLINED;
 
- if (conn->uri->server)
- return VIR_DRV_OPEN_DECLINED;
-
  if (STRNEQ_NULLABLE(conn->uri->path, "/system")) {
 virReportError(VIR_ERR_INTERNAL_ERROR,
_("Unexpected bhyve URI path '%s', try 
bhyve:///system"),
@@ -1754,6 +1751,7 @@ static virHypervisorDriver bhyveHypervisorDriver = {
 
 
 static virConnectDriver bhyveConnectDriver = {
+.localOnly = true,
 .hypervisorDriver = ,
 };
 
diff --git a/src/driver.h b/src/driver.h
index c86da85481..5fb0b523c8 100644
--- a/src/driver.h
+++ b/src/driver.h
@@ -79,6 +79,8 @@ typedef struct _virConnectDriver virConnectDriver;
 typedef virConnectDriver *virConnectDriverPtr;
 
 struct _virConnectDriver {
+/* Wether driver permits a server in the URI */
+bool localOnly;
 virHypervisorDriverPtr hypervisorDriver;
 virInterfaceDriverPtr interfaceDriver;
 virNetworkDriverPtr networkDriver;
diff --git a/src/interface/interface_backend_netcf.c 
b/src/interface/interface_backend_netcf.c
index fb75a33280..3da958980f 100644
--- a/src/interface/interface_backend_netcf.c
+++ b/src/interface/interface_backend_netcf.c
@@ -167,10 +167,6 @@ netcfConnectOpen(virConnectPtr conn,
 if (STRNEQ_NULLABLE(conn->uri->scheme, "interface"))
 return VIR_DRV_OPEN_DECLINED;
 
-/* Leave for remote driver */
-if (conn->uri->server != NULL)
-return VIR_DRV_OPEN_DECLINED;
-
 if (driver == NULL) {
 virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("interface state driver is not active"));
@@ -1224,6 +1220,7 @@ static virHypervisorDriver interfaceHypervisorDriver = {
 
 
 static virConnectDriver interfaceConnectDriver = {
+.localOnly = true,
 .hypervisorDriver = ,
 .interfaceDriver = ,
 };
diff --git a/src/interface/interface_backend_udev.c 
b/src/interface/interface_backend_udev.c
index 47e850bc2a..2b8a9da682 100644
--- a/src/interface/interface_backend_udev.c
+++ b/src/interface/interface_backend_udev.c
@@ -1211,10 +1211,6 @@ udevConnectOpen(virConnectPtr conn,
 if (STRNEQ_NULLABLE(conn->uri->scheme, "interface"))
 return VIR_DRV_OPEN_DECLINED;
 
-/* Leave for remote driver */
-if (conn->uri->server != NULL)
-return VIR_DRV_OPEN_DECLINED;
-
 if (driver == NULL) {
 virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("interface state driver is not active"));
@@ -1295,6 +1291,7 @@ static virHypervisorDriver udevHypervisorDriver = {
 
 
 static virConnectDriver udevConnectDriver = {
+.localOnly = true,
 .hypervisorDriver = ,
 .interfaceDriver = ,
 };
diff --git a/src/libvirt.c b/src/libvirt.c
index d87efca625..2b2b3ed425 100644
--- a/src/libvirt.c
+++ b/src/libvirt.c
@@ -1068,6 +1068,11 @@ virConnectOpenInternal(const char *name,
 VIR_DEBUG("trying driver %zu (%s) ...",
   i, virConnectDriverTab[i]->hypervisorDriver->name);
 
+if (virConnectDriverTab[i]->localOnly && ret->uri && ret->uri->server) 
{
+VIR_DEBUG("Server present, skipping local only 

[libvirt] [PATCH 2/8] lxc: allow use of lxc:///system URI as preferred format

2018-04-09 Thread Daniel P . Berrangé
Historically we have used a bare lxc:/// URI for connecting to LXC. This
is different from our practice with QEMU, UML, Parallels, Libxl, BHyve
and VirtualBox drivers, which all use a path of '/system' or '/session'
or both.

By making LXC allow '/system', we have fully standardized on the use of
either '/system' or '/session' for all the stateful drivers that run
inside libvirtd.

Support for lxc:/// is of course maintained for back-compat.

Signed-off-by: Daniel P. Berrangé 
---
 docs/drvlxc.html.in  | 34 +-
 examples/lxcconvert/virt-lxc-convert |  2 +-
 src/lxc/lxc_driver.c |  7 ---
 src/lxc/lxc_process.c|  4 ++--
 tools/libvirt-guests.sysconf |  2 +-
 tools/virsh.pod  |  2 +-
 tools/virt-login-shell.c |  2 +-
 7 files changed, 27 insertions(+), 26 deletions(-)

diff --git a/docs/drvlxc.html.in b/docs/drvlxc.html.in
index 58a336ed30..44c49609d9 100644
--- a/docs/drvlxc.html.in
+++ b/docs/drvlxc.html.in
@@ -308,8 +308,8 @@ unit file specifies how systemd will start the libvirt LXC 
container
 Description=My little container
 
 [Service]
-ExecStart=/usr/bin/virsh -c lxc:/// start --pass-fds 3 mycontainer
-ExecStop=/usr/bin/virsh -c lxc:/// destroy mycontainer
+ExecStart=/usr/bin/virsh -c lxc:///system start --pass-fds 3 mycontainer
+ExecStop=/usr/bin/virsh -c lxc:///system destroy mycontainer
 Type=oneshot
 RemainAfterExit=yes
 KillMode=none
@@ -621,9 +621,9 @@ The use of namespace passthrough requires libvirt >= 1.2.19
 As with any libvirt virtualization driver, LXC containers can be
 managed via a wide variety of libvirt based tools. At the lowest
 level the virsh command can be used to perform many
-tasks, by passing the -c lxc:/// argument. As an
+tasks, by passing the -c lxc:///system argument. As an
 alternative to repeating the URI with every command, the 
LIBVIRT_DEFAULT_URI
-environment variable can be set to lxc:///. The
+environment variable can be set to lxc:///system. The
 examples that follow outline some common operations with virsh
 and LXC. For further details about usage of virsh consult its
 manual page.
@@ -637,7 +637,7 @@ document and loads it into libvirt, saving the 
configuration on disk
 
 
 
-# virsh -c lxc:/// define myguest.xml
+# virsh -c lxc:///system define myguest.xml
 
 
 Viewing container configuration
@@ -652,7 +652,7 @@ using the --inactive flag
 
 
 
-# virsh -c lxc:/// dumpxml myguest
+# virsh -c lxc:///system dumpxml myguest
 
 
 Starting containers
@@ -663,7 +663,7 @@ container from a previously defined persistent configuration
 
 
 
-# virsh -c lxc:/// start myguest
+# virsh -c lxc:///system start myguest
 
 
 
@@ -673,7 +673,7 @@ by libvirt, using the virsh create command.
 
 
 
-# virsh -c lxc:/// create myguest.xml
+# virsh -c lxc:///system create myguest.xml
 
 
 
@@ -689,7 +689,7 @@ to PID 1 inside the container.
 
 
 
-# virsh -c lxc:/// shutdown myguest
+# virsh -c lxc:///system shutdown myguest
 
 
 
@@ -698,7 +698,7 @@ request, it can be forcibly stopped using the virsh 
destroy
 
 
 
-# virsh -c lxc:/// destroy myguest
+# virsh -c lxc:///system destroy myguest
 
 
 
@@ -714,7 +714,7 @@ to PID 1 inside the container.
 
 
 
-# virsh -c lxc:/// reboot myguest
+# virsh -c lxc:///system reboot myguest
 
 
 Undefining (deleting) a container 
configuration
@@ -726,7 +726,7 @@ running, this will turn it into a "transient" guest.
 
 
 
-# virsh -c lxc:/// undefine myguest
+# virsh -c lxc:///system undefine myguest
 
 
 Connecting to a container console
@@ -737,7 +737,7 @@ to the text console associated with a container.
 
 
 
-# virsh -c lxc:/// console myguest
+# virsh -c lxc:///system console myguest
 
 
 
@@ -749,7 +749,7 @@ as 'console0', 'console1', 'console2', etc.
 
 
 
-# virsh -c lxc:/// console myguest --devname console1
+# virsh -c lxc:///system console myguest --devname console1
 
 
 Running commands in a container
@@ -761,7 +761,7 @@ and then execute an arbitrary command.
 
 
 
-# virsh -c lxc:/// lxc-enter-namespace myguest -- /bin/ls -al /dev
+# virsh -c lxc:///system lxc-enter-namespace myguest -- /bin/ls -al /dev
 
 
 Monitoring container utilization
@@ -773,7 +773,7 @@ host
 
 
 
-# virt-top -c lxc:///
+# virt-top -c lxc:///system
 
 
 Converting LXC container configuration
@@ -784,7 +784,7 @@ most of the LXC container configuration into a domain XML 
fragment
 
 
 
-# virsh -c lxc:/// domxml-from-native lxc-tools /var/lib/lxc/myguest/config
+# virsh -c lxc:///system domxml-from-native lxc-tools 
/var/lib/lxc/myguest/config
 
 
 
diff --git a/examples/lxcconvert/virt-lxc-convert 
b/examples/lxcconvert/virt-lxc-convert
index e62172eea4..5260eb708f 100644
--- a/examples/lxcconvert/virt-lxc-convert
+++ b/examples/lxcconvert/virt-lxc-convert
@@ -123,5 +123,5 @@ if test -z "$mem_limit"; then
 echo "lxc.cgroup.memory.limit_in_bytes = $memory" >> "$conf_new"
 fi
 
-virsh -c lxc:/// domxml-from-native 

[libvirt] [PATCH 3/8] driver: introduce a driver method for probing default URIs

2018-04-09 Thread Daniel P . Berrangé
Currently the virDrvConnectOpen method is supposed to handle both
opening an explicit URI and auto-probing a driver if no URI is
given. Introduce a dedicated virDrvConnectURIProbe method to enable the
probing functionality to be split from the driver opening functionality.

It is still possible for NULL to be passed to the virDrvConnectOpen
method after this change, because the remote driver needs special
handling to enable probing of the URI against a remote libvirtd daemon.

Signed-off-by: Daniel P. Berrangé 
---
 docs/hvsupport.pl  |  6 +++---
 src/bhyve/bhyve_driver.c   | 18 +-
 src/driver-hypervisor.h|  4 
 src/libvirt.c  | 13 +
 src/libxl/libxl_driver.c   | 17 -
 src/lxc/lxc_driver.c   | 17 -
 src/openvz/openvz_driver.c | 24 
 src/qemu/qemu_driver.c | 30 +-
 src/uml/uml_driver.c   | 20 +---
 src/vbox/vbox_common.c | 13 ++---
 10 files changed, 117 insertions(+), 45 deletions(-)

diff --git a/docs/hvsupport.pl b/docs/hvsupport.pl
index fc6eb1f152..a2b980c502 100755
--- a/docs/hvsupport.pl
+++ b/docs/hvsupport.pl
@@ -184,7 +184,7 @@ foreach my $drivertable (@drivertable) {
 my $api;
 if (exists $apis{"vir$name"}) {
 $api = "vir$name";
-} elsif ($name =~ /\w+(Open|Close)/) {
+} elsif ($name =~ /\w+(Open|Close|URIProbe)/) {
 next;
 } else {
 die "driver $name does not have a public API";
@@ -241,12 +241,12 @@ foreach my $src (@srcs) {
 
 next if $api eq "no" || $api eq "name";
 
-die "Method $meth in $src is missing version" unless defined 
$vers;
+die "Method $meth in $src is missing version" unless defined 
$vers || $api eq "connectURIProbe";
 
 die "Driver method for $api is NULL in $src" if $meth eq 
"NULL";
 
 if (!exists($groups{$ingrp}->{apis}->{$api})) {
-next if $api =~ /\w(Open|Close)/;
+next if $api =~ /\w(Open|Close|URIProbe)/;
 
 die "Found unexpected method $api in $ingrp\n";
 }
diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c
index 849d3abcd3..a0bc400480 100644
--- a/src/bhyve/bhyve_driver.c
+++ b/src/bhyve/bhyve_driver.c
@@ -180,6 +180,17 @@ bhyveDomObjFromDomain(virDomainPtr domain)
 return vm;
 }
 
+
+static int
+bhyveConnectURIProbe(char **uri)
+{
+if (bhyve_driver == NULL)
+return 0;
+
+return VIR_STRDUP(*uri, "bhyve:///system");
+}
+
+
 static virDrvOpenStatus
 bhyveConnectOpen(virConnectPtr conn,
  virConnectAuthPtr auth ATTRIBUTE_UNUSED,
@@ -189,11 +200,7 @@ bhyveConnectOpen(virConnectPtr conn,
  virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
 
  if (conn->uri == NULL) {
- if (bhyve_driver == NULL)
- return VIR_DRV_OPEN_DECLINED;
-
- if (!(conn->uri = virURIParse("bhyve:///system")))
- return VIR_DRV_OPEN_ERROR;
+ return VIR_DRV_OPEN_DECLINED;
  } else {
  if (!conn->uri->scheme || STRNEQ(conn->uri->scheme, "bhyve"))
  return VIR_DRV_OPEN_DECLINED;
@@ -1689,6 +1696,7 @@ bhyveConnectGetDomainCapabilities(virConnectPtr conn,
 
 static virHypervisorDriver bhyveHypervisorDriver = {
 .name = "bhyve",
+.connectURIProbe = bhyveConnectURIProbe,
 .connectOpen = bhyveConnectOpen, /* 1.2.2 */
 .connectClose = bhyveConnectClose, /* 1.2.2 */
 .connectGetVersion = bhyveConnectGetVersion, /* 1.2.2 */
diff --git a/src/driver-hypervisor.h b/src/driver-hypervisor.h
index ce0e2b2525..e71a72a441 100644
--- a/src/driver-hypervisor.h
+++ b/src/driver-hypervisor.h
@@ -25,6 +25,9 @@
 #  error "Don't include this file directly, only use driver.h"
 # endif
 
+typedef int
+(*virDrvConnectURIProbe)(char **uri);
+
 typedef virDrvOpenStatus
 (*virDrvConnectOpen)(virConnectPtr conn,
  virConnectAuthPtr auth,
@@ -1300,6 +1303,7 @@ typedef virHypervisorDriver *virHypervisorDriverPtr;
  */
 struct _virHypervisorDriver {
 const char *name; /* the name of the driver */
+virDrvConnectURIProbe connectURIProbe;
 virDrvConnectOpen connectOpen;
 virDrvConnectClose connectClose;
 virDrvConnectSupportsFeature connectSupportsFeature;
diff --git a/src/libvirt.c b/src/libvirt.c
index 51acbbf83e..d87efca625 100644
--- a/src/libvirt.c
+++ b/src/libvirt.c
@@ -975,6 +975,19 @@ virConnectOpenInternal(const char *name,
 } else {
 if (virConnectGetDefaultURI(conf, ) < 0)
 goto failed;
+
+if (uristr == NULL) {
+VIR_DEBUG("Trying to probe for default URI");
+for (i = 0; i < virConnectDriverTabCount && uristr == NULL; i++) {
+if 

[libvirt] [PATCH 8/8] driver: ensure URI path is non-NULL to simplify drivers

2018-04-09 Thread Daniel P . Berrangé
Avoid the need for the drivers to explicitly check for a NULL path by
making sure it is at least the empty string.

Signed-off-by: Daniel P. Berrangé 
---
 src/bhyve/bhyve_driver.c   | 2 +-
 src/esx/esx_driver.c   | 2 +-
 src/libvirt.c  | 8 +++-
 src/libxl/libxl_driver.c   | 5 ++---
 src/lxc/lxc_driver.c   | 3 +--
 src/openvz/openvz_driver.c | 3 +--
 src/phyp/phyp_driver.c | 2 +-
 src/qemu/qemu_driver.c | 6 --
 src/test/test_driver.c | 5 ++---
 src/vbox/vbox_common.c | 6 --
 src/vbox/vbox_driver.c | 6 --
 src/vmware/vmware_driver.c | 2 +-
 src/vz/vz_driver.c | 2 +-
 13 files changed, 18 insertions(+), 34 deletions(-)

diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c
index 7d6439d79d..8870756ac5 100644
--- a/src/bhyve/bhyve_driver.c
+++ b/src/bhyve/bhyve_driver.c
@@ -199,7 +199,7 @@ bhyveConnectOpen(virConnectPtr conn,
 {
  virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
 
- if (STRNEQ_NULLABLE(conn->uri->path, "/system")) {
+ if (STRNEQ(conn->uri->path, "/system")) {
  virReportError(VIR_ERR_INTERNAL_ERROR,
 _("Unexpected bhyve URI path '%s', try 
bhyve:///system"),
 conn->uri->path);
diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c
index 335d9a970d..c682c800ca 100644
--- a/src/esx/esx_driver.c
+++ b/src/esx/esx_driver.c
@@ -852,7 +852,7 @@ esxConnectOpen(virConnectPtr conn, virConnectAuthPtr auth,
 virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
 
 if (STRCASENEQ(conn->uri->scheme, "vpx") &&
-conn->uri->path && STRNEQ(conn->uri->path, "/")) {
+STRNEQ(conn->uri->path, "/")) {
 VIR_WARN("Ignoring unexpected path '%s' for non-vpx scheme '%s'",
  conn->uri->path, conn->uri->scheme);
 }
diff --git a/src/libvirt.c b/src/libvirt.c
index 600beaa4d5..0b6bde 100644
--- a/src/libvirt.c
+++ b/src/libvirt.c
@@ -1007,6 +1007,12 @@ virConnectOpenInternal(const char *name,
 goto failed;
 }
 
+/* Avoid need for drivers to worry about NULLs, as
+ * no one needs to distinguish "" vs NULL */
+if (ret->uri->path == NULL &&
+VIR_STRDUP(ret->uri->path, "") < 0)
+goto failed;
+
 VIR_DEBUG("Split \"%s\" to URI components:\n"
   "  scheme %s\n"
   "  server %s\n"
@@ -1016,7 +1022,7 @@ virConnectOpenInternal(const char *name,
   uristr,
   NULLSTR(ret->uri->scheme), NULLSTR(ret->uri->server),
   NULLSTR(ret->uri->user), ret->uri->port,
-  NULLSTR(ret->uri->path));
+  ret->uri->path);
 
 if (ret->uri->scheme == NULL) {
 virReportError(VIR_ERR_NO_CONNECT,
diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
index 45d0c99902..8808da8db1 100644
--- a/src/libxl/libxl_driver.c
+++ b/src/libxl/libxl_driver.c
@@ -853,13 +853,12 @@ libxlConnectOpen(virConnectPtr conn,
 }
 
 /* /session isn't supported in libxenlight */
-if (conn->uri->path &&
-STRNEQ(conn->uri->path, "") &&
+if (STRNEQ(conn->uri->path, "") &&
 STRNEQ(conn->uri->path, "/") &&
 STRNEQ(conn->uri->path, "/system")) {
 virReportError(VIR_ERR_INTERNAL_ERROR,
_("unexpected Xen URI path '%s', try xen:///system"),
-   NULLSTR(conn->uri->path));
+   conn->uri->path);
 return VIR_DRV_OPEN_ERROR;
 }
 
diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
index 2079dd0704..f6041aab43 100644
--- a/src/lxc/lxc_driver.c
+++ b/src/lxc/lxc_driver.c
@@ -170,8 +170,7 @@ static virDrvOpenStatus lxcConnectOpen(virConnectPtr conn,
 virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
 
 /* If path isn't '/' then they typoed, tell them correct path */
-if (conn->uri->path != NULL &&
-STRNEQ(conn->uri->path, "/") &&
+if (STRNEQ(conn->uri->path, "/") &&
 STRNEQ(conn->uri->path, "/system")) {
 virReportError(VIR_ERR_INTERNAL_ERROR,
_("Unexpected LXC URI path '%s', try lxc:///system"),
diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c
index 33893ac009..5a1446ddda 100644
--- a/src/openvz/openvz_driver.c
+++ b/src/openvz/openvz_driver.c
@@ -1444,8 +1444,7 @@ static virDrvOpenStatus openvzConnectOpen(virConnectPtr 
conn,
 virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
 
 /* If path isn't /system, then they typoed, so tell them correct path */
-if (conn->uri->path == NULL ||
-STRNEQ(conn->uri->path, "/system")) {
+if (STRNEQ(conn->uri->path, "/system")) {
 virReportError(VIR_ERR_INTERNAL_ERROR,
_("unexpected OpenVZ URI path '%s', try 
openvz:///system"),
conn->uri->path);
diff --git a/src/phyp/phyp_driver.c b/src/phyp/phyp_driver.c
index 55d459df5c..ed3d9feb58 100644

[libvirt] [PATCH 0/8] Simplify & standarize more parts of driver URI handling

2018-04-09 Thread Daniel P . Berrangé
The motivating goal of this series was/is to make it possible to answer
whether there is any driver registered to handle a given URI scheme
without having to call into the drivers.

Ultimately this ended up being a nice simplification and cleanup of
driver URI opening code, removing repetative logic from all drivers.

Daniel P. Berrangé (8):
  xen: encourage use of xen:///system URI as preferred format
  lxc: allow use of lxc:///system URI as preferred format
  driver: introduce a driver method for probing default URIs
  driver: allow drivers to indicate if they permit remote connections
  driver: declare supported URI schemes in virConnectDriver struct
  driver: ensure NULL URI isn't passed to drivers with whitelisted URIs
  driver: enforce a non-NULL URI scheme
  driver: ensure URI path is non-NULL to simplify drivers

 docs/drvlxc.html.in | 34 ++---
 docs/drvxen.html.in | 14 +++---
 docs/hvsupport.pl   |  6 +--
 docs/remote.html.in |  6 +--
 docs/uri.html.in| 16 +++
 examples/lxcconvert/virt-lxc-convert|  2 +-
 src/bhyve/bhyve_driver.c| 48 +--
 src/driver-hypervisor.h |  4 ++
 src/driver.h|  8 
 src/esx/esx_driver.c| 31 +---
 src/hyperv/hyperv_driver.c  | 24 +-
 src/interface/interface_backend_netcf.c | 47 +++---
 src/interface/interface_backend_udev.c  | 47 +++---
 src/libvirt.c   | 69 +++---
 src/libxl/libxl_driver.c| 58 +++---
 src/lxc/lxc_driver.c| 56 ++
 src/lxc/lxc_process.c   |  4 +-
 src/network/bridge_driver.c | 47 +++---
 src/node_device/node_device_driver.c| 45 +++--
 src/node_device/node_device_hal.c   |  2 +
 src/node_device/node_device_udev.c  |  2 +
 src/nwfilter/nwfilter_driver.c  | 35 +-
 src/openvz/openvz_driver.c  | 70 +--
 src/phyp/phyp_driver.c  |  9 +---
 src/qemu/qemu_driver.c  | 85 +++--
 src/remote/remote_driver.c  | 74 +---
 src/secret/secret_driver.c  | 47 +++---
 src/storage/storage_driver.c| 47 +++---
 src/test/test_driver.c  | 18 ++-
 src/uml/uml_driver.c| 71 +--
 src/vbox/vbox_common.c  | 26 --
 src/vbox/vbox_driver.c  | 18 ++-
 src/vmware/vmware_driver.c  | 29 ---
 src/vz/vz_driver.c  | 25 ++
 src/xenapi/xenapi_driver.c  |  6 +--
 tools/libvirt-guests.sysconf|  2 +-
 tools/virsh.pod |  4 +-
 tools/virt-login-shell.c|  2 +-
 38 files changed, 489 insertions(+), 649 deletions(-)

-- 
2.14.3

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

[libvirt] [PATCH 5/8] driver: declare supported URI schemes in virConnectDriver struct

2018-04-09 Thread Daniel P . Berrangé
Declare what URI schemes a driver supports in its virConnectDriver
struct. This allows us to skip trying to open the driver entirely
if the URI scheme doesn't match.

Signed-off-by: Daniel P. Berrangé 
---
 src/bhyve/bhyve_driver.c|  4 +---
 src/driver.h|  6 ++
 src/esx/esx_driver.c| 27 ++-
 src/hyperv/hyperv_driver.c  | 22 ++
 src/interface/interface_backend_netcf.c |  4 +---
 src/interface/interface_backend_udev.c  |  4 +---
 src/libvirt.c   | 24 
 src/libxl/libxl_driver.c|  5 +
 src/lxc/lxc_driver.c|  5 +
 src/network/bridge_driver.c |  4 +---
 src/node_device/node_device_driver.c|  3 ---
 src/node_device/node_device_hal.c   |  1 +
 src/node_device/node_device_udev.c  |  1 +
 src/nwfilter/nwfilter_driver.c  |  4 +---
 src/openvz/openvz_driver.c  |  6 +-
 src/phyp/phyp_driver.c  |  4 +---
 src/qemu/qemu_driver.c  |  8 +---
 src/secret/secret_driver.c  |  4 +---
 src/storage/storage_driver.c|  4 +---
 src/test/test_driver.c  |  4 +---
 src/uml/uml_driver.c|  5 +
 src/vbox/vbox_common.c  |  4 
 src/vbox/vbox_driver.c  |  5 ++---
 src/vmware/vmware_driver.c  |  7 +--
 src/vz/vz_driver.c  | 15 ++-
 src/xenapi/xenapi_driver.c  |  5 ++---
 26 files changed, 57 insertions(+), 128 deletions(-)

diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c
index cc1d4ba6fb..21754dfc10 100644
--- a/src/bhyve/bhyve_driver.c
+++ b/src/bhyve/bhyve_driver.c
@@ -202,9 +202,6 @@ bhyveConnectOpen(virConnectPtr conn,
  if (conn->uri == NULL) {
  return VIR_DRV_OPEN_DECLINED;
  } else {
- if (!conn->uri->scheme || STRNEQ(conn->uri->scheme, "bhyve"))
- return VIR_DRV_OPEN_DECLINED;
-
  if (STRNEQ_NULLABLE(conn->uri->path, "/system")) {
 virReportError(VIR_ERR_INTERNAL_ERROR,
_("Unexpected bhyve URI path '%s', try 
bhyve:///system"),
@@ -1752,6 +1749,7 @@ static virHypervisorDriver bhyveHypervisorDriver = {
 
 static virConnectDriver bhyveConnectDriver = {
 .localOnly = true,
+.uriSchemes = (const char *[]){ "bhyve", NULL },
 .hypervisorDriver = ,
 };
 
diff --git a/src/driver.h b/src/driver.h
index 5fb0b523c8..b071a3a782 100644
--- a/src/driver.h
+++ b/src/driver.h
@@ -81,6 +81,12 @@ typedef virConnectDriver *virConnectDriverPtr;
 struct _virConnectDriver {
 /* Wether driver permits a server in the URI */
 bool localOnly;
+/*
+ * NULL terminated list of supported URI schemes.
+ *  - Single element { NULL } list indicates no supported schemes
+ *  - NULL list indicates wildcard supportnig all schemes
+ */
+const char **uriSchemes;
 virHypervisorDriverPtr hypervisorDriver;
 virInterfaceDriverPtr interfaceDriver;
 virNetworkDriverPtr networkDriver;
diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c
index 927267f1cc..9b6944ba59 100644
--- a/src/esx/esx_driver.c
+++ b/src/esx/esx_driver.c
@@ -845,7 +845,6 @@ esxConnectOpen(virConnectPtr conn, virConnectAuthPtr auth,
unsigned int flags)
 {
 virDrvOpenStatus result = VIR_DRV_OPEN_ERROR;
-char *plus;
 esxPrivate *priv = NULL;
 char *potentialVCenterIPAddress = NULL;
 char vCenterIPAddress[NI_MAXHOST] = "";
@@ -853,32 +852,9 @@ esxConnectOpen(virConnectPtr conn, virConnectAuthPtr auth,
 virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
 
 /* Decline if the URI is NULL or the scheme is NULL */
-if (!conn->uri || !conn->uri->scheme)
+if (!conn->uri)
 return VIR_DRV_OPEN_DECLINED;
 
-/* Decline if the scheme is not one of {vpx|esx|gsx} */
-plus = strchr(conn->uri->scheme, '+');
-
-if (!plus) {
-if (STRCASENEQ(conn->uri->scheme, "vpx") &&
-STRCASENEQ(conn->uri->scheme, "esx") &&
-STRCASENEQ(conn->uri->scheme, "gsx")) {
-return VIR_DRV_OPEN_DECLINED;
-}
-} else {
-if (plus - conn->uri->scheme != 3 ||
-(STRCASENEQLEN(conn->uri->scheme, "vpx", 3) &&
- STRCASENEQLEN(conn->uri->scheme, "esx", 3) &&
- STRCASENEQLEN(conn->uri->scheme, "gsx", 3))) {
-return VIR_DRV_OPEN_DECLINED;
-}
-
-virReportError(VIR_ERR_INVALID_ARG,
-   _("Transport '%s' in URI scheme is not supported, try 
again "
- "without the transport part"), plus + 1);
-return VIR_DRV_OPEN_ERROR;
-}
-
 if (STRCASENEQ(conn->uri->scheme, "vpx") &&
 conn->uri->path && STRNEQ(conn->uri->path, "/")) {
 VIR_WARN("Ignoring unexpected path '%s' for 

Re: [libvirt] [dbus PATCH] APIs should appear in aplhabetical order in all files.

2018-04-09 Thread Pavel Hrdina
On Mon, Apr 09, 2018 at 05:10:48PM +0200, Katerina Koukiou wrote:
> In C and XML files the order is:
> 1) properties
> 2) methods
> 3) signals
> All of them sorted in their category alphabetically.
> 
> Signed-off-by: Katerina Koukiou 
> ---
>  data/org.libvirt.Connect.xml |  12 +--
>  data/org.libvirt.Domain.xml  |  54 ++--
>  src/connect.c|   2 +-
>  src/domain.c | 200 
> +--
>  4 files changed, 134 insertions(+), 134 deletions(-)

I would split it into two patches, one per each file to make the diff
less crazy.  I'm also considering to split it per every property/method
move to make the diff clean and obvious that it's a simple move.  It's
easy to miss something.

> diff --git a/data/org.libvirt.Connect.xml b/data/org.libvirt.Connect.xml
> index 5b49ed9..55260cc 100644
> --- a/data/org.libvirt.Connect.xml
> +++ b/data/org.libvirt.Connect.xml
> @@ -25,12 +25,6 @@
>  value="See 
> https://libvirt.org/html/libvirt-libvirt-host.html#virConnectGetVersion"/>
>  
> -
> -   -value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virConnectListAllDomains"/>
> -  
> -  
> -
>  
>  value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainCreateXML"/>
> @@ -73,6 +67,12 @@
>
>
>  
> +
> +   +value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virConnectListAllDomains"/>
> +  
> +  
> +
>  
>  value="See 
> https://libvirt.org/html/libvirt-libvirt-network.html#virConnectListAllNetworks"/>
> diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml
> index 7679018..78378bb 100644
> --- a/data/org.libvirt.Domain.xml
> +++ b/data/org.libvirt.Domain.xml
> @@ -3,25 +3,25 @@
>  
>  
>
> -
> +
> -value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetName"/>
> +value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainIsActive"/>
>  
> -
> +
> -value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetUUIDString"/>
> +value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetAutostart"/>
>  
>  
>  value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetID"/>
>  
> -
> +
> -value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetOSType"/>
> +value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetName"/>
>  
> -
> +
> -value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainIsActive"/>
> +value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetOSType"/>
>  
>  
> @@ -31,21 +31,19 @@
>  value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetState"/>
>  
> -
> +
> -value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetAutostart"/>
> +value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetUUIDString"/>
>  
> -
> +
> -value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetVcpusFlags"/>
> +value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainCreateWithFlags"/>
>
> -  
>  
> -
> +
> -value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetXMLDesc"/>
> +value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainDestroyFlags"/>
>
> -  
>  
>  
> @@ -54,15 +52,17 @@
>
>
>  
> -
> +
> -value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainShutdownFlags"/>
> +value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetVcpusFlags"/>
>
> +  
>  
> -
> +
> -value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainDestroyFlags"/>
> +value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetXMLDesc"/>
>
> +  
>  
>  
> @@ -74,23 +74,23 @@
>  value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainReset"/>
>
>  
> -
> +
> -value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainCreateWithFlags"/>
> -  
> +value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainResume"/>
>  
> -
> +
> -value="See 
> https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainUndefineFlags"/>
> +value="See 
> 

[libvirt] [PATCH 1/8] xen: encourage use of xen:///system URI as preferred format

2018-04-09 Thread Daniel P . Berrangé
Historically we have used a bare xen:/// URI for connecting to the
legacy Xen driver. The new libxl Xen driver follows the new practice
of allowing '/system' as a path, as well as bare '/' for compat with
the old Xen driver.

This documents xen:///system as the preferred format for Xen, leaving
xen:/// as an undocumented feature just for back-compat.

Signed-off-by: Daniel P. Berrangé 
---
 docs/drvxen.html.in  | 14 +++---
 docs/remote.html.in  |  6 +++---
 docs/uri.html.in | 16 
 src/libvirt.c|  8 
 src/libxl/libxl_driver.c |  4 ++--
 tools/libvirt-guests.sysconf |  2 +-
 tools/virsh.pod  |  2 +-
 7 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/docs/drvxen.html.in b/docs/drvxen.html.in
index b8d190c942..2e45e09527 100644
--- a/docs/drvxen.html.in
+++ b/docs/drvxen.html.in
@@ -43,11 +43,11 @@
 
 
 
-xen:///(local access, direct)
-xen+unix:///   (local access, via daemon)
-xen://example.com/ (remote access, TLS/x509)
-xen+tcp://example.com/ (remote access, SASl/Kerberos)
-xen+ssh://r...@example.com/(remote access, SSH tunnelled)
+xen:///system (local access, direct)
+xen+unix:///system(local access, via daemon)
+xen://example.com/system  (remote access, TLS/x509)
+xen+tcp://example.com/system  (remote access, SASl/Kerberos)
+xen+ssh://r...@example.com/system (remote access, SSH tunnelled)
 
 
 Import and export of libvirt domain XML configs
@@ -76,7 +76,7 @@ xen+ssh://r...@example.com/(remote access, SSH tunnelled)
   which can then be used by libvirt.
 
 
-$ virsh -c xen:/// domxml-from-native xen-xm rhel5.cfg
+$ virsh -c xen:///system domxml-from-native xen-xm rhel5.cfg
 domain type='xen'
   namerhel5pv/name
   uuid8f07fe28-753f-2729-d76d-bdbd892f949a/uuid
@@ -122,7 +122,7 @@ xen+ssh://r...@example.com/(remote access, SSH 
tunnelled)
   format.
 
 
-$ virsh -c xen:/// domxml-to-native xen-xm rhel5pv.xml
+$ virsh -c xen:///system domxml-to-native xen-xm rhel5pv.xml
 name = "rhel5pv"
 uuid = "8f07fe28-753f-2729-d76d-bdbd892f949a"
 maxmem = 2500
diff --git a/docs/remote.html.in b/docs/remote.html.in
index 8c22778f53..de09975039 100644
--- a/docs/remote.html.in
+++ b/docs/remote.html.in
@@ -130,14 +130,14 @@ to distinguish this from a local URI.
 Some examples:
 
 
-  xen+ssh://rjones@towada/  Connect to a
+  xen+ssh://rjones@towada/system  Connect to 
a
 remote Xen hypervisor on host towada using ssh transport and ssh
 username rjones.
 
-  xen://towada/  Connect to a
+  xen://towada/system  Connect to a
 remote Xen hypervisor on host towada using TLS.
 
-  xen://towada/?no_verify=1  Connect to a
+  xen://towada/system?no_verify=1  Connect 
to a
 remote Xen hypervisor on host towada using TLS.  Do not verify
 the server's certificate.
 
diff --git a/docs/uri.html.in b/docs/uri.html.in
index 5df73613ae..6da9eb9746 100644
--- a/docs/uri.html.in
+++ b/docs/uri.html.in
@@ -107,7 +107,7 @@ In virt-install use the --connect=URI 
option:
 virt-install --connect=test:///default [other options]
 
 
-  xen:/// URI
+  xen:///system URI
 
 
   This section describes a feature which is new in libvirt 
@@ -115,7 +115,7 @@ virt-install --connect=test:///default [other 
options]
 
 
 To access a Xen hypervisor running on the local machine
-use the URI xen:///.
+use the URI xen:///system.
 
 
   qemu:///... QEMU and KVM URIs
@@ -167,10 +167,10 @@ a NULL URI for a local connection. For example:
   
   
 
-  xen:///
+  xen:///system
 
 
-  xen://oirase/
+  xen://oirase/system
 
  Connect to the Xen hypervisor running on host oirase
   using TLS. 
@@ -187,10 +187,10 @@ a NULL URI for a local connection. For example:
   
   
 
-  xen:///
+  xen:///system
 
 
-  xen+ssh://oirase/
+  xen+ssh://oirase/system
 
  Connect to the Xen hypervisor running on host oirase
   by going over an ssh connection. 
@@ -251,7 +251,7 @@ In any case applications linked to libvirt can continue to 
pass
 user to override the URI, either by constructing one or by allowing
 the user to type a URI in directly (if that is appropriate).  If your
 application wishes to connect specifically to a Xen hypervisor, then
-for future proofing it should choose a full xen:/// URI.
+for future proofing it should choose a full xen:///system URI.
 
 
   Legacy: "xen"
@@ -259,7 +259,7 @@ for future proofing it should choose a full xen:///
 Another legacy URI is to specify name as the string
 "xen".  This will continue to refer to the Xen
-hypervisor.  However you should prefer a full xen:/// URI in all future code.
+hypervisor.  However you should 

Re: [libvirt] [libvirt PATCH v2 03/44] Force QMP capability probing

2018-04-09 Thread Daniel P . Berrangé
On Thu, Apr 05, 2018 at 02:22:54PM +0200, Ján Tomko wrote:
> Remove the qmpOnly attribute of virQEMUCapsNewForBinaryInternal
> and instead always assume it's true.
> 
> This effectively sets the minimum QEMU version to 1.2.0,
> breaking support for QEMU in RHEL6.
> 

> @@ -5077,8 +4225,7 @@ virQEMUCapsNewForBinaryInternal(virArch hostArch,
>  uid_t runUid,
>  gid_t runGid,
>  unsigned int microcodeVersion,
> -const char *kernelVersion,
> -bool qmpOnly)
> +const char *kernelVersion)
>  {
>  virQEMUCapsPtr qemuCaps;
>  struct stat sb;
> @@ -5114,7 +4261,7 @@ virQEMUCapsNewForBinaryInternal(virArch hostArch,
>  goto error;
>  }
>  
> -if (qmpOnly && !qemuCaps->usedQMP) {
> +if (!qemuCaps->usedQMP) {
>  virReportError(VIR_ERR_INTERNAL_ERROR,
> _("Failed to probe QEMU binary with QMP: %s"),
> qmperr ? qmperr : _("unknown error"));

We should be able to kill this now. We only have "usedQMP" because we
want to gracefully get out of virQEMUCapsInitQMPCommandRun() when
launching with QMP fails. We can make that method return -1 or 0 only
now, and drop "usedQMP"


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 :|

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

[libvirt] [libvirt PATCH v2 40/44] Deprecate QEMU_CAPS_DUMP_GUEST_CORE

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c  |  1 -
 src/qemu/qemu_capabilities.h  |  2 +-
 src/qemu/qemu_command.c   | 19 +--
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml  |  1 -
 tests/qemuxml2argvdata/aarch64-aavmf-virtio-mmio.args |  2 +-
 tests/qemuxml2argvdata/aarch64-acpi-uefi.args |  2 +-
 [ ... etc ... ]
 tests/qemuxml2argvdata/watchdog.args  |  2 +-
 tests/qemuxml2argvdata/x86-kvm-32-on-64.args  |  2 +-
 tests/qemuxml2argvtest.c  | 11 +++
 632 files changed, 612 insertions(+), 652 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 6af3cc9d61..c46e99362d 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3629,7 +3629,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_DUMP_GUEST_CORE);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_VNC_SHARE_POLICY);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_HOST_PCI_MULTIDOMAIN);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DISPLAY);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index f1a55c421d..743f37aca3 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -203,7 +203,7 @@ typedef enum {
 
 /* 110 */
 QEMU_CAPS_REBOOT_TIMEOUT, /* -boot reboot-timeout */
-QEMU_CAPS_DUMP_GUEST_CORE, /* dump-guest-core-parameter */
+X_QEMU_CAPS_DUMP_GUEST_CORE, /* dump-guest-core-parameter */
 QEMU_CAPS_SEAMLESS_MIGRATION, /* seamless-migration for SPICE */
 QEMU_CAPS_BLOCK_COMMIT, /* block-commit */
 QEMU_CAPS_VNC, /* Is -vnc available? */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index e6c70f84bf..5bd129c72a 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -7050,21 +7050,12 @@ qemuBuildMachineCommandLine(virCommandPtr cmd,
   virTristateSwitchTypeToString(smm));
 }
 
-if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DUMP_GUEST_CORE)) {
-if (def->mem.dump_core) {
-virBufferAsprintf(, ",dump-guest-core=%s",
-  
virTristateSwitchTypeToString(def->mem.dump_core));
-} else {
-virBufferAsprintf(, ",dump-guest-core=%s",
-  cfg->dumpGuestCore ? "on" : "off");
-}
+if (def->mem.dump_core) {
+virBufferAsprintf(, ",dump-guest-core=%s",
+  virTristateSwitchTypeToString(def->mem.dump_core));
 } else {
-if (def->mem.dump_core) {
-virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-   _("dump-guest-core is not available "
- "with this QEMU binary"));
-goto cleanup;
-}
+virBufferAsprintf(, ",dump-guest-core=%s",
+  cfg->dumpGuestCore ? "on" : "off");
 }
 
 if (def->mem.nosharepages) {
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index efe137cb11..779f5032b1 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -48,7 +48,6 @@
   
   
   
-  
   
   
   
diff --git 

Re: [libvirt] [libvirt PATCH v2 14/44] Deprecate QEMU_CAPS_SDL

2018-04-09 Thread Daniel P . Berrangé
On Mon, Apr 09, 2018 at 05:20:07PM +0200, Ján Tomko wrote:
> Implied by QEMU >= 1.2.0.
> 
> Signed-off-by: Ján Tomko 
> ---
>  src/qemu/qemu_capabilities.c   | 4 +---
>  src/qemu/qemu_capabilities.h   | 2 +-
>  src/qemu/qemu_command.c| 9 +
>  tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   | 1 -
>  tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   | 1 -
>  tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   | 1 -
>  tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   | 1 -
>  tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml | 1 -
>  tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   | 1 -
>  tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   | 1 -
>  tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  | 1 -
>  tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   | 1 -
>  tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml | 1 -
>  tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   | 1 -
>  tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   | 1 -
>  tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  | 1 -
>  tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   | 1 -
>  tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   | 1 -
>  tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  | 1 -
>  tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml| 1 -
>  tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   | 1 -
>  tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml| 1 -
>  tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   | 1 -
>  tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml| 1 -
>  tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   | 1 -
>  tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml| 1 -
>  tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml| 1 -
>  tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   | 1 -
>  tests/qemuxml2argvtest.c   | 4 ++--
>  29 files changed, 5 insertions(+), 39 deletions(-)
> 
> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> index b4ead4aeff..63eb1a5768 100644
> --- a/src/qemu/qemu_capabilities.c
> +++ b/src/qemu/qemu_capabilities.c
> @@ -3635,7 +3635,6 @@ static qemuMonitorCallbacks callbacks = {
>  static void
>  virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
>  {
> -virQEMUCapsSet(qemuCaps, QEMU_CAPS_SDL);
>  virQEMUCapsSet(qemuCaps, QEMU_CAPS_RTC);
>  virQEMUCapsSet(qemuCaps, QEMU_CAPS_VHOST_NET);
>  virQEMUCapsSet(qemuCaps, QEMU_CAPS_NODEFCONFIG);
> @@ -4693,8 +4692,7 @@ virQEMUCapsFillDomainDeviceGraphicsCaps(virQEMUCapsPtr 
> qemuCaps,
>  {
>  dev->supported = true;
>  
> -if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SDL))
> -VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_SDL);
> +VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_SDL);
>  if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VNC))
>  VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_VNC);
>  if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE))
> diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
> index 9d0b6878b7..71bea5a623 100644
> --- a/src/qemu/qemu_capabilities.h
> +++ b/src/qemu/qemu_capabilities.h
> @@ -85,7 +85,7 @@ typedef enum {
>  /* 25 */
>  X_QEMU_CAPS_BALLOON, /* -balloon available */
>  X_QEMU_CAPS_DEVICE, /* Is the -device arg available */
> -QEMU_CAPS_SDL, /* Is the new -sdl arg available */
> +X_QEMU_CAPS_SDL, /* Is the new -sdl arg available */

Hmm, even if -sdl is available, QEMU might have been built without SDL
support. I wonder if there is any way we can probe to see if SDL is
truely available

>  X_QEMU_CAPS_SMP_TOPOLOGY, /* -smp has sockets/cores/threads */
>  X_QEMU_CAPS_NETDEV, /* -netdev flag & netdev_add/remove */
>  
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index 422f8f2546..6851bd7bcf 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -8134,18 +8134,11 @@ 
> qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfigPtr cfg,
>  static int
>  qemuBuildGraphicsCommandLine(virQEMUDriverConfigPtr cfg,
>   virCommandPtr cmd,
> - virDomainDefPtr def,
>   virQEMUCapsPtr qemuCaps,
>   virDomainGraphicsDefPtr graphics)
>  {
>  switch (graphics->type) {
>  case VIR_DOMAIN_GRAPHICS_TYPE_SDL:
> -if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SDL)) {
> -virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> -   _("sdl not supported by '%s'"), def->emulator);
> -return -1;
> -}

...as this is potentially still relevant if built without SDL


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 :|

--
libvir-list mailing 

Re: [libvirt] [RFC] Defining firmware (OVMF, et al) metadata format & file

2018-04-09 Thread Laszlo Ersek
On 04/09/18 11:02, Kashyap Chamarthy wrote:

>   - It also provides a persistent command history in a convenient file:
> '~/.qmp-shell_history'

I noticed it used readline, but I didn't know about the dedicated
history file. Nice! Thanks!

Laszlo

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [libvirt PATCH v2 03/44] Force QMP capability probing

2018-04-09 Thread Andrea Bolognani
On Thu, 2018-04-05 at 14:22 +0200, Ján Tomko wrote:
> Remove the qmpOnly attribute of virQEMUCapsNewForBinaryInternal

s/attribute/argument/

> and instead always assume it's true.
> 
> This effectively sets the minimum QEMU version to 1.2.0,
> breaking support for QEMU in RHEL6.

I don't think we need to single out RHEL6 here, mentioning the
QEMU version is enough. In other words, just drop the second line.

>  cfg.mk|   2 +-
>  src/qemu/qemu_capabilities.c  | 866 
> +-
>  src/qemu/qemu_capspriv.h  |  17 +-
>  tests/Makefile.am |   8 +-
>  tests/qemucapsprobe.c |   2 +-
>  tests/qemuhelpdata/qemu-0.12.1| 198 ---
>  tests/qemuhelpdata/qemu-0.12.1-device |  62 ---
>  tests/qemuhelpdata/qemu-1.0   | 253 -
>  tests/qemuhelpdata/qemu-1.0-device| 148 -
>  tests/qemuhelpdata/qemu-1.1.0 | 269 --
>  tests/qemuhelpdata/qemu-1.1.0-device  | 170 --
>  tests/qemuhelpdata/qemu-1.2.0 | 272 --
>  tests/qemuhelpdata/qemu-kvm-0.12.3| 215 
>  tests/qemuhelpdata/qemu-kvm-0.12.3-device |  63 ---
>  tests/qemuhelpdata/qemu-kvm-0.13.0| 242 -
>  tests/qemuhelpdata/qemu-kvm-0.13.0-device |  90 
>  tests/qemuhelpdata/qemu-kvm-1.2.0 | 277 --
>  tests/qemuhelptest.c  | 437 ---
>  18 files changed, 8 insertions(+), 3583 deletions(-)

Good riddance o/

> diff --git a/cfg.mk b/cfg.mk
> index 4aa26d434a..980f34bb7d 100644
> --- a/cfg.mk
> +++ b/cfg.mk
> @@ -1225,7 +1225,7 @@ exclude_file_name_regexp--sc_require_config_h_first = \
>   ^(examples/|tools/virsh-edit\.c$$)
>  
>  exclude_file_name_regexp--sc_trailing_blank = \
> -  
> /qemuhelpdata/|/sysinfodata/.*\.data|/virhostcpudata/.*\.cpuinfo|^gnulib/local/.*/.*diff$$
> +  /sysinfodata/.*\.data|/virhostcpudata/.*\.cpuinfo|^gnulib/local/.*/.*diff$$
>  
>  exclude_file_name_regexp--sc_unmarked_diagnostics = \
>^(docs/apibuild.py|tests/virt-aa-helper-test|docs/js/.*\.js)$$

You missed

  exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF = \

(^tests/(qemuhelp|virhostcpu|virpcitest)data/|docs/js/.*\.js|docs/fonts/.*\.woff|\.diff|tests/virconfdata/no-newline\.conf$$)

With that taken care of and the commit message fixed,

  Reviewed-by: Andrea Bolognani 

-- 
Andrea Bolognani / Red Hat / Virtualization

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

[libvirt] [libvirt PATCH v2 44/44] Deprecate QEMU_CAPS_MACHINE_USB_OPT

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.3.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c  | 4 
 src/qemu/qemu_capabilities.h  | 2 +-
 src/qemu/qemu_command.c   | 3 +--
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml  | 1 -
 tests/qemuxml2argvdata/aarch64-aavmf-virtio-mmio.args | 2 +-
 tests/qemuxml2argvdata/aarch64-acpi-uefi.args | 2 +-
 [ ... ]
 tests/qemuxml2argvdata/watchdog-injectnmi.args| 2 +-
 tests/qemuxml2argvdata/watchdog.args  | 2 +-
 tests/qemuxml2argvdata/x86-kvm-32-on-64.args  | 2 +-
 tests/qemuxml2argvtest.c  | 3 +--
 634 files changed, 613 insertions(+), 639 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 59456b2d5d..721b1361c1 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3757,10 +3757,6 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps,
 
 virQEMUCapsInitQMPBasicArch(qemuCaps);
 
-/* USB option is supported v1.3.0 onwards */
-if (qemuCaps->version >= 1003000)
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_MACHINE_USB_OPT);
-
 /* WebSockets were introduced between 1.3.0 and 1.3.1 */
 if (qemuCaps->version >= 1003001)
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_VNC_WEBSOCKET);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 594cc19213..9476985b11 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -239,7 +239,7 @@ typedef enum {
 /* 135 */
 X_QEMU_CAPS_IPV6_MIGRATION, /* -incoming [::] */
 X_QEMU_CAPS_MACHINE_OPT, /* -machine */
-QEMU_CAPS_MACHINE_USB_OPT, /* -machine xxx,usb=on/off */
+X_QEMU_CAPS_MACHINE_USB_OPT, /* -machine xxx,usb=on/off */
 QEMU_CAPS_DEVICE_TPM_PASSTHROUGH, /* -tpmdev passthrough */
 QEMU_CAPS_DEVICE_TPM_TIS, /* -device tpm_tis */
 
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 7061089b03..4775d06121 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -7016,8 +7016,7 @@ qemuBuildMachineCommandLine(virCommandPtr cmd,
 /* To avoid the collision of creating USB controllers when calling
  * machine->init in QEMU, it needs to set usb=off
  */
-if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_USB_OPT))
-virBufferAddLit(, ",usb=off");
+virBufferAddLit(, ",usb=off");
 
 if (vmport) {
 if (!virQEMUCapsSupportsVmport(qemuCaps, def)) {
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index f49df85865..25ad2dff27 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -67,7 +67,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
index f9e2959b99..97b74749e1 

[libvirt] [libvirt PATCH v2 43/44] Deprecate QEMU_CAPS_DISPLAY

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c | 12 
 src/qemu/qemu_capabilities.h |  2 +-
 src/qemu/qemu_command.c  |  8 ++--
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml |  1 -
 tests/qemuxml2argvdata/aarch64-aavmf-virtio-mmio.args|  2 +-
 tests/qemuxml2argvdata/aarch64-acpi-uefi.args|  2 +-
 tests/qemuxml2argvdata/watchdog-injectnmi.args   |  2 +-
 [ ... ]
 tests/qemuxml2argvdata/watchdog.args |  2 +-
 tests/qemuxml2argvdata/x86-kvm-32-on-64.args |  2 +-
 tests/qemuxml2argvtest.c |  3 +--
 tests/qemuxml2xmltest.c  |  3 +--
 597 files changed, 572 insertions(+), 615 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 8c77449bde..59456b2d5d 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3623,16 +3623,6 @@ static qemuMonitorCallbacks callbacks = {
 };
 
 
-/* Capabilities that we assume are always enabled
- * for QEMU >= 1.2.0
- */
-static void
-virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
-{
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_DISPLAY);
-}
-
-
 /**
  * virQEMUCapsInitQMPArch:
  * @qemuCaps: QEMU capabilities
@@ -3762,8 +3752,6 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps,
 qemuCaps->package = package;
 qemuCaps->usedQMP = true;
 
-virQEMUCapsInitQMPBasic(qemuCaps);
-
 if (virQEMUCapsInitQMPArch(qemuCaps, mon) < 0)
 goto cleanup;
 
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 5a19494659..594cc19213 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -371,7 +371,7 @@ typedef enum {
 QEMU_CAPS_OBJECT_TLS_CREDS_X509, /* -object tls-creds-x509 */
 
 /* 230 */
-QEMU_CAPS_DISPLAY, /* -display */
+X_QEMU_CAPS_DISPLAY, /* -display */
 QEMU_CAPS_DEVICE_INTEL_IOMMU, /* -device intel-iommu */
 QEMU_CAPS_MACHINE_SMM_OPT, /* -machine xxx,smm=on/off/auto */
 QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY, /* virtio-*pci.disable-legacy */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 4376ab95ec..7061089b03 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -9797,12 +9797,8 @@ qemuBuildCommandLine(virQEMUDriverPtr driver,
  * these defaults ourselves...
  */
 if (!def->ngraphics) {
-if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DISPLAY)) {
-virCommandAddArg(cmd, "-display");
-virCommandAddArg(cmd, "none");
-} else {
-virCommandAddArg(cmd, "-nographic");
-}
+virCommandAddArg(cmd, "-display");
+virCommandAddArg(cmd, "none");
 
 if (cfg->nogfxAllowHostAudio)
 virCommandAddEnvPassBlockSUID(cmd, "QEMU_AUDIO_DRV", NULL);
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index 376731e034..f49df85865 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -103,7 +103,6 @@
   
   
   
-  
   
   
   
diff --git 

[libvirt] [libvirt PATCH v2 25/44] Deprecate QEMU_CAPS_CHARDEV_SPICEVMC

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   |  4 +---
 src/qemu/qemu_capabilities.h   |  2 +-
 src/qemu/qemu_command.c|  5 -
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   |  1 -
 tests/qemuxml2argvtest.c   | 16 
 tests/qemuxml2xmltest.c|  1 -
 30 files changed, 6 insertions(+), 47 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 8ce05d59c9..d123dfcef3 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -2101,8 +2101,7 @@ virQEMUCapsProbeQMPObjects(virQEMUCapsPtr qemuCaps,
 }
 
 /* Prefer -chardev spicevmc (detected earlier) over -device spicevmc */
-if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_SPICEVMC))
-virQEMUCapsClear(qemuCaps, QEMU_CAPS_DEVICE_SPICEVMC);
+virQEMUCapsClear(qemuCaps, QEMU_CAPS_DEVICE_SPICEVMC);
 
 return 0;
 }
@@ -3635,7 +3634,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_CHARDEV_SPICEVMC);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_CACHE_DIRECTSYNC);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_NO_SHUTDOWN);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_CACHE_UNSAFE);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 5a522dc21d..7a859cb2cc 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -126,7 +126,7 @@ typedef enum {
 
 /* 55 */
 QEMU_CAPS_CCID_PASSTHRU, /* -device ccid-card-passthru */
-QEMU_CAPS_CHARDEV_SPICEVMC, /* newer -chardev spicevmc */
+X_QEMU_CAPS_CHARDEV_SPICEVMC, /* newer -chardev spicevmc */
 QEMU_CAPS_DEVICE_SPICEVMC, /* older -device spicevmc*/
 QEMU_CAPS_VIRTIO_TX_ALG, /* -device virtio-net-pci,tx=string */
 X_QEMU_CAPS_DEVICE_QXL_VGA, /* primary qxl device named qxl-vga? */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 7df10e8044..c00f2c431f 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -5029,11 +5029,6 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager,
 break;
 
 case VIR_DOMAIN_CHR_TYPE_SPICEVMC:
-if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_SPICEVMC)) {
-virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-   _("spicevmc not supported in this QEMU binary"));
-goto cleanup;
-}
 virBufferAsprintf(, "spicevmc,id=%s,name=%s", charAlias,
   
virDomainChrSpicevmcTypeToString(dev->data.spicevmc));
 break;
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index e62d01b593..36a486d18f 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -13,7 +13,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
index 1b5342087a..11ab3f9b41 100644
--- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
@@ -13,7 +13,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
index 58ba9f7ffe..be13d02beb 100644
--- a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
+++ 

[libvirt] [libvirt PATCH v2 23/44] Deprecate QEMU_CAPS_VGA_NONE

2018-04-09 Thread Ján Tomko
Last use was removed by commit 0586cf98 deprecating
QEMU_CAPS_DEVICE.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   | 1 -
 src/qemu/qemu_capabilities.h   | 2 +-
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   | 1 -
 tests/qemuxml2argvtest.c   | 3 +--
 28 files changed, 2 insertions(+), 29 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 8f0c52b163..d014b7f4ee 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3635,7 +3635,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_VGA_NONE);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_AIO);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_CHARDEV_SPICEVMC);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_CACHE_DIRECTSYNC);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index a09c0e298f..fe383433c1 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -113,7 +113,7 @@ typedef enum {
 /* 45 */
 X_QEMU_CAPS_VGA_QXL, /* The 'qxl' arg for '-vga' */
 QEMU_CAPS_SPICE, /* Is -spice avail */
-QEMU_CAPS_VGA_NONE, /* The 'none' arg for '-vga' */
+X_QEMU_CAPS_VGA_NONE, /* The 'none' arg for '-vga' */
 X_QEMU_CAPS_MIGRATE_QEMU_FD, /* -incoming fd:n */
 QEMU_CAPS_BOOTINDEX, /* -device bootindex property */
 
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index edfd53315b..c32bc60a45 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -8,7 +8,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
index bd2d90954c..aa4fab4cb5 100644
--- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
@@ -8,7 +8,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
index 57d4168075..a5dcc49a76 100644
--- a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
@@ -8,7 +8,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
index 5854333123..19bc333a4c 100644
--- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
@@ -8,7 +8,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml 
b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml
index d69b980bc7..bd21afd695 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml
@@ -4,7 +4,6 @@
   0
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml 
b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
index 50e86a62ca..9ef5f84fb8 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
@@ -4,7 +4,6 @@
   0
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml 
b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
index f73ac4923b..2ec88ddae5 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
@@ -4,7 

[libvirt] [libvirt PATCH v2 28/44] Deprecate QEMU_CAPS_NO_SHUTDOWN

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c  |  1 -
 src/qemu/qemu_capabilities.h  |  2 +-
 src/qemu/qemu_command.c   |  4 +---
 src/qemu/qemu_driver.c|  8 +---
 src/qemu/qemu_process.c   | 15 ---
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml  |  1 -
 tests/qemuxml2argvdata/aarch64-aavmf-virtio-mmio.args |  1 +
 tests/qemuxml2argvdata/aarch64-acpi-uefi.args |  1 +
 [ ... ]
 tests/qemuxml2argvdata/watchdog-injectnmi.args|  1 +
 tests/qemuxml2argvdata/watchdog.args  |  1 +
 tests/qemuxml2argvdata/x86-kvm-32-on-64.args  |  1 +
 tests/qemuxml2argvtest.c  |  2 +-
 635 files changed, 612 insertions(+), 49 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index e1c155c42b..ffecb35132 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3630,7 +3630,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_NO_SHUTDOWN);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_CACHE_UNSAFE);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_FSDEV_READONLY);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_COPY_ON_READ);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 8c83f81704..c814227c21 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -150,7 +150,7 @@ typedef enum {
 QEMU_CAPS_PCI_OHCI, /* -device pci-ohci */
 QEMU_CAPS_USB_REDIR, /* -device usb-redir */
 QEMU_CAPS_USB_HUB, /* -device usb-hub */
-QEMU_CAPS_NO_SHUTDOWN, /* usable -no-shutdown */
+X_QEMU_CAPS_NO_SHUTDOWN, /* usable -no-shutdown */
 
 /* 75 */
 QEMU_CAPS_DRIVE_CACHE_UNSAFE, /* Is cache=unsafe supported? */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 3bb285aed4..157898ee2b 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -6223,10 +6223,8 @@ qemuBuildPMCommandLine(virCommandPtr cmd,
  * when QEMU stops. If we use no-shutdown, then we can
  * watch for this event and do a soft/warm reboot.
  */
-if (priv->monJSON && priv->allowReboot == VIR_TRISTATE_BOOL_YES &&
-virQEMUCapsGet(qemuCaps, QEMU_CAPS_NO_SHUTDOWN)) {
+if (priv->monJSON && priv->allowReboot == VIR_TRISTATE_BOOL_YES)
 virCommandAddArg(cmd, "-no-shutdown");
-}
 
 if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_NO_ACPI)) {
 if (def->features[VIR_DOMAIN_FEATURE_ACPI] != VIR_TRISTATE_SWITCH_ON)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index fd08817469..e3600d99de 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -2122,13 +2122,7 @@ qemuDomainReboot(virDomainPtr dom, unsigned int flags)
  */
 if ((!useAgent) ||
 (ret < 0 && (acpiRequested || !flags))) {
-#if WITH_YAJL
-if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_NO_SHUTDOWN)) {
-virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-   _("ACPI reboot is not supported with this QEMU 
binary"));
-goto endjob;
-}
-#else
+#if !WITH_YAJL
   

[libvirt] [libvirt PATCH v2 34/44] Deprecate QEMU_CAPS_WAKEUP

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   |  2 --
 src/qemu/qemu_capabilities.h   |  2 +-
 src/qemu/qemu_driver.c | 16 
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   |  1 -
 28 files changed, 1 insertion(+), 44 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 6fb39a1027..4dc94b8561 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -964,7 +964,6 @@ struct virQEMUCapsStringFlags {
 
 
 struct virQEMUCapsStringFlags virQEMUCapsCommands[] = {
-{ "system_wakeup", QEMU_CAPS_WAKEUP },
 { "transaction", QEMU_CAPS_TRANSACTION },
 { "block-stream", QEMU_CAPS_BLOCKJOB_ASYNC },
 { "dump-guest-memory", QEMU_CAPS_DUMP_GUEST_MEMORY },
@@ -3630,7 +3629,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_WAKEUP);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_NETDEV_BRIDGE);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_SECCOMP_SANDBOX);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DTB);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 79bab9359d..b36693f072 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -168,7 +168,7 @@ typedef enum {
 
 /* 85 */
 X_QEMU_CAPS_DRIVE_IOTUNE, /* -drive bps= and friends */
-QEMU_CAPS_WAKEUP, /* system_wakeup monitor command */
+X_QEMU_CAPS_WAKEUP, /* system_wakeup monitor command */
 QEMU_CAPS_SCSI_DISK_CHANNEL, /* Is scsi-disk.channel available? */
 QEMU_CAPS_SCSI_BLOCK, /* -device scsi-block */
 QEMU_CAPS_TRANSACTION, /* transaction monitor command */
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 06b5d1387d..2cfcbacaf0 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -18747,15 +18747,6 @@ qemuDomainPMSuspendForDuration(virDomainPtr dom,
 goto endjob;
 }
 
-if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_WAKEUP) &&
-(target == VIR_NODE_SUSPEND_TARGET_MEM ||
- target == VIR_NODE_SUSPEND_TARGET_HYBRID)) {
-virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s",
-   _("Unable to suspend domain due to "
- "missing system_wakeup monitor command"));
-goto endjob;
-}
-
 if (vm->def->pm.s3 || vm->def->pm.s4) {
 if (vm->def->pm.s3 == VIR_TRISTATE_BOOL_NO &&
 (target == VIR_NODE_SUSPEND_TARGET_MEM ||
@@ -18816,13 +18807,6 @@ qemuDomainPMWakeup(virDomainPtr dom,
 
 priv = vm->privateData;
 
-if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_WAKEUP)) {
-   virReportError(VIR_ERR_OPERATION_INVALID, "%s",
-  _("Unable to wake up domain due to "
-"missing system_wakeup monitor command"));
-   goto endjob;
-}
-
 qemuDomainObjEnterMonitor(driver, vm);
 ret = qemuMonitorSystemWakeup(priv->mon);
 if (qemuDomainObjExitMonitor(driver, vm) < 0)
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index 9fdb4cedeb..bcc623e020 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -29,7 +29,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
index 2a1eb0b655..0d65b93608 100644

[libvirt] [libvirt PATCH v2 20/44] Deprecate QEMU_CAPS_FSDEV

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   |  1 -
 src/qemu/qemu_capabilities.h   |  2 +-
 src/qemu/qemu_command.c|  6 --
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   |  1 -
 tests/qemuxml2argvtest.c   | 10 +-
 tests/qemuxml2xmltest.c|  6 --
 30 files changed, 2 insertions(+), 48 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 3adb5c9af5..b98563d441 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3635,7 +3635,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_FSDEV);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_NAME_PROCESS);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_SMBIOS_TYPE);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_VGA_NONE);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index b2093e52db..8238b4070d 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -104,7 +104,7 @@ typedef enum {
 X_QEMU_CAPS_ENABLE_KQEMU, /* -enable-kqemu flag */
 
 /* 40 */
-QEMU_CAPS_FSDEV, /* -fstype filesystem passthrough */
+X_QEMU_CAPS_FSDEV, /* -fstype filesystem passthrough */
 QEMU_CAPS_NESTING, /* -enable-nesting (SVM/VMX) */
 QEMU_CAPS_NAME_PROCESS, /* Is -name process= available */
 X_QEMU_CAPS_DRIVE_READONLY, /* -drive readonly=on|off */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index cb3c251d12..2a4c261384 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -2461,12 +2461,6 @@ qemuBuildFSDevCommandLine(virCommandPtr cmd,
 {
 size_t i;
 
-if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_FSDEV) && def->nfss) {
-virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-   _("filesystem passthrough not supported by this QEMU"));
-return -1;
-}
-
 for (i = 0; i < def->nfss; i++) {
 char *optstr;
 virDomainFSDefPtr fs = def->fss[i];
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index 7fe822cbf9..770d0df191 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -7,7 +7,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
index 711ad04f0f..cd093fd75c 100644
--- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
@@ -7,7 +7,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
index 4a6749a373..bfae3e804d 100644
--- a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
@@ -7,7 +7,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
index f7f687c85d..81044e9e7c 100644
--- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
@@ -7,7 +7,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml 
b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml
index 9947b7c961..b44373b5d6 100644
--- 

[libvirt] [libvirt PATCH v2 19/44] Deprecate QEMU_CAPS_BOOT_MENU

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c |  1 -
 src/qemu/qemu_capabilities.h |  2 +-
 src/qemu/qemu_command.c  | 15 ---
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml |  1 -
 tests/qemuxml2argvdata/bios-nvram-secure.args|  2 +-
 tests/qemuxml2argvdata/bios-nvram.args   |  2 +-
 tests/qemuxml2argvdata/bios.args |  2 +-
 tests/qemuxml2argvdata/disk-cdrom-tray.args  |  2 +-
 tests/qemuxml2argvdata/disk-copy_on_read.args|  2 +-
 tests/qemuxml2argvdata/disk-drive-detect-zeroes.args |  2 +-
 tests/qemuxml2argvdata/disk-drive-discard.args   |  2 +-
 tests/qemuxml2argvdata/disk-ioeventfd.args   |  2 +-
 tests/qemuxml2argvdata/event_idx.args|  2 +-
 tests/qemuxml2argvdata/graphics-spice-timeout.args   |  2 +-
 tests/qemuxml2argvdata/tpm-passthrough.args  |  2 +-
 tests/qemuxml2argvdata/virtio-lun.args   |  2 +-
 tests/qemuxml2argvtest.c | 16 ++--
 tests/qemuxml2xmltest.c  |  2 +-
 42 files changed, 24 insertions(+), 61 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 801134f205..3adb5c9af5 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3635,7 +3635,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_BOOT_MENU);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_FSDEV);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_NAME_PROCESS);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_SMBIOS_TYPE);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 71a069a5c7..b2093e52db 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -100,7 +100,7 @@ typedef enum {
 QEMU_CAPS_TDF, /* -tdf flag (user-mode pit catchup) */
 QEMU_CAPS_PCI_CONFIGFD, /* pci-assign.configfd */
 X_QEMU_CAPS_NODEFCONFIG, /* -nodefconfig */
-QEMU_CAPS_BOOT_MENU, /* -boot menu=on support */
+X_QEMU_CAPS_BOOT_MENU, /* -boot menu=on support */
 X_QEMU_CAPS_ENABLE_KQEMU, /* -enable-kqemu flag */
 
 /* 40 */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index bb69aff100..cb3c251d12 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -6374,17 +6374,10 @@ qemuBuildBootCommandLine(virCommandPtr cmd,
 }
 
 if (def->os.bootmenu) {
-if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_BOOT_MENU)) {
-if (def->os.bootmenu == VIR_TRISTATE_BOOL_YES)
-virBufferAddLit(_buf, "menu=on,");
-else
-virBufferAddLit(_buf, "menu=off,");
-} else {
-/* We cannot emit an error when bootmenu is enabled but
- * unsupported because of backward compatibility */
-VIR_WARN("bootmenu is enabled but not "
- "supported by this QEMU binary");
-}
+if (def->os.bootmenu == VIR_TRISTATE_BOOL_YES)
+virBufferAddLit(_buf, "menu=on,");
+else
+virBufferAddLit(_buf, "menu=off,");
 }
 
 if (def->os.bios.rt_set) {
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index 9c95914dc0..7fe822cbf9 100644
--- 

[libvirt] [libvirt PATCH v2 33/44] Deprecate QEMU_CAPS_DRIVE_IOTUNE

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   |  1 -
 src/qemu/qemu_capabilities.h   |  2 +-
 src/qemu/qemu_command.c|  9 -
 src/qemu/qemu_driver.c | 14 --
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   |  1 -
 tests/qemuxml2argvtest.c   |  6 +-
 30 files changed, 2 insertions(+), 55 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index b50652349a..6fb39a1027 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3630,7 +3630,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_IOTUNE);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_WAKEUP);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_NETDEV_BRIDGE);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_SECCOMP_SANDBOX);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 0e86f35420..79bab9359d 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -167,7 +167,7 @@ typedef enum {
 X_QEMU_CAPS_FSDEV_WRITEOUT, /* -fsdev writeout supported */
 
 /* 85 */
-QEMU_CAPS_DRIVE_IOTUNE, /* -drive bps= and friends */
+X_QEMU_CAPS_DRIVE_IOTUNE, /* -drive bps= and friends */
 QEMU_CAPS_WAKEUP, /* system_wakeup monitor command */
 QEMU_CAPS_SCSI_DISK_CHANNEL, /* Is scsi-disk.channel available? */
 QEMU_CAPS_SCSI_BLOCK, /* -device scsi-block */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index ad2fed5b67..af7b895f8a 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -1132,15 +1132,6 @@ qemuCheckDiskConfigBlkdeviotune(virDomainDiskDefPtr disk,
 }
 
 if (qemuCaps) {
-/* block I/O throttling */
-if (qemuDiskConfigBlkdeviotuneHasBasic(disk) &&
-!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DRIVE_IOTUNE)) {
-virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-   _("block I/O throttling not supported with this "
- "QEMU binary"));
-return -1;
-}
-
 /* block I/O throttling 1.7 */
 if (qemuDiskConfigBlkdeviotuneHasMax(disk) &&
 !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DRIVE_IOTUNE_MAX)) {
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index e3600d99de..06b5d1387d 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -18215,13 +18215,6 @@ qemuDomainSetBlockIoTune(virDomainPtr dom,
 supportMaxLengthOptions =
 virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DRIVE_IOTUNE_MAX_LENGTH);
 
-if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DRIVE_IOTUNE)) {
-virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-   _("block I/O throttling not supported with this "
- "QEMU binary"));
-goto endjob;
-}
-
 if (!supportMaxOptions &&
 (set_fields & (QEMU_BLOCK_IOTUNE_SET_BYTES_MAX |
QEMU_BLOCK_IOTUNE_SET_IOPS_MAX |
@@ -18400,13 +18393,6 @@ qemuDomainGetBlockIoTune(virDomainPtr dom,
 if (def) {
 /* If the VM is running, we can check if the current VM can use
  * optional parameters or not. */
-if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DRIVE_IOTUNE)) {
-virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
-

[libvirt] [libvirt PATCH v2 42/44] Deprecate QEMU_CAPS_HOST_PCI_MULTIDOMAIN

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.
Delete the negative test cases now that they always pass.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   |  1 -
 src/qemu/qemu_capabilities.h   |  2 +-
 src/qemu/qemu_command.c| 10 +-
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   |  1 -
 tests/qemuxml2argvtest.c   | 15 +++
 tests/qemuxml2xmltest.c|  3 ---
 30 files changed, 5 insertions(+), 51 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index c3198f554c..8c77449bde 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3629,7 +3629,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_HOST_PCI_MULTIDOMAIN);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DISPLAY);
 }
 
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index c32cfadd1e..5a19494659 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -280,7 +280,7 @@ typedef enum {
 
 /* 165 */
 QEMU_CAPS_DEVICE_USB_KBD, /* -device usb-kbd */
-QEMU_CAPS_HOST_PCI_MULTIDOMAIN, /* support domain > 0 in host pci address 
*/
+X_QEMU_CAPS_HOST_PCI_MULTIDOMAIN, /* support domain > 0 in host pci 
address */
 QEMU_CAPS_MSG_TIMESTAMP, /* -msg timestamp */
 QEMU_CAPS_ACTIVE_COMMIT, /* block-commit works without 'top' */
 QEMU_CAPS_CHANGE_BACKING_FILE, /* change name of backing file in metadata 
*/
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index d9ee988288..4376ab95ec 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -4466,16 +4466,8 @@ qemuBuildPCIHostdevDevStr(const virDomainDef *def,
 }
 
 virBufferAddLit(, ",host=");
-if (pcisrc->addr.domain) {
-if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_HOST_PCI_MULTIDOMAIN)) {
-virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-   _("non-zero domain='%.4x' in host device PCI 
address "
- "not supported in this QEMU binary"),
-   pcisrc->addr.domain);
-goto error;
-}
+if (pcisrc->addr.domain)
 virBufferAsprintf(, "%.4x:", pcisrc->addr.domain);
-}
 virBufferAsprintf(, "%.2x:%.2x.%.1x",
   pcisrc->addr.bus, pcisrc->addr.slot,
   pcisrc->addr.function);
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index cc1687237f..376731e034 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -87,7 +87,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
index 70de6f5d6f..a42f9d1d14 100644
--- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
@@ -91,7 +91,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
index e2528f10d4..cdae63e399 100644
--- a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
@@ -92,7 +92,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml 

[libvirt] [libvirt PATCH v2 26/44] Deprecate QEMU_CAPS_DEVICE_SPICEVMC

2018-04-09 Thread Ján Tomko
The (now assumed) QEMU_CAPS_CHARDEV_SPICEVMC is preferred.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c |  4 --
 src/qemu/qemu_capabilities.h |  2 +-
 src/qemu/qemu_command.c  | 71 
 tests/qemuxml2argvdata/channel-spicevmc-old.args | 30 --
 tests/qemuxml2argvdata/channel-spicevmc-old.xml  | 35 
 tests/qemuxml2argvtest.c |  4 --
 6 files changed, 25 insertions(+), 121 deletions(-)
 delete mode 100644 tests/qemuxml2argvdata/channel-spicevmc-old.args
 delete mode 100644 tests/qemuxml2argvdata/channel-spicevmc-old.xml

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index d123dfcef3..fca73cf9b1 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -1025,7 +1025,6 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[] = {
 { "virtio-scsi-ccw", QEMU_CAPS_VIRTIO_SCSI },
 { "virtio-scsi-device", QEMU_CAPS_VIRTIO_SCSI },
 { "megasas", QEMU_CAPS_SCSI_MEGASAS },
-{ "spicevmc", QEMU_CAPS_DEVICE_SPICEVMC },
 { "qxl", QEMU_CAPS_DEVICE_QXL },
 { "sga", QEMU_CAPS_SGA },
 { "scsi-block", QEMU_CAPS_SCSI_BLOCK },
@@ -2100,9 +2099,6 @@ virQEMUCapsProbeQMPObjects(virQEMUCapsPtr qemuCaps,
 virStringListFreeCount(values, nvalues);
 }
 
-/* Prefer -chardev spicevmc (detected earlier) over -device spicevmc */
-virQEMUCapsClear(qemuCaps, QEMU_CAPS_DEVICE_SPICEVMC);
-
 return 0;
 }
 
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 7a859cb2cc..83b2980180 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -127,7 +127,7 @@ typedef enum {
 /* 55 */
 QEMU_CAPS_CCID_PASSTHRU, /* -device ccid-card-passthru */
 X_QEMU_CAPS_CHARDEV_SPICEVMC, /* newer -chardev spicevmc */
-QEMU_CAPS_DEVICE_SPICEVMC, /* older -device spicevmc*/
+X_QEMU_CAPS_DEVICE_SPICEVMC, /* older -device spicevmc*/
 QEMU_CAPS_VIRTIO_TX_ALG, /* -device virtio-net-pci,tx=string */
 X_QEMU_CAPS_DEVICE_QXL_VGA, /* primary qxl device named qxl-vga? */
 
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index c00f2c431f..03592a20ab 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -5359,8 +5359,7 @@ qemuBuildMonitorCommandLine(virLogManagerPtr logManager,
 
 static char *
 qemuBuildVirtioSerialPortDevStr(const virDomainDef *def,
-virDomainChrDefPtr dev,
-virQEMUCapsPtr qemuCaps)
+virDomainChrDefPtr dev)
 {
 virBuffer buf = VIR_BUFFER_INITIALIZER;
 const char *contAlias;
@@ -5370,13 +5369,7 @@ qemuBuildVirtioSerialPortDevStr(const virDomainDef *def,
 virBufferAddLit(, "virtconsole");
 break;
 case VIR_DOMAIN_CHR_DEVICE_TYPE_CHANNEL:
-/* Legacy syntax  '-device spicevmc' */
-if (dev->source->type == VIR_DOMAIN_CHR_TYPE_SPICEVMC &&
-virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_SPICEVMC)) {
-virBufferAddLit(, "spicevmc");
-} else {
-virBufferAddLit(, "virtserialport");
-}
+virBufferAddLit(, "virtserialport");
 break;
 default:
 virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
@@ -5414,19 +5407,13 @@ qemuBuildVirtioSerialPortDevStr(const virDomainDef *def,
 goto error;
 }
 
-if (!(dev->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CHANNEL &&
-  dev->source->type == VIR_DOMAIN_CHR_TYPE_SPICEVMC &&
-  virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_SPICEVMC))) {
-virBufferAsprintf(, ",chardev=char%s,id=%s",
-  dev->info.alias, dev->info.alias);
-if (dev->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CHANNEL &&
-(dev->source->type == VIR_DOMAIN_CHR_TYPE_SPICEVMC ||
- dev->target.name)) {
-virBufferAsprintf(, ",name=%s", dev->target.name
-  ? dev->target.name : "com.redhat.spice.0");
-}
-} else {
-virBufferAsprintf(, ",id=%s", dev->info.alias);
+virBufferAsprintf(, ",chardev=char%s,id=%s",
+  dev->info.alias, dev->info.alias);
+if (dev->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CHANNEL &&
+(dev->source->type == VIR_DOMAIN_CHR_TYPE_SPICEVMC ||
+ dev->target.name)) {
+virBufferAsprintf(, ",name=%s", dev->target.name
+  ? dev->target.name : "com.redhat.spice.0");
 }
 if (virBufferCheckError() < 0)
 goto error;
@@ -9147,23 +9134,15 @@ qemuBuildChannelsCommandLine(virLogManagerPtr 
logManager,
 break;
 
 case VIR_DOMAIN_CHR_CHANNEL_TARGET_TYPE_VIRTIO:
-if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_SPICEVMC) &&
-channel->source->type == VIR_DOMAIN_CHR_TYPE_SPICEVMC) {
-/* spicevmc was originally 

[libvirt] [libvirt PATCH v2 37/44] Deprecate QEMU_CAPS_DTB

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   |  1 -
 src/qemu/qemu_capabilities.h   |  2 +-
 src/qemu/qemu_command.c| 11 ++-
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   |  1 -
 tests/qemuxml2argvtest.c   | 16 
 tests/qemuxml2xmltest.c|  3 ---
 30 files changed, 7 insertions(+), 51 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 2a26aecdd2..ca8fdf62a8 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3629,7 +3629,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_DTB);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_IPV6_MIGRATION);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_MACHINE_OPT);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DUMP_GUEST_CORE);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 4f3934f1a9..645156c42f 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -233,7 +233,7 @@ typedef enum {
 QEMU_CAPS_OBJECT_RNG_RANDOM, /* the rng-random backend for virtio rng */
 QEMU_CAPS_OBJECT_RNG_EGD, /* EGD protocol daemon for rng */
 QEMU_CAPS_VIRTIO_CCW, /* -device virtio-*-ccw */
-QEMU_CAPS_DTB, /* -dtb file */
+X_QEMU_CAPS_DTB, /* -dtb file */
 QEMU_CAPS_SCSI_MEGASAS, /* -device megasas */
 
 /* 135 */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index cea3517258..45722aa1fe 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -6347,15 +6347,8 @@ qemuBuildBootCommandLine(virCommandPtr cmd,
 virCommandAddArgList(cmd, "-initrd", def->os.initrd, NULL);
 if (def->os.cmdline)
 virCommandAddArgList(cmd, "-append", def->os.cmdline, NULL);
-if (def->os.dtb) {
-if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DTB)) {
-virCommandAddArgList(cmd, "-dtb", def->os.dtb, NULL);
-} else {
-virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-   _("dtb is not supported with this QEMU binary"));
-goto error;
-}
-}
+if (def->os.dtb)
+virCommandAddArgList(cmd, "-dtb", def->os.dtb, NULL);
 if (def->os.slic_table) {
 virBuffer buf = VIR_BUFFER_INITIALIZER;
 virCommandAddArg(cmd, "-acpitable");
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index 69ee300ce7..21f0d7ded8 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -67,7 +67,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
index 21c4ad9730..a903d80e2c 100644
--- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
@@ -68,7 +68,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
index f3ee50041d..197f43846d 100644
--- a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
@@ -68,7 +68,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
index 

[libvirt] [libvirt PATCH v2 41/44] Deprecate QEMU_CAPS_VNC_SHARE_POLICY

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   | 1 -
 src/qemu/qemu_capabilities.h   | 2 +-
 src/qemu/qemu_command.c| 7 ---
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   | 1 -
 tests/qemuxml2argvtest.c   | 2 +-
 29 files changed, 2 insertions(+), 35 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index c46e99362d..c3198f554c 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3629,7 +3629,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_VNC_SHARE_POLICY);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_HOST_PCI_MULTIDOMAIN);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DISPLAY);
 }
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 743f37aca3..c32cfadd1e 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -258,7 +258,7 @@ typedef enum {
 QEMU_CAPS_REALTIME_MLOCK, /* -realtime mlock=on|off */
 
 /* 150 */
-QEMU_CAPS_VNC_SHARE_POLICY, /* set display sharing policy */
+X_QEMU_CAPS_VNC_SHARE_POLICY, /* set display sharing policy */
 QEMU_CAPS_DEVICE_DEL_EVENT, /* DEVICE_DELETED event */
 QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, /* -device i82801b11-bridge */
 QEMU_CAPS_I440FX_PCI_HOLE64_SIZE, /* i440FX-pcihost.pci-hole64-size */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 5bd129c72a..d9ee988288 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -7629,13 +7629,6 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPtr 
cfg,
 }
 
 if (graphics->data.vnc.sharePolicy) {
-if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_VNC_SHARE_POLICY)) {
-virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-   _("vnc display sharing policy is not "
- "supported with this QEMU"));
-goto error;
-}
-
 virBufferAsprintf(, ",share=%s",
   virDomainGraphicsVNCSharePolicyTypeToString(
   graphics->data.vnc.sharePolicy));
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index 779f5032b1..cc1687237f 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -77,7 +77,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
index a2076c7a5a..70de6f5d6f 100644
--- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
@@ -77,7 +77,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
index f57088701b..e2528f10d4 100644
--- a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
@@ -78,7 +78,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
index 8d8636655f..91824d7371 100644
--- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
@@ -80,7 +80,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml 

[libvirt] [libvirt PATCH v2 39/44] Deprecate QEMU_CAPS_MACHINE_OPT

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   |   1 -
 src/qemu/qemu_capabilities.h   |   2 +-
 src/qemu/qemu_command.c| 317 +
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml |   1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  |   1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml |   1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  |   1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  |   1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml|   1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml|   1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml|   1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml|   1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml|   1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   |   1 -
 .../aarch64-aavmf-virtio-mmio.args |   2 +-
 tests/qemuxml2argvdata/aarch64-acpi-uefi.args  |   2 +-
 [ ... etc ... ]
 tests/qemuxml2argvdata/watchdog-injectnmi.args |   2 +-
 tests/qemuxml2argvdata/watchdog.args   |   2 +-
 tests/qemuxml2argvtest.c   | 142 +
 tests/qemuxml2xmltest.c|   2 -
 597 files changed, 773 insertions(+), 853 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index ce9fad52a3..6af3cc9d61 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3629,7 +3629,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_MACHINE_OPT);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DUMP_GUEST_CORE);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_VNC_SHARE_POLICY);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_HOST_PCI_MULTIDOMAIN);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index c57554db4f..f1a55c421d 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -238,7 +238,7 @@ typedef enum {
 
 /* 135 */
 X_QEMU_CAPS_IPV6_MIGRATION, /* -incoming [::] */
-QEMU_CAPS_MACHINE_OPT, /* -machine */
+X_QEMU_CAPS_MACHINE_OPT, /* -machine */
 QEMU_CAPS_MACHINE_USB_OPT, /* -machine xxx,usb=on/off */
 QEMU_CAPS_DEVICE_TPM_PASSTHROUGH, /* -tpmdev passthrough */
 QEMU_CAPS_DEVICE_TPM_TIS, /* -device tpm_tis */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 45722aa1fe..e6c70f84bf 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -6996,6 +6996,9 @@ qemuBuildMachineCommandLine(virCommandPtr cmd,
 const virDomainDef *def,
 virQEMUCapsPtr qemuCaps)
 {
+virTristateSwitch vmport = def->features[VIR_DOMAIN_FEATURE_VMPORT];
+virTristateSwitch smm = def->features[VIR_DOMAIN_FEATURE_SMM];
+virCPUDefPtr cpu = def->cpu;
 virBuffer buf = VIR_BUFFER_INITIALIZER;
 bool obsoleteAccel = false;
 size_t i;
@@ -7008,228 +7011,186 @@ qemuBuildMachineCommandLine(virCommandPtr cmd,
 if (!def->os.machine)
 return 0;
 
-if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_OPT)) {
-/* if no parameter to the machine type is needed, we still use
- * '-M' to keep the most of the compatibility with older versions.
- */
-virCommandAddArgList(cmd, "-M", def->os.machine, NULL);
-if (def->mem.dump_core) {
-virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-   _("dump-guest-core is not available "
- "with this QEMU binary"));
-return -1;
-}
-
-if (def->mem.nosharepages) {
-virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-   _("disable shared memory is not available "
- "with this QEMU binary"));
-return -1;
-}
+virCommandAddArg(cmd, "-machine");
+virBufferAdd(, def->os.machine, -1);
 
+if (def->virtType == VIR_DOMAIN_VIRT_QEMU)
+  

[libvirt] [libvirt PATCH v2 22/44] Deprecate QEMU_CAPS_SMBIOS_TYPE

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   |  1 -
 src/qemu/qemu_capabilities.h   |  2 +-
 src/qemu/qemu_command.c| 12 ++--
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   |  1 -
 tests/qemuxml2argvtest.c   |  6 +++---
 29 files changed, 6 insertions(+), 40 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index e78a5edbc2..8f0c52b163 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3635,7 +3635,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_SMBIOS_TYPE);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_VGA_NONE);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_AIO);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_CHARDEV_SPICEVMC);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index a0bc7d75cc..a09c0e298f 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -108,7 +108,7 @@ typedef enum {
 QEMU_CAPS_NESTING, /* -enable-nesting (SVM/VMX) */
 X_QEMU_CAPS_NAME_PROCESS, /* Is -name process= available */
 X_QEMU_CAPS_DRIVE_READONLY, /* -drive readonly=on|off */
-QEMU_CAPS_SMBIOS_TYPE, /* Is -smbios type= available */
+X_QEMU_CAPS_SMBIOS_TYPE, /* Is -smbios type= available */
 
 /* 45 */
 X_QEMU_CAPS_VGA_QXL, /* The 'qxl' arg for '-vga' */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index c17676c943..d4f7b98b23 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -5905,8 +5905,7 @@ qemuBuildSmbiosChassisStr(virSysinfoChassisDefPtr def)
 static int
 qemuBuildSmbiosCommandLine(virCommandPtr cmd,
virQEMUDriverPtr driver,
-   const virDomainDef *def,
-   virQEMUCapsPtr qemuCaps)
+   const virDomainDef *def)
 {
 size_t i;
 virSysinfoDefPtr source = NULL;
@@ -5916,13 +5915,6 @@ qemuBuildSmbiosCommandLine(virCommandPtr cmd,
 def->os.smbios_mode == VIR_DOMAIN_SMBIOS_EMULATE)
 return 0;
 
-if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SMBIOS_TYPE)) {
-virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-   _("the QEMU binary %s does not support smbios 
settings"),
-   def->emulator);
-return -1;
-}
-
 /* should we really error out or just warn in those cases ? */
 if (def->os.smbios_mode == VIR_DOMAIN_SMBIOS_HOST) {
 if (driver->hostsysinfo == NULL) {
@@ -9945,7 +9937,7 @@ qemuBuildCommandLine(virQEMUDriverPtr driver,
 virUUIDFormat(def->uuid, uuid);
 virCommandAddArgList(cmd, "-uuid", uuid, NULL);
 
-if (qemuBuildSmbiosCommandLine(cmd, driver, def, qemuCaps) < 0)
+if (qemuBuildSmbiosCommandLine(cmd, driver, def) < 0)
 goto error;
 
 /*
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index b03e0db346..edfd53315b 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -7,7 +7,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
index cc80ca13d2..bd2d90954c 100644
--- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
+++ 

[libvirt] [libvirt PATCH v2 32/44] Deprecate QEMU_CAPS_FSDEV_WRITEOUT

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   |  1 -
 src/qemu/qemu_capabilities.h   |  2 +-
 src/qemu/qemu_command.c| 16 
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   |  1 -
 tests/qemuxml2argvtest.c   | 10 +-
 tests/qemuxml2xmltest.c|  6 --
 30 files changed, 6 insertions(+), 54 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index b3f9a6f4e9..b50652349a 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3630,7 +3630,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_FSDEV_WRITEOUT);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_IOTUNE);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_WAKEUP);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_NETDEV_BRIDGE);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index e5c5d197fc..0e86f35420 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -164,7 +164,7 @@ typedef enum {
 X_QEMU_CAPS_VIRTIO_BLK_SG_IO, /* SG_IO commands */
 X_QEMU_CAPS_DRIVE_COPY_ON_READ, /* -drive copy-on-read */
 X_QEMU_CAPS_CPU_HOST, /* support for -cpu host */
-QEMU_CAPS_FSDEV_WRITEOUT, /* -fsdev writeout supported */
+X_QEMU_CAPS_FSDEV_WRITEOUT, /* -fsdev writeout supported */
 
 /* 85 */
 QEMU_CAPS_DRIVE_IOTUNE, /* -drive bps= and friends */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 22b25ef46a..ad2fed5b67 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -2312,8 +2312,7 @@ qemuBuildDiskDriveCommandLine(virCommandPtr cmd,
 
 
 static char *
-qemuBuildFSStr(virDomainFSDefPtr fs,
-   virQEMUCapsPtr qemuCaps)
+qemuBuildFSStr(virDomainFSDefPtr fs)
 {
 virBuffer opt = VIR_BUFFER_INITIALIZER;
 const char *driver = qemuDomainFSDriverTypeToString(fs->fsdriver);
@@ -2351,15 +2350,8 @@ qemuBuildFSStr(virDomainFSDefPtr fs,
 }
 }
 
-if (fs->wrpolicy) {
-if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_FSDEV_WRITEOUT)) {
-virBufferAsprintf(, ",writeout=%s", wrpolicy);
-} else {
-virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-   _("filesystem writeout not supported"));
-goto error;
-}
-}
+if (fs->wrpolicy)
+virBufferAsprintf(, ",writeout=%s", wrpolicy);
 
 virBufferAsprintf(, ",id=%s%s", QEMU_FSDEV_HOST_PREFIX, 
fs->info.alias);
 virBufferAsprintf(, ",path=%s", fs->src->path);
@@ -2430,7 +2422,7 @@ qemuBuildFSDevCommandLine(virCommandPtr cmd,
 virDomainFSDefPtr fs = def->fss[i];
 
 virCommandAddArg(cmd, "-fsdev");
-if (!(optstr = qemuBuildFSStr(fs, qemuCaps)))
+if (!(optstr = qemuBuildFSStr(fs)))
 return -1;
 virCommandAddArg(cmd, optstr);
 VIR_FREE(optstr);
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index 9ffe77a890..8a5e3f87ee 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -29,7 +29,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
index 81fa3e5988..8306c9a6eb 100644
--- 

[libvirt] [libvirt PATCH v2 15/44] Deprecate QEMU_CAPS_RTC

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   |  1 -
 src/qemu/qemu_capabilities.h   |  2 +-
 src/qemu/qemu_command.c| 41 --
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   |  1 -
 .../aarch64-aavmf-virtio-mmio.args |  1 +
 tests/qemuxml2argvdata/aarch64-acpi-uefi.args  |  1 +
 [ ... etc ... ]
 tests/qemuxml2argvdata/watchdog.args   |  1 +
 tests/qemuxml2argvdata/x86-kvm-32-on-64.args   |  1 +
 tests/qemuxml2argvtest.c   | 13 ---
 tests/qemuxml2xmltest.c|  1 -
 630 files changed, 613 insertions(+), 71 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 63eb1a5768..8ac6b7008a 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3635,7 +3635,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_RTC);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_VHOST_NET);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_NODEFCONFIG);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_BOOT_MENU);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 71bea5a623..231ff306e4 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -90,7 +90,7 @@ typedef enum {
 X_QEMU_CAPS_NETDEV, /* -netdev flag & netdev_add/remove */
 
 /* 30 */
-QEMU_CAPS_RTC, /* The -rtc flag for clock options */
+X_QEMU_CAPS_RTC, /* The -rtc flag for clock options */
 QEMU_CAPS_VHOST_NET, /* vhost-net support available */
 QEMU_CAPS_RTC_TD_HACK, /* -rtc-td-hack available */
 QEMU_CAPS_NO_HPET, /* -no-hpet flag is supported */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 6851bd7bcf..c0851d296d 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -6151,32 +6151,13 @@ qemuBuildClockCommandLine(virCommandPtr cmd,
   virQEMUCapsPtr qemuCaps)
 {
 size_t i;
+char *rtcopt;
 
-if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_RTC)) {
-char *rtcopt;
-virCommandAddArg(cmd, "-rtc");
-if (!(rtcopt = qemuBuildClockArgStr(>clock)))
-return -1;
-virCommandAddArg(cmd, rtcopt);
-VIR_FREE(rtcopt);
-} else {
-switch (def->clock.offset) {
-case VIR_DOMAIN_CLOCK_OFFSET_LOCALTIME:
-case VIR_DOMAIN_CLOCK_OFFSET_TIMEZONE:
-virCommandAddArg(cmd, "-localtime");
-break;
-
-case VIR_DOMAIN_CLOCK_OFFSET_UTC:
-/* Nothing, its the default */
-break;
-
-default:
-virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-   _("unsupported clock offset '%s'"),
-   
virDomainClockOffsetTypeToString(def->clock.offset));
-return -1;
-}
-}
+virCommandAddArg(cmd, "-rtc");
+if (!(rtcopt = qemuBuildClockArgStr(>clock)))
+return -1;
+virCommandAddArg(cmd, rtcopt);
+VIR_FREE(rtcopt);
 
 if (def->clock.offset == VIR_DOMAIN_CLOCK_OFFSET_TIMEZONE &&
 def->clock.data.timezone) {
@@ -6218,16 +6199,6 @@ qemuBuildClockCommandLine(virCommandPtr cmd,

virDomainTimerTickpolicyTypeToString(def->clock.timers[i]->tickpolicy));
 return -1;
 }
-} else if 

[libvirt] [libvirt PATCH v2 18/44] Deprecate QEMU_CAPS_NODEFCONFIG

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   |   1 -
 src/qemu/qemu_capabilities.h   |   2 +-
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml |   1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  |   1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml |   1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  |   1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  |   1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml|   1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml|   1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml|   1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml|   1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml|   1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   |   1 -
 tests/qemuxml2argvtest.c   | 366 +++--
 tests/qemuxml2xmltest.c|  63 ++--
 29 files changed, 134 insertions(+), 323 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index dc83dd158d..801134f205 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3635,7 +3635,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_NODEFCONFIG);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_BOOT_MENU);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_FSDEV);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_NAME_PROCESS);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 6f0be3763d..71a069a5c7 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -99,7 +99,7 @@ typedef enum {
 /* 35 */
 QEMU_CAPS_TDF, /* -tdf flag (user-mode pit catchup) */
 QEMU_CAPS_PCI_CONFIGFD, /* pci-assign.configfd */
-QEMU_CAPS_NODEFCONFIG, /* -nodefconfig */
+X_QEMU_CAPS_NODEFCONFIG, /* -nodefconfig */
 QEMU_CAPS_BOOT_MENU, /* -boot menu=on support */
 X_QEMU_CAPS_ENABLE_KQEMU, /* -enable-kqemu flag */
 
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index 3cc8c22c26..9c95914dc0 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -7,7 +7,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
index 617759bf86..c1d8135948 100644
--- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
@@ -7,7 +7,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
index a02826bb09..f65dfdffd8 100644
--- a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
@@ -7,7 +7,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
index 49458e7439..7d4a1cc0fd 100644
--- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
@@ -7,7 +7,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml 
b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml
index c74e636dc1..4069facdda 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml
@@ -4,7 +4,6 @@
   0
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml 
b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
index cfac4d99ae..a11ed25cf6 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
@@ -4,7 +4,6 @@
   0
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml 
b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
index 0b105afaec..c9ebfa2b32 100644
--- 

[libvirt] [libvirt PATCH v2 24/44] Deprecate QEMU_CAPS_DRIVE_AIO

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   | 1 -
 src/qemu/qemu_capabilities.h   | 2 +-
 src/qemu/qemu_command.c| 7 ---
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   | 1 -
 tests/qemuxml2argvtest.c   | 3 +--
 29 files changed, 2 insertions(+), 36 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index d014b7f4ee..8ce05d59c9 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3635,7 +3635,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_AIO);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_CHARDEV_SPICEVMC);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_CACHE_DIRECTSYNC);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_NO_SHUTDOWN);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index fe383433c1..5a522dc21d 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -119,7 +119,7 @@ typedef enum {
 
 /* 50 */
 QEMU_CAPS_HDA_DUPLEX, /* -device hda-duplex */
-QEMU_CAPS_DRIVE_AIO, /* -drive aio= supported */
+X_QEMU_CAPS_DRIVE_AIO, /* -drive aio= supported */
 X_QEMU_CAPS_PCI_MULTIBUS, /* bus=pci.0 vs bus=pci */
 QEMU_CAPS_PCI_BOOTINDEX, /* pci-assign.bootindex */
 QEMU_CAPS_CCID_EMULATED, /* -device ccid-card-emulated */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index d4f7b98b23..7df10e8044 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -1382,13 +1382,6 @@ qemuCheckDiskConfig(virDomainDiskDefPtr disk,
_("detect_zeroes is not supported by this QEMU 
binary"));
 return -1;
 }
-
-if (disk->iomode &&
-!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DRIVE_AIO)) {
-virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-   _("disk aio mode not supported with this QEMU 
binary"));
-return -1;
-}
 }
 
 if (disk->serial &&
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index c32bc60a45..e62d01b593 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -10,7 +10,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
index aa4fab4cb5..1b5342087a 100644
--- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
@@ -10,7 +10,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
index a5dcc49a76..58ba9f7ffe 100644
--- a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
@@ -10,7 +10,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
index 19bc333a4c..407a28da82 100644
--- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
@@ -10,7 +10,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml 
b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml
index bd21afd695..d237323da0 100644
--- 

[libvirt] [libvirt PATCH v2 16/44] Deprecate QEMU_CAPS_RTC_TD_HACK

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 0.12.0.

Deprecated by QEMU commit 1ed2fc1 included in 0.12.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.h |  2 +-
 src/qemu/qemu_command.c  | 21 +
 2 files changed, 2 insertions(+), 21 deletions(-)

diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 231ff306e4..32f152c142 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -92,7 +92,7 @@ typedef enum {
 /* 30 */
 X_QEMU_CAPS_RTC, /* The -rtc flag for clock options */
 QEMU_CAPS_VHOST_NET, /* vhost-net support available */
-QEMU_CAPS_RTC_TD_HACK, /* -rtc-td-hack available */
+X_QEMU_CAPS_RTC_TD_HACK, /* -rtc-td-hack available */
 QEMU_CAPS_NO_HPET, /* -no-hpet flag is supported */
 QEMU_CAPS_NO_KVM_PIT, /* -no-kvm-pit-reinjection supported */
 
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index c0851d296d..ee8933cc54 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -6180,26 +6180,7 @@ qemuBuildClockCommandLine(virCommandPtr cmd,
 break;
 
 case VIR_DOMAIN_TIMER_NAME_RTC:
-/* This has already been taken care of (in qemuBuildClockArgStr)
-   if QEMU_CAPS_RTC is set (mutually exclusive with
-   QEMUD_FLAG_RTC_TD_HACK) */
-if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_RTC_TD_HACK)) {
-switch (def->clock.timers[i]->tickpolicy) {
-case -1:
-case VIR_DOMAIN_TIMER_TICKPOLICY_DELAY:
-/* the default - do nothing */
-break;
-case VIR_DOMAIN_TIMER_TICKPOLICY_CATCHUP:
-virCommandAddArg(cmd, "-rtc-td-hack");
-break;
-case VIR_DOMAIN_TIMER_TICKPOLICY_MERGE:
-case VIR_DOMAIN_TIMER_TICKPOLICY_DISCARD:
-virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-   _("unsupported rtc tickpolicy '%s'"),
-   
virDomainTimerTickpolicyTypeToString(def->clock.timers[i]->tickpolicy));
-return -1;
-}
-}
+/* Already handled in qemuBuildClockArgStr */
 break;
 
 case VIR_DOMAIN_TIMER_NAME_PIT:
-- 
2.16.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

[libvirt] [libvirt PATCH v2 31/44] Deprecate QEMU_CAPS_DRIVE_COPY_ON_READ

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   | 1 -
 src/qemu/qemu_capabilities.h   | 2 +-
 src/qemu/qemu_command.c| 7 ---
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   | 1 -
 tests/qemuxml2argvtest.c   | 4 +---
 29 files changed, 2 insertions(+), 37 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index b10ba25294..b3f9a6f4e9 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3630,7 +3630,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_COPY_ON_READ);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_FSDEV_WRITEOUT);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_IOTUNE);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_WAKEUP);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 6bd5f2433e..e5c5d197fc 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -162,7 +162,7 @@ typedef enum {
 /* 80 */
 QEMU_CAPS_VIRTIO_BLK_SCSI, /* virtio-blk-pci.scsi */
 X_QEMU_CAPS_VIRTIO_BLK_SG_IO, /* SG_IO commands */
-QEMU_CAPS_DRIVE_COPY_ON_READ, /* -drive copy-on-read */
+X_QEMU_CAPS_DRIVE_COPY_ON_READ, /* -drive copy-on-read */
 X_QEMU_CAPS_CPU_HOST, /* support for -cpu host */
 QEMU_CAPS_FSDEV_WRITEOUT, /* -fsdev writeout supported */
 
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 228eae45cb..22b25ef46a 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -1348,13 +1348,6 @@ qemuCheckDiskConfig(virDomainDiskDefPtr disk,
 return -1;
 }
 
-if (disk->copy_on_read &&
-!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DRIVE_COPY_ON_READ)) {
-virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-   _("copy_on_read is not supported by this QEMU 
binary"));
-return -1;
-}
-
 if (disk->discard &&
 !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DRIVE_DISCARD)) {
 virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index f9d7babc98..9ffe77a890 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -29,7 +29,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
index da4cf265d4..81fa3e5988 100644
--- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
@@ -29,7 +29,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
index cbf81f0f05..7f06a83296 100644
--- a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
@@ -29,7 +29,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
index 306fc30895..aa09231fa0 100644
--- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
@@ -29,7 +29,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml 
b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml

[libvirt] [libvirt PATCH v2 38/44] Deprecate QEMU_CAPS_IPV6_MIGRATION

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   |  1 -
 src/qemu/qemu_capabilities.h   |  2 +-
 src/qemu/qemu_migration.c  | 10 +-
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   |  1 -
 28 files changed, 2 insertions(+), 36 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index ca8fdf62a8..ce9fad52a3 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3629,7 +3629,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_IPV6_MIGRATION);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_MACHINE_OPT);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DUMP_GUEST_CORE);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_VNC_SHARE_POLICY);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 645156c42f..c57554db4f 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -237,7 +237,7 @@ typedef enum {
 QEMU_CAPS_SCSI_MEGASAS, /* -device megasas */
 
 /* 135 */
-QEMU_CAPS_IPV6_MIGRATION, /* -incoming [::] */
+X_QEMU_CAPS_IPV6_MIGRATION, /* -incoming [::] */
 QEMU_CAPS_MACHINE_OPT, /* -machine */
 QEMU_CAPS_MACHINE_USB_OPT, /* -machine xxx,usb=on/off */
 QEMU_CAPS_DEVICE_TPM_PASSTHROUGH, /* -tpmdev passthrough */
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index e5231555de..d301f3c2ba 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -2304,7 +2304,6 @@ qemuMigrationDstPrepare(virDomainObjPtr vm,
 } else {
 bool encloseAddress = false;
 bool hostIPv6Capable = false;
-bool qemuIPv6Capable = false;
 struct addrinfo *info = NULL;
 struct addrinfo hints = { .ai_flags = AI_ADDRCONFIG,
   .ai_socktype = SOCK_STREAM };
@@ -2314,16 +2313,9 @@ qemuMigrationDstPrepare(virDomainObjPtr vm,
 freeaddrinfo(info);
 hostIPv6Capable = true;
 }
-qemuIPv6Capable = virQEMUCapsGet(priv->qemuCaps,
- QEMU_CAPS_IPV6_MIGRATION);
 
 if (listenAddress) {
 if (virSocketAddrNumericFamily(listenAddress) == AF_INET6) {
-if (!qemuIPv6Capable) {
-virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s",
-   _("qemu isn't capable of IPv6"));
-goto cleanup;
-}
 if (!hostIPv6Capable) {
 virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s",
_("host isn't capable of IPv6"));
@@ -2334,7 +2326,7 @@ qemuMigrationDstPrepare(virDomainObjPtr vm,
 } else {
 /* listenAddress is a hostname or IPv4 */
 }
-} else if (qemuIPv6Capable && hostIPv6Capable) {
+} else if (hostIPv6Capable) {
 /* Listen on :: instead of 0.0.0.0 if QEMU understands it
  * and there is at least one IPv6 address configured
  */
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index 21f0d7ded8..37baf9e19a 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -68,7 +68,6 @@
   
   
   
-  
   
   
   
diff --git 

[libvirt] [libvirt PATCH v2 17/44] Deprecate QEMU_CAPS_VHOST_NET

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   | 1 -
 src/qemu/qemu_capabilities.h   | 2 +-
 src/qemu/qemu_command.c| 3 +--
 src/qemu/qemu_hotplug.c| 9 +++--
 src/qemu/qemu_interface.c  | 4 +---
 src/qemu/qemu_interface.h  | 1 -
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   | 1 -
 31 files changed, 6 insertions(+), 39 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 8ac6b7008a..dc83dd158d 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3635,7 +3635,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_VHOST_NET);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_NODEFCONFIG);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_BOOT_MENU);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_FSDEV);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 32f152c142..6f0be3763d 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -91,7 +91,7 @@ typedef enum {
 
 /* 30 */
 X_QEMU_CAPS_RTC, /* The -rtc flag for clock options */
-QEMU_CAPS_VHOST_NET, /* vhost-net support available */
+X_QEMU_CAPS_VHOST_NET, /* vhost-net support available */
 X_QEMU_CAPS_RTC_TD_HACK, /* -rtc-td-hack available */
 QEMU_CAPS_NO_HPET, /* -no-hpet flag is supported */
 QEMU_CAPS_NO_KVM_PIT, /* -no-kvm-pit-reinjection supported */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index ee8933cc54..bb69aff100 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -8459,8 +8459,7 @@ qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver,
 
 memset(vhostfd, -1, vhostfdSize * sizeof(vhostfd[0]));
 
-if (qemuInterfaceOpenVhostNet(def, net, qemuCaps,
-  vhostfd, ) < 0)
+if (qemuInterfaceOpenVhostNet(def, net, vhostfd, ) < 0)
 goto cleanup;
 }
 
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 8aacd8376f..61590604eb 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -895,8 +895,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
tapfd, ) < 0)
 goto cleanup;
 iface_connected = true;
-if (qemuInterfaceOpenVhostNet(vm->def, net, priv->qemuCaps,
-  vhostfd, ) < 0)
+if (qemuInterfaceOpenVhostNet(vm->def, net, vhostfd, ) < 0)
 goto cleanup;
 break;
 
@@ -916,8 +915,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
VIR_NETDEV_VPORT_PROFILE_OP_CREATE) < 0)
 goto cleanup;
 iface_connected = true;
-if (qemuInterfaceOpenVhostNet(vm->def, net, priv->qemuCaps,
-  vhostfd, ) < 0)
+if (qemuInterfaceOpenVhostNet(vm->def, net, vhostfd, ) < 0)
 goto cleanup;
 break;
 
@@ -936,8 +934,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
  tapfd, tapfdSize) < 0)
 goto cleanup;
 iface_connected = true;
-if (qemuInterfaceOpenVhostNet(vm->def, net, priv->qemuCaps,
-  vhostfd, ) < 0)
+if (qemuInterfaceOpenVhostNet(vm->def, net, vhostfd, ) < 0)
  

[libvirt] [libvirt PATCH v2 35/44] Deprecate QEMU_CAPS_NETDEV_BRIDGE

2018-04-09 Thread Ján Tomko
Unused since commit <2d80fbb1>.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   | 1 -
 src/qemu/qemu_capabilities.h   | 2 +-
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   | 1 -
 27 files changed, 1 insertion(+), 27 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 4dc94b8561..c242886c85 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3629,7 +3629,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_NETDEV_BRIDGE);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_SECCOMP_SANDBOX);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DTB);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_IPV6_MIGRATION);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index b36693f072..2b9b55ac45 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -188,7 +188,7 @@ typedef enum {
 QEMU_CAPS_BALLOON_EVENT, /* Async event for balloon changes */
 
 /* 100 */
-QEMU_CAPS_NETDEV_BRIDGE, /* bridge helper support */
+X_QEMU_CAPS_NETDEV_BRIDGE, /* bridge helper support */
 QEMU_CAPS_SCSI_LSI, /* -device lsi */
 QEMU_CAPS_VIRTIO_SCSI, /* -device virtio-scsi-* */
 QEMU_CAPS_BLOCKIO, /* -device ...logical_block_size & co */
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index bcc623e020..dad34c6883 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -39,7 +39,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
index 0d65b93608..b571fd5d82 100644
--- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
@@ -39,7 +39,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
index e58ede2425..181d6f8934 100644
--- a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
@@ -39,7 +39,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
index 18b0613570..b9a6f7251e 100644
--- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
@@ -39,7 +39,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml 
b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml
index f07d222ed4..c667f43429 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml
@@ -30,7 +30,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml 
b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
index 716c174ae4..c083d67d28 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
@@ -29,7 +29,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml 
b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
index 47d6bd1345..e43887630e 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
@@ -17,7 +17,6 @@
   
   
   
-  
   
   
   
diff --git 

[libvirt] [libvirt PATCH v2 36/44] Deprecate QEMU_CAPS_SECCOMP_SANDBOX

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   |  1 -
 src/qemu/qemu_capabilities.h   |  2 +-
 src/qemu/qemu_command.c| 14 --
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   |  1 -
 28 files changed, 5 insertions(+), 37 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index c242886c85..2a26aecdd2 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3629,7 +3629,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_SECCOMP_SANDBOX);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DTB);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_IPV6_MIGRATION);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_MACHINE_OPT);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 2b9b55ac45..4f3934f1a9 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -199,7 +199,7 @@ typedef enum {
 QEMU_CAPS_USB_REDIR_FILTER, /* usb-redir.filter */
 QEMU_CAPS_IDE_DRIVE_WWN, /* Is ide-drive.wwn available? */
 QEMU_CAPS_SCSI_DISK_WWN, /* Is scsi-disk.wwn available? */
-QEMU_CAPS_SECCOMP_SANDBOX, /* -sandbox */
+X_QEMU_CAPS_SECCOMP_SANDBOX, /* -sandbox */
 
 /* 110 */
 QEMU_CAPS_REBOOT_TIMEOUT, /* -boot reboot-timeout */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index af7b895f8a..cea3517258 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -10002,16 +10002,10 @@ qemuBuildCommandLine(virQEMUDriverPtr driver,
  ? qemucmd->env_value[i] : "");
 }
 
-if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SECCOMP_SANDBOX)) {
-if (cfg->seccompSandbox == 0)
-virCommandAddArgList(cmd, "-sandbox", "off", NULL);
-else if (cfg->seccompSandbox > 0)
-virCommandAddArgList(cmd, "-sandbox", "on", NULL);
-} else if (cfg->seccompSandbox > 0) {
-virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-   _("QEMU does not support seccomp sandboxes"));
-goto error;
-}
+if (cfg->seccompSandbox == 0)
+virCommandAddArgList(cmd, "-sandbox", "off", NULL);
+else if (cfg->seccompSandbox > 0)
+virCommandAddArgList(cmd, "-sandbox", "on", NULL);
 
 if (qemuBuildPanicCommandLine(cmd, def, qemuCaps) < 0)
 goto error;
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index dad34c6883..69ee300ce7 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -47,7 +47,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
index b571fd5d82..21c4ad9730 100644
--- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
@@ -47,7 +47,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
index 181d6f8934..f3ee50041d 100644
--- a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
@@ -47,7 +47,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
index 

[libvirt] [libvirt PATCH v2 27/44] Deprecate QEMU_CAPS_DRIVE_CACHE_DIRECTSYNC

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   | 1 -
 src/qemu/qemu_capabilities.h   | 2 +-
 src/qemu/qemu_command.c| 7 ---
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   | 1 -
 tests/qemuxml2argvtest.c   | 3 +--
 29 files changed, 2 insertions(+), 36 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index fca73cf9b1..e1c155c42b 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3630,7 +3630,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_CACHE_DIRECTSYNC);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_NO_SHUTDOWN);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_CACHE_UNSAFE);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_FSDEV_READONLY);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 83b2980180..8c83f81704 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -139,7 +139,7 @@ typedef enum {
 QEMU_CAPS_VIRTIO_NET_EVENT_IDX, /* virtio-net-pci.event_idx */
 
 /* 65 */
-QEMU_CAPS_DRIVE_CACHE_DIRECTSYNC, /* Is cache=directsync supported? */
+X_QEMU_CAPS_DRIVE_CACHE_DIRECTSYNC, /* Is cache=directsync supported? */
 QEMU_CAPS_PIIX3_USB_UHCI, /* -device piix3-usb-uhci */
 QEMU_CAPS_PIIX4_USB_UHCI, /* -device piix4-usb-uhci */
 QEMU_CAPS_USB_EHCI, /* -device usb-ehci */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 03592a20ab..3bb285aed4 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -1348,13 +1348,6 @@ qemuCheckDiskConfig(virDomainDiskDefPtr disk,
 return -1;
 }
 
-if (disk->cachemode == VIR_DOMAIN_DISK_CACHE_DIRECTSYNC &&
-!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DRIVE_CACHE_DIRECTSYNC)) {
-virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-   _("disk cache mode 'directsync' is not supported by 
this QEMU"));
-return -1;
-}
-
 if (disk->cachemode == VIR_DOMAIN_DISK_CACHE_UNSAFE &&
 !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DRIVE_CACHE_UNSAFE)) {
 virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index 36a486d18f..3ace4ee1d3 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -18,7 +18,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
index 11ab3f9b41..4203337c2d 100644
--- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
@@ -18,7 +18,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
index be13d02beb..95c6b154f2 100644
--- a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
@@ -18,7 +18,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
index dfda66f068..df9b610178 100644
--- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
@@ -18,7 +18,6 @@
   
   
   
-  

[libvirt] [libvirt PATCH v2 29/44] Deprecate QEMU_CAPS_DRIVE_CACHE_UNSAFE

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   | 1 -
 src/qemu/qemu_capabilities.h   | 2 +-
 src/qemu/qemu_command.c| 7 ---
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   | 1 -
 tests/qemuxml2argvtest.c   | 3 +--
 29 files changed, 2 insertions(+), 36 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index ffecb35132..98b4982586 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3630,7 +3630,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_CACHE_UNSAFE);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_FSDEV_READONLY);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_COPY_ON_READ);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_FSDEV_WRITEOUT);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index c814227c21..8fa973ed80 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -153,7 +153,7 @@ typedef enum {
 X_QEMU_CAPS_NO_SHUTDOWN, /* usable -no-shutdown */
 
 /* 75 */
-QEMU_CAPS_DRIVE_CACHE_UNSAFE, /* Is cache=unsafe supported? */
+X_QEMU_CAPS_DRIVE_CACHE_UNSAFE, /* Is cache=unsafe supported? */
 X_QEMU_CAPS_PCI_ROMBAR, /* -device rombar=0|1 */
 QEMU_CAPS_ICH9_AHCI, /* -device ich9-ahci */
 QEMU_CAPS_NO_ACPI, /* -no-acpi */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 157898ee2b..4904c879f5 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -1348,13 +1348,6 @@ qemuCheckDiskConfig(virDomainDiskDefPtr disk,
 return -1;
 }
 
-if (disk->cachemode == VIR_DOMAIN_DISK_CACHE_UNSAFE &&
-!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DRIVE_CACHE_UNSAFE)) {
-virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-   _("disk cache mode 'unsafe' is not supported by 
this QEMU"));
-return -1;
-}
-
 if (disk->copy_on_read &&
 !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DRIVE_COPY_ON_READ)) {
 virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index fedb71b094..58208d3f3b 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -26,7 +26,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
index 85834e7136..d6183e4009 100644
--- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
@@ -26,7 +26,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
index fe17eef72d..4af8078a56 100644
--- a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
@@ -26,7 +26,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
index 3a4c5e5b2f..6bd1dcfb99 100644
--- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
@@ -26,7 +26,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml 

[libvirt] [libvirt PATCH v2 30/44] Deprecate QEMU_CAPS_FSDEV_READONLY

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   |  1 -
 src/qemu/qemu_capabilities.h   |  2 +-
 src/qemu/qemu_command.c| 12 ++--
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   |  1 -
 28 files changed, 3 insertions(+), 37 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 98b4982586..b10ba25294 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3630,7 +3630,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_FSDEV_READONLY);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_COPY_ON_READ);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_FSDEV_WRITEOUT);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_IOTUNE);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 8fa973ed80..6bd5f2433e 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -157,7 +157,7 @@ typedef enum {
 X_QEMU_CAPS_PCI_ROMBAR, /* -device rombar=0|1 */
 QEMU_CAPS_ICH9_AHCI, /* -device ich9-ahci */
 QEMU_CAPS_NO_ACPI, /* -no-acpi */
-QEMU_CAPS_FSDEV_READONLY, /* -fsdev readonly supported */
+X_QEMU_CAPS_FSDEV_READONLY, /* -fsdev readonly supported */
 
 /* 80 */
 QEMU_CAPS_VIRTIO_BLK_SCSI, /* virtio-blk-pci.scsi */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 4904c879f5..228eae45cb 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -2371,16 +2371,8 @@ qemuBuildFSStr(virDomainFSDefPtr fs,
 virBufferAsprintf(, ",id=%s%s", QEMU_FSDEV_HOST_PREFIX, 
fs->info.alias);
 virBufferAsprintf(, ",path=%s", fs->src->path);
 
-if (fs->readonly) {
-if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_FSDEV_READONLY)) {
-virBufferAddLit(, ",readonly");
-} else {
-virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-   _("readonly filesystem is not supported by this "
- "QEMU binary"));
-goto error;
-}
-}
+if (fs->readonly)
+virBufferAddLit(, ",readonly");
 
 if (virBufferCheckError() < 0)
 goto error;
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index 58208d3f3b..f9d7babc98 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -28,7 +28,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
index d6183e4009..da4cf265d4 100644
--- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
@@ -28,7 +28,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
index 4af8078a56..cbf81f0f05 100644
--- a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
@@ -28,7 +28,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
index 6bd1dcfb99..306fc30895 100644
--- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
@@ -28,7 +28,6 @@
   
   
   
-  
   
   
   
diff --git 

[libvirt] [libvirt PATCH v2 11/44] Deprecate QEMU_CAPS_NO_USER_CONFIG

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Delete this one first, because QEMU_CAPS_NODEFCONFIG is only used
when QEMU_CAPS_NO_USER_CONFIG is unsupported.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c | 1 -
 src/qemu/qemu_capabilities.h | 2 +-
 src/qemu/qemu_command.c  | 5 +
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml | 1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml | 1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 1 -
 tests/qemuxml2argvdata/aarch64-aavmf-virtio-mmio.args| 2 +-
 tests/qemuxml2argvdata/aarch64-acpi-uefi.args| 1 +
 [ ... etc ... ]
 tests/qemuxml2argvdata/watchdog.args | 1 +
 tests/qemuxml2argvdata/x86-kvm-32-on-64.args | 1 +
 635 files changed, 609 insertions(+), 202 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 52142d4029..421d803ead 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3656,7 +3656,6 @@ virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_FSDEV_WRITEOUT);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_IOTUNE);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_WAKEUP);
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_NO_USER_CONFIG);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_NETDEV_BRIDGE);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_SECCOMP_SANDBOX);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DTB);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index deb6261e0a..bdbbad8d6e 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -178,7 +178,7 @@ typedef enum {
 QEMU_CAPS_BLOCKJOB_ASYNC, /* new block-job-cancel, block-stream */
 QEMU_CAPS_SCSI_CD, /* -device scsi-cd */
 QEMU_CAPS_IDE_CD, /* -device ide-cd */
-QEMU_CAPS_NO_USER_CONFIG, /* -no-user-config */
+X_QEMU_CAPS_NO_USER_CONFIG, /* -no-user-config */
 
 /* 95 */
 QEMU_CAPS_HDA_MICRO, /* -device hda-micro */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 73b5ad244b..59496d32b5 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -10052,10 +10052,7 @@ qemuBuildCommandLine(virQEMUDriverPtr driver,
 }
 
 /* Disable global config files and default devices */
-if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_NO_USER_CONFIG))
-virCommandAddArg(cmd, "-no-user-config");
-else if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_NODEFCONFIG))
-virCommandAddArg(cmd, "-nodefconfig");
+virCommandAddArg(cmd, "-no-user-config");
 virCommandAddArg(cmd, "-nodefaults");
 
 if (qemuBuildSgaCommandLine(cmd, def, qemuCaps) < 0)
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index 46b88f218e..8ded417088 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -56,7 +56,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
index 47ac2eaf2d..6fcc7f1c57 

[libvirt] [libvirt PATCH v2 13/44] Deprecate QEMU_CAPS_DRIVE_SERIAL

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c |  1 -
 src/qemu/qemu_capabilities.h |  2 +-
 src/qemu/qemu_command.c  | 20 
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml |  1 -
 .../disk-drive-network-tlsx509-vxhs.args |  6 +++---
 tests/qemuxml2argvdata/disk-drive-network-vxhs.args  |  2 +-
 tests/qemuxml2argvdata/disk-scsi-disk-wwn.args   |  2 +-
 tests/qemuxml2argvtest.c |  8 +++-
 32 files changed, 17 insertions(+), 49 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index c06ec422f1..b4ead4aeff 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3635,7 +3635,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_SERIAL);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_SDL);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_RTC);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_VHOST_NET);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 8262320a92..9d0b6878b7 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -73,7 +73,7 @@ typedef enum {
 X_QEMU_CAPS_0_10, /* features added in qemu-0.10.0 or later */
 X_QEMU_CAPS_PCIDEVICE, /* PCI device assignment supported */
 X_QEMU_CAPS_MEM_PATH, /* mmap'ped guest backing supported */
-QEMU_CAPS_DRIVE_SERIAL, /* -driver serial=  available */
+X_QEMU_CAPS_DRIVE_SERIAL, /* -driver serial=  available */
 
 /* 20 */
 X_QEMU_CAPS_XEN_DOMID, /* -xen-domid */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 8140b200e3..422f8f2546 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -1340,14 +1340,12 @@ qemuCheckDiskConfig(virDomainDiskDefPtr disk,
 
 if (qemuCaps) {
 if (disk->serial &&
-virQEMUCapsGet(qemuCaps, QEMU_CAPS_DRIVE_SERIAL)) {
-if (disk->bus == VIR_DOMAIN_DISK_BUS_SCSI &&
-disk->device == VIR_DOMAIN_DISK_DEVICE_LUN) {
-virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-   _("scsi-block 'lun' devices do not support the "
- "serial property"));
-return -1;
-}
+disk->bus == VIR_DOMAIN_DISK_BUS_SCSI &&
+disk->device == VIR_DOMAIN_DISK_DEVICE_LUN) {
+virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+   _("scsi-block 'lun' devices do not support the "
+ "serial property"));
+return -1;
 }
 
 if (disk->cachemode == VIR_DOMAIN_DISK_CACHE_DIRECTSYNC &&
@@ -1685,7 +1683,6 @@ 
qemuBuildDiskFrontendAttributeErrorPolicy(virDomainDiskDefPtr disk,
 
 static void
 qemuBuildDiskFrontendAttributes(virDomainDiskDefPtr disk,
-virQEMUCapsPtr qemuCaps,
 virBufferPtr buf)
 {
 /* generate geometry command string */
@@ -1702,8 +1699,7 @@ qemuBuildDiskFrontendAttributes(virDomainDiskDefPtr disk,
   
virDomainDiskGeometryTransTypeToString(disk->geometry.trans));
 }
 
-if (disk->serial &&
-virQEMUCapsGet(qemuCaps, QEMU_CAPS_DRIVE_SERIAL)) {
+if (disk->serial) {
 virBufferAddLit(buf, 

[libvirt] [libvirt PATCH v2 21/44] Deprecate QEMU_CAPS_NAME_PROCESS

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   | 1 -
 src/qemu/qemu_capabilities.h   | 2 +-
 src/qemu/qemu_command.c| 3 +--
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   | 1 -
 28 files changed, 2 insertions(+), 29 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index b98563d441..e78a5edbc2 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3635,7 +3635,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_NAME_PROCESS);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_SMBIOS_TYPE);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_VGA_NONE);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_AIO);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 8238b4070d..a0bc7d75cc 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -106,7 +106,7 @@ typedef enum {
 /* 40 */
 X_QEMU_CAPS_FSDEV, /* -fstype filesystem passthrough */
 QEMU_CAPS_NESTING, /* -enable-nesting (SVM/VMX) */
-QEMU_CAPS_NAME_PROCESS, /* Is -name process= available */
+X_QEMU_CAPS_NAME_PROCESS, /* Is -name process= available */
 X_QEMU_CAPS_DRIVE_READONLY, /* -drive readonly=on|off */
 QEMU_CAPS_SMBIOS_TYPE, /* Is -smbios type= available */
 
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 2a4c261384..c17676c943 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -7067,8 +7067,7 @@ qemuBuildNameCommandLine(virCommandPtr cmd,
 
 virQEMUBuildBufferEscapeComma(, def->name);
 
-if (cfg->setProcessName &&
-virQEMUCapsGet(qemuCaps, QEMU_CAPS_NAME_PROCESS))
+if (cfg->setProcessName)
 virBufferAsprintf(, ",process=qemu:%s", def->name);
 
 if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_NAME_DEBUG_THREADS))
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index 770d0df191..b03e0db346 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -7,7 +7,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
index cd093fd75c..cc80ca13d2 100644
--- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
@@ -7,7 +7,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
index bfae3e804d..5799f1ae3b 100644
--- a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
@@ -7,7 +7,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
index 81044e9e7c..a8197113c2 100644
--- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
@@ -7,7 +7,6 @@
   
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml 
b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml
index b44373b5d6..8137ac7def 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml
@@ -4,7 +4,6 @@
   0
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml 

[libvirt] [libvirt PATCH v2 14/44] Deprecate QEMU_CAPS_SDL

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   | 4 +---
 src/qemu/qemu_capabilities.h   | 2 +-
 src/qemu/qemu_command.c| 9 +
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  | 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   | 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml| 1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   | 1 -
 tests/qemuxml2argvtest.c   | 4 ++--
 29 files changed, 5 insertions(+), 39 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index b4ead4aeff..63eb1a5768 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3635,7 +3635,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_SDL);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_RTC);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_VHOST_NET);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_NODEFCONFIG);
@@ -4693,8 +4692,7 @@ virQEMUCapsFillDomainDeviceGraphicsCaps(virQEMUCapsPtr 
qemuCaps,
 {
 dev->supported = true;
 
-if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SDL))
-VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_SDL);
+VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_SDL);
 if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VNC))
 VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_VNC);
 if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE))
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 9d0b6878b7..71bea5a623 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -85,7 +85,7 @@ typedef enum {
 /* 25 */
 X_QEMU_CAPS_BALLOON, /* -balloon available */
 X_QEMU_CAPS_DEVICE, /* Is the -device arg available */
-QEMU_CAPS_SDL, /* Is the new -sdl arg available */
+X_QEMU_CAPS_SDL, /* Is the new -sdl arg available */
 X_QEMU_CAPS_SMP_TOPOLOGY, /* -smp has sockets/cores/threads */
 X_QEMU_CAPS_NETDEV, /* -netdev flag & netdev_add/remove */
 
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 422f8f2546..6851bd7bcf 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -8134,18 +8134,11 @@ 
qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfigPtr cfg,
 static int
 qemuBuildGraphicsCommandLine(virQEMUDriverConfigPtr cfg,
  virCommandPtr cmd,
- virDomainDefPtr def,
  virQEMUCapsPtr qemuCaps,
  virDomainGraphicsDefPtr graphics)
 {
 switch (graphics->type) {
 case VIR_DOMAIN_GRAPHICS_TYPE_SDL:
-if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SDL)) {
-virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-   _("sdl not supported by '%s'"), def->emulator);
-return -1;
-}
-
 if (graphics->data.sdl.xauth)
 virCommandAddEnvPair(cmd, "XAUTHORITY", graphics->data.sdl.xauth);
 if (graphics->data.sdl.display)
@@ -10109,7 +10102,7 @@ qemuBuildCommandLine(virQEMUDriverPtr driver,
 goto error;
 
 for (i = 0; i < def->ngraphics; ++i) {
-if (qemuBuildGraphicsCommandLine(cfg, cmd, def, qemuCaps,
+if (qemuBuildGraphicsCommandLine(cfg, cmd, qemuCaps,
  def->graphics[i]) < 0)
 goto error;
 }
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index 1b09d41083..4c10ccfa10 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ 

[libvirt] [libvirt PATCH v2 12/44] Deprecate QEMU_CAPS_MEM_PATH

2018-04-09 Thread Ján Tomko
Implied by QEMU >= 1.2.0.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   |  1 -
 src/qemu/qemu_capabilities.h   |  2 +-
 src/qemu/qemu_command.c| 12 ++
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   |  1 -
 tests/qemuxml2argvtest.c   | 28 +++---
 29 files changed, 17 insertions(+), 51 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 421d803ead..c06ec422f1 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3635,7 +3635,6 @@ static qemuMonitorCallbacks callbacks = {
 static void
 virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_MEM_PATH);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_SERIAL);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_SDL);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_RTC);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index bdbbad8d6e..8262320a92 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -72,7 +72,7 @@ typedef enum {
 X_QEMU_CAPS_VGA, /* Is -vga avail */
 X_QEMU_CAPS_0_10, /* features added in qemu-0.10.0 or later */
 X_QEMU_CAPS_PCIDEVICE, /* PCI device assignment supported */
-QEMU_CAPS_MEM_PATH, /* mmap'ped guest backing supported */
+X_QEMU_CAPS_MEM_PATH, /* mmap'ped guest backing supported */
 QEMU_CAPS_DRIVE_SERIAL, /* -driver serial=  available */
 
 /* 20 */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 59496d32b5..8140b200e3 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -7445,7 +7445,6 @@ qemuBuildSmpCommandLine(virCommandPtr cmd,
 static int
 qemuBuildMemPathStr(virQEMUDriverConfigPtr cfg,
 const virDomainDef *def,
-virQEMUCapsPtr qemuCaps,
 virCommandPtr cmd)
 {
 const long system_page_size = virGetSystemPageSizeKB();
@@ -7464,13 +7463,6 @@ qemuBuildMemPathStr(virQEMUDriverConfigPtr cfg,
 if (def->mem.hugepages[0].size == system_page_size)
 return 0;
 
-if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MEM_PATH)) {
-virReportError(VIR_ERR_INTERNAL_ERROR,
-   _("hugepage backing not supported by '%s'"),
-   def->emulator);
-return -1;
-}
-
 if (qemuGetDomainHupageMemPath(def, cfg, def->mem.hugepages[0].size, 
_path) < 0)
 return -1;
 
@@ -7515,7 +7507,7 @@ qemuBuildMemCommandLine(virCommandPtr cmd,
  * the hugepages and no numa node is specified.
  */
 if (!virDomainNumaGetNodeCount(def->numa) &&
-qemuBuildMemPathStr(cfg, def, qemuCaps, cmd) < 0)
+qemuBuildMemPathStr(cfg, def, cmd) < 0)
 return -1;
 
 if (def->mem.locked && !virQEMUCapsGet(qemuCaps, 
QEMU_CAPS_REALTIME_MLOCK)) {
@@ -7645,7 +7637,7 @@ qemuBuildNumaArgStr(virQEMUDriverConfigPtr cfg,
 }
 
 if (!needBackend &&
-qemuBuildMemPathStr(cfg, def, qemuCaps, cmd) < 0)
+qemuBuildMemPathStr(cfg, def, cmd) < 0)
 goto cleanup;
 
 for (i = 0; i < ncells; i++) {
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index 8ded417088..891cb25e8b 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -4,7 +4,6 @@
   0
   
   
-  
   
   
   
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml 

[libvirt] [libvirt PATCH v2 09/44] Remove qemuDomainSupportsNetdev

2018-04-09 Thread Ján Tomko
Now that we assume QEMU_CAPS_NETDEV, the only thing left to check
is whether we need to use the legacy -net syntax because of
a non-conforming armchitecture.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_command.c   | 20 +---
 src/qemu/qemu_domain.c| 10 --
 src/qemu/qemu_domain.h|  4 
 src/qemu/qemu_hotplug.c   |  2 +-
 src/qemu/qemu_interface.c |  2 +-
 5 files changed, 7 insertions(+), 31 deletions(-)

diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 05cc4903a4..4e8c4a7bd4 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -8217,7 +8217,7 @@ qemuBuildVhostuserCommandLine(virQEMUDriverPtr driver,
 unsigned int queues = net->driver.virtio.queues;
 char *nic = NULL;
 
-if (!qemuDomainSupportsNetdev(def, qemuCaps, net)) {
+if (!qemuDomainSupportsNicdev(def, net)) {
 virReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Netdev support unavailable"));
 goto error;
@@ -8552,23 +8552,14 @@ qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver,
 goto cleanup;
 }
 
-/* Possible combinations:
- *
- *  1. Old way:   -net nic,model=e1000,vlan=1 -net tap,vlan=1
- *  2. Semi-new:  -device e1000,vlan=1-net tap,vlan=1
- *  3. Best way:  -netdev type=tap,id=netdev1 -device e1000,id=netdev1
- *
- * NB, no support for -netdev without use of -device
- */
-if (qemuDomainSupportsNetdev(def, qemuCaps, net)) {
+if (qemuDomainSupportsNicdev(def, net)) {
 if (!(host = qemuBuildHostNetStr(net, driver,
  ',', vlan,
  tapfdName, tapfdSize,
  vhostfdName, vhostfdSize)))
 goto cleanup;
 virCommandAddArgList(cmd, "-netdev", host, NULL);
-}
-if (qemuDomainSupportsNicdev(def, net)) {
+
 if (!(nic = qemuBuildNicDevStr(def, net, vlan, bootindex,
vhostfdSize, qemuCaps)))
 goto cleanup;
@@ -8577,8 +8568,7 @@ qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver,
 if (!(nic = qemuBuildNicStr(net, "nic,", vlan)))
 goto cleanup;
 virCommandAddArgList(cmd, "-net", nic, NULL);
-}
-if (!qemuDomainSupportsNetdev(def, qemuCaps, net)) {
+
 if (!(host = qemuBuildHostNetStr(net, driver,
  ',', vlan,
  tapfdName, tapfdSize,
@@ -8658,7 +8648,7 @@ qemuBuildNetCommandLine(virQEMUDriverPtr driver,
 int vlan;
 
 /* VLANs are not used with -netdev, so don't record them */
-if (qemuDomainSupportsNetdev(def, qemuCaps, net))
+if (qemuDomainSupportsNicdev(def, net))
 vlan = -1;
 else
 vlan = i;
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index fab1519969..796984b12d 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -9159,16 +9159,6 @@ qemuDomainSupportsNicdev(virDomainDefPtr def,
 return true;
 }
 
-bool
-qemuDomainSupportsNetdev(virDomainDefPtr def,
- virQEMUCapsPtr qemuCaps ATTRIBUTE_UNUSED,
- virDomainNetDefPtr net)
-{
-if (!qemuDomainSupportsNicdev(def, net))
-return false;
-return true;
-}
-
 bool
 qemuDomainNetSupportsMTU(virDomainNetType type)
 {
diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
index ce8f69d336..be9aff180b 100644
--- a/src/qemu/qemu_domain.h
+++ b/src/qemu/qemu_domain.h
@@ -799,10 +799,6 @@ int qemuDomainRefreshVcpuHalted(virQEMUDriverPtr driver,
 bool qemuDomainSupportsNicdev(virDomainDefPtr def,
   virDomainNetDefPtr net);
 
-bool qemuDomainSupportsNetdev(virDomainDefPtr def,
-  virQEMUCapsPtr qemuCaps,
-  virDomainNetDefPtr net);
-
 bool qemuDomainNetSupportsMTU(virDomainNetType type);
 
 int qemuDomainSetPrivatePaths(virQEMUDriverPtr driver,
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index c145c42bcd..8aacd8376f 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -956,7 +956,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
 queueSize = net->driver.virtio.queues;
 if (!queueSize)
 queueSize = 1;
-if (!qemuDomainSupportsNetdev(vm->def, priv->qemuCaps, net)) {
+if (!qemuDomainSupportsNicdev(vm->def, net)) {
 virReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Netdev support unavailable"));
 goto cleanup;
diff --git a/src/qemu/qemu_interface.c b/src/qemu/qemu_interface.c
index cebb490221..24c0174bf9 100644
--- a/src/qemu/qemu_interface.c
+++ b/src/qemu/qemu_interface.c
@@ -646,7 +646,7 @@ qemuInterfaceOpenVhostNet(virDomainDefPtr def,
  * option), don't try to open the device.
  

[libvirt] [libvirt PATCH v2 07/44] Clean up qemuDomainAttachNetDevice

2018-04-09 Thread Ján Tomko
Now that we assume -netdev support, we no longer set the VLAN
or need the hostPlugged bool.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_hotplug.c | 42 +-
 1 file changed, 13 insertions(+), 29 deletions(-)

diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index d2e00516e8..c145c42bcd 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -825,7 +825,6 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
 char *nicstr = NULL;
 char *netstr = NULL;
 int ret = -1;
-int vlan;
 bool releaseaddr = false;
 bool iface_connected = false;
 virDomainNetType actualType;
@@ -836,7 +835,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
 char *charDevAlias = NULL;
 bool charDevPlugged = false;
 bool netdevPlugged = false;
-bool hostPlugged = false;
+char *netdev_name;
 
 /* preallocate new slot for device */
 if (VIR_REALLOC_N(vm->def->nets, vm->def->nnets + 1) < 0)
@@ -1029,7 +1028,6 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
 
 releaseaddr = true;
 
-vlan = -1;
 if (VIR_ALLOC_N(tapfdName, tapfdSize) < 0 ||
 VIR_ALLOC_N(vhostfdName, vhostfdSize) < 0)
 goto cleanup;
@@ -1078,7 +1076,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
 for (i = 0; i < vhostfdSize; i++)
 VIR_FORCE_CLOSE(vhostfd[i]);
 
-if (!(nicstr = qemuBuildNicDevStr(vm->def, net, vlan, 0,
+if (!(nicstr = qemuBuildNicDevStr(vm->def, net, -1, 0,
   queueSize, priv->qemuCaps)))
 goto try_remove;
 
@@ -1169,31 +1167,17 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
 goto cleanup;
 
 virErrorPreserveLast();
-if (vlan < 0) {
-char *netdev_name;
-if (virAsprintf(_name, "host%s", net->info.alias) >= 0) {
-qemuDomainObjEnterMonitor(driver, vm);
-if (charDevPlugged &&
-qemuMonitorDetachCharDev(priv->mon, charDevAlias) < 0)
-VIR_WARN("Failed to remove associated chardev %s", 
charDevAlias);
-if (netdevPlugged &&
-qemuMonitorRemoveNetdev(priv->mon, netdev_name) < 0)
-VIR_WARN("Failed to remove network backend for netdev %s",
- netdev_name);
-ignore_value(qemuDomainObjExitMonitor(driver, vm));
-VIR_FREE(netdev_name);
-}
-} else {
-char *hostnet_name;
-if (virAsprintf(_name, "host%s", net->info.alias) >= 0) {
-qemuDomainObjEnterMonitor(driver, vm);
-if (hostPlugged &&
-qemuMonitorRemoveHostNetwork(priv->mon, vlan, hostnet_name) < 
0)
-VIR_WARN("Failed to remove network backend for vlan %d, net 
%s",
- vlan, hostnet_name);
-ignore_value(qemuDomainObjExitMonitor(driver, vm));
-VIR_FREE(hostnet_name);
-}
+if (virAsprintf(_name, "host%s", net->info.alias) >= 0) {
+qemuDomainObjEnterMonitor(driver, vm);
+if (charDevPlugged &&
+qemuMonitorDetachCharDev(priv->mon, charDevAlias) < 0)
+VIR_WARN("Failed to remove associated chardev %s", charDevAlias);
+if (netdevPlugged &&
+qemuMonitorRemoveNetdev(priv->mon, netdev_name) < 0)
+VIR_WARN("Failed to remove network backend for netdev %s",
+ netdev_name);
+ignore_value(qemuDomainObjExitMonitor(driver, vm));
+VIR_FREE(netdev_name);
 }
 virErrorRestore();
 goto cleanup;
-- 
2.16.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

[libvirt] [libvirt PATCH v2 10/44] Deprecate QEMU_CAPS_MONITOR_JSON

2018-04-09 Thread Ján Tomko
We require QEMU >= 0.15.0, assume every QEMU supports it.
Sadly that does not let us trivially drop qemuMonitor's
priv->monJSON bool, because of qemuDomainQemuAttach.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   |  1 -
 src/qemu/qemu_capabilities.h   |  2 +-
 src/qemu/qemu_command.c|  6 +-
 src/qemu/qemu_driver.c | 18 +++---
 src/qemu/qemu_process.c|  2 +-
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   |  1 -
 tests/qemuxml2argvdata/aarch64-aavmf-virtio-mmio.args  |  2 +-
 [ ... etc ... ]
 tests/qemuxml2argvdata/x86-kvm-32-on-64.args   |  2 +-
 tests/qemuxml2argvtest.c   | 14 --
 633 files changed, 616 insertions(+), 656 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index f6f9ca9d68..52142d4029 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3637,7 +3637,6 @@ virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
 {
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_MEM_PATH);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_SERIAL);
-virQEMUCapsSet(qemuCaps, QEMU_CAPS_MONITOR_JSON);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_SDL);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_RTC);
 virQEMUCapsSet(qemuCaps, QEMU_CAPS_VHOST_NET);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index a08506b584..deb6261e0a 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -80,7 +80,7 @@ typedef enum {
 X_QEMU_CAPS_MIGRATE_QEMU_UNIX, /* qemu migration via unix sockets */
 X_QEMU_CAPS_CHARDEV, /* Is the new -chardev arg available */
 QEMU_CAPS_ENABLE_KVM, /* -enable-kvm flag */
-QEMU_CAPS_MONITOR_JSON, /* JSON mode for monitor */
+X_QEMU_CAPS_MONITOR_JSON, /* JSON mode for monitor */
 
 /* 25 */
 X_QEMU_CAPS_BALLOON, /* -balloon available */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 4e8c4a7bd4..73b5ad244b 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -1654,15 +1654,11 @@ qemuBuildDiskThrottling(virDomainDiskDefPtr disk,
 
 static void
 qemuBuildDiskFrontendAttributeErrorPolicy(virDomainDiskDefPtr disk,
-  virQEMUCapsPtr qemuCaps,
   virBufferPtr buf)
 {
 const char *wpolicy = NULL;
 const char *rpolicy = NULL;
 
-if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MONITOR_JSON))
-return;
-
 if (disk->error_policy)
 wpolicy = virDomainDiskErrorPolicyTypeToString(disk->error_policy);
 
@@ -1712,7 +1708,7 @@ qemuBuildDiskFrontendAttributes(virDomainDiskDefPtr disk,
 virBufferEscape(buf, '\\', " ", "%s", disk->serial);
 }
 
-qemuBuildDiskFrontendAttributeErrorPolicy(disk, qemuCaps, buf);
+qemuBuildDiskFrontendAttributeErrorPolicy(disk, buf);
 }
 
 
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 5c31dfdd58..fd08817469 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -2123,19 +2123,15 @@ qemuDomainReboot(virDomainPtr dom, unsigned int flags)
 if ((!useAgent) ||
 (ret < 0 && (acpiRequested || !flags))) {
 #if WITH_YAJL
-if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MONITOR_JSON)) {
-if (!virQEMUCapsGet(priv->qemuCaps, 

[libvirt] [libvirt PATCH v2 08/44] Remove unused qemuDomainNetVLAN

2018-04-09 Thread Ján Tomko
Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_domain.c | 6 --
 src/qemu/qemu_domain.h | 2 --
 2 files changed, 8 deletions(-)

diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 37837c8cf3..fab1519969 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -9192,12 +9192,6 @@ qemuDomainNetSupportsMTU(virDomainNetType type)
 return false;
 }
 
-int
-qemuDomainNetVLAN(virDomainNetDefPtr def)
-{
-return qemuDomainDeviceAliasIndex(>info, "net");
-}
-
 
 virDomainDiskDefPtr
 qemuDomainDiskByName(virDomainDefPtr def,
diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
index 21e12f6594..ce8f69d336 100644
--- a/src/qemu/qemu_domain.h
+++ b/src/qemu/qemu_domain.h
@@ -805,8 +805,6 @@ bool qemuDomainSupportsNetdev(virDomainDefPtr def,
 
 bool qemuDomainNetSupportsMTU(virDomainNetType type);
 
-int qemuDomainNetVLAN(virDomainNetDefPtr def);
-
 int qemuDomainSetPrivatePaths(virQEMUDriverPtr driver,
   virDomainObjPtr vm);
 
-- 
2.16.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

[libvirt] [libvirt PATCH v2 06/44] Deprecate QEMU_CAPS_NETDEV

2018-04-09 Thread Ján Tomko
This makes qemuDomainSupportsNetdev identical to
qemuDomainSupportsNicdev and leaves some code in
qemuDomainAttachNetDevice to be cleaned up later.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   |   1 -
 src/qemu/qemu_capabilities.h   |   2 +-
 src/qemu/qemu_domain.c |   4 +-
 src/qemu/qemu_hotplug.c| 120 +---
 src/qemu/qemu_process.c|   6 -
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml |   1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  |   1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml |   1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  |   1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  |   1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml|   1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml|   1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml|   1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml|   1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml|   1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   |   1 -
 .../aarch64-aavmf-virtio-mmio.args |   4 +-
 tests/qemuxml2argvdata/aarch64-kvm-32-on-64.args   |   4 +-
 .../aarch64-video-virtio-gpu-pci.args  |   6 +-
 .../aarch64-virt-2.6-virtio-pci-default.args   |   5 +-
 .../qemuxml2argvdata/aarch64-virt-default-nic.args |   4 +-
 tests/qemuxml2argvdata/aarch64-virt-virtio.args|   4 +-
 .../aarch64-virtio-pci-default.args|   5 +-
 .../aarch64-virtio-pci-manual-addresses.args   |  10 +-
 tests/qemuxml2argvdata/arm-vexpressa9-virtio.args  |   4 +-
 tests/qemuxml2argvdata/arm-virt-virtio.args|   4 +-
 tests/qemuxml2argvdata/boot-complex-bootindex.args |  11 +-
 tests/qemuxml2argvdata/boot-complex.args   |  10 +-
 tests/qemuxml2argvdata/boot-order.args |   6 +-
 tests/qemuxml2argvdata/boot-strict.args|  11 +-
 tests/qemuxml2argvdata/controller-order.args   |   5 +-
 tests/qemuxml2argvdata/disk-copy_on_read.args  |   6 +-
 tests/qemuxml2argvdata/disk-ioeventfd.args |   4 +-
 tests/qemuxml2argvdata/event_idx.args  |   6 +-
 tests/qemuxml2argvdata/graphics-spice-timeout.args |   5 +-
 .../qemuxml2argvdata/intel-iommu-caching-mode.args |   5 +-
 .../machine-loadparm-multiple-disks-nets-s390.args |  11 +-
 .../machine-loadparm-net-s390.args |   6 +-
 tests/qemuxml2argvdata/net-client.args |   5 +-
 tests/qemuxml2argvdata/net-eth-hostip.args |   5 +-
 tests/qemuxml2argvdata/net-eth-ifname.args |   5 +-
 tests/qemuxml2argvdata/net-eth-names.args  |   9 +-
 tests/qemuxml2argvdata/net-eth.args|   5 +-
 tests/qemuxml2argvdata/net-mcast.args  |   5 +-
 tests/qemuxml2argvdata/net-server.args |   5 +-
 tests/qemuxml2argvdata/net-udp.args|   6 +-
 tests/qemuxml2argvdata/net-user.args   |   5 +-
 tests/qemuxml2argvdata/net-virtio-ccw.args |  10 +-
 tests/qemuxml2argvdata/net-virtio-device.args  |   6 +-
 .../net-virtio-disable-offloads.args   |   4 +-
 .../qemuxml2argvdata/net-virtio-rxtxqueuesize.args |   6 +-
 tests/qemuxml2argvdata/net-virtio-s390.args|   4 +-
 tests/qemuxml2argvdata/net-virtio.args |   5 +-
 tests/qemuxml2argvdata/pci-bridge.args | 151 +++-
 tests/qemuxml2argvdata/pci-expander-bus.args   | 151 +++-
 tests/qemuxml2argvdata/pci-rom.args|  12 +-
 tests/qemuxml2argvdata/pcie-expander-bus.args  | 155 -
 tests/qemuxml2argvdata/q35-pci-force-address.args  |   5 +-
 tests/qemuxml2argvdata/user-aliases.args   |  18 +--
 tests/qemuxml2argvdata/virtio-lun.args |   5 +-
 tests/qemuxml2argvdata/virtio-options.args |   6 +-
 tests/qemuxml2argvtest.c   |  20 +--
 tests/qemuxml2xmltest.c|   8 +-
 77 files changed, 454 insertions(+), 456 deletions(-)


[libvirt] [libvirt PATCH v2 05/44] Deprecate QEMU_CAPS_PCI_MULTIFUNCTION

2018-04-09 Thread Ján Tomko
Supported since QEMU 0.13, but we require QEMU 0.15.

Signed-off-by: Ján Tomko 
---
 src/qemu/qemu_capabilities.c   |  1 -
 src/qemu/qemu_capabilities.h   |  2 +-
 src/qemu/qemu_command.c| 15 --
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  |  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   |  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml|  1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   |  1 -
 tests/qemuxml2argvtest.c   | 56 --
 tests/qemuxml2xmltest.c| 27 ++-
 30 files changed, 14 insertions(+), 112 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index f427cfdeaa..19294a588a 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -1112,7 +1112,6 @@ static struct virQEMUCapsStringFlags 
virQEMUCapsObjectPropsVirtioBalloon[] = {
 };
 
 static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsVirtioBlk[] = {
-{ "multifunction", QEMU_CAPS_PCI_MULTIFUNCTION },
 { "bootindex", QEMU_CAPS_BOOTINDEX },
 { "ioeventfd", QEMU_CAPS_VIRTIO_IOEVENTFD },
 { "event_idx", QEMU_CAPS_VIRTIO_BLK_EVENT_IDX },
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 2203c28aa0..85b9a68fca 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -132,7 +132,7 @@ typedef enum {
 X_QEMU_CAPS_DEVICE_QXL_VGA, /* primary qxl device named qxl-vga? */
 
 /* 60 */
-QEMU_CAPS_PCI_MULTIFUNCTION, /* -device multifunction=on|off */
+X_QEMU_CAPS_PCI_MULTIFUNCTION, /* -device multifunction=on|off */
 QEMU_CAPS_VIRTIO_IOEVENTFD, /* virtio-{net|blk}-pci.ioeventfd=on */
 QEMU_CAPS_SGA, /* Serial Graphics Adapter */
 QEMU_CAPS_VIRTIO_BLK_EVENT_IDX, /* virtio-blk-pci.event_idx */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index bbd3cd0a7d..05cc4903a4 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -356,21 +356,6 @@ qemuBuildDeviceAddressStr(virBufferPtr buf,
 goto cleanup;
 }
 
-if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_PCI_MULTIFUNCTION)) {
-if (info->addr.pci.function != 0) {
-virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-   _("Only PCI device addresses with function=0 "
- "are supported with this QEMU binary"));
-goto cleanup;
-}
-if (info->addr.pci.multi == VIR_TRISTATE_SWITCH_ON) {
-virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-   _("'multifunction=on' is not supported with "
- "this QEMU binary"));
-goto cleanup;
-}
-}
-
 if (contIsPHB && contTargetIndex > 0) {
 /* The PCI bus created by a spapr-pci-host-bridge device with
  * alias 'x' will be called 'x.0' rather than 'x'; however,
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml 
b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index 04c8016490..109fa2adaa 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -29,7 +29,6 @@
   
   
   
-  
   
   
   

[ ...etc... ]

diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 24eb8cbc5b..288de59de1 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -846,7 +846,6 @@ mymain(void)
 QEMU_CAPS_ENABLE_KVM,
 QEMU_CAPS_BOOT_MENU,
 QEMU_CAPS_PIIX3_USB_UHCI,
-

[libvirt] [dbus PATCH] APIs should appear in aplhabetical order in all files.

2018-04-09 Thread Katerina Koukiou
In C and XML files the order is:
1) properties
2) methods
3) signals
All of them sorted in their category alphabetically.

Signed-off-by: Katerina Koukiou 
---
 data/org.libvirt.Connect.xml |  12 +--
 data/org.libvirt.Domain.xml  |  54 ++--
 src/connect.c|   2 +-
 src/domain.c | 200 +--
 4 files changed, 134 insertions(+), 134 deletions(-)

diff --git a/data/org.libvirt.Connect.xml b/data/org.libvirt.Connect.xml
index 5b49ed9..55260cc 100644
--- a/data/org.libvirt.Connect.xml
+++ b/data/org.libvirt.Connect.xml
@@ -25,12 +25,6 @@
   https://libvirt.org/html/libvirt-libvirt-host.html#virConnectGetVersion"/>
 
-
-  https://libvirt.org/html/libvirt-libvirt-domain.html#virConnectListAllDomains"/>
-  
-  
-
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainCreateXML"/>
@@ -73,6 +67,12 @@
   
   
 
+
+  https://libvirt.org/html/libvirt-libvirt-domain.html#virConnectListAllDomains"/>
+  
+  
+
 
   https://libvirt.org/html/libvirt-libvirt-network.html#virConnectListAllNetworks"/>
diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml
index 7679018..78378bb 100644
--- a/data/org.libvirt.Domain.xml
+++ b/data/org.libvirt.Domain.xml
@@ -3,25 +3,25 @@
 
 
   
-
+
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetName"/>
+value="See 
https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainIsActive"/>
 
-
+
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetUUIDString"/>
+value="See 
https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetAutostart"/>
 
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetID"/>
 
-
+
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetOSType"/>
+value="See 
https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetName"/>
 
-
+
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainIsActive"/>
+value="See 
https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetOSType"/>
 
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetState"/>
 
-
+
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetAutostart"/>
+value="See 
https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetUUIDString"/>
 
-
+
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetVcpusFlags"/>
+value="See 
https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainCreateWithFlags"/>
   
-  
 
-
+
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetXMLDesc"/>
+value="See 
https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainDestroyFlags"/>
   
-  
 
 
   
   
 
-
+
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainShutdownFlags"/>
+value="See 
https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetVcpusFlags"/>
   
+  
 
-
+
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainDestroyFlags"/>
+value="See 
https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainGetXMLDesc"/>
   
+  
 
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainReset"/>
   
 
-
+
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainCreateWithFlags"/>
-  
+value="See 
https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainResume"/>
 
-
+
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainUndefineFlags"/>
+value="See 
https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainShutdownFlags"/>
   
 
 
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSuspend"/>
 
-
+
   https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainResume"/>
+value="See 
https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainUndefineFlags"/>
+  
 
 
   https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [libvirt PATCH v2 02/44] Delete bogus cpu-host-passthrough test

2018-04-09 Thread Andrea Bolognani
On Thu, 2018-04-05 at 14:22 +0200, Ján Tomko wrote:
> We test the same XML for a type='kvm' domain twice, once with
> QEMU_CAPS_KVM (expecting success), once without (expecting failure).
> 
> The failure case relies on QEMU_CAPS_MACHINE_OPT not being set,
> failing in qemuBuildObsoleteAccelArg.
> 
> Checking a domain-type error message in a cpu test is strange.
> Delete the negative test to allow assuming QEMU_CAPS_MACHINE_OPT by
> default.
> 
> Signed-off-by: Ján Tomko 
> ---
>  tests/qemuxml2argvtest.c | 1 -
>  1 file changed, 1 deletion(-)

Reviewed-by: Andrea Bolognani 

-- 
Andrea Bolognani / Red Hat / Virtualization

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] Race condition between qemuDomainCreate and qemuDomainDestroy

2018-04-09 Thread Marc Hartmayer
On Fri, Apr 06, 2018 at 06:27 PM +0200, John Ferlan  wrote:
> On 04/03/2018 07:47 AM, Marc Hartmayer wrote:
>> On Tue, Mar 20, 2018 at 11:25 AM +0100, Marc Hartmayer 
>>  wrote:
>>> Hi,
>>>
>>> there is a race condition between 'qemuDomainCreate' and
>>> 'qemuDomainDestroy' causing a NULL pointer segmentation fault when
>>> accessing priv->monConfig. The race condition can be easily reproduced
>>> using gdb.
>>>
>>> (gdb) set non-stop on
>>> # set breakpoint on line 'mon = qemuMonitorOpen(vm, …)'
>>> (gdb) b qemu_process.c:1799
>>> # Actually, this second breakpoint is optional but it’s good to see
>>> where priv->monConfig is set to NULL
>>> # set breakpoint on line priv->monConfig = NULL;
>>> (gdb) b qemu_process.c:6589
>>> (gdb) run
>>> # continue all threads - just for the case we hit a breakpoint already
>>> (gdb) c -a
>>>
>>> Now start a domain (that is using QEMU)
>>>
>>> $ virsh start domain
>>>
>>> The first breakpoint will be hit. Now run in a second shell
>>>
>>> $ virsh destroy domain
>>>
>>> The second breakpoint will be hit. Continue the thread where the second
>>> breakpoint was hit (for this example this is thread 4)
>>>
>>> (gdb) thread apply 4 continue
>>>
>>> Now continue the thread where the first breakpoint was hit.
>>>
>>> => Segmentation fault because of a NULL pointer dereference at
>>>config->value
>>>
>>> Since I'm not very familiar with that part of the code, I wanted to ask
>>> for your advice.
>>>
>>> Thanks in advance.
>>>
>>> Beste Grüße / Kind regards
>>>Marc Hartmayer
>>>
>>> IBM Deutschland Research & Development GmbH
>>> Vorsitzende des Aufsichtsrats: Martina Koederitz
>>> Geschäftsführung: Dirk Wittkopp
>>> Sitz der Gesellschaft: Böblingen
>>> Registergericht: Amtsgericht Stuttgart, HRB 243294
>> 
>> Any ideas?
>> 
>
> Seeing as no one else has an exact or authoritative answer...
>
> qemuDomainCreate{XML|WithFlags} (and a few others) will call
> qemuProcessBeginJob which calls qemuDomainObjBeginAsyncJob and
> qemuDomainObjSetAsyncJobMask which IIUC allows QEMU_JOB_DESTROY
> to be run.
>
> The qemuDomainDestroyFlags calls qemuProcessBeginStopJob which calls
> qemuDomainObjBeginJob (e.g. sync job) using QEMU_JOB_DESTROY, which
> again IIUC is allowed to happen alongside the Async job because of the
> mask setting.
>
> In the code where you've broken during create, the @vm object lock is
> dropped allowing destroy to obtain it. So with the perfect timing and
> storm the window of opportunity does exist that the monConfig could be
> free'd and thus priv->monConfig set to NULL before or during the create
> processing uses it in qemuMonitorOpen.  If during the processing, then
> obviously the config-> would "appear" to be valid, but it may not
> actually be what was passed.
>
> The fix I believe involves using objects for virDomainChrSourceDef
> rather than VIR_ALLOC'd and VIR_FREE'd memory directly. I've put
> together a few patches and will post them shortly. Using the patches I
> don't see a core, but rather the (I believe) expected "error: internal
> error: qemu unexpectedly closed the monitor"
>
> John
>
>
>

Thanks for the fix!

-- 
Beste Grüße / Kind regards
   Marc Hartmayer

IBM Deutschland Research & Development GmbH
Vorsitzende des Aufsichtsrats: Martina Koederitz
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294


--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH 4/4] qemu: Obtain reference on monConfig

2018-04-09 Thread Marc Hartmayer
On Mon, Apr 09, 2018 at 04:25 PM +0200, Marc Hartmayer 
 wrote:
> On Fri, Apr 06, 2018 at 06:53 PM +0200, John Ferlan  
> wrote:
>> Because we allow a QEMU_JOB_DESTROY to occur while we're starting
>> up and we drop the @vm lock prior to qemuMonitorOpen, it's possible
>> that a domain destroy operation "wins" the race, calls qemuProcessStop
>> which will free and reinitialize priv->monConfig. Depending on the
>> exact timing either qemuMonitorOpen will be passed a NULL @config
>> variable or it will be using free'd (and possibly reclaimed) memory
>> as the @config parameter - neither of which is good.
>>
>> Resolve this by localizing the @monConfig, taking an extra reference,
>> and then once we get the @vm lock again removing our reference since
>> we are done with it.
>>
>> Signed-off-by: John Ferlan 
>> ---
>>  src/qemu/qemu_process.c | 6 +-
>>  1 file changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
>> index a8dab92dd6..988c6b1537 100644
>> --- a/src/qemu/qemu_process.c
>> +++ b/src/qemu/qemu_process.c
>> @@ -1776,6 +1776,7 @@ qemuConnectMonitor(virQEMUDriverPtr driver, 
>> virDomainObjPtr vm, int asyncJob,
>>  qemuDomainObjPrivatePtr priv = vm->privateData;
>>  qemuMonitorPtr mon = NULL;
>>  unsigned long long timeout = 0;
>> +virDomainChrSourceDefPtr monConfig;
>>
>>  if (qemuSecuritySetDaemonSocketLabel(driver->securityManager, vm->def) 
>> < 0) {
>>  VIR_ERROR(_("Failed to set security context for monitor for %s"),
>> @@ -1794,10 +1795,12 @@ qemuConnectMonitor(virQEMUDriverPtr driver, 
>> virDomainObjPtr vm, int asyncJob,
>>  virObjectRef(vm);
>>
>>  ignore_value(virTimeMillisNow(>monStart));
>> +monConfig = priv->monConfig;
>> +virObjectRef(monConfig);
>>  virObjectUnlock(vm);
>>
>>  mon = qemuMonitorOpen(vm,
>> -  priv->monConfig,
>> +  monConfig,
>>priv->monJSON,
>>timeout,
>>,
>> @@ -1813,6 +1816,7 @@ qemuConnectMonitor(virQEMUDriverPtr driver, 
>> virDomainObjPtr vm, int asyncJob,
>>
>>  virObjectLock(vm);
>>  virObjectUnref(vm);
>> +virObjectUnref(monConfig);
>
> Only for consistency: I would first unref @monConfig and then do the
> unref for @vm.

With this change: Reviewed-by: Marc Hartmayer 

>
>>  priv->monStart = 0;
>>
>>  if (!virDomainObjIsActive(vm)) {
>> --
>> 2.13.6
>>
>> --
>> libvir-list mailing list
>> libvir-list@redhat.com
>> https://www.redhat.com/mailman/listinfo/libvir-list
>>
> --
> Beste Grüße / Kind regards
>Marc Hartmayer
>
> IBM Deutschland Research & Development GmbH
> Vorsitzende des Aufsichtsrats: Martina Koederitz
> Geschäftsführung: Dirk Wittkopp
> Sitz der Gesellschaft: Böblingen
> Registergericht: Amtsgericht Stuttgart, HRB 243294
--
Beste Grüße / Kind regards
   Marc Hartmayer

IBM Deutschland Research & Development GmbH
Vorsitzende des Aufsichtsrats: Martina Koederitz
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294


--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH 3/4] conf: Convert virDomainChrSourceDefNew to return object

2018-04-09 Thread Marc Hartmayer
On Fri, Apr 06, 2018 at 06:53 PM +0200, John Ferlan  wrote:
> Let's use object referencing to handle the ChrSourceDef. A subsequent
> patch then can allow the monConfig to take an extra reference before
> dropping the domain lock to then ensure nothing free's the memory that
> needs to be used.
>
> Signed-off-by: John Ferlan 
> ---
>  src/conf/domain_conf.c | 33 ++---
>  1 file changed, 30 insertions(+), 3 deletions(-)
>
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index fd57364cd4..b4c5de8b33 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -2260,8 +2260,10 @@ virDomainChrSourceDefCopy(virDomainChrSourceDefPtr 
> dest,
>  return 0;
>  }
>

[…snip…]

> +
> +VIR_ONCE_GLOBAL_INIT(virDomainChrSourceDef);
> +
>  virDomainChrSourceDefPtr
>  virDomainChrSourceDefNew(virDomainXMLOptionPtr xmlopt)
>  {
>  virDomainChrSourceDefPtr def = NULL;
>
> -if (VIR_ALLOC(def) < 0)
> +if (virDomainChrSourceDefInitialize() < 0)
> +return NULL;
> +
> +if (!(def = virObjectNew(virDomainChrSourceDefClass)))
>  return NULL;
>
>  if (xmlopt && xmlopt->privateData.chrSourceNew &&
   !(def->privateData = xmlopt->privateData.chrSourceNew()))
   VIR_FREE(def);
   ^^
   Replace it with virDomainChrSourceDefFree(def) or 
virObjectUnref(def).

> --
> 2.13.6
>
> --
> libvir-list mailing list
> libvir-list@redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
>

Otherwise, Reviewed-by: Marc Hartmayer 

--
Beste Grüße / Kind regards
   Marc Hartmayer

IBM Deutschland Research & Development GmbH
Vorsitzende des Aufsichtsrats: Martina Koederitz
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294


--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [libvirt PATCH v2 00/4] Require QEMU 1.5.0

2018-04-09 Thread Andrea Bolognani
On Thu, 2018-04-05 at 14:22 +0200, Ján Tomko wrote:
> v2:
> * Change the version from 1.3.0 to 1.5.0
> * Mention this breaks RHEL 6 QEMU and list the versions
> in relevant long-term releases
> 
> Some of the patches are very big, available in my repo:
> https://repo.or.cz/libvirt/jtomko.git/shortlog/refs/heads/caps_cleanup_v2
> git fetch git://repo.or.cz/libvirt/jtomko.git caps_cleanup_v2:

Can you please send snipped versions of the patches to the list,
eg. redact the test suite churn but leave the actual code changes
intact? At least for those patches where such changes are not
trivial and might thus warrant review feedback...

-- 
Andrea Bolognani / Red Hat / Virtualization

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [libvirt PATCH v2 01/44] qemuxml2argvtest: Fix q35-virt-manager capabilities

2018-04-09 Thread Andrea Bolognani
On Thu, 2018-04-05 at 14:22 +0200, Ján Tomko wrote:
> Use QEMU_CAPS_MACHINE_OPT and QEMU_CAPS_MACHINE_VMPORT_OPT
> since it specifies .
> 
> Signed-off-by: Ján Tomko 
> ---
>  tests/qemuxml2argvdata/q35-virt-manager-basic.args | 2 +-
>  tests/qemuxml2argvtest.c   | 2 ++
>  2 files changed, 3 insertions(+), 1 deletion(-)

Kinda weird that we don't just error out if vmport is configured
and we clearly have no way of enforcing it.

Regardless,

  Reviewed-by: Andrea Bolognani 

-- 
Andrea Bolognani / Red Hat / Virtualization

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH V2 0/8] Remove the legacy xen driver

2018-04-09 Thread Daniel P . Berrangé
On Fri, Apr 06, 2018 at 02:44:52PM -0600, Jim Fehlig wrote:
> Long overdue removal the old xen driver. The first 3 patches move existing
> tests to WITH_LIBXL since we'll want to continue supporting conversion of
> the various xen config formats. The remain patches remove the cruft.
> 
> Patch8, new to V2, updates the Xen driver page.
> 
> Jim Fehlig (8):
>   tests: move xml2sexpr tests to WITH_LIBXL
>   tests: move sexpr2xml tests to WITH_LIBXL
>   tests: move xmconfig tests to WITH_LIBXL
>   Remove xencaps tests and data files
>   Remove the xend driver
>   docs: remove mention of legacy Xen driver
>   spec: remove legacy xen driver
>   docs: update Xen driver information

Reviewed-by: Daniel P. Berrangé 


Just a question about  inline - fine if you choose to address
that after merging.


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 :|

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH 2/4] qemu: Use virDomainChrSourceDefNew for monConfig

2018-04-09 Thread Marc Hartmayer
On Fri, Apr 06, 2018 at 06:53 PM +0200, John Ferlan  wrote:
> Rather than VIR_ALLOC, use the New function for allocation. We
> already use the Free function anyway.
>
> Signed-off-by: John Ferlan 
> ---
>  src/conf/domain_conf.c   | 2 +-
>  src/conf/domain_conf.h   | 3 +++
>  src/libvirt_private.syms | 1 +
>  src/qemu/qemu_domain.c   | 2 +-
>  src/qemu/qemu_process.c  | 2 +-
>  5 files changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index caf3f47c63..fd57364cd4 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -12211,7 +12211,7 @@ 
> virDomainChrSourceDefParseXML(virDomainChrSourceDefPtr def,
>  }
>
>
> -static virDomainChrSourceDefPtr

[…snip]

With the change suggested by Laine: Reviewed-by: Marc Hartmayer 


-- 
Beste Grüße / Kind regards
   Marc Hartmayer

IBM Deutschland Research & Development GmbH
Vorsitzende des Aufsichtsrats: Martina Koederitz
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294


--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH V2 2/8] tests: move sexpr2xml tests to WITH_LIBXL

2018-04-09 Thread Daniel P . Berrangé
On Fri, Apr 06, 2018 at 02:44:54PM -0600, Jim Fehlig wrote:
> In preparation of removing the legacy Xen driver, move the
> sexpr2xml tests from WITH_XEN to WITH_LIBXL. Even though the
> legacy driver will be removed, we'll want to maintain the ability
> to convert sexpr to XML. Requires fixing up the tests to account
> for different behavior of Xen vs libxl post parse functions.
> 
> There is some test file fallout due to differences in handling
> of default values between xend and libxl.


> diff --git a/tests/sexpr2xmldata/sexpr2xml-boot-grub.xml 
> b/tests/sexpr2xmldata/sexpr2xml-boot-grub.xml
> index b9a8716b2..4b9f535fc 100644
> --- a/tests/sexpr2xmldata/sexpr2xml-boot-grub.xml
> +++ b/tests/sexpr2xmldata/sexpr2xml-boot-grub.xml
> @@ -15,7 +15,7 @@
>destroy
>
>  
> -  
> +  
>
>
>  
> @@ -24,6 +24,5 @@
>  
>  
>  
> -

For this I wonder if a better solution is actually to make the libxl
driver fill in the memballoon device. IIUC, you can't actually turn
it off, so all libxl guests will have this regardless.  So we should
just need to add the element a post-parse callback, and check for
unsupported "model" value when starting the guest


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 :|

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH 1/4] conf: Use virDomainChrSourceDefNew for vhostuser

2018-04-09 Thread Marc Hartmayer
On Fri, Apr 06, 2018 at 06:53 PM +0200, John Ferlan  wrote:
> Rather than using VIR_ALLOC, use the New API since we already
> use the virDomainChrSourceDefFree function when done.
>
> Signed-off-by: John Ferlan 
> ---
>  src/conf/domain_conf.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index aacd06a87a..caf3f47c63 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -11138,7 +11138,7 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt,
>  goto error;
>  }
>
> -if (VIR_ALLOC(def->data.vhostuser) < 0)
> +if (!(def->data.vhostuser = virDomainChrSourceDefNew(xmlopt)))
>  goto error;
>
>  def->data.vhostuser->type = VIR_DOMAIN_CHR_TYPE_UNIX;
> --
> 2.13.6
>
> --
> libvir-list mailing list
> libvir-list@redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
>

Reviewed-by: Marc Hartmayer 

--
Beste Grüße / Kind regards
   Marc Hartmayer

IBM Deutschland Research & Development GmbH
Vorsitzende des Aufsichtsrats: Martina Koederitz
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294


--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH 4/4] qemu: Obtain reference on monConfig

2018-04-09 Thread Marc Hartmayer
On Fri, Apr 06, 2018 at 06:53 PM +0200, John Ferlan  wrote:
> Because we allow a QEMU_JOB_DESTROY to occur while we're starting
> up and we drop the @vm lock prior to qemuMonitorOpen, it's possible
> that a domain destroy operation "wins" the race, calls qemuProcessStop
> which will free and reinitialize priv->monConfig. Depending on the
> exact timing either qemuMonitorOpen will be passed a NULL @config
> variable or it will be using free'd (and possibly reclaimed) memory
> as the @config parameter - neither of which is good.
>
> Resolve this by localizing the @monConfig, taking an extra reference,
> and then once we get the @vm lock again removing our reference since
> we are done with it.
>
> Signed-off-by: John Ferlan 
> ---
>  src/qemu/qemu_process.c | 6 +-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
> index a8dab92dd6..988c6b1537 100644
> --- a/src/qemu/qemu_process.c
> +++ b/src/qemu/qemu_process.c
> @@ -1776,6 +1776,7 @@ qemuConnectMonitor(virQEMUDriverPtr driver, 
> virDomainObjPtr vm, int asyncJob,
>  qemuDomainObjPrivatePtr priv = vm->privateData;
>  qemuMonitorPtr mon = NULL;
>  unsigned long long timeout = 0;
> +virDomainChrSourceDefPtr monConfig;
>
>  if (qemuSecuritySetDaemonSocketLabel(driver->securityManager, vm->def) < 
> 0) {
>  VIR_ERROR(_("Failed to set security context for monitor for %s"),
> @@ -1794,10 +1795,12 @@ qemuConnectMonitor(virQEMUDriverPtr driver, 
> virDomainObjPtr vm, int asyncJob,
>  virObjectRef(vm);
>
>  ignore_value(virTimeMillisNow(>monStart));
> +monConfig = priv->monConfig;
> +virObjectRef(monConfig);
>  virObjectUnlock(vm);
>
>  mon = qemuMonitorOpen(vm,
> -  priv->monConfig,
> +  monConfig,
>priv->monJSON,
>timeout,
>,
> @@ -1813,6 +1816,7 @@ qemuConnectMonitor(virQEMUDriverPtr driver, 
> virDomainObjPtr vm, int asyncJob,
>
>  virObjectLock(vm);
>  virObjectUnref(vm);
> +virObjectUnref(monConfig);

Only for consistency: I would first unref @monConfig and then do the
unref for @vm.

>  priv->monStart = 0;
>
>  if (!virDomainObjIsActive(vm)) {
> --
> 2.13.6
>
> --
> libvir-list mailing list
> libvir-list@redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
>
--
Beste Grüße / Kind regards
   Marc Hartmayer

IBM Deutschland Research & Development GmbH
Vorsitzende des Aufsichtsrats: Martina Koederitz
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294


--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [dbus PATCH v2 5/8] Implement Secure property for Connect Interface

2018-04-09 Thread Pavel Hrdina
On Mon, Apr 09, 2018 at 04:00:55PM +0200, Katerina Koukiou wrote:
> Signed-off-by: Katerina Koukiou 
> ---
>  data/org.libvirt.Connect.xml |  5 +
>  src/connect.c| 20 
>  test/test_connect.py |  1 +
>  3 files changed, 26 insertions(+)
> 
> diff --git a/data/org.libvirt.Connect.xml b/data/org.libvirt.Connect.xml
> index 84eadb0..10bd6d2 100644
> --- a/data/org.libvirt.Connect.xml
> +++ b/data/org.libvirt.Connect.xml
> @@ -16,6 +16,11 @@
>  value="See 
> https://libvirt.org/html/libvirt-libvirt-host.html#virConnectGetLibVersion"/>
>  
> +
> +   +value="See 
> https://libvirt.org/html/libvirt-libvirt-host.html#virConnectIsSecure
> +   Note that monitoring of traffic on the dbus message bus is 
> out of the scope of this property"/>

s/dbus/D-Bus/

Reviewed-by: Pavel Hrdina 


signature.asc
Description: PGP signature
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [dbus PATCH v2 4/8] Implement Encrypted property for Connect Interface

2018-04-09 Thread Pavel Hrdina
On Mon, Apr 09, 2018 at 04:00:54PM +0200, Katerina Koukiou wrote:
> Signed-off-by: Katerina Koukiou 
> ---
>  data/org.libvirt.Connect.xml |  5 +
>  src/connect.c| 20 
>  test/test_connect.py |  1 +
>  3 files changed, 26 insertions(+)
> 
> diff --git a/data/org.libvirt.Connect.xml b/data/org.libvirt.Connect.xml
> index 0e5c7e2..84eadb0 100644
> --- a/data/org.libvirt.Connect.xml
> +++ b/data/org.libvirt.Connect.xml
> @@ -3,6 +3,11 @@
>  
>  
>
> +
> +   +value="See 
> https://libvirt.org/html/libvirt-libvirt-host.html#virConnectIsEncrypted
> +   Note that monitoring of traffic on the dbus message bus is 
> out of the scope of this property"/>

s/dbus/D-Bus/

Reviewed-by: Pavel Hrdina 


signature.asc
Description: PGP signature
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [dbus PATCH v2 1/8] Implement GetCapabilities method for connect Interface

2018-04-09 Thread Pavel Hrdina
On Mon, Apr 09, 2018 at 04:00:51PM +0200, Katerina Koukiou wrote:
> Signed-off-by: Katerina Koukiou 
> ---
>  data/org.libvirt.Connect.xml |  5 +
>  src/connect.c| 23 +++
>  test/test_connect.py |  3 +++
>  3 files changed, 31 insertions(+)

Reviewed-by: Pavel Hrdina 


signature.asc
Description: PGP signature
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

  1   2   >