<div dir="ltr"><div><div><div><div>I wonder why we not go in the same approach as we went for vm status changes. Why not to pull for older versions and expect a push from new implementation.<br></div>This would allow as to keep current code as it is for backward compatibility purposes and create new one (reuse parts of the old one) for new approach.<br></div><div>We could change stats collection (collectd based) and still get important data using push.<br></div><div><br></div>If we want to pass cluster version we could use connection negotiation like we do for heartbeat interval. It can be passed every time engine connects so there is no<br></div>need for persistence. We could define custom headers and as a result it won't break vdsm-client code.<br><br></div><div>Please note that we are not good at deprecating api and I am not going to say anything about cleanup or removal.<br></div><div>Whatever we introduce it is going to stay so we need to be careful.<br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Apr 4, 2017 at 12:28 PM, Michal Skrivanek <span dir="ltr"><<a href="mailto:michal.skrivanek@redhat.com" target="_blank">michal.skrivanek@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><br><div><span class=""><blockquote type="cite"><div>On 4 Apr 2017, at 12:21, Roy Golan <<a href="mailto:rgolan@redhat.com" target="_blank">rgolan@redhat.com</a>> wrote:</div><br class="m_-1855467231061847708Apple-interchange-newline"><div><div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Tue, Apr 4, 2017 at 1:16 PM Michal Skrivanek <<a href="mailto:michal.skrivanek@redhat.com" target="_blank">michal.skrivanek@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class="m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg"><blockquote type="cite" class="m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg">On 4 Apr 2017, at 12:10, Roy Golan <<a href="mailto:rgolan@redhat.com" class="m_-1855467231061847708gmail_msg" target="_blank">rgolan@redhat.com</a>> wrote:</div><br class="m_-1855467231061847708m_-4059592897398397391Apple-interchange-newline m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg"><div dir="ltr" class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"><div class="gmail_quote m_-1855467231061847708gmail_msg"><div dir="ltr" class="m_-1855467231061847708gmail_msg">On Tue, Apr 4, 2017 at 12:49 PM Yaniv Kaul <<a href="mailto:ykaul@redhat.com" class="m_-1855467231061847708gmail_msg" target="_blank">ykaul@redhat.com</a>> wrote:<br class="m_-1855467231061847708gmail_msg"></div><blockquote class="gmail_quote m_-1855467231061847708gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="m_-1855467231061847708gmail_msg"><div class="gmail_extra m_-1855467231061847708gmail_msg"><div class="gmail_quote m_-1855467231061847708gmail_msg">On Tue, Apr 4, 2017 at 12:29 PM, Roy Golan <span dir="ltr" class="m_-1855467231061847708gmail_msg"><<a href="mailto:rgolan@redhat.com" class="m_-1855467231061847708gmail_msg" target="_blank">rgolan@redhat.com</a>></span> wrote:<br class="m_-1855467231061847708gmail_msg"><blockquote class="gmail_quote m_-1855467231061847708gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg">I'm working on a POC lately on a change to stats collection and retrieval by VDSM. The moto is to cut all we can from host/vm stats (possibly caps) and report only core-business stuff to the engine. Engine will retrieve the rest through a 3rd party provider</div></div></blockquote></div></div></div></blockquote></div></div></div></blockquote><blockquote type="cite" class="m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg"><div dir="ltr" class="m_-1855467231061847708gmail_msg"><div class="gmail_quote m_-1855467231061847708gmail_msg"><blockquote class="gmail_quote m_-1855467231061847708gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="m_-1855467231061847708gmail_msg"><div class="gmail_extra m_-1855467231061847708gmail_msg"><div class="gmail_quote m_-1855467231061847708gmail_msg"><blockquote class="gmail_quote m_-1855467231061847708gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg">(nevermind what is it atm)<br class="m_-1855467231061847708gmail_msg"></div></div></blockquote></div></div></div></blockquote></div></div></div></blockquote><div class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"></div></div></div><div style="word-wrap:break-word" class="m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg">I hope it’s the same one as for VM stats, collectd:)</div></div></blockquote><div><br>Intended for this as well. <br></div></div></div></div></blockquote><div><br></div></span>great!</div><div><span class=""><br><blockquote type="cite"><div><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class="m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg"></div></div><div style="word-wrap:break-word" class="m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"><blockquote type="cite" class="m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg"><div dir="ltr" class="m_-1855467231061847708gmail_msg"><div class="gmail_quote m_-1855467231061847708gmail_msg"><blockquote class="gmail_quote m_-1855467231061847708gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="m_-1855467231061847708gmail_msg"><div class="gmail_extra m_-1855467231061847708gmail_msg"><div class="gmail_quote m_-1855467231061847708gmail_msg"><blockquote class="gmail_quote m_-1855467231061847708gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"></div><div class="m_-1855467231061847708gmail_msg">Being backward compatible by design, I have to support 2 API versions for Host.getStats , '4.1' and '4.2'.<br class="m_-1855467231061847708gmail_msg"></div><div class="m_-1855467231061847708gmail_msg">Except from supplying less parameters, I want VDSM to do less stuff. It doesn't need to sample what it doesn't report. In other words I want '4.1-sampling' and '4.2-sampling'<br class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"></div><div class="m_-1855467231061847708gmail_msg"># Introducing 'configuration' Verb:<br class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"></div><div class="m_-1855467231061847708gmail_msg">As engine knows always(Hosted Engine as well) what cluster version this host belongs to, it can configure VDSM to operate in cluster version mode.<br class="m_-1855467231061847708gmail_msg"></div></div></blockquote></div></div></div></blockquote></div></div></div></blockquote><div class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"></div></div></div><div style="word-wrap:break-word" class="m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg">why not running it in parallel for one version?</div><div class="m_-1855467231061847708gmail_msg"></div></div><div style="word-wrap:break-word" class="m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"></div></div></blockquote><div>What is the benefit? <br></div></div></div></div></blockquote><div><br></div></span>just so you do not need any configuration verb nor persistence, not much else.</div><div><span class=""><br><blockquote type="cite"><div><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class="m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg"><blockquote type="cite" class="m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg"><div dir="ltr" class="m_-1855467231061847708gmail_msg"><div class="gmail_quote m_-1855467231061847708gmail_msg"><blockquote class="gmail_quote m_-1855467231061847708gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="m_-1855467231061847708gmail_msg"><div class="gmail_extra m_-1855467231061847708gmail_msg"><div class="gmail_quote m_-1855467231061847708gmail_msg"><blockquote class="gmail_quote m_-1855467231061847708gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"> Host.configure(config={<wbr>version: 4.2}<br class="m_-1855467231061847708gmail_msg"></div><div class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"></div><div class="m_-1855467231061847708gmail_msg">Consider this verb, pre-activating using 'Host.getCaps' to set the context.<br class="m_-1855467231061847708gmail_msg">It will set the righjt sampling method, and other stuff if needed then API endpoints will have the right permutation of the api to answer it.<br class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"></div><div class="m_-1855467231061847708gmail_msg">4.2 host can operate in 4.1 mode:<br class="m_-1855467231061847708gmail_msg"> Host.configure(config={<wbr>version: 4.1}<br class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"></div><div class="m_-1855467231061847708gmail_msg">Issue: moving a 4.2 host from 4.2 cluster to 4.1 is a problem since engine needs to know this is a new vdsm that has the verb available. One way to overcome that is to fire the verb for every host regardless of the version and disregard an error that implies the verb doesn't exist.<br class="m_-1855467231061847708gmail_msg"></div></div></blockquote><div class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"></div></div></div></div><div dir="ltr" class="m_-1855467231061847708gmail_msg"><div class="gmail_extra m_-1855467231061847708gmail_msg"><div class="gmail_quote m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg">Isn't it solved by host re-installation?</div></div></div></div></blockquote><div class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"></div><div class="m_-1855467231061847708gmail_msg">We allow maintenance + change host cluster so not always. Was this changed? <br class="m_-1855467231061847708gmail_msg"></div><blockquote class="gmail_quote m_-1855467231061847708gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="m_-1855467231061847708gmail_msg"><div class="gmail_extra m_-1855467231061847708gmail_msg"><div class="gmail_quote m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"></div><blockquote class="gmail_quote m_-1855467231061847708gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"></div><div class="m_-1855467231061847708gmail_msg"># Engine:<br class="m_-1855467231061847708gmail_msg"></div><div class="m_-1855467231061847708gmail_msg">Engine will have a handling of the verb per version.<br class="m_-1855467231061847708gmail_msg"></div><div class="m_-1855467231061847708gmail_msg">Host/Vms monitoring should be changed - I suggest to move out of the monitoring code the whole stats collection as it is a different task which is orthogonal to 'monitoring' and in 4.2 more than before.<br class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"></div><div class="m_-1855467231061847708gmail_msg">I know configuration for VDSM has been discussed before and there are probably tons of ways to do it. When you share your thoughts please remember that configuration is a by-product of the effort.<br class="m_-1855467231061847708gmail_msg"></div></div></blockquote><div class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"></div></div></div></div><div dir="ltr" class="m_-1855467231061847708gmail_msg"><div class="gmail_extra m_-1855467231061847708gmail_msg"><div class="gmail_quote m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg">How do we persist this level on VDSM? Or we don't, and if VDSM is restarted it is again back to 4.1 mode until Engine tells it otherwise?</div></div></div></div></blockquote></div></div></div></blockquote><blockquote type="cite" class="m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg"><div dir="ltr" class="m_-1855467231061847708gmail_msg"><div class="gmail_quote m_-1855467231061847708gmail_msg"><blockquote class="gmail_quote m_-1855467231061847708gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="m_-1855467231061847708gmail_msg"><div class="gmail_extra m_-1855467231061847708gmail_msg"><div class="gmail_quote m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg">Y.</div></div></div></div></blockquote><div class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"></div><div class="m_-1855467231061847708gmail_msg">Must persist it somehow otherwise there is a race when the engine will send send a stats request and will get the wrong answer. I'm wondering if using differnt endpoints is the right solution here to prevent that from happening. <br class="m_-1855467231061847708gmail_msg"></div><div class="m_-1855467231061847708gmail_msg"> method: Host.getStats version: 4.1 <br class="m_-1855467231061847708gmail_msg"></div></div></div></div></blockquote><div class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"></div></div></div><div style="word-wrap:break-word" class="m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg">would it be a problem? assuming that the code is easily started/stopped within vdsm, we can just change the behavior based on receiving one or the other verb for the first time after vdsm starts</div></div></blockquote><div><br></div><div>But we should prefer a deliberate action. Doing that as a side effect is surprising for an API verb. What would happen in case you invoke 'vdsm-client’ ?<br></div></div></div></div></blockquote><div><br></div></span>I do not mean to switch for any client, more like a single “upgrade” of communication once the new verb is called. So once the engine calls the new verb the legacy stats thread is stopped and vdsClient <oldVerb> stops returning meaningful data.</div><div>Actually, moving host back to older cluster doesn’t really need switching back either - you still have the new engine capable of handling the new verb despite older cluster.</div><span class=""><div><br></div><div><br><blockquote type="cite"><div><div dir="ltr"><div class="gmail_quote"><div> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class="m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"></div><div class="m_-1855467231061847708gmail_msg">Thanks,</div><div class="m_-1855467231061847708gmail_msg">michal</div></div><div style="word-wrap:break-word" class="m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"></div><div class="m_-1855467231061847708gmail_msg"><blockquote type="cite" class="m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg"><div dir="ltr" class="m_-1855467231061847708gmail_msg"><div class="gmail_quote m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg"> <br class="m_-1855467231061847708gmail_msg"></div><blockquote class="gmail_quote m_-1855467231061847708gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="m_-1855467231061847708gmail_msg"><div class="gmail_extra m_-1855467231061847708gmail_msg"><div class="gmail_quote m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"></div><div class="m_-1855467231061847708gmail_msg"> </div><blockquote class="gmail_quote m_-1855467231061847708gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"></blockquote></div></div></div><div dir="ltr" class="m_-1855467231061847708gmail_msg"><div class="gmail_extra m_-1855467231061847708gmail_msg"><div class="gmail_quote m_-1855467231061847708gmail_msg"><blockquote class="gmail_quote m_-1855467231061847708gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="m_-1855467231061847708gmail_msg"><div class="m_-1855467231061847708gmail_msg">Nevertheless it can be potentially beneficial to more functions in vdsm.<br class="m_-1855467231061847708gmail_msg"></div><div class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"></div><div class="m_-1855467231061847708gmail_msg">Thanks,<br class="m_-1855467231061847708gmail_msg"></div><div class="m_-1855467231061847708gmail_msg">Roy<br class="m_-1855467231061847708gmail_msg"></div><div class="m_-1855467231061847708gmail_msg"><br class="m_-1855467231061847708gmail_msg"></div></div>
<br class="m_-1855467231061847708gmail_msg"></blockquote></div></div></div><div dir="ltr" class="m_-1855467231061847708gmail_msg"><div class="gmail_extra m_-1855467231061847708gmail_msg"><div class="gmail_quote m_-1855467231061847708gmail_msg"><blockquote class="gmail_quote m_-1855467231061847708gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">______________________________<wbr>_________________<br class="m_-1855467231061847708gmail_msg">
Devel mailing list<br class="m_-1855467231061847708gmail_msg">
<a href="mailto:Devel@ovirt.org" class="m_-1855467231061847708gmail_msg" target="_blank">Devel@ovirt.org</a><br class="m_-1855467231061847708gmail_msg">
<a href="http://lists.ovirt.org/mailman/listinfo/devel" rel="noreferrer" class="m_-1855467231061847708gmail_msg" target="_blank">http://lists.ovirt.org/<wbr>mailman/listinfo/devel</a><br class="m_-1855467231061847708gmail_msg"></blockquote></div><br class="m_-1855467231061847708gmail_msg"></div></div>
</blockquote></div></div>
______________________________<wbr>_________________<br class="m_-1855467231061847708gmail_msg">Devel mailing list<br class="m_-1855467231061847708gmail_msg"><a href="mailto:Devel@ovirt.org" class="m_-1855467231061847708gmail_msg" target="_blank">Devel@ovirt.org</a><br class="m_-1855467231061847708gmail_msg"><a href="http://lists.ovirt.org/mailman/listinfo/devel" class="m_-1855467231061847708gmail_msg" target="_blank">http://lists.ovirt.org/<wbr>mailman/listinfo/devel</a></div></blockquote></div><br class="m_-1855467231061847708gmail_msg"></div></blockquote></div></div>
</div></blockquote></div><br></span></div></blockquote></div><br></div>