Description of problem: When trying to us libvirt_domain_new() with vz, it links through to virDomainCreateXML() which is not supported by libvirt for vz looking at the matrix (https://libvirt.org/hvsupport.html), but virDomainCreateWithFlags() is. Version-Release number of selected component (if applicable): 3.6 I have tried to have a look and see if there is a fix for this in the master branch but doesn't appear to be. How reproducible: libvirt_domain_new(); Steps to Reproduce: 1.Try and create a domain using the vz hypervisor. 2.$uri="vz:///system"; 3.$conn = libvirt_connect($uri); 4.libvirt_domain_new($conn, 'vm2', 'x86_64', 512, 512, 1, $iso_image, $disks, $networks, 1); Actual results: libvirt_domain_new(): this function is not supported by the connection driver: virDomainCreateXML Expected results: To remap to virDomainCreateWithFlags() for vz hypervisor Additional info:
Patches proposed on the upstream list: https://www.redhat.com/archives/libvir-list/2017-December/msg00231.html
I've pushed the patches upstream: commit 19cf16f570bb25da3c8874efce10ebfefd37fa89 Author: Michal Privoznik <mprivozn> AuthorDate: Thu Dec 7 10:18:40 2017 +0100 Commit: Michal Privoznik <mprivozn> CommitDate: Sat Dec 9 15:58:49 2017 +0100 src: Use VIR_FREE instead of free Signed-off-by: Michal Privoznik <mprivozn> Reviewed-by: Erik Skultety <eskultet> commit 70c95d0ee725f364cbe314c72d8f35763b74cf3f Author: Michal Privoznik <mprivozn> AuthorDate: Thu Dec 7 09:55:54 2017 +0100 Commit: Michal Privoznik <mprivozn> CommitDate: Sat Dec 9 15:58:28 2017 +0100 installation_get_xml: Resolve couple of memleaks There are still some, but it's definitely better now. Signed-off-by: Michal Privoznik <mprivozn> commit 36d6411e485ef42970f0e66fa018066b6092c1de Author: Michal Privoznik <mprivozn> AuthorDate: Thu Dec 7 09:55:30 2017 +0100 Commit: Michal Privoznik <mprivozn> CommitDate: Sat Dec 9 15:58:21 2017 +0100 libvirt_domain_new: Resolve couple of memleaks There are still some, but it's definitely better now. Signed-off-by: Michal Privoznik <mprivozn> Reviewed-by: Erik Skultety <eskultet> commit 8382a2e3aa41d93e5aff6f47c15f43f312bebb3a Author: Michal Privoznik <mprivozn> AuthorDate: Thu Dec 7 09:31:49 2017 +0100 Commit: Michal Privoznik <mprivozn> CommitDate: Sat Dec 9 15:56:31 2017 +0100 util: Introduce VIR_FREE Just like libvirt has it. After freeing pointer set it to NULL to avoid double frees. Signed-off-by: Michal Privoznik <mprivozn> Reviewed-by: Erik Skultety <eskultet> commit 5f01d8d130400b2c06ff6f857cb115223382ae68 Author: Michal Privoznik <mprivozn> AuthorDate: Wed Nov 29 11:38:23 2017 +0100 Commit: Michal Privoznik <mprivozn> CommitDate: Sat Dec 9 15:56:14 2017 +0100 installation_get_xml: Don't override defaults of <on_reboot/> and friends We don't really need to override the defaults because libvirt chooses sane ones. Signed-off-by: Michal Privoznik <mprivozn> Reviewed-by: Erik Skultety <eskultet> commit 9d969bbd4098113acd14f7ed4c3c76def8dc6a46 Author: Michal Privoznik <mprivozn> AuthorDate: Wed Nov 15 10:48:43 2017 +0100 Commit: Michal Privoznik <mprivozn> CommitDate: Sat Dec 9 15:53:48 2017 +0100 Rework libvirt_domain_new a bit Firstly, this API is creating $domName-install for installation and at the same time it defines $domName (but never runs it). This is not very optimal - libvirt can handle two definitions for a single domain (active and inactive ones). Secondly, this function is leaking domain objects on any error. Signed-off-by: Michal Privoznik <mprivozn> Reviewed-by: Erik Skultety <eskultet> commit 24e065275e9c470ef0b4812a54a5fe641b2f2361 Author: Michal Privoznik <mprivozn> AuthorDate: Wed Nov 15 10:14:14 2017 +0100 Commit: Michal Privoznik <mprivozn> CommitDate: Sat Dec 9 14:47:02 2017 +0100 Make installation_get_xml hurt my eyes less. This function has a lot of problems. Fix some of them: 1) long lines 2) useless argument @step 3) unclear domain XML 4) unclear difference in generated XMLs for step 1 and step 2 5) static 32KB buffer(!) Signed-off-by: Michal Privoznik <mprivozn> Reviewed-by: Erik Skultety <eskultet>