Despite great success at using php-libvirt with other functions, I have
been entirely unsuccessful in getting it to create a new domain/machine.
Any time I do, and with virtually anything I try, I get the above error
message.
Running PHP 7.4 (remi) on otherwise stock AlmaLinux.
*[root@sb4 html]# cat /etc/redhat-release AlmaLinux release 8.5 (Arctic
Sphynx*
*[root@sb4 html]# rpm -qa php php-fpm php-libvirt
nginxphp-7.4.28-1.el8.remi.x86_64nginx-1.14.1-9.module_el8.3.0+2165+af250afe.alma.x86_64php-fpm-7.4.28-1.el8.remi.x86_64php-libvirt-0.5.5-1.el8.remi.7.4.x86_6412
XEON E312xx cores, 24 w/HT, 192GB RAM, etc. *
When I run it, I find in php-fpm
www.error-log:
*[24-Mar-2022 20:05:51 UTC] PHP Warning: libvirt_domain_new(): Cannot get
installation XML in /var/www/html/manage.php on line 190*
Matching message onscreen: *Warning: libvirt_domain_new(): Cannot get
installation XML in /var/www/html/manage.php on line 191*
Here's the offending code:
$networks = [
*'mac'* => '52:54:00:06:a7:df',
*'network'* => 'default',
*'model'* => *'e1000'*,
];
$disks = [
*'path'* => *"/var/lib/libvirt/images/myvm.qcow2"*,
*'driver'* => *'qcow2'*,
*'bus'* => *'ide'*,
*'dev'* => *'hda'*,
*'size'* => *'40G'*,
*'flags'* => null,
];
error_reporting(-1);
$result = libvirt_domain_new(
$conn,
'myvm',* // name of the new domain*
null,* // optional architecture string, can be NULL to get default (or
false)*
2048,* // number of megabytes of RAM to be allocated for domain*
8192,* // maximum number of megabytes of RAM to be allocated for domain*
2,* // number of VCPUs to be allocated to domain*
*'/var/www/html/AlmaLinux-8.4-x86_64-dvd.iso'*,* // installation ISO
image for*$
$disks,* // array of disk devices for domain*
$networks,
null
);
I've tried various values for $disks and $networks, setting error reporting
to -1 (display anything and everything), journalctl -f on both the
webserver and the virt host, etc but was never able to see any error other
than this one.
I've also been looking in the source code file for anything obvious, and
I've been utterly unsuccessful in changing the error message. For example,
inserting an invalid path for the ISO image doesn't result in an error
message that it *looks* like it should be throwing errors about invalid ISO
image.
In fact, I've even tried passing ALL NULL/EMPTY VALUES and with the
exception of the $conn connection variable, I only get this "Cannot get
installation XML" error message:
$result = libvirt_domain_new(
$conn,
null,
null,
null,
null,
null,
null,
[],
[]
);
Shouldn't I at least be seeing a message like "Name is 'myvm', memMB is
2048,
maxmemMB is 8192" ?
https://github.com/php/pecl-virtualization-libvirt/blob/master/src/libvir...