On Apr 17, 2014, at 8:45 AM, Eugene Nikanorov 
<enikano...@mirantis.com<mailto:enikano...@mirantis.com>>
 wrote:

Brandon,



Towards the bottom of that document it does mention content switching and how 
it would work with this.  I know its a huge text document and hard to navigate 
but it is there.
Yeah, i should have been more specific. My concern is that 'single-call API' is 
not powerfull enough right now to account for every case.
Which means that complex cases should still go through a regular process.
I think that creates inconsitent workflow where some objects should be created 
with one approach while others with another.

The point of the one pool on a load balancer is because other than content 
switching there aren't any other use cases for multiple pools.  There's a 
question/answer about that.  As we say in that document, it is not perfect but 
it is viable.  If that is something most people do not like then another 
solution can be discussed.

As for referencing objects within the same request body, it probably wasn't 
explained well but if you need to reference a pool that is being created within 
that POST body then referencing by the name attribute should be fine.  That 
name should only be unique within that request body and references to that name 
should only be contained within the scope of the request body.  After that, 
names don't have to be unique.

Even if that wasn't a viable solution, I don't think a single call API should 
be quickly dismissed because of this.
Generally speaking, single-call API is not the way Neutron API is designed.
Personally I'm not dismissing this option, but there are two constraints that I 
would apply to this approach:
1) single-call API should reflect all capabilities of API

    We don't agree with this constraint in terms of removing the single call 
model but we are definitely working to absorb all use cases to keep it 
orthogonal with the per object model.

2) single-call API should be developed side-by side with per-object API (after 
initiall implementation reflects per-object API)
Even this approach of having two API styles could be questioned by some folks, 
but at least each of the approaches should be consistent, e.g. should cover 
every possible use case that is available with other counterpart.

    We are curious of scenario where the single call can't map to a sequence of 
separate primitives calls. You have asserted this a few times already can you 
give a counter example where a single API call can't map to?


Again, I understand its a huge document and some things are probably not 
detailed well.  If they are not just ask me to give more details.
The thing is that I've actually was through the single-call API discussion with 
some folks and I know the pits of it for our roadmap.
The general issue with a single-call API is that you end up creating Heat-like 
template language to address the use cases that we're planning, and yet you'll 
have to have per-object operations…

    How did you arrive at the conclusion that you must use a DSL(In your 
example a heat template language) to implement smaller primitives operations? 
No one in favor of the single API call is advocating writing a DSL (or HEAT 
template language). Quite the opposite it seems like people against a single 
call API are trying to force this into heat as an alternative to a single call.

Heat is more of an orchestration layer to link Volumes Networks and other Cloud 
services together and and seems out of scope for a single service alone. Since 
these operations we describe pertain only to load balancing objects.

    Thanks Carlos.


Thanks,
Eugene.

________________________________
From: Eugene Nikanorov [enikano...@mirantis.com<mailto:enikano...@mirantis.com>]
Sent: Wednesday, April 16, 2014 4:31 PM

To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [Neutron][LBaaS] Requirements and API revision 
progress

Hi folks,

I've briefly looked over the doc.

I think whole idea to base the API on Atlas misses the content switching use 
case, which is very important:
We need multiple pools within loadbalancer, and API doesn't seem to allow that.
If it would, then you'll face another problem: you need to reference those 
pools somehow inside the json you use in POST.
There are two options here: use names or IDs, both are putting constraints and 
create complexity for both user of such API and for the implementation.

That particular problem becomes worse when it comes to objects which might not 
have names while it's better to not provide ID in POST and rely on their random 
generation. E.g. when you need to create references between objects in json 
input - you'll need to create artificial attributes just for the parser to 
understand that such input means.

So that makes me think that right now a 'single-call API' is not flexible 
enough to comply with our requirements.
While I understand that it might be simpler to use such API for some cases, it 
makes complex configurations fall back to our existing approach which is 
creating configuration on per object basis.
While the problem with complex configurations is not sorted out, I'd prefer if 
we focus on existing 'object-oriented' approach.

On the other hand, without single-call API the rest of proposal seems to be 
similar to approaches discussed in 
https://wiki.openstack.org/wiki/Neutron/LBaaS/LoadbalancerInstance/Discussion

Thanks,
Eugene.





On Thu, Apr 17, 2014 at 12:59 AM, Brandon Logan 
<brandon.lo...@rackspace.com<mailto:brandon.lo...@rackspace.com>> wrote:
Sorry about that.  It should be readable now.
________________________________
From: Eugene Nikanorov [enikano...@mirantis.com<mailto:enikano...@mirantis.com>]
Sent: Wednesday, April 16, 2014 3:51 PM

To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [Neutron][LBaaS] Requirements and API revision 
progress

Hi Brandon,

Seems that doc has not been made public, so please share.

Thanks,
Eugene.


On Thu, Apr 17, 2014 at 12:39 AM, Brandon Logan 
<brandon.lo...@rackspace.com<mailto:brandon.lo...@rackspace.com>> wrote:
Here is Jorge and team’s API proposal based on Atlas.  The document has some 
questions and answers about why decisions were made.  Feel free to open up a 
discussion about these questions and answers and really about anything.   This 
can be changed up to fit any flaws or use cases we missed that this would not 
support.

There is a CLI example at the bottom along with a possible L7 switching API 
model.

https://docs.google.com/document/d/1mTfkkdnPAd4tWOMZAdwHEx7IuFZDULjG9bTmWyXe-zo/edit

Thanks,
Brandon Logan

From: Eugene Nikanorov <enikano...@mirantis.com<mailto:enikano...@mirantis.com>>
Reply-To: 
"openstack-dev@lists.openstack.org<mailto:openstack-dev@lists.openstack.org>" 
<openstack-dev@lists.openstack.org<mailto:openstack-dev@lists.openstack.org>>
Date: Tuesday, April 15, 2014 at 7:00 AM
To: 
"openstack-dev@lists.openstack.org<mailto:openstack-dev@lists.openstack.org>" 
<openstack-dev@lists.openstack.org<mailto:openstack-dev@lists.openstack.org>>

Subject: Re: [openstack-dev] [Neutron][LBaaS] Requirements and API revision 
progress

Hi Stephen,

Thanks for a good summary. Some comments inline.


On Tue, Apr 15, 2014 at 5:20 AM, Stephen Balukoff 
<sbaluk...@bluebox.net<mailto:sbaluk...@bluebox.net>> wrote:

So! On this front:

1. Does is make sense to keep filling out use cases in Samuel's document above? 
I can think of several more use cases that our customers actually use on our 
current deployments which aren't considered in the 8 cases in Samuel's document 
thus far. Plus nobody has create any use cases from the cloud operator 
perspective yet.

I treat Sam's doc as a source of use cases to triage API proposals. If you 
think you have use cases that don't fit into existing API or into proposed API, 
they should certainly be brought to attention.


2. It looks like we've started to get real-world data on Load Balancer features 
in use in the real world. If you've not added your organization's data, please 
be sure to do so soon so we can make informed decisions about product 
direction. On this front, when will we be making these decisions?
I'd say we have two kinds of features - one kind is features that affect or 
even define the object model and API.
Other kind are features that are implementable within existing/proposed API or 
require slight changes/evolution.
First kind is the priority: while some of such features may or may not be 
implemented in some particular release, we need to implement proper 
infrastructure for them (API, obj model)

Oleg Bondarev (he's neutron core) and me are planning and mostly interested to 
work on implementing generic stuff like API/obj model and adopt haproxy driver 
to it. So our goal is to make implementation of particular features simpler for 
contributors and also make sure that proposed design fits in general lbaas 
architecture. I believe that everyone who wants to see certain feature may 
start working on it - propose design, participate in discussions and start 
actually writing the code.



3. Jorge-- I know an action item from the last meeting was to draft a revision 
of the API (probably starting from something similar to the Atlas API). Have 
you had a chance to get started on this, and are you open for collaboration on 
this document at this time? Alternatively, I'd be happy to take a stab at it 
this week (though I'm not very familiar with the Atlas API-- so my proposal 
might not look all that similar).

+1, i'd like to see something as well.


What format or template should we be following to create the API documentation? 
 (I see this here:  
http://docs.openstack.org/api/openstack-network/2.0/content/ch_preface.html  
but this seems like it might be a little heavy for an API draft that is likely 
to get altered significantly, especially given how this discussion has gone 
thus far. :/ )

Agree, that's too heavy for API sketch. I think a set of resources with some 
attributes plus a few cli calls is what could show the picture.

Thanks,
Eugene.

_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org<mailto:OpenStack-dev@lists.openstack.org>
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org<mailto:OpenStack-dev@lists.openstack.org>
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org<mailto:OpenStack-dev@lists.openstack.org>
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org<mailto:OpenStack-dev@lists.openstack.org>
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to