[openstack-dev] [nova][ironic] Specs matcher and its journey through time

Joshua Harlow harlowja at fastmail.com
Mon May 9 22:14:03 UTC 2016


Hi all,

Recently jroll proposed the following into oslo.utils

https://review.openstack.org/#/c/308398/

This moves the spec matching (if that's what u can call it) to 
oslo.utils so that it can be shared by nova and ironic (which I think is 
a fair thing to do, although personally I don't like oslo.utils turning 
into to much of a catch-all-lib).

The process proposing that code made me start to look over exactly what 
this code is (which sort of scared me). It has some 'interesting' 
aspects of it (including the '=' operator doing >= underneath); Anyones 
that's history that I'm not sure anyone knows about...

Besides that the other thing that tweaked me about this miniature DSL 
was that it was not well defined (making it hard to understand exactly 
what it does); so therefore I made 
https://review.openstack.org/#/c/313699/ which converts this into a more 
traditional 2-step (parse, and then evaluate) process with a well 
defined grammar.

The above change uses pyparsing, and uses a traditional (and simple) BNF 
grammar variant and it passes all the current tests that exist for this 
spec DSL.

Anyways, after doing that I wanted to get any thoughts from people on 
the ML about that code, if they can see anything obviously bad about 
having more formality in the matching/spec DSL and/or other usages of 
things that I am not aware of that might be problematic.

Thanks,

-Josh



More information about the OpenStack-dev mailing list