[libvirt] Not able to run "virsh qemu-agent-command" when socat is working

Hi, I am running qemu guest agent in Windows 2k8. I am able to execute "qemu-agent-commands" using socat but not through "virsh qemu-agent-command". *Guest VM xml* <controller type='virtio-serial' index='0'> <alias name='virtio-serial0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </controller> <channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/g06.agent'/> <target type='virtio' name='org.qemu.guest_agent.1'/> <alias name='channel0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> *Guest win2k8 is running following command* C:\qemu-ga> qemu-ga.exe -t c:\qemu-ga -p \\.Global\org.qemu.guest_agent.1 *Host CentOS system* socat returns response appropriately. [root@sdsr720-14 ~]# echo "{'execute':'guest-ping'}" | socat stdio,ignoreeof /var/lib/libvirt/qemu/g06.agent {"return": {}} *"virsh qemu-agent-command" returns blank.* [root@sdsr720-14 ~]# virsh qemu-agent-command vm_win_06 '{ "execute": "guest_ping"}' [root@sdsr720-14 ~]# Why "virsh qemu-agent-command" is not working? Am I doing something wrong here? Regards, ~Puneet

On 07/02/2014 01:13 AM, Puneet Bakshi wrote:
Hi,
I am running qemu guest agent in Windows 2k8. I am able to execute "qemu-agent-commands" using socat but not through "virsh qemu-agent-command".
*Host CentOS system*
socat returns response appropriately. [root@sdsr720-14 ~]# echo "{'execute':'guest-ping'}" | socat stdio,ignoreeof /var/lib/libvirt/qemu/g06.agent {"return": {}}
Note your spelling...
*"virsh qemu-agent-command" returns blank.*
[root@sdsr720-14 ~]# virsh qemu-agent-command vm_win_06 '{ "execute": "guest_ping"}'
and compare it to here. There is no guest_ping command, only guest-ping. It's a bug in libvirt that guest-agent-command doesn't output a useful error message when attempting to run a non-existing command, but you'll never hit that bug if you pass valid commands to the agent in the first place. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org

Sorry, that was a typo. But, it is still not working. (For some reason, I had to move to Windows2012 with name vm_win_05). [root@sdsr720-14 virtio-win]# echo "{'execute':'guest-ping'}" | socat stdio,ignoreeof /var/lib/libvirt/qemu/g05.agent {"return": {}} [root@sdsr720-14 virtio-win]# virsh qemu-agent-command vm_win_05 '{ "execute":"guest-ping"}' [root@sdsr720-14 virtio-win]# Regards, ~Puneet On Wed, Jul 2, 2014 at 10:09 PM, Eric Blake <eblake@redhat.com> wrote:
On 07/02/2014 01:13 AM, Puneet Bakshi wrote:
Hi,
I am running qemu guest agent in Windows 2k8. I am able to execute "qemu-agent-commands" using socat but not through "virsh qemu-agent-command".
*Host CentOS system*
socat returns response appropriately. [root@sdsr720-14 ~]# echo "{'execute':'guest-ping'}" | socat stdio,ignoreeof /var/lib/libvirt/qemu/g06.agent {"return": {}}
Note your spelling...
*"virsh qemu-agent-command" returns blank.*
[root@sdsr720-14 ~]# virsh qemu-agent-command vm_win_06 '{
"execute":
"guest_ping"}'
and compare it to here. There is no guest_ping command, only guest-ping. It's a bug in libvirt that guest-agent-command doesn't output a useful error message when attempting to run a non-existing command, but you'll never hit that bug if you pass valid commands to the agent in the first place.
-- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
participants (2)
-
Eric Blake
-
Puneet Bakshi