<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">I would not check that. We are not talking about installing browser plugins when users may not know what they want. Putting extra checks will create a more fool-proof but less configurable software. I’d vote for letting users shoot their feet using their plugins but making Fuel more flexible.<div class=""><br class=""></div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">29 січ. 2016 р. о 15:05 Aleksey Kasatkin <<a href="mailto:akasatkin@mirantis.com" class="">akasatkin@mirantis.com</a>> написав(ла):</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">> jsonpatch<br class=""><br class="">There were +1's regarding <span style="font-size:13px" class="">overriding VIPs above. I'd stick with that. It is done for tasks now. But we will need to check conflicts between plugins there (as for tasks).<br class=""><br class=""></span></div><div class="gmail_extra"><br clear="all" class=""><div class=""><div class="gmail_signature"><div dir="ltr" class="">Aleksey Kasatkin
<br class=""><br class=""></div></div></div>
<br class=""><div class="gmail_quote">On Fri, Jan 29, 2016 at 1:23 PM, Roman Prykhodchenko <span dir="ltr" class=""><<a href="mailto:me@romcheg.me" target="_blank" class="">me@romcheg.me</a>></span> wrote:<br class=""><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=""><div class="">Frankly, I have not though about how to deal with multiple plugins yet. However, what I think is that we must not restrict this too much and let users configure it more flexibly even if it allows to shoot one’s foot. Perhaps we can add a per-cluster priority for enabled plugins which users can configure via UI, CLI or API. My other thought is that we should not invent our own mechanics for changing a configuration and use an existing one, say, jsonpatch. What do you guys think?</div><div class=""><br class=""></div><div class="">P. S. [0] is really needed for 8.0 for implementing an important epic, so please check it out. If it does not break anything, lets merge it ASAP.</div><div class=""><br class=""></div><div class="">- romcheg</div><br class=""><div class=""><blockquote type="cite" class=""><div class="">28 січ. 2016 р. о 18:30 Aleksey Kasatkin <<a href="mailto:akasatkin@mirantis.com" target="_blank" class="">akasatkin@mirantis.com</a>> написав(ла):</div><div class=""><div class="h5"><br class=""><div class=""><div dir="ltr" class=""><div class=""><div class=""><div class=""><div class="">AFAIC, it is better to remove by name then. Otherwise, you do not know what VIPs you are removing.<br class=""></div>Another option - remove "built-in" VIPs using some specific expression.<br class=""></div>Anyway, you do not know where other VIPs (VIPs of other plugins) live so you cannot remove them this way.<br class=""></div><br class="">And the order of plugins processing  is not defined so there is no warranty you will remove all VIPs on those network roles.<br class=""></div>Seems, checking for such conflict between plugins is needed.<br class=""><div class=""><br class="">The original goal, actually, was to remove VIPs for controllers (or for some particular node role, maybe), <br class="">so we should maybe find a way to do exactly this.<br class=""><br class=""><br class=""></div></div><div class="gmail_extra"><br clear="all" class=""><div class=""><div class=""><div dir="ltr" class="">Aleksey Kasatkin
<br class=""><br class=""></div></div></div>
<br class=""><div class="gmail_quote">On Thu, Jan 28, 2016 at 6:28 PM, Aleksandr Didenko <span dir="ltr" class=""><<a href="mailto:adidenko@mirantis.com" target="_blank" class="">adidenko@mirantis.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class=""><div class=""><div class=""><span class="">> How are we handling this now for multiple plugins?<br class=""><br class=""></span>OK, so right now we can only add VIPs to array, we can't remove them. So overriding would disable such possibility of adding VIPs from different plugins. But with [0] patch it will be still possible to add and to remove by providing empty array. But we'll have the problem with multiple plugins in such case.<br class=""></div><div class="">I've changed my mind :) I vote for leaving as in [0] since it's less destructive comparing to what we have now.<br class=""></div><div class=""><br class=""></div>Regards,<br class=""></div>Alex<br class=""><div class=""><div class=""><br class="">[0] <a href="https://review.openstack.org/#/c/273169/1" target="_blank" class="">https://review.openstack.org/#/c/273169/1</a><br class=""></div></div></div><div class=""><div class=""><div class="gmail_extra"><br class=""><div class="gmail_quote">On Thu, Jan 28, 2016 at 5:23 PM, Aleksandr Didenko <span dir="ltr" class=""><<a href="mailto:adidenko@mirantis.com" target="_blank" class="">adidenko@mirantis.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class=""><div class="">Well, with merging instead of overriding, I believe, this problem with multiple plugins still exists, right? How are we handling this now for multiple plugins?<br class=""></div>Since VIPs is array I also vote for overriding, since merging it could be a pain (how do you remove existing element during array merge?).<br class=""></div><div class=""><div class=""><div class="gmail_extra"><br class=""><div class="gmail_quote">On Thu, Jan 28, 2016 at 5:00 PM, Aleksey Kasatkin <span dir="ltr" class=""><<a href="mailto:akasatkin@mirantis.com" target="_blank" class="">akasatkin@mirantis.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="">Roman, please provide more details on how VIPs are overridden. And how do you deal with multiple plugins.<span class=""><font color="#888888" class=""><br class=""><br class=""></font></span></div><div class="gmail_extra"><span class=""><font color="#888888" class=""><br clear="all" class=""><div class=""><div class=""><div dir="ltr" class="">Aleksey Kasatkin
<br class=""><br class=""></div></div></div></font></span><div class=""><div class="">
<br class=""><div class="gmail_quote">On Thu, Jan 28, 2016 at 5:58 PM, Aleksey Kasatkin <span dir="ltr" class=""><<a href="mailto:akasatkin@mirantis.com" target="_blank" class="">akasatkin@mirantis.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class=""><div class=""><div class="">Good idea, overally.<br class=""><br class=""></div>How about multiple plugins? We don't have any sequence or priorities between them.<br class=""></div>What if one plugin assumes that VIP is present but other one wants to remove it?<span class=""><font color="#888888" class=""><br class=""><br class=""></font></span></div><div class="gmail_extra"><span class=""><font color="#888888" class=""><br clear="all" class=""><div class=""><div class=""><div dir="ltr" class="">Aleksey Kasatkin
<br class=""><br class=""></div></div></div></font></span><div class=""><div class="">
<br class=""><div class="gmail_quote">On Thu, Jan 28, 2016 at 4:02 PM, Sergii Golovatiuk <span dir="ltr" class=""><<a href="mailto:sgolovatiuk@mirantis.com" target="_blank" class="">sgolovatiuk@mirantis.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="">+1 <span style="font-size:13px" class="">to overriding VIPs</span> </div><div class="gmail_extra"><br clear="all" class=""><div class=""><div class=""><div dir="ltr" class="">--<br class="">
Best regards,<br class="">
Sergii Golovatiuk,<br class="">
Skype #golserge<br class="">
IRC #holser<br class=""></div></div></div><div class=""><div class="">
<br class=""><div class="gmail_quote">On Thu, Jan 28, 2016 at 12:04 PM, Vladimir Kuklin <span dir="ltr" class=""><<a href="mailto:vkuklin@mirantis.com" target="_blank" class="">vkuklin@mirantis.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="">+1 to overriding VIPs</div><div class="gmail_extra"><br class=""><div class="gmail_quote"><div class=""><div class="">On Thu, Jan 28, 2016 at 1:43 PM, Roman Prykhodchenko <span dir="ltr" class=""><<a href="mailto:me@romcheg.me" target="_blank" class="">me@romcheg.me</a>></span> wrote:<br class=""></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class=""><div class="">Folks,<br class="">
<br class="">
currently merge policy for network roles only allows to add new VIPs to already existing roles [1]. If a plugin supplies a VIP with a name that already exists but with different parameters, Nailgun will not allow to do that. We faced a need to override configuration of several VIPs by completely removing them from network roles by supplying something like [2]. To enable that I’ve made a temporary workaround [3] to the merging policy that only handles one cornerstone.<br class="">
<br class="">
I’ve talked to ikalnitsky and we realized that this functionality of merging new VIPs from plugins to an existing network role is actually wrong and should be replaced by complete overriding. Let’s discuss this possibility here.<br class="">
<br class="">
<br class="">
References:<br class="">
<br class="">
1. <a href="https://github.com/openstack/fuel-web/blob/master/nailgun/nailgun/policy/merge.py#L55" rel="noreferrer" target="_blank" class="">https://github.com/openstack/fuel-web/blob/master/nailgun/nailgun/policy/merge.py#L55</a><br class="">
2. <a href="http://xsnippet.org/361361/" rel="noreferrer" target="_blank" class="">http://xsnippet.org/361361/</a><br class="">
3. <a href="https://review.openstack.org/#/c/273169/1" rel="noreferrer" target="_blank" class="">https://review.openstack.org/#/c/273169/1</a><br class="">
<br class="">
<br class="">
- romcheg<br class="">
<br class="">
<br class=""></div></div>__________________________________________________________________________<br class="">
OpenStack Development Mailing List (not for usage questions)<br class="">
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org/?subject:unsubscribe" rel="noreferrer" target="_blank" class="">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br class="">
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="">
<br class=""></blockquote></div><br class=""><br clear="all" class=""><div class=""><br class=""></div>-- <br class=""><div class=""><div dir="ltr" class=""><div class=""><div dir="ltr" class="">Yours Faithfully,<br class="">Vladimir Kuklin,<br class="">Fuel Library Tech Lead,<br class="">Mirantis, Inc.<br class=""><a href="tel:%2B7%20%28495%29%20640-49-04" value="+74956404904" target="_blank" class="">+7 (495) 640-49-04</a><br class=""><a href="tel:%2B7%20%28926%29%20702-39-68" value="+79267023968" target="_blank" class="">+7 (926) 702-39-68</a><br class="">Skype kuklinvv<br class="">35bk3, Vorontsovskaya Str.<br class="">Moscow, Russia,<br class=""><a href="http://www.mirantis.ru/" target="_blank" class="">www.mirantis.com</a><br class=""><a href="http://www.mirantis.ru/" target="_blank" class="">www.mirantis.ru</a><br class=""><a href="mailto:vkuklin@mirantis.com" target="_blank" class="">vkuklin@mirantis.com</a></div></div></div></div>
</div>
<br class="">__________________________________________________________________________<br class="">
OpenStack Development Mailing List (not for usage questions)<br class="">
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org/?subject:unsubscribe" rel="noreferrer" target="_blank" class="">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br class="">
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="">
<br class=""></blockquote></div><br class=""></div></div></div>
<br class="">__________________________________________________________________________<br class="">
OpenStack Development Mailing List (not for usage questions)<br class="">
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org/?subject:unsubscribe" rel="noreferrer" target="_blank" class="">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br class="">
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="">
<br class=""></blockquote></div><br class=""></div></div></div>
</blockquote></div><br class=""></div></div></div>
<br class="">__________________________________________________________________________<br class="">
OpenStack Development Mailing List (not for usage questions)<br class="">
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org/?subject:unsubscribe" rel="noreferrer" target="_blank" class="">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br class="">
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="">
<br class=""></blockquote></div><br class=""></div>
</div></div></blockquote></div><br class=""></div>
</div></div><br class="">__________________________________________________________________________<br class="">
OpenStack Development Mailing List (not for usage questions)<br class="">
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org/?subject:unsubscribe" rel="noreferrer" target="_blank" class="">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br class="">
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="">
<br class=""></blockquote></div><br class=""></div>
__________________________________________________________________________<br class="">OpenStack Development Mailing List (not for usage questions)<br class="">Unsubscribe: <a href="mailto:OpenStack-dev-request@lists.openstack.org" target="_blank" class="">OpenStack-dev-request@lists.openstack.org</a>?subject:unsubscribe<br class=""><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class=""></div></div></div></blockquote></div><br class=""></div><br class="">__________________________________________________________________________<br class="">
OpenStack Development Mailing List (not for usage questions)<br class="">
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org/?subject:unsubscribe" rel="noreferrer" target="_blank" class="">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br class="">
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="">
<br class=""></blockquote></div><br class=""></div>
__________________________________________________________________________<br class="">OpenStack Development Mailing List (not for usage questions)<br class="">Unsubscribe: <a href="mailto:OpenStack-dev-request@lists.openstack.org" class="">OpenStack-dev-request@lists.openstack.org</a>?subject:unsubscribe<br class=""><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class=""></div></blockquote></div><br class=""></div></body></html>