[openstack-dev] a "common" client library

Robert Collins robertc at robertcollins.net
Sat Jan 18 20:06:46 UTC 2014


On 19 January 2014 04:48, Sean Dague <sean at dague.net> wrote:
> On 01/18/2014 01:06 AM, Robert Collins wrote:

>> Launchpadlib which builds on wadllib did *exactly* that. It worked
>> fairly well with the one caveat that it fell into the ORM trap - just
>> in time lookups for everything with crippling roundtrips.
>
> -1 if the answer to anything is WADL. It's terrible, and an abandoned
> sun rfc at this point. We've got some real progress in getting JSON
> schema in place in Nova (for validation, but it's incremental steps, and
> good ones), which I think is much more fruitful.
>
> I also think auto generated clients have a lot of challenges in the same
> way that full javascript pages in browsers have. If you screw up in a
> subtle way you can just completely disable your clients from connecting
> to your server entirely (or block them from using bits of the lesser
> used function path because a minor bit of schema fat fingered). So
> without a ton of additional verification on that path, I wouldn't want
> that anywhere near openstack. Especially with vendor extensions, which
> mean that enabling a network driver might break all your clients.

To be clear: I'm not advocating this approach. Just answering the
question 'has it been tried', with 'yes, and this is what was wrong'.

The actual code generation and execution worked very well, and most
features added to the server side APIs were available immediately in
the client with no upgrades. However any new /type/ of feature
required changes to the compiler.

Personally, I think hand crafted clients have a much better feel to
them - idiomatic to the language they are in, easier to predict, and
much easier to understand.

-Rob


-- 
Robert Collins <rbtcollins at hp.com>
Distinguished Technologist
HP Converged Cloud



More information about the OpenStack-dev mailing list