I'm running libvirt-php 0.5.2 on CentOS 7 with libvirt 2.1.0.
Using virsh I'm able to connect to hyper-v hosts correctly but using libvirt-php it fails during authentication since it seems that the credentials are not being passed along.

This is the php code I'm using:

<?php
$logfile = 'test.log';

unlink($logfile);
if (!libvirt_logfile_set($logfile))
die('Cannot set the log file');

$connstr = 'hyperv://user@hyperv-host/?transport=http';
$credentials = array(VIR_CRED_AUTHNAME=>'Administrator',VIR_CRED_PASSPHRASE=>'somepass');
$conn = libvirt_connect($connstr, false, $credentials);
echo libvirt_get_last_error();
unset($conn);

$fp = fopen($logfile, 'r');
   $str = fread($fp, filesize($logfile));
   fclose($fp);

echo '<pre>';
echo $str;
print_r($credentials);
echo '</pre>';
?>

And this is the output:


authentication failed: Password request failed

[2016-09-02 11:10:02 libvirt-php/core ]: libvirt_connect: Found 0 elements for credentials [2016-09-02 11:10:02 libvirt-php/core ]: libvirt_virConnectAuthCallback: cred 0, type 5, prompt Enter Administrator's password for hyperv-host challenge hyperv-host [2016-09-02 11:10:02 libvirt-php/core ]: libvirt_virConnectAuthCallback: result (null) (0) [2016-09-02 11:10:02 libvirt-php/core ]: libvirt_connect: Cannot establish connection to hyperv://Administrator@hyperv-host/?transport=http
Array
(
   [2] => Administrator
   [5] => somepass
)


Note the "Found 0 elements for credentials".
After doing some googling I found an email thread "[libvirt] [libvirt-php PATCH 0/3] Fix PHP5 compatibilty issues." that I think is related to my problem, especially patch 2/3. I also checked github project and saw that those patches are already merged in the code so I went ahead and apply them to 0.5.2 source code and rebuild:

use VIRT_FOREACH macros everywhere - Commit: f4b760d
libvirt_connect: use loop macros to read cred info - Commit: d704106
Define macros for looping php hash tables - Commit: 673a0bf

The build went fine but now when I'm trying to connect to the hyper-v host using libvirt-php I get an internal server error (500) so it seems PHP is crashing. From the system log I see:

kernel: traps: php-cgi[43452] general protection ip:7f63907f74a0 sp:7fff12d61f68 error:0 in libvirt.so.0.2001.0[7f6390735000+385000]

Is there any other patch that I'm missing?
Any ideas on how to fix the libvirt_connect credentials issue without applying the patches above?

Sofware versions:

OS: CentOS Linux release 7.2.1511 (Core)
Kernel: 3.10.0-327.28.2.el7.x86_64
PHP: 5.4.16-36.3.el7_2.x86_64
libvirt: 2.1.0-4.1.x86_64
libvirt-php: 0.5.2

Thanks in advance for your replies.

Fer


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

Reply via email to