<div dir="ltr">Hi Eugene-<div><br></div><div style>Thanks for the reply.. I forgot to click reply-all.. now added the mailing list</div><div style><br></div><div style>The first doubt was.</div><div style><br></div><div style>
Like we have agents for core-plugins, how the service-plugin agents differ from these core-plugin agents?</div><div style><br></div><div style>One doubt:</div><div style><br></div><div style>Will this loadbalance.py be a starting point to write a test service-plugin? Can you comments on this. this might be helpful for any fresh starters who are interested in writing service plugins..</div>
<div style><br></div><div style>thanks in advance.</div><div style><br></div><div style>-</div><div style>Trinath</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jan 9, 2013 at 2:07 PM, Eugene Nikanorov <span dir="ltr"><<a href="mailto:enikanorov@mirantis.com" target="_blank">enikanorov@mirantis.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span style="color:rgb(34,34,34);font-size:13px;white-space:nowrap;font-family:arial,sans-serif">Trinath,</span><div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap"><br>

</span></font></div><div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap">1. I don't quite understand the question</span></font></div><div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap"><br>

</span></font></div><div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap">2. Request routing is usually done with "extensions" mechanism. Quantum has a directory where files with API extensions are kept.</span></font></div>

<div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap">During startup quantum iterates through them and adds to REST API those extensions which are supported by some loaded plugin.</span></font></div>

<div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap">E.g. it implies 1:1 mapping between API extension and plugin which implements it.</span></font></div><div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap">Extension defines a handler to calls that it exposes. Usually such handler is a "plugin", e.g. a core plugin, but advanced services extensions need to specify corresponding service plugin, .e.g.</span></font></div>

<div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap">something like QuantumManager.get_service_plugins()['service_type']</span></font></div><div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap">Currently there is <a href="https://github.com/openstack/quantum/blob/master/quantum/extensions/loadbalancer.py" target="_blank">https://github.com/openstack/quantum/blob/master/quantum/extensions/loadbalancer.py</a> extension utilizing this.</span></font></div>

<div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap"><br></span></font></div><div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap">3. Not sure what you mean by mapping service agents to plugins. </span></font></div>

<div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap">Usually any kind of agent is waiting on MQ for some notifications/requests and makes corresponding changes on hardware appliances.</span></font></div>

<div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap">E.g. beside the fact that agents are different for different plugins, they are listening for different topic in MQ.</span></font></div>
<div>
<font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap"><br></span></font></div><div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap">4. Plugins are essentially an implementation of some REST APIs - either exposed by corresponding extension or Core API.</span></font></div>

<div><br></div><div>Please remember to use mailing list. There could be other people willing to answer your questions.</div><div><br></div><div>Thanks,</div><div>Eugene.</div><div class="HOEnZb"><div class="h5"><div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap"><br>

</span></font></div><div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap"><br></span></font><br><div class="gmail_quote">On Wed, Jan 9, 2013 at 12:12 PM, Trinath Somanchi <span dir="ltr"><<a href="mailto:trinath.somanchi@gmail.com" target="_blank">trinath.somanchi@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Eugene-<div><br></div><div>Thanks a lot for the reply...</div><div><br></div><div>Can you kindly guide me on following doubts</div>

<div><br></div><div>[1] How different are the services plugin agents requests from core-plugin agents requests?</div>
<div><br></div><div>[2] How is Routing of requests is taken care here in the services plugins functionality?</div><div><br></div><div>I understand this way.</div><div><br></div><div>The plugins are loaded by the quantum manager using the service_plugin configuration from the quantum.conf.</div>


<div>The requests are some how routed to the plugins and there they are served.</div><div><br></div><div>But then,</div><div><br></div><div>[1] want to understand on how these services-agents requests are mapped to plugins ?</div>


<div><br></div><div>[2] How different is the implementation of Service-Plugins to Core-Plugins ?</div><div><br></div><div>Can you kindly help me in understanding the above doubts..</div><div>
<br></div><div>Thanks in advance</div><div><br></div><div>-</div><div>Trinath</div></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jan 9, 2013 at 1:24 PM, Eugene Nikanorov <span dir="ltr"><<a href="mailto:enikanorov@mirantis.com" target="_blank">enikanorov@mirantis.com</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span style="color:rgb(34,34,34);font-size:13px;white-space:nowrap;font-family:arial,sans-serif">Trinath</span><span style="color:rgb(34,34,34);font-size:13px;white-space:nowrap;font-family:arial,sans-serif;font-weight:bold">,</span><div>



<font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap"><br></span></font></div><div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap">1. We need to update the file once service type is added.</span></font></div>



<div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap">Say, if we add firewall service, we need to add corresponding service type constant.</span></font></div><div><br></div><div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap">2. This constants are keys in the dictionary that keeps loaded plugins.</span></font></div>



<div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap">So currently it's 1 plugin per service type. </span></font></div><div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap">E.g. core API can have only 1 plugin.</span></font></div>



<div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap"><br></span></font></div><div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap">Regarding running multiple plugins for core API: there is "metaplugin" plugin that was created for such purpose of running several core plugins simultaneously.</span></font></div>



<div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap">So metaplugin is that single plugin for core API, but it loads other quantum plugins and then routes API calls to them according to flavor.</span></font></div>



<div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap">You can find more information here: <a href="https://github.com/openstack/quantum/tree/master/quantum/plugins/metaplugin" target="_blank">https://github.com/openstack/quantum/tree/master/quantum/plugins/metaplugin</a> </span></font></div>



<div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap"><br></span></font></div><div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap">Thanks,</span></font></div>



<div><font color="#222222" face="arial, sans-serif"><span style="white-space:nowrap">Eugene.</span></font></div><div><div><div><br></div><div><div class="gmail_quote">On Wed, Jan 9, 2013 at 11:08 AM, Trinath Somanchi <span dir="ltr"><<a href="mailto:trinath.somanchi@gmail.com" target="_blank">trinath.somanchi@gmail.com</a>></span> wrote:<br>



<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Eugene-<div><br></div><div>Thanks a lot for the reply..</div><div><br></div><div>I have few doubts regarding the file /quantum/plugins/common/constants.py </div>



<div><br></div><div>[1] Do we need to update this file when any new plugin is added?</div>
<div><br></div><div>[2] How this file and its macros are utilized for servicing the multiple plugins?</div><div><br></div><div>Also, I'm thinking on using OVS plugin and cisco plugin at a time. Will this additions to the Folsom source code, does the same task as I'm thinking on?</div>




<div><br></div><div>Can you kindly guide me on how this can be achieve the above setup.....</div><div><br></div><div>Can you kindly comment on the above doubts.</div><div><br></div><div>
Thanks in advance.</div><div><br></div><div>-</div><div>Trinath</div><div><br></div></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jan 8, 2013 at 4:23 PM, Eugene Nikanorov <span dir="ltr"><<a href="mailto:enikanorov@mirantis.com" target="_blank">enikanorov@mirantis.com</a>></span> wrote:<br>




<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Trinath,<div><br></div><div>You might want to check <a href="https://review.openstack.org/#/c/15733/" target="_blank">https://review.openstack.org/#/c/15733/</a></div>




<div>It's the patch implementing multi-plugin support that already have been merged into quantum's master branch.</div>
<div><br></div><div>Thanks,</div><div>Eugene.<div><div><br><br><div class="gmail_quote">On Tue, Jan 8, 2013 at 2:33 PM, Trinath Somanchi <span dir="ltr"><<a href="mailto:trinath.somanchi@gmail.com" target="_blank">trinath.somanchi@gmail.com</a>></span> wrote:<br>





<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Stackers-<div><br></div><div>How to support multiple service plugins in the Quantum (Folsom)? </div>




<div>
<br></div><div>I have gone through this link, <a href="https://review.openstack.org/#/c/15881/1" target="_blank">https://review.openstack.org/#/c/15881/1</a></div>
<div><br></div><div>Will checking out this code base and integrating the same to the folsom code base help me in multi-plugin feature for the Quantum (Folsom)</div><div><br></div><div>Please help me out in this regard.</div>





<span><font color="#888888">
<div><div><br></div>-- <br>Regards,<br>----------------------------------------------<br>Trinath Somanchi,<div><a href="tel:%2B91%209866%20235%20130" value="+919866235130" target="_blank">+91 9866 235 130</a></div>
</div></font></span></div>
</blockquote></div><br></div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Regards,<br>----------------------------------------------<br>Trinath Somanchi,<div><a href="tel:%2B91%209866%20235%20130" value="+919866235130" target="_blank">+91 9866 235 130</a></div>



</div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>Regards,<br>----------------------------------------------<br>Trinath Somanchi,<div><a href="tel:%2B91%209866%20235%20130" value="+919866235130" target="_blank">+91 9866 235 130</a></div>

</div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>Regards,<br>----------------------------------------------<br>Trinath Somanchi,<div>+91 9866 235 130</div>
</div>