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