Hello Jirka,
The script is not even invoked for prepare/start calls, not that it is invoking libvirt
APIs or is hanging. When it is invoked for 'started', it runs to completion.
I did notice the warning about talking to libvirt from the hooks. However, if the script
were to be invoked, I will only be writing the modified xml to stdout. This is based on:
https://libvirt.org/hooks.html
For migrate and restore calls, "the script acts as a filter and is supposed to modify
the domain XML and print it out on its standard output".
I am hoping the same method will work for prepare or start calls. If there is a better way
to update the VM's xml before it is launched, please let me know.
Thank you for the response.
Regards,
Sundar
-----Original Message-----
From: Jiri Denemark [mailto:jdenemar@redhat.com]
Sent: Monday, November 16, 2015 4:27 AM
To: Sundar Nadathur
Cc: libvirt-users(a)redhat.com
Subject: Re: [libvirt-users] libvirt prepare and start hooks not callled
Hi.
On Fri, Nov 13, 2015 at 20:44:15 +0000, Sundar Nadathur wrote:
I am using RHEL 7.1 and libvirt 1.2.8. My intention is to
intercept
the prepare and start hooks of libvirt during VM placement to
inject a virtio PCI device into the VM's domain xml.
You are not supposed to talk to libvirtd from any hooks.
I placed a python script with execute permissions in
/etc/libvirt/hooks/qemu. In there, I opened a log file to record the
arguments received:
log.write("avfd called with args: %s\n" % sys.argv)
But all I get in the log file is:
avfd called with args: ['/etc/libvirt/hooks/qemu', 'vm1',
'started',
'begin', '-']
There are no prepare or start calls. Can somebody explain what it takes to fix this?
If you're trying to update the domain's configuration from the hook, you caused a
deadlock between libvirt and your hook. Thus your hook script will never finish and
libvirtd will be waiting for the hook to finish and it will never start the domain.
Jirka
________________________________
Confidentiality Notice.
This message may contain information that is confidential or otherwise protected from
disclosure. If you are not the intended recipient, you are hereby notified that any use,
disclosure, dissemination, distribution, or copying of this message, or any attachments,
is strictly prohibited. If you have received this message in error, please advise the
sender by reply e-mail, and delete the message and any attachments. Thank you.