[openstack-dev] [nova] api schema validation pattern changes

Sean Dague sean at dague.net
Tue Jan 14 12:22:09 UTC 2014

On 01/14/2014 12:12 AM, Jay Pipes wrote:
> On Tue, 2014-01-14 at 11:45 +0800, Christopher Yeoh wrote:
>> On Tue, Jan 14, 2014 at 10:59 AM, Jay Pipes <jaypipes at gmail.com>
>> wrote:
>>         We don't need API extensions and they make our Compute API
>>         laughably complex and cumbersome. We should ditch entirely the
>>         concept of API extensions in our next Compute API major
>>         release.
>> I think it way too late in the cycle to make this sort of change for
>> the V3 API.
> Completely agreed. I never said anything about v3. Specifically, in the
> tl;dr section I said "in the next major API version" we should get rid
> of API extensions.


This is the direction I'd really like to see us head. I think it would
be far more friendly to consumers of OpenStack clouds, and immediately
go long strides towards making OS Clouds more compatible.

>>         admin_actions -- seriously...why wouldn't pause/unpause, etc
>>         be part of
>>         the API? if some hypervisor doesn't support the action, then
>>         raise
>>         NotImplemented and return an HTTP 501 Not Implemented -- after
>>         all,
>>         that's what a 501 was designed for, and client tooling for
>>         HTTP APIs
>>         should understand that.

Minor nit, it's not what 501 is designed for. Method means something
*very* specific in HTTP, which we bastardized.

That being said, we can come up with a way to signal not implemented to
the user, so leave this to be fixed in v4.

>> So interestingly the feedback we got at the HK design summit session
>> around admin_actions
>> is that we should split it up into multiple smaller extensions (and
>> this is going through
>> now). So deployers could more selectively deploy what they want to and
>> not include what
>> they don't want.
> If it wasn't clear, I was not proposing changing anything to do with the
> existing v3 API or any of the extensions. I am saying we should get rid
> of them for the next major version, which would be v4.
> BTW, I challenge you to find deployers that are clamouring for the
> ability to "selectively deploy" some parts of the API and not
> others...I'd be happy to have conversations with these people and figure
> out what the real use cases are and what they're really after -- because
> I can almost guarantee it's not yet more API extensions.
>>> And although we don't really have an official policy around it, I
>>> think the API extension functionality has been used as a way of
>>> allowing new functionality into Nova and evaluating it in place
>> before
>>> deciding whether or not it becomes a core part of Nova.
>>         I do understand this. But, I just think that it's mainly
>>         laziness that
>>         drives this. Instead of doing the hard work of determining a
>>         useful API
>>         structure ahead of time -- and validating that the new
>>         features actually
>>         fit the API audience -- it's just one more way of pushing
>>         immature or
>>         ill-fitting code into a codebase.
>>         Sorry for ranting.
>> Ranting is fine with me :-) But if its something we wanted to do for
>> the V3 API we really should
>> have had this sort of discussion at the *Havana* design summit.
> I've brought up the problems before with API extensions numerous times,
> but unfortunately, I haven't voiced enough concern over the last 18
> months or so, being lost a bit in ops-land. That said, I plan to
> vigorously argue for scrapping all API extensions in v4 at the Juno
> summit. This practice has just gone on way too long...

Here here!

>> FWIW I think we're getting a lot better at doing quality control on
>> APIs which are added.
> No disagreement.
> Best,
> -jay
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Sean Dague
Samsung Research America
sean at dague.net / sean.dague at samsung.com

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 482 bytes
Desc: OpenPGP digital signature
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20140114/2cdd3421/attachment.pgp>

More information about the OpenStack-dev mailing list