<div dir="ltr">On Fri, Nov 24, 2017 at 5:34 PM Piotr Kliczewski &lt;<a href="mailto:piotr.kliczewski@gmail.com">piotr.kliczewski@gmail.com</a>&gt; wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Fri, Nov 24, 2017 at 4:00 PM, Piotr Kliczewski<br>
&lt;<a href="mailto:piotr.kliczewski@gmail.com" target="_blank">piotr.kliczewski@gmail.com</a>&gt; wrote:<br>
&gt; On Fri, Nov 24, 2017 at 2:20 PM, Nir Soffer &lt;<a href="mailto:nsoffer@redhat.com" target="_blank">nsoffer@redhat.com</a>&gt; wrote:<br>
&gt;&gt; Adding devel@ovirt, the proper mailing list<br>
&gt;&gt;<br>
&gt;&gt; בתאריך יום ו׳, 24 בנוב׳ 2017, 7:42, מאת Germano Veit Michel<br>
&gt;&gt; ‏&lt;<a href="mailto:germano@redhat.com" target="_blank">germano@redhat.com</a>&gt;:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Hi,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I&#39;m trying to write a test for a hook. The test will fail if the hook does<br>
&gt;&gt;&gt; &quot;import hooking&quot;, which seems to be the norm for vdsm hooks.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; [vdsm_hooks]$ grep -rn &quot;import hooking&quot; | wc -l<br>
&gt;&gt;&gt; 55<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Not sure if I&#39;m doing something wrong, but it looks like I would need vdsm<br>
&gt;&gt;&gt; installed on my development machine in order for this import to work.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; ======================================================================<br>
&gt;&gt;&gt; ERROR: test suite for &lt;class<br>
&gt;&gt;&gt; &#39;virttests.boot_hostdev_test.BootHostdevHookTests&#39;&gt;<br>
&gt;&gt;&gt; ----------------------------------------------------------------------<br>
&gt;&gt;&gt; Traceback (most recent call last):<br>
&gt;&gt;&gt;   File &quot;/usr/lib/python2.7/site-packages/nose/suite.py&quot;, line 209, in run<br>
&gt;&gt;&gt;     self.setUp()<br>
&gt;&gt;&gt;   File &quot;/usr/lib/python2.7/site-packages/nose/suite.py&quot;, line 292, in<br>
&gt;&gt;&gt; setUp<br>
&gt;&gt;&gt;     self.setupContext(ancestor)<br>
&gt;&gt;&gt;   File &quot;/usr/lib/python2.7/site-packages/nose/suite.py&quot;, line 315, in<br>
&gt;&gt;&gt; setupContext<br>
&gt;&gt;&gt;     try_run(context, names)<br>
&gt;&gt;&gt;   File &quot;/usr/lib/python2.7/site-packages/nose/util.py&quot;, line 471, in<br>
&gt;&gt;&gt; try_run<br>
&gt;&gt;&gt;     return func()<br>
&gt;&gt;&gt;   File<br>
&gt;&gt;&gt; &quot;/home/gveitmic/Source/upstream/vdsm/tests/virttests/boot_hostdev_test.py&quot;,<br>
&gt;&gt;&gt; line 127, in setUpClass<br>
&gt;&gt;&gt;     import before_vm_start as boot_hostdev_hook<br>
&gt;&gt;&gt;   File &quot;../vdsm_hooks/boot_hostdev/before_vm_start.py&quot;, line 24, in<br>
&gt;&gt;&gt; &lt;module&gt;<br>
&gt;&gt;&gt;     import hooking<br>
&gt;&gt;&gt; ImportError: No module named hooking<br></blockquote><div><br></div><div>This is expected, hooking is not install in the pyhton path by default.</div><div><br></div><div>All the hooks are using wrong import. Vdsm is &quot;fixing&quot; the bad</div><div>import by modifying the python path.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I can make it go away by using this in my hook:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; from vdsm.hook import hooking<br></blockquote><div><br></div><div>This is correct import - I would use this.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Then the test succeeds fine. But then I see all hooks use &quot;import hooking&quot;<br>
&gt;&gt;&gt; instead of &quot;from vdsm.hook import hooking&quot;.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; [vdsm_hooks]$ grep -rn &quot;from vdsm.hook import hooking&quot; | wc -l<br>
&gt;&gt;&gt; 0<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Am I doing something wrong? Can someone put a light here? What is the<br>
&gt;&gt;&gt; correct way to do this import?<br>
&gt;<br>
&gt; Our approach for it is to modify PYTHONPATH [1] where we add vdsm.hook.<br>
&gt; It looks like we do not have similar update in [2] - script which run the tests.<br>
&gt;<br>
&gt; I will push a patch to fix it.<br>
<br>
<a href="https://gerrit.ovirt.org/#/c/84638/" rel="noreferrer" target="_blank">https://gerrit.ovirt.org/#/c/84638/</a><br>
<br>
Please check whether it would work for you now.<br></blockquote><div><br></div><div>This can be handy for testing legacy hooks, but I think we should</div><div>fix the imports instead, so no manipulation of python path is needed.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
&gt;<br>
&gt; [1] <a href="https://github.com/oVirt/vdsm/blob/master/lib/vdsm/hooks.py#L98" rel="noreferrer" target="_blank">https://github.com/oVirt/vdsm/blob/master/lib/vdsm/hooks.py#L98</a><br>
&gt; [2] <a href="https://github.com/oVirt/vdsm/blob/master/tests/run_tests_local.sh.in#L21" rel="noreferrer" target="_blank">https://github.com/oVirt/vdsm/blob/master/tests/run_tests_local.sh.in#L21</a><br>
&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Thanks,<br>
&gt;&gt;&gt; Germano<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Devel mailing list<br>
&gt;&gt; <a href="mailto:Devel@ovirt.org" target="_blank">Devel@ovirt.org</a><br>
&gt;&gt; <a href="http://lists.ovirt.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.ovirt.org/mailman/listinfo/devel</a><br>
</blockquote></div></div>