On 06/21/2016 10:27 AM, Sean Dague wrote: > On 06/21/2016 10:47 AM, Monty Taylor wrote: > <snip> >> >> I'll agree with Clint here, and give an example. >> >> When I talk to Nova and get a detail record for a server, Nova talks to >> Neutron and puts data that it receives into the addresses dict on the >> server record. This is not the neutron data structure. In fact, it has >> some information from the Network and some from the Port (it would be >> helpful if it had _more_ info, but that's not the point here) >> >> In any case, the data structure returned by Nova is not related in any >> way to the version of Neutron that nova is talking to - nor should it be. >> >> Here's an example (in yaml not json) >> >> addresses: >> GATEWAY_NET: >> - OS-EXT-IPS-MAC:mac_addr: fa:16:3e:ea:d8:0d >> OS-EXT-IPS:type: fixed >> addr: 172.99.106.178 >> version: 4 >> >> If you want a neutron record, you'll talk to neutron. > > That's all well and good today, with all the things that we know about > today. And says nothing about what the Neutron API looks like in 6 years > time. Let's say that Neutron decides in 2020 that "fixed" is a non > meaningful name, and stops using it. > > We just did a transition in Nova interacting with Glance where we *could > not* guarantee the semantics of the interaction from before. We decided > to *shrug* and just break it, because the only other option was to pin > to Glance v1 API for eternity. > > So just because you can't imagine a situation right now where this isn't > a problem, doesn't mean that it's not going to hit you. And the API is a > place where we don't really get do overs without hurting users. > > ... > > And getting back to the point of the argument it's all about: > > OpenStack-API-Version: compute 2.11 > > vs. > > OpenStack-API-Version: 2.11 > > 8 bytes to be more explicit on our ACK, and to allow flexibility for > composite actions in the future (which may never be used, so 8 bytes is > our cost).
I think putting compute in the argument is a GREAT idea. Sorry, I should have been much clearer on that. I was mostly arguing that regardless of where Nova gets its data, if I'm talking to Nova then it's Nova's api version I care about. I think expecting me to need to also set a neutron microversion header when talking to nova is a _terrible_ user experience, and if neutron were to do something that would make it unpossible for nova to fulfill its API contract, then we, as OpenStack, should say no. Monty __________________________________________________________________________ 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