Re: [openstack-dev] [neutron] Microversioning work questions and kick-start

2015-06-14 Thread Salvatore Orlando
On 12 June 2015 at 16:58, Henry Gessau ges...@cisco.com wrote:

 On Thu, Jun 11, 2015, Salvatore Orlando sorla...@nicira.com wrote:
  Finally, I received queries from several community members that would be
 keen
  on helping supporting this microversioning effort. I wonder if the PTL
 and the
  API lieutenants would ok with agreeing to have a team of developers
 meeting
  regularly, working towards implementing this feature, and report progress
  and/or issues to the general Neutron meeting.

 Yes, I am ok with agreeing to form such a team. ;) With an effort this
 complex
 it makes sense to have tl;dr type summaries in the general meeting. This
 has
 worked well for large-effort features before, and when the work winds down
 the
 topic can fold back into the main meeting.


Thanks Henry!

So I would say that perhaps we could gather interest from developers -
either using this thread or another one - and once we have a critical mass
of, for instance, 5 developers, we will kick off the activities, book a
weekly slot for more or less regular meetings, set expectations, review
design, discuss implementation, and hopefully get this thing done.

Salvatore




 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [neutron] Microversioning work questions and kick-start

2015-06-14 Thread Salvatore Orlando
On 12 June 2015 at 12:22, Sean Dague s...@dague.net wrote:

 On 06/11/2015 06:03 PM, Salvatore Orlando wrote:
  As most of you already know, work is beginning to move forward on the
  micro-versioned Neutron API, for which a specification is available at
 [1]
 
  From a practical perspective there is one non-negligible preliminary
  issue that needs attention. then Neutron API URI prefix includes the
  full version number - currently 2.0. For instance:
 
   http://neutron_server:9696/v2.0/networks.json
 
  This clearly makes a microversioned approach a bit weird - if you have
  to use, for instance, 2.0 as a URI prefix for API version 2.12.
  On the one hand it might make sense to start the micro-versioned API as
  a sort of clean slate, possibly using a version-agnostic URI prefix or
  no prefix at all; also as pointed out by some community members it will
  give a chance to validate this versioned API approach.
  This will have however the drawback that both the unversioned,
  extension-based so-called 2.0 API will keep living and evolving
  side-by-side with the versioned API, and then switching to the versioned
  API will not be transparent to clients.
  It would be good to receive some opinions from the developer and user
  community on the topic.

 It will definitely be challenging to have both evolving at once. The
 Nova team had a lot of pains in that happening in the 18 months of v3.0
 work. Once we got the microversion mechanism in place we hard froze
 v2.0. That being said we actually had 2 internal code bases, so our
 situation was a bit gorpier than yours.


Well, we'd have both extensions and revisions evolving at the same
time. The situation won't be nearly as difficult to handle as nova v3.0,
but it still be a hassle.
While I understand where people advocating for not freezing the current
extension-based mechanisms until microversioning is proved and tested, on
the other hand my concern is that this effort is already on the failure
road as it's pretty much an experimental alternative to the current way of
evolving the API for the foreseeable future.

Therefore I would say that the community might accept that if
microversioning is functionally complete and reliably working in version X
(where X is an openstack release), then automatically the old API will be
frozen in the same version, deprecated in X+1 and killed in X+2.




 On the version in the url: My expectation is at some point the future
 we'll privot out of having a version string in our URL entirely, but
 it's one of those things that can come later.
 The url root is mostly important from a service catalog perspective, in
 that what's there matches what the code returns in all it's internal
 links. Honestly, long term, it would be great if 1) we actually
 developer standards for naming in the service catalog 2) the API
 services stop having their API url in code, but instead reflect it back
 from the catalog. Which would fix one of the gorpiest parts of putting
 your API servers behind haproxy or ssl termination. I.e. I wouldn't be
 too concerned on that front, it looks a little funny, but won't really
 get in anyone's way.

  Furthermore, another topic that has been brought up is whether plugins
  should be allowed to control the version of the API server, like
  specifying minimum and maximum version. My short answer is no, because
  the plugin should implement the API, not controlling it. Also, the spec
  provides a facility for plugins to disable features if they are unable
  to support them.
 
  Finally, I received queries from several community members that would be
  keen on helping supporting this microversioning effort. I wonder if the
  PTL and the API lieutenants would ok with agreeing to have a team of
  developers meeting regularly, working towards implementing this feature,
  and report progress and/or issues to the general Neutron meeting.
 
  Salvatore
 
  [1] https://review.openstack.org/#/c/136760/
 
 
 
 
 
 
 
 
 
 __
  OpenStack Development Mailing List (not for usage questions)
  Unsubscribe:
 openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
  http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
 


 --
 Sean Dague
 http://dague.net

 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [neutron] Microversioning work questions and kick-start

2015-06-12 Thread Sean Dague
On 06/11/2015 06:03 PM, Salvatore Orlando wrote:
 As most of you already know, work is beginning to move forward on the
 micro-versioned Neutron API, for which a specification is available at [1]
 
 From a practical perspective there is one non-negligible preliminary
 issue that needs attention. then Neutron API URI prefix includes the
 full version number - currently 2.0. For instance:
 
  http://neutron_server:9696/v2.0/networks.json
 
 This clearly makes a microversioned approach a bit weird - if you have
 to use, for instance, 2.0 as a URI prefix for API version 2.12.
 On the one hand it might make sense to start the micro-versioned API as
 a sort of clean slate, possibly using a version-agnostic URI prefix or
 no prefix at all; also as pointed out by some community members it will
 give a chance to validate this versioned API approach.
 This will have however the drawback that both the unversioned,
 extension-based so-called 2.0 API will keep living and evolving
 side-by-side with the versioned API, and then switching to the versioned
 API will not be transparent to clients.
 It would be good to receive some opinions from the developer and user
 community on the topic.

It will definitely be challenging to have both evolving at once. The
Nova team had a lot of pains in that happening in the 18 months of v3.0
work. Once we got the microversion mechanism in place we hard froze
v2.0. That being said we actually had 2 internal code bases, so our
situation was a bit gorpier than yours.

On the version in the url: My expectation is at some point the future
we'll privot out of having a version string in our URL entirely, but
it's one of those things that can come later.
The url root is mostly important from a service catalog perspective, in
that what's there matches what the code returns in all it's internal
links. Honestly, long term, it would be great if 1) we actually
developer standards for naming in the service catalog 2) the API
services stop having their API url in code, but instead reflect it back
from the catalog. Which would fix one of the gorpiest parts of putting
your API servers behind haproxy or ssl termination. I.e. I wouldn't be
too concerned on that front, it looks a little funny, but won't really
get in anyone's way.

 Furthermore, another topic that has been brought up is whether plugins
 should be allowed to control the version of the API server, like
 specifying minimum and maximum version. My short answer is no, because
 the plugin should implement the API, not controlling it. Also, the spec
 provides a facility for plugins to disable features if they are unable
 to support them.
 
 Finally, I received queries from several community members that would be
 keen on helping supporting this microversioning effort. I wonder if the
 PTL and the API lieutenants would ok with agreeing to have a team of
 developers meeting regularly, working towards implementing this feature,
 and report progress and/or issues to the general Neutron meeting.
 
 Salvatore
 
 [1] https://review.openstack.org/#/c/136760/
 
 
 
 
 
 
 
 
 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
 


-- 
Sean Dague
http://dague.net

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [neutron] Microversioning work questions and kick-start

2015-06-12 Thread Henry Gessau
On Thu, Jun 11, 2015, Salvatore Orlando sorla...@nicira.com wrote:
 Finally, I received queries from several community members that would be keen
 on helping supporting this microversioning effort. I wonder if the PTL and the
 API lieutenants would ok with agreeing to have a team of developers meeting
 regularly, working towards implementing this feature, and report progress
 and/or issues to the general Neutron meeting.

Yes, I am ok with agreeing to form such a team. ;) With an effort this complex
it makes sense to have tl;dr type summaries in the general meeting. This has
worked well for large-effort features before, and when the work winds down the
topic can fold back into the main meeting.


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [neutron] Microversioning work questions and kick-start

2015-06-11 Thread Kyle Mestery
On Thu, Jun 11, 2015 at 5:03 PM, Salvatore Orlando sorla...@nicira.com
wrote:

 As most of you already know, work is beginning to move forward on the
 micro-versioned Neutron API, for which a specification is available at [1]


Yes, I just approved the spec in fact.


 From a practical perspective there is one non-negligible preliminary issue
 that needs attention. then Neutron API URI prefix includes the full version
 number - currently 2.0. For instance:

  http://neutron_server:9696/v2.0/networks.json

 This clearly makes a microversioned approach a bit weird - if you have to
 use, for instance, 2.0 as a URI prefix for API version 2.12.
 On the one hand it might make sense to start the micro-versioned API as a
 sort of clean slate, possibly using a version-agnostic URI prefix or no
 prefix at all; also as pointed out by some community members it will give a
 chance to validate this versioned API approach.
 This will have however the drawback that both the unversioned,
 extension-based so-called 2.0 API will keep living and evolving
 side-by-side with the versioned API, and then switching to the versioned
 API will not be transparent to clients.
 It would be good to receive some opinions from the developer and user
 community on the topic.


I'll defer to your judgement here Salv, but it seems as if we move to no
prefix at all, that's where we want to eventually be. And it has the
benefit of letting us test this out.


 Furthermore, another topic that has been brought up is whether plugins
 should be allowed to control the version of the API server, like specifying
 minimum and maximum version. My short answer is no, because the plugin
 should implement the API, not controlling it. Also, the spec provides a
 facility for plugins to disable features if they are unable to support them.


Agree with your short answer.


 Finally, I received queries from several community members that would be
 keen on helping supporting this microversioning effort. I wonder if the PTL
 and the API lieutenants would ok with agreeing to have a team of developers
 meeting regularly, working towards implementing this feature, and report
 progress and/or issues to the general Neutron meeting.


Yes, this makes sense. I'll defer to you, Henry and Akihiro to setup a time
for this. Syncing weekly as you and the team work through this would
hopefully expedite the work!

Thanks!
Kyle


 Salvatore

 [1] https://review.openstack.org/#/c/136760/







 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev