[ovirt-users] vdsm hook issues

Dan Yasny dyasny at gmail.com
Tue Jan 12 15:59:59 UTC 2016


So, to make is work, you need to chown 36:36 and chmod +x for 36:36 of
course.

As for logging, since the hook is run under the vdsm context, you can tap
right into the logging of vdsm, or you can write your own log file,
whatever you prefer to code.

See
https://github.com/oVirt/vdsm/blob/master/vdsm_hooks/vmfex/before_vm_start.py
line 197 - sys.stderr.write will actually dump into the vdsm log.

On Tue, Jan 12, 2016 at 10:55 AM, Jean-Pierre Ribeauville <
jpribeauville at axway.com> wrote:

> Hi,
>
>
>
> /usr/share/vdsm/hooking.py  is present on my host.
>
>
>
> I placed my test_hook.py  in /usr/libexec/vdsm/hooks/before_vm_start
>
>
>
> As I want to have it invoked for every started VM ,  I don’t need custom
> property ; Am I right ?
>
>
>
> Remains the point “make it accessible to vdsm:kvm”  what do you mean ?
>
>
>
> BTW , are vdsm hooks log infos located in /var/log/vdsm/vdsm.log  ?
>
>
>
> Thx for help.
>
>
>
> J.P.
>
>
>
> *De :* Dan Yasny [mailto:dyasny at gmail.com]
> *Envoyé :* mardi 12 janvier 2016 16:48
>
> *À :* Jean-Pierre Ribeauville
> *Cc :* users at ovirt.org
> *Objet :* Re: [ovirt-users] vdsm hook issues
>
>
>
> 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 at axway.com> wrote:
>
> Hi,
>
>
>
> 1°  It’s a full RHEL7 OS.
>> 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
>
>>
> #!/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 at gmail.com]
> *Envoyé :* mardi 12 janvier 2016 16:23
> *À :* Jean-Pierre Ribeauville
> *Cc :* users at 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 at 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 at axway.com <jpribeauville at axway.com>*
> http://www.axway.com
>
>
>
>
>
> P Pensez à l’environnement avant d’imprimer.
>
>
>
>
>
>
> _______________________________________________
> Users mailing list
> Users at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/users
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ovirt.org/pipermail/users/attachments/20160112/ec2353b6/attachment-0001.html>


More information about the Users mailing list