<p dir="ltr">I agree. Ryan, can you propose a patch based off of the existing group policy work so we can get an idea of what changes are required to implement this level of abstraction? </p>
<p dir="ltr">It sounds like this is work that can be built entirely on top of the existing abstractions and APIs offered by the current GBP work. If that's the case, it could be contained in the CLI or possibly introduced in another extension if it requires too much complexity in the client. </p>

<p dir="ltr">Cheers, <br>
--<br>
Kevin Benton </p>
<div class="gmail_quote">On Jul 30, 2014 12:25 PM, "Mandeep Dhami" <<a href="mailto:dhami@noironetworks.com">dhami@noironetworks.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div class="gmail_default" style="font-size:small">Hi Ryan:</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">As I stated in the patch review, the suggestion to use a "profiled API" like IETF/CCITT is indeed very interesting. As a "profiled API" has not been tried with any neutron model before, and as there is no existing design pattern/best practices for how best to structure that, my recommendation is to create a new patch (dependent on this patch) to try that experiment.</div>

<div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">That patch will also clarify what is meant you mean by a "profiled API" and how that might interact with other openstack services like Heat and Horizon.</div>

<div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Regards,</div><div class="gmail_default" style="font-size:small">Mandeep</div><div class="gmail_default" style="font-size:small">

-----</div><div class="gmail_default" style="font-size:small"><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jul 30, 2014 at 11:13 AM, Hemanth Ravi <span dir="ltr"><<a href="mailto:hemanthraviml@gmail.com" target="_blank">hemanthraviml@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,<div><br></div><div>Adding this CLI command seems to be a good way to provide support for the second model. This can be submitted as a new review patch to work through the approaches to implement this. I suggest the current CLI patch [1] be reviewed for the existing spec and completed.</div>


<div><br></div><div>Ryan, would it possible for you to start a new review submit for the new command(s). Could you also provide any references for "profiled" API in IETF, CCITT.</div><div><br></div><div>Thanks,</div>


<div>-hemanth</div><div><br></div><div>[1] <a href="https://review.openstack.org/#/c/104013" target="_blank">https://review.openstack.org/#/c/104013</a></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">

<div><div>On Tue, Jul 29, 2014 at 3:16 PM, Ryan Moats <span dir="ltr"><<a href="mailto:rmoats@us.ibm.com" target="_blank">rmoats@us.ibm.com</a>></span> wrote:<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div>
<p><font face="sans-serif">As promised in Monday's Neutron IRC minutes [1], this mail is a "trip down memory lane" looking at the history of the</font><br>
<font face="sans-serif">Neutron GP project..  The original GP google doc [2] included specifying policy via both a produce/consume 1-group</font><br>
<font face="sans-serif">approach and as a link between two groups.  There was an email thread [3] that discussed the relationship between</font><br>
<font face="sans-serif">these models early on, but that discussion petered out and during a later IRC meeting [4] the concept of contracts</font><br>
<font face="sans-serif">were added, but without changing the basic use case requirements from the original document.  A followup meeting [5]</font><br>
<font face="sans-serif">began the discussion of how to express the original model from the contract data model but that discussion doesn't</font><br>
<font face="sans-serif">appear to have been completed either.  The PoC in Atlanta raised a set of issues [6],[7] around the complexity of the</font><br>
<font face="sans-serif">resulting PoC code.</font><br>
<br>
<font face="sans-serif">The good news is that having looked through the proposed GP code commits (links to which can be found at [8) I</font><br>
<font face="sans-serif">believe that folks that want to be able to specify policies via the 2-group approach (and yes, I'm one of them) can have</font><br>
<font face="sans-serif">that without changing the model encoded in those commits. Rather, it can be done via the WiP CLI code commit by</font><br>
<font face="sans-serif">providing a "profiled" API - this is a technique used by the IETF, CCITT, etc. to allow a rich API to be consumed in</font><br>
<font face="sans-serif">common ways.  In this case, what I'm envisioning is something like</font><br>
<br>
<font face="sans-serif">neutron policy-apply [policy rule] [src group] [destination group]</font><br>
<br>
<font face="sans-serif">in this case, the CLI would perform the contract creation for the policy rule, and assigning the proper produce/consume</font><br>
<font face="sans-serif">edits to the specified source and destination groups.  Note:  this is in addition to the CLI providing direct access to the</font><br>
<font face="sans-serif">underlying data model.  I believe that this is the simplest way to "bridge the gap" and provide support to folks who want</font><br>
<font face="sans-serif">to specify policy as something between two groups.</font><br>
<br>
<font face="sans-serif">Ryan Moats (regXboi)</font><br>
<br>
<font face="sans-serif">References:</font><br>
<font face="sans-serif">[1] </font><a href="http://eavesdrop.openstack.org/meetings/networking/2014/networking.2014-07-28-21.02.log.txt" target="_blank"><font face="sans-serif">http://eavesdrop.openstack.org/meetings/networking/2014/networking.2014-07-28-21.02.log.txt</font></a><br>



<font face="sans-serif">[2] </font><a href="https://docs.google.com/document/d/1ZbOFxAoibZbJmDWx1oOrOsDcov6Cuom5aaBIrupCD9E/edit#" target="_blank"><font face="sans-serif">https://docs.google.com/document/d/1ZbOFxAoibZbJmDWx1oOrOsDcov6Cuom5aaBIrupCD9E/edit#</font></a><br>



<font face="sans-serif">[3] </font><a href="http://lists.openstack.org/pipermail/openstack-dev/2013-December/022150.html" target="_blank"><font face="sans-serif">http://lists.openstack.org/pipermail/openstack-dev/2013-December/022150.html</font></a><br>



<font face="sans-serif">[4] </font><a href="http://eavesdrop.openstack.org/meetings/networking_policy/2014/networking_policy.2014-02-27-19.00.log.html" target="_blank"><font face="sans-serif">http://eavesdrop.openstack.org/meetings/networking_policy/2014/networking_policy.2014-02-27-19.00.log.html</font></a><br>



<font face="sans-serif">[5] </font><a href="http://eavesdrop.openstack.org/meetings/networking_policy/2014/networking_policy.2014-03-20-19.00.log.html" target="_blank"><font face="sans-serif">http://eavesdrop.openstack.org/meetings/networking_policy/2014/networking_policy.2014-03-20-19.00.log.html</font></a><br>



<font face="sans-serif">[6] </font><a href="http://lists.openstack.org/pipermail/openstack-dev/2014-May/035661.html" target="_blank"><font face="sans-serif">http://lists.openstack.org/pipermail/openstack-dev/2014-May/035661.html</font></a><br>



<font face="sans-serif">[7] </font><a href="http://eavesdrop.openstack.org/meetings/networking_policy/2014/networking_policy.2014-05-22-18.01.log.html" target="_blank"><font face="sans-serif">http://eavesdrop.openstack.org/meetings/networking_policy/2014/networking_policy.2014-05-22-18.01.log.html</font></a><br>



<font face="sans-serif">[8] </font><a href="https://wiki.openstack.org/wiki/Meetings/Neutron_Group_Policy" target="_blank"><font face="sans-serif">https://wiki.openstack.org/wiki/Meetings/Neutron_Group_Policy</font></a></p>


</div><br></div></div><div>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">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>
<br></div></blockquote></div><br></div>
<br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">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>
<br></blockquote></div><br></div>
<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>
<br></blockquote></div>