<div dir="ltr">Petr, why do you need the ping verb? what are you after?<br></div><br><div class="gmail_quote"><div dir="ltr">On Tue, 8 Aug 2017 at 11:54 Martin Sivak &lt;<a href="mailto:msivak@redhat.com">msivak@redhat.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">&gt; The proposed solution is focused on making sure a command does one thing and<br>
&gt; not two:<br>
&gt; A ping that has no side effects and a &quot;watchdog&quot; mechanism to confirm<br>
&gt; connectivity.<br>
<br>
This sounds as exactly the right solution right now.<br>
<br>
&gt;&gt;&gt; Still someone could call conirmConnectivity, no?<br>
<br>
We do not protect any other endpoints that can cause the host to go<br>
wild (storage or even setupNetworks). I agree with Edward it is the<br>
responsibility of the caller to do the right thing. You need to be<br>
root or have the certificate to talk to VDSM anyway.<br>
<br>
Martin<br>
<br>
On Tue, Aug 8, 2017 at 8:24 AM, Edward Haas &lt;<a href="mailto:ehaas@redhat.com" target="_blank">ehaas@redhat.com</a>&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt; On Mon, Aug 7, 2017 at 11:06 PM, Nir Soffer &lt;<a href="mailto:nsoffer@redhat.com" target="_blank">nsoffer@redhat.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; On Mon, Aug 7, 2017 at 5:28 PM Roy Golan &lt;<a href="mailto:rgolan@redhat.com" target="_blank">rgolan@redhat.com</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Still someone could call conirmConnectivity, no? so the state isn&#39;t<br>
&gt;&gt;&gt; guarded from localhost tinkering anyhow. If you really need a solution you<br>
&gt;&gt;&gt; can acuire a token for this operation by setupNetworks, and confirm<br>
&gt;&gt;&gt; connectivity with this token passed back.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I&#39;m not sure about the severity of the problem here, I&#39;ll let other<br>
&gt;&gt;&gt; reply, but I&#39;m against this kind of solution.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Mon, 7 Aug 2017 at 15:32 Petr Horacek &lt;<a href="mailto:phoracek@redhat.com" target="_blank">phoracek@redhat.com</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Hello,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; current VDSM ping verb has a problem - it confirms network<br>
&gt;&gt;&gt;&gt; connectivity as a side-effect. After Engine calls setupNetwork it<br>
&gt;&gt;&gt;&gt; pings VDSM host to confirm that external network connectivity is not<br>
&gt;&gt;&gt;&gt; broken. This prohibits other users to call ping from localhost since<br>
&gt;&gt;&gt;&gt; it would confirm connectivity even though networking could be broken.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Vdsm can save the client ip setting up the network. Getting a ping from<br>
&gt;&gt; this<br>
&gt;&gt; client can confirm that the connectivity was restored. pings from other<br>
&gt;&gt; hosts<br>
&gt;&gt; can be ignored.<br>
&gt;&gt;<br>
&gt;&gt; The client address is available in a thread local variable<br>
&gt;&gt; (context.client_host)<br>
&gt;&gt; during all api calls. see vdsm.common.api.context_string() for example<br>
&gt;&gt; usage.<br>
&gt;&gt;<br>
&gt;&gt; This infrastructure is available in 4.1.<br>
&gt;<br>
&gt;<br>
&gt; The proposed solution is focused on making sure a command does one thing and<br>
&gt; not two:<br>
&gt; A ping that has no side effects and a &quot;watchdog&quot; mechanism to confirm<br>
&gt; connectivity.<br>
&gt;<br>
&gt; Does it make sense to confirm connectivity from localhost? In many cases it<br>
&gt; probably does not,<br>
&gt; but there may be cases where it does make sense... it is not the<br>
&gt; functionality to determine what<br>
&gt; makes sense or not, it is the usage of it who has the responsibility to use<br>
&gt; it correctly.<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; Nir<br>
&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; In order to fix this problem ping should be split to ping2 (which just<br>
&gt;&gt;&gt;&gt; returns Success with no side-effect) and confirmConnectivity. Change<br>
&gt;&gt;&gt;&gt; on VDSM side was introduced in [1], we still need to expose new verbs<br>
&gt;&gt;&gt;&gt; in Engine.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Regards,<br>
&gt;&gt;&gt;&gt; Petr<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; [1] <a href="https://gerrit.ovirt.org/#/c/80119/" rel="noreferrer" target="_blank">https://gerrit.ovirt.org/#/c/80119/</a><br>
&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt; Devel mailing list<br>
&gt;&gt;&gt;&gt; <a href="mailto:Devel@ovirt.org" target="_blank">Devel@ovirt.org</a><br>
&gt;&gt;&gt;&gt; <a href="http://lists.ovirt.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.ovirt.org/mailman/listinfo/devel</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; Devel mailing list<br>
&gt;&gt;&gt; <a href="mailto:Devel@ovirt.org" target="_blank">Devel@ovirt.org</a><br>
&gt;&gt;&gt; <a href="http://lists.ovirt.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.ovirt.org/mailman/listinfo/devel</a><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>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Devel mailing list<br>
&gt; <a href="mailto:Devel@ovirt.org" target="_blank">Devel@ovirt.org</a><br>
&gt; <a href="http://lists.ovirt.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.ovirt.org/mailman/listinfo/devel</a><br>
_______________________________________________<br>
Devel mailing list<br>
<a href="mailto:Devel@ovirt.org" target="_blank">Devel@ovirt.org</a><br>
<a href="http://lists.ovirt.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.ovirt.org/mailman/listinfo/devel</a><br>
</blockquote></div>