Hi,

173078 4 -rwxrwxrwx. 1 vdsm kvm 1292 Jan 12 15:51 test_hook.py


Looks fine , isn’t ?

J.P.

De : Dan Yasny [mailto:[email protected]]
Envoyé : mardi 12 janvier 2016 17:00
À : Jean-Pierre Ribeauville
Cc : [email protected]
Objet : Re: [ovirt-users] vdsm hook issues

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 
<[email protected]<mailto:[email protected]>> 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:[email protected]<mailto:[email protected]>]
Envoyé : mardi 12 janvier 2016 16:48

À : Jean-Pierre Ribeauville
Cc : [email protected]<mailto:[email protected]>
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 
<[email protected]<mailto:[email protected]>> 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:[email protected]<mailto:[email protected]>]
Envoyé : mardi 12 janvier 2016 16:23
À : Jean-Pierre Ribeauville
Cc : [email protected]<mailto:[email protected]>
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 
<[email protected]<mailto:[email protected]>> 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<tel:%2B33.%280%29.1.47.17.20.49>
.
Puteaux 3 Etage 5  Bureau 4

[email protected]<mailto:[email protected]>
http://www.axway.com<http://www.axway.com/>



P Pensez à l’environnement avant d’imprimer.




_______________________________________________
Users mailing list
[email protected]<mailto:[email protected]>
http://lists.ovirt.org/mailman/listinfo/users



_______________________________________________
Users mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/users

Reply via email to