<div dir="ltr">Hi Mike, <div><br></div><div>Comments inline: </div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Apr 28, 2014 at 1:57 AM, Mike Kolesnik <span dir="ltr"><<a href="mailto:mkolesni@redhat.com" target="_blank">mkolesni@redhat.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hi,<br>
<br>
I came across the implementation of<br>
<a href="https://blueprints.launchpad.net/neutron/+spec/nova-event-callback" target="_blank">https://blueprints.launchpad.net/neutron/+spec/nova-event-callback</a><br>
and have a question about the way it was implemented.<br>
<br>
I notice that now Neutron has a dependency on Nova and needs to be configured<br>
to have nova details (API endpoint, user, password, tenant, etc).<br>
Aside from creating a sort of cyclic dependency between the two, it is my<br>
understanding that Neutron is meant to be a "stand alone" service capable of<br>
being consumed by other compute managers (i.e. oVirt).<br>
This breaks that paradigm.<br></blockquote><div><br></div><div>We had this in mind when this was implemented. You can disable the notifications by setting (if you're using neutron without nova):</div><div><br></div><div>
<div># Send notification to nova when port status is active.</div><div>notify_nova_on_port_status_changes = False</div><div><br></div><div># Send notifications to nova when port data (fixed_ips/floatingips) change</div><div>
# so nova can update it's cache.</div><div>notify_nova_on_port_data_changes = False</div><div><br></div></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
So my question is: Why use API and not RPC?<br>
<br>
I saw that there is already a notification system in Neutron that notifies on<br>
each port update (among other things) which are currently consumed by Ceilometer.<br>
Why not have Nova use those notifications to decide that a VIF got plugged correctly,<br>
floating IPs changed, and so on?<br>
<br>
I am willing to make the necessary changes to decouple Neutron from Nova, but<br>
want to understand the rationale behind the original decision of using API<br>
and not RPC notifications.<br></blockquote><div><br></div><div>I believe the rationale here was that nova's API interface is only currently exposed via a rest API over http so leveraging this existing framework seemed like a good place to do it. In addition, there didn't seem to be an obvious advantage to using RPC rather than the rest interface. Lastly, this new interface that nova exposes is generic and not neutron specific as it can be used for other type of notifications that things want to send nova. I added Dan Smith to CC to keep me honest here as I believe this was the rationale.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
Regards,<br>
Mike<br>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</blockquote></div><br></div></div>