[openstack-dev] [Nova] RFC: Generate API sample files from API schemas

Rochelle.RochelleGrober rochelle.grober at huawei.com
Thu Feb 6 23:41:40 UTC 2014


+1

Really lots more than just +1

This leads to so many more efficiencies and increase in effectiveness.

--Rocky

-----Original Message-----
From: Vishvananda Ishaya [mailto:vishvananda at gmail.com] 
Sent: Thursday, February 06, 2014 10:17 AM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [Nova] RFC: Generate API sample files from API schemas


On Feb 6, 2014, at 5:38 AM, Kenichi Oomichi <oomichi at mxs.nes.nec.co.jp> wrote:

> 
> Hi,
> 
> I'd like to propose one idea that autogenerates API sample files from 
> API schema for Nova v3 API.
> 
> We are working on API validation for v3 API, the works require API 
> schema which is defined with JSONSchema for each API. On the other 
> hand, API sample files of v3 API are autogenerated from the template 
> files of v3 API under nova/tests/integrated/v3/api_samples, as api_samples's README.rst[1].
> The API schema files are similar to the template files, because both 
> represent the API parameter structures and each API name.
> 
> For example, the template file of keypairs is
> ----------------------------------------------------------------------
> ----
>  {
>      "keypair": {
>          "name": "%(keypair_name)s"
>      }
>  }
> ----------------------------------------------------------------------
> ----
> 
> and the API schema file is
> ----------------------------------------------------------------------
> ----
>  create = {
>      'type': 'object',
>      'properties': {
>          'keypair': {
>              'type': 'object',
>              'properties': {
>                  'name': {
>                      'type': 'string', 'minLength': 1, 'maxLength': 255,
>                      'pattern': '^[a-zA-Z0-9 _-]+$'
>                  },
>                  'public_key': {'type': 'string'},
>              },
>              'required': ['name'],
>              'additionalProperties': False,
>          },
>      },
>      'required': ['keypair'],
>      'additionalProperties': False,
>  }
> ----------------------------------------------------------------------
> ----
> 
> When implementing new v3 API, we need to write/review both files and 
> that would be hard works. For reducing the workload, I'd like to 
> propose one idea[2] that autogenerates API sample files from API 
> schema instead of template files. We would not need to write a template file of a request.

+1

The template files were there because we didn't have a clear schema defined.

It would be awesome to get rid of the templates.

Vish

> 
> The XML support is dropped from Nova v3 API, and the decision could 
> make this implementation easier. The NOTE is that we still need 
> response template files even if implementing this idea, because API 
> schema files of response don't exist.
> 
> Any comments are welcome.
> 
> 
> Thanks
> Ken'ichi Ohmichi
> 
> ---
> [1]: 
> https://github.com/openstack/nova/blob/master/nova/tests/integrated/ap
> i_samples/README.rst
> [2]: https://review.openstack.org/#/c/71465/
> 
> 
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




More information about the OpenStack-dev mailing list