OK, so the hooking module is included in the vdsm package itself. Please
make sure you have /usr/share/vdsm/hooking.py on the host.
The manual run fails, because it is not running in the vdsm context, and so
the modules imported are the python site-packages and not the submodules
under vdsm.
To make a hook work, you need to place it on the host, make it accessible
to vdsm:kvm, and maybe define a custom property, if you don't want the hook
to just run on every started VM.
On Tue, Jan 12, 2016 at 10:35 AM, Jean-Pierre Ribeauville <
jpribeauville(a)axway.com> wrote:
Hi,
1° It’s a full RHEL7 OS.
2°
vdsm-python-zombiereaper-4.16.27-0.el7.centos.noarch
vdsm-python-4.16.27-0.el7.centos.noarch
vdsm-yajsonrpc-4.16.27-0.el7.centos.noarch
vdsm-xmlrpc-4.16.27-0.el7.centos.noarch
vdsm-cli-4.16.27-0.el7.centos.noarch
vdsm-jsonrpc-java-1.0.15-1.el7.noarch
vdsm-jsonrpc-4.16.27-0.el7.centos.noarch
vdsm-4.16.27-0.el7.centos.x86_64
3°
#!/usr/bin/python
1)
2) import os
3) import sys
4) import grp
5) import pwd
6) import traceback
7)
8) import hooking
9)
10) def createChannelElement(domxml):
11) '''
12) <channel type='unix'>
13) <source mode='bind'
path='//var/lib/libvirt/qemu/VM_RHEL7-1_omnivision_1.agent'/>
14) <target type='virtio' name='omnivision_1.agent'/>
15) </channel>
16) '''
17)
18) channel = domxml.createElement('channel')
19) disk.setAttribute('type', 'unix')
20)
21) source = domxml.createElement('source')
22) source.setAttribute('mode', 'bind')
23)
24) # find domain name
25) domainame = domxml.getElementsByTagName('name')
26)
27) source.setAttribute('path', '//var/lib/libvirt/qemu/' +
domainame + '_omnivision_1.agent')
28) disk.appendChild(source)
29)
30) target = domxml.createElement('target')
31) target.setAttribute('type', 'virtio')
32) target.setAttribute('name', 'omnivision_1.agent')
33) disk.appendChild(target)
34)
35) return channel
36)
37) try:
38) domxml = hooking.read_domxml()
39) devices = domxml.getElementsByTagName('devices')[0]
40) channeldev = createChannelElement(domxml)
41) sys.stderr.write('createChannel: adding xml: %s\n' %
channeldev.toxml())
42) devices.appendChild(channeldev)
43)
44) hooking.write_domxml(domxml)
45) except:
46) sys.stderr.write('createChannel: [unexpected error]: %s\n' %
47) traceback.format_exc())
48) sys.exit(2)
Thx for help.
Regards,
J.P.
*De :* Dan Yasny [mailto:dyasny@gmail.com]
*Envoyé :* mardi 12 janvier 2016 16:23
*À :* Jean-Pierre Ribeauville
*Cc :* users(a)ovirt.org
*Objet :* Re: [ovirt-users] vdsm hook issues
1. Are you using a full OS or a node?
2. rpm -qa |grep vdsm
3. if possible, post the hook code
Thanks
On Tue, Jan 12, 2016 at 10:17 AM, Jean-Pierre Ribeauville <
jpribeauville(a)axway.com> wrote:
Hi,
1) is it enough to add a hook.py in
/usr/libexec/vdsm/hooks/before_vm_start directory , and then shut down and
reboot a guest to
see this hook.py invoked ?
2) when running manually my hook.py, I got following error :
ImportError: No module named hooking
Do I have to install anything to solve this issue ?
Thanks for help.
Regards,
*J.P. Ribeauville*
P: +33.(0).1.47.17.20.49
.
Puteaux 3 Etage 5 Bureau 4
*jpribeauville(a)axway.com <jpribeauville(a)axway.com>*
http://www.axway.com
P Pensez à l’environnement avant d’imprimer.
_______________________________________________
Users mailing list
Users(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/users