<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="">Well, zope is a cool thing I believe. We can consider to use it. I just don’t see what real advantage it’ll give us now.<div class="">Essentially, what we’re trying to do now is pretty simple. We’re just defining one base class for all actions w/o talking</div><div class="">about various modifications of this class yet.</div><div class=""><br class=""></div><div class="">So if you see a concrete idea about using zope interfaces please share. I’m interested in that.</div><div class=""><br class=""><div class="">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Renat Akhmerov</div><div class="">@Nokia</div></div>
</div>
<br class=""><div><blockquote type="cite" class=""><div class="">On 14 Mar 2017, at 22:14, Adriano Petrich <<a href="mailto:apetrich@redhat.com" class="">apetrich@redhat.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Sorry if I'm missing the point here, and for being late on the discussion. But what about zope interfaces?<br class=""><br class="">Would not that be clearer?<div class=""><br class=""></div><div class=""> </div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Tue, Mar 14, 2017 at 11:39 AM, Dougal Matthews <span dir="ltr" class=""><<a href="mailto:dougal@redhat.com" target="_blank" class="">dougal@redhat.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=""><br class=""><div class="gmail_extra"><br class=""><div class="gmail_quote"><div class=""><div class="h5">On 14 March 2017 at 11:14, Renat Akhmerov <span dir="ltr" class=""><<a href="mailto:renat.akhmerov@gmail.com" target="_blank" class="">renat.akhmerov@gmail.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 style="word-wrap:break-word" class="">Yeah, I finally understood too what Thomas meant.<div class=""><br class=""></div><div class="">Just to clarify, I think mixed two different discussions here:</div><div class=""><ol class="m_-752913301545819104m_601756275399462929MailOutline"><li class="">Base framework for all actions residing in mistral-lib (what I was trying to discuss)</li><li class="">The new design for OpenStack actions</li></ol><div class=""><br class=""></div></div><div class="">On #2 I agree with you that NovaAction.get_client(context) should work. No problem with that.</div><div class="">And I believe that it doesn’t make sense to use multiple inheritance in this particular case, it’s</div><div class="">simply not worth it.</div><div class=""><br class=""></div><div class="">Getting back to #1.. Of course, using mixins can be problematic (method and state conflicts etc.).</div><div class="">I think mixins is just one of the options that’s possible to use if we want to. Regular class inheritance</div><div class="">is also an option I think. At this point if we just agree on action base class I think nothing prevents</div><div class="">us from choosing how to evolve in the future. So just agreeing on the base class design seems</div><div class="">to be sufficient for now. It’s just a base contract that a runner needs to be aware of (sorry for</div><div class="">repeating this thought but I think it’s important). The rest is related with action developer</div><div class="">convenience.</div><div class=""><br class=""></div>
<div class=""><span class=""><blockquote type="cite" class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><div class="">I think the outstanding questions are;</div><div class=""><br class="">- should the context be a mixin or should run() always accept context? <br class=""></div></div></div></div></blockquote><div class=""><br class=""></div></span><div class="">I’m for run() having “context” argument. Not sure why mixin is needed here. If an action doesn’t</div><div class="">need context it can be ignored.</div><span class=""><br class=""><blockquote type="cite" class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><div class="">- should async be a mixin or should we continue with the is_sync() method and overwriting that in the sublcass?<br class=""></div></div></div></div></blockquote><div class=""><br class=""></div></span><div class="">I’m for is_sync() method as it is now. It’s more flexible and less confusing (imagine an action inheriting</div><div class="">AsyncAction but having is_async() returning False).</div><span class=""><br class=""><blockquote type="cite" class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><div class="">- should the openstack actions in mistral-extra be mixins?<br class=""></div></div></div></div></blockquote></span></div><div class=""><div class=""><br class="m_-752913301545819104m_601756275399462929webkit-block-placeholder"></div><div class="">No, not at all. They don’t have to be. This is a different discussion I think. We need to collect what’s bad about</div><div class="">the current OpenStack actions and think how to rewrite them (extract the common infrastructure they use,</div><div class="">make them more extensible, etc.)</div></div></div></blockquote><div class=""><br class=""></div></div></div><div class="">+1 to all of the above, I think we are in complete agreement and this will give us both a flexible interface and one that is easy to use and understand.<br class=""><br class=""></div><div class=""> </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=""><div class=""><span class="m_-752913301545819104HOEnZb"><font color="#888888" class=""><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><div style="word-wrap:break-word" class="">Renat Akhmerov</div></div></font></span></div><span class="m_-752913301545819104HOEnZb"><font color="#888888" class=""><div class=""><div style="word-wrap:break-word" class="">@Nokia</div><div class=""><br class=""></div></div></font></span></div><span class=""><br class="">______________________________<wbr class="">______________________________<wbr 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.op<wbr class="">enstack.org?subject:unsubscrib<wbr class="">e</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<wbr class="">-bin/mailman/listinfo/openstac<wbr class="">k-dev</a><br class="">
<br class=""></span></blockquote></div><br class=""></div></div>
<br class="">______________________________<wbr class="">______________________________<wbr 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.<wbr class="">openstack.org?subject:<wbr class="">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/<wbr class="">cgi-bin/mailman/listinfo/<wbr class="">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>