<div dir="ltr"><br>2014/1/5 Livnat Peer <span dir="ltr">&lt;<a href="mailto:lpeer@redhat.com" target="_blank">lpeer@redhat.com</a>&gt;</span><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On 01/05/2014 12:05 PM, Assaf Muller wrote:<br>
&gt; Whichever way we decide to do this, I think the important bit is documentation - We have<br>
&gt; to make sure to update the oVirt wiki hooks pages. If users aren&#39;t aware of how to retrieve<br>
&gt; the networking config then we might as well not implement it.<br>
&gt;<br>
&gt; That being said, I&#39;d expose three dictionaries: What&#39;s currently configure,<br>
&gt; the current request, as well as the proposed end result. It&#39;s easy to add<br>
&gt; and I see how it would be useful to hook writers. And just to state the obvious,<br>
&gt; just like how traditional hooks can change the VM or device XML,<br>
&gt; the hook should be able to rewrite the current request contents.<br>
&gt; For example, if a user would like to take over host networking configuration,<br>
&gt; he could just write a before_setup_networks hook that would configure<br>
&gt; networking however he wants, then writes the empty dictionary to the current request,<br>
&gt; meaning that VDSM wouldn&#39;t do anything further with the current setup networks request.<br>
&gt;<br>
<br></div></blockquote><div><br></div><div>I&#39;m not sure if it&#39;s easy to get the final state without actually applying it, it&#39;s easy<br>to get an approximate final state (just aggregating dictionaries to networks and bondings,<br>
and erasing the removed ones), but I suppose that&#39;d be good enough :-)<br><br><br></div><div>May be it&#39;s good if you can provide a use case for this third &quot;expected&quot; final state,<br></div><div>I can&#39;t come up with one. :-)<br>
</div><div><br><br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
</div>+1,<br>
I think the API above would be easy to consume.<br>
<br>
Livnat<br>
<div><div class="h5"><br>
<br>
&gt;<br>
&gt; Assaf Muller, Cloud Networking Engineer<br>
&gt; Red Hat<br>
&gt;<br>
&gt; ----- Original Message -----<br>
&gt; From: &quot;Miguel Angel&quot; &lt;<a href="mailto:miguelangel@ajo.es">miguelangel@ajo.es</a>&gt;<br>
&gt; To: &quot;Adam Litke&quot; &lt;<a href="mailto:alitke@redhat.com">alitke@redhat.com</a>&gt;<br>
&gt; Cc: <a href="mailto:dsulliva@redhat.com">dsulliva@redhat.com</a>, <a href="mailto:arch@ovirt.org">arch@ovirt.org</a>, <a href="mailto:vdsm-devel@fedorahosted.org">vdsm-devel@fedorahosted.org</a><br>
&gt; Sent: Saturday, January 4, 2014 9:08:17 PM<br>
&gt; Subject: Re: [vdsm] Smarter network_setup hooks<br>
&gt;<br>
&gt; Hi Adam<br>
&gt;<br>
&gt; Thanks for the feedback<br>
&gt;<br>
&gt; 2014/1/3 Adam Litke &lt; <a href="mailto:alitke@redhat.com">alitke@redhat.com</a> &gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On 03/01/14 12:20 +0000, Dan Kenigsberg wrote:<br>
&gt;<br>
&gt;<br>
&gt; Recently, Miguel Angel Ajo (CCed) has added a nice functionality to the<br>
&gt; implementation of setupNetworks in Vdsm: two hook points where added:<br>
&gt; before and after the setupNetworks verb takes place.<br>
&gt; [....]<br>
&gt; Seems like a logical thing to do. What specific mechanism do you<br>
&gt; suggest for passing the JSON strings to the hook script? If passed as<br>
&gt; arguments to the hook script we would need to consider shell escaping<br>
&gt; and argv length restrictions.<br>
&gt;<br>
&gt; As for the libvirt domain xml we pass to other hooks, we write a temporary file<br>
&gt; and we set an environment variable pointing to it before calling the script<br>
&gt;<br>
&gt;<br>
&gt; What about writing these out to a special file and adding a new<br>
&gt; getContext() call to the hooking module. A script that is unconcerned<br>
&gt; with the context would not require any changes. But a script that<br>
&gt; wants access would simply do:<br>
&gt;<br>
&gt; ctx = hooking.getContext()<br>
&gt;<br>
&gt; and ctx would be the contents of the special file already decoded into<br>
&gt; a native Python object for easy consumption. This could easily be<br>
&gt; extended to any hook which may want to provide some context to<br>
&gt; implementors.<br>
&gt;<br>
&gt; That would be nice, so scripts written in python wouldn&#39;t need to look for, and parse<br>
&gt; the file.<br>
&gt;<br>
&gt; This is an example of a simple hook:<br>
&gt;<br>
&gt; <a href="http://gerrit.ovirt.org/#/c/20330/7/tests/functional/networkTests.py" target="_blank">http://gerrit.ovirt.org/#/c/20330/7/tests/functional/networkTests.py</a> (look inside the ValidatesHook decorator)<br>
&gt;<br>
&gt; It&#39;d be quite simplified. We would also need a &quot;setContext()...&quot; to update context with changes.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; One more question comes to mind: Are there any pieces of information<br>
&gt; that we would need to redact from the context (passwords or other<br>
&gt; sensitive information)?<br>
&gt;<br>
&gt;<br>
&gt; I think there is no sensitive information as far as I know.<br>
&gt;<br>
&gt; Greetings,<br>
&gt; Miguel Ángel.<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; vdsm-devel mailing list<br>
&gt; <a href="mailto:vdsm-devel@lists.fedorahosted.org">vdsm-devel@lists.fedorahosted.org</a><br>
&gt; <a href="https://lists.fedorahosted.org/mailman/listinfo/vdsm-devel" target="_blank">https://lists.fedorahosted.org/mailman/listinfo/vdsm-devel</a><br>
</div></div>&gt; _______________________________________________<br>
&gt; Arch mailing list<br>
&gt; <a href="mailto:Arch@ovirt.org">Arch@ovirt.org</a><br>
&gt; <a href="http://lists.ovirt.org/mailman/listinfo/arch" target="_blank">http://lists.ovirt.org/mailman/listinfo/arch</a><br>
&gt;<br>
<br>
</blockquote></div><br></div></div>