<div dir="ltr">It's also worth stating that coding a web UI to deploy a new service is often easier done when single-call is an option. (ie. only one failure scenario to deal with.) I don't see a strong reason we shouldn't allow both single-call creation of whole bunch of related objects, as well as a workflow involving the creation of these objects individually.</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Apr 30, 2014 at 3:50 PM, Jorge Miramontes <span dir="ltr"><<a href="mailto:jorge.miramontes@rackspace.com" target="_blank">jorge.miramontes@rackspace.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div style="font-size:14px;font-family:Calibri,sans-serif;word-wrap:break-word">
<div>
<div>
<div>I agree it may be odd, but is that a strong argument? To me, following RESTful style/constructs is the main thing to consider. If people can specify everything in the parent resource then let them (i.e. single call). If they want to specify at a more granular
 level then let them do that too (i.e. multiple calls). At the end of the day the API user can choose the style they want.</div>
<div><br>
</div>
<div>
<div>Cheers,</div>
<div style="font-family:Calibri,sans-serif"><font color="#000000"><font face="Calibri">--Jorge</font></font></div>
</div>
</div>
</div>
<div><br>
</div>
<span>
<div style="border-right:medium none;padding-right:0in;padding-left:0in;padding-top:3pt;text-align:left;font-size:11pt;border-bottom:medium none;font-family:Calibri;border-top:#b5c4df 1pt solid;padding-bottom:0in;border-left:medium none">

<span style="font-weight:bold">From: </span>Youcef Laribi <<a href="mailto:Youcef.Laribi@citrix.com" target="_blank">Youcef.Laribi@citrix.com</a>><br>
<span style="font-weight:bold">Reply-To: </span>"OpenStack Development Mailing List (not for usage questions)" <<a href="mailto:openstack-dev@lists.openstack.org" target="_blank">openstack-dev@lists.openstack.org</a>><br>

<span style="font-weight:bold">Date: </span>Wednesday, April 30, 2014 1:35 PM<br>
<span style="font-weight:bold">To: </span>"OpenStack Development Mailing List (not for usage questions)" <<a href="mailto:openstack-dev@lists.openstack.org" target="_blank">openstack-dev@lists.openstack.org</a>><br>

<span style="font-weight:bold">Subject: </span>Re: [openstack-dev] [Neutron][LBaaS]Conforming to Open Stack API style in LBaaS<br>
</div><div><div class="h5">
<div><br>
</div>
<blockquote style="BORDER-LEFT:#b5c4df 5 solid;PADDING:0 0 0 5;MARGIN:0 0 0 5">
<div>


<div lang="EN-US" link="blue" vlink="purple">
<div>
<p class="MsoNormal"><span style="color:#1f497d">Sam,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d">I think it’s important to keep the Neutron API style consistent. It would be odd if LBaaS uses a different style than the rest of the Neutron APIs.<u></u><u></u></span></p>

<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d">Youcef<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>
<div>
<div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10pt;font-family:Tahoma,sans-serif">From:</span></b><span style="font-size:10pt;font-family:Tahoma,sans-serif"> Samuel Bercovici [<a href="mailto:SamuelB@Radware.com" target="_blank">mailto:SamuelB@Radware.com</a>]
<br>
<b>Sent:</b> Wednesday, April 30, 2014 10:59 AM<br>
<b>To:</b> <a href="mailto:openstack-dev@lists.openstack.org" target="_blank">openstack-dev@lists.openstack.org</a><br>
<b>Subject:</b> [openstack-dev] [Neutron][LBaaS]Conforming to Open Stack API style in LBaaS<u></u><u></u></span></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Hi Everyone,<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">During the last few days I have looked into the different LBaaS API proposals.<u></u><u></u></p>
<p class="MsoNormal">I have also looked on the API style used in Neutron. I wanted to see how Neutron APIs addressed “tree” like object models.<u></u><u></u></p>
<p class="MsoNormal">Follows my observation:<u></u><u></u></p>
<p><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif""><span>1.<span style="font:7.0pt "Times New Roman"">      
</span></span></span><span style="font-size:10pt;font-family:'Segoe UI',sans-serif">Security groups -  <a href="http://docs.openstack.org/api/openstack-network/2.0/content/security-groups-ext.html" target="_blank">http://docs.openstack.org/api/openstack-network/2.0/content/security-groups-ext.html</a>)
 – <u></u><u></u></span></p>
<p style="margin-left:1.0in">
<span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif""><span>a.<span style="font:7.0pt "Times New Roman"">      
</span></span></span><a href="http://docs.openstack.org/api/openstack-network/2.0/content/GET_security-groups-v2.0_listSecGroupRules_v2.0_security-group-rules_security-groups-ext.html" title="List security group rules" target="_blank"><span style="font-size:10pt;font-family:'Courier New'">security-group-rules</span></a>
 are children of <a href="http://docs.openstack.org/api/openstack-network/2.0/content/GET_security-groups-v2.0_listSecGroups_v2.0_security-groups_security-groups-ext.html" title="List security groups" target="_blank">
<span style="font-size:10pt;font-family:'Courier New'">security-groups</span></a>, the capability to create a security group with its children in a single call is not possible.
<span style="font-size:10pt;font-family:'Segoe UI',sans-serif">
<u></u><u></u></span></p>
<p style="margin-left:1.0in">
<span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif""><span>b.<span style="font:7.0pt "Times New Roman"">      
</span></span></span><span style="font-size:10pt;font-family:'Segoe UI',sans-serif">The capability to create
</span><a href="http://docs.openstack.org/api/openstack-network/2.0/content/GET_security-groups-v2.0_listSecGroupRules_v2.0_security-group-rules_security-groups-ext.html" title="List security group rules" target="_blank"><span style="font-size:10pt;font-family:'Courier New'">security-group-rules</span></a>
 using the following URI path <a href="http://docs.openstack.org/api/openstack-network/2.0/content/GET_security-groups-v2.0_listSecGroups_v2.0_security-groups_security-groups-ext.html" title="List security groups" target="_blank">
<span style="font-size:10pt;font-family:'Courier New'">v2.0/security-groups</span></a>/{SG-ID}/<a href="http://docs.openstack.org/api/openstack-network/2.0/content/GET_security-groups-v2.0_listSecGroupRules_v2.0_security-group-rules_security-groups-ext.html" title="List security group rules" target="_blank"><span style="font-size:10pt;font-family:'Courier New'">security-group-rules</span></a>
 is not supported<span style="font-size:10pt;font-family:'Segoe UI',sans-serif"><u></u><u></u></span></p>
<p style="margin-left:1.0in">
<span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif""><span>c.<span style="font:7.0pt "Times New Roman"">       
</span></span></span>The capability to update <a href="http://docs.openstack.org/api/openstack-network/2.0/content/GET_security-groups-v2.0_listSecGroupRules_v2.0_security-group-rules_security-groups-ext.html" title="List security group rules" target="_blank">
<span style="font-size:10pt;font-family:'Courier New'">security-group-rules</span></a> using the following URI path
<a href="http://docs.openstack.org/api/openstack-network/2.0/content/GET_security-groups-v2.0_listSecGroups_v2.0_security-groups_security-groups-ext.html" title="List security groups" target="_blank">
<span style="font-size:10pt;font-family:'Courier New'">v2.0/security-groups</span></a>/{SG-ID}/<a href="http://docs.openstack.org/api/openstack-network/2.0/content/GET_security-groups-v2.0_listSecGroupRules_v2.0_security-group-rules_security-groups-ext.html" title="List security group rules" target="_blank"><span style="font-size:10pt;font-family:'Courier New'">security-group-rules</span></a>/{SGR-ID}
 is not supported<span style="font-size:10pt;font-family:'Segoe UI',sans-serif"><u></u><u></u></span></p>
<p style="margin-left:1.0in">
<span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif""><span>d.<span style="font:7.0pt "Times New Roman"">      
</span></span></span><span style="font-size:10pt;font-family:'Segoe UI',sans-serif">The notion of creating
</span><a href="http://docs.openstack.org/api/openstack-network/2.0/content/GET_security-groups-v2.0_listSecGroupRules_v2.0_security-group-rules_security-groups-ext.html" title="List security group rules" target="_blank"><span style="font-size:10pt;font-family:'Courier New'">security-group-rules</span></a>
 (child object) without providing the parent {SG-ID} is not supported<span style="font-size:10pt;font-family:'Segoe UI',sans-serif"><u></u><u></u></span></p>
<p><strong><span style="font-family:"Calibri","sans-serif";font-weight:normal"><span>2.<span style="font:7.0pt "Times New Roman"">      
</span></span></span></strong>Firewall as a service - <a href="http://docs.openstack.org/api/openstack-network/2.0/content/fwaas_ext.html" target="_blank">
http://docs.openstack.org/api/openstack-network/2.0/content/fwaas_ext.html</a> - the API to manage
<strong><span style="font-size:10pt;font-family:Verdana,sans-serif;font-weight:normal">firewall_policy and firewall_rule which have parent child relationships behaves the same way as Security groups</span></strong><strong><span style="font-weight:normal;font-family:Calibri,sans-serif"><u></u><u></u></span></strong></p>

<p><span>3.<span style="font:7.0pt "Times New Roman"">      
</span></span><span style="font-size:10pt;font-family:'Segoe UI',sans-serif">Group Policy – this is work in progress -
<a href="https://wiki.openstack.org/wiki/Neutron/GroupPolicy" target="_blank">https://wiki.openstack.org/wiki/Neutron/GroupPolicy</a> - If I understand correctly, this API has a complex object model while the API adheres to the way other neutron APIs are done (ex: flat model,
 granular api, etc.)</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:'Segoe UI',sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:'Segoe UI',sans-serif">How critical is it to preserve a consistent API style for LBaaS?<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:'Segoe UI',sans-serif">Should this be a consideration when evaluating API proposals?<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:'Segoe UI',sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:'Segoe UI',sans-serif">Regards,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:'Segoe UI',sans-serif">            -Sam.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:'Segoe UI',sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
</div>
</blockquote>
</div></div></span>
</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><br><br clear="all"><div><br></div>-- <br><span></span>Stephen Balukoff
<br>Blue Box Group, LLC
<br>(800)613-4305 x807

</div>