[openstack-dev] [Nova] Review request: Blurprint of API validation
Ken'ichi Ohmichi
oomichi at mxs.nes.nec.co.jp
Mon Aug 5 00:20:06 UTC 2013
Hi Russell, Doug,
Thanks for your comments, I'm really glad to talk about this with you.
> -----Original Message-----
> From: Doug Hellmann [mailto:doug.hellmann at dreamhost.com]
> Sent: Saturday, August 03, 2013 6:14 AM
> To: OpenStack Development Mailing List
> Subject: Re: [openstack-dev] [Nova] Review request: Blurprint of API validation
>
>
>
>
> On Fri, Aug 2, 2013 at 4:35 PM, Russell Bryant <rbryant at redhat.com> wrote:
>
>
> On 07/09/2013 07:45 AM, Ken'ichi Ohmichi wrote:
> >
> > Hi,
> >
> > The blueprint "nova-api-validation-fw" has not been approved yet.
> > I hope the core patch of this blueprint is merged to Havana-2,
> > because of completing comprehensive API validation of Nova v3 API
> > for Havana release. What should we do for it?
>
>
> I apologize for taking so long to address this.
>
> Here is my current take on this based on reviewing discussions, code,
> and talking to others about it.
>
> From a high level, API input validation is obviously a good thing.
> Having a common framework to do it is better. What complicates this
> submission is the effort to standardize on Pecan/WSME for APIs
> throughout OpenStack.
>
> We've discussed WSME and jsonschema on the mailing list. There are
> perhaps some things that can be expressed using jsonschema, but not WSME
> today. So, there are some notes on
> https://etherpad.openstack.org/NovaApiValidationFramework showing how
> the two could be used together at some point. However, I don't think
> it's really desirable long term. It seems a bit awkward, and some
> information gets duplicated.
>
> We had previously established that using WSME was the long term goal
> here. Going forward with jsonschema with the current nova APIs is a
> benefit in the short term, but I do not think it's necessarily in
> support of the long term goal if there isn't consensus that combining
> WSME+jsonschema is a good idea.
>
> This sort of thing affects a lot of code, so the direction is important.
> I do not think we should proceed with this. It seems like the best
> thing to do that helps the long term goal is to work on migrating our
> API to WSME. In particular, I think we could do this for the v3 API,
> since it's not going to be locked down until Icehouse. At the same
> time, we should contribute back to WSME to add the features we feel are
> missing to allow the types of validation we would like to do.
>
> If there is significant disagreement with this decision, I'm happy to
> continue talking about it. However, I really want to see consensus on
> this and how it fits in with the long term goals before moving forward.
>
>
>
> When we discussed this earlier, there was concern about moving to a
> completely new toolset for the new API in Havana because of other
> changes going on at the same time (something to do with extensions, IIRC).
> I agreed it made sense to stick with our current tools to avoid adding
> risk to the schedule. If that schedule has slipped into the next release,
> or if you feel there is time after all, then I would also prefer to go
> ahead with the general consensus reached at the Havana summit and use WSME.
>
> Given a little time, I think we can come up with something better than the
> method of combining WSME and jsonschema proposed in the etherpad linked
> above, which effectively requires us to declare the types of the parameters
> twice in different formats. As Russell said, if we need to add to WSME to
> make it easier to use, we should do that.
That's a good point. The sample code on the etherpad[1] requires to
define API schema twice for single API, and that would be workload
against implementing API schema when Pecan/WSME has been used.
So how about adding jsonschema support to WSME?
If doing that, we will be able to use good validation based on jsonschema
only by defining a single API schema.
> I am working on getting WSME onto stackforge, to make contributions easier
> (it's on bitbucket now, but using hg and pull requests is pretty different
> from our normal review process and may add friction for some people).
That would be good info, if the above idea gets consensus.
I will start investigating how to implement jsonschema support for WSME
after this discussion, and try contributing the above stackforge WSME.
> We ran into a few tricky spots because of the wide variety of test configu-
> rations in play, and that caused some delays. I think those issues are
> worked out (especially with the Python 3.3 build systems available now),
> so I will be picking that work up in a week or two (I'm traveling next week).
Have a good travell:-)
Thanks
Ken'ichi Ohmichi
---
[1]: https://etherpad.openstack.org/NovaApiValidationFramework
More information about the OpenStack-dev
mailing list