[openstack-dev] [nova] os-capabilities library created

Jay Pipes jaypipes at gmail.com
Fri Aug 12 01:03:09 UTC 2016


On 08/11/2016 05:25 PM, Ed Leafe wrote:
> On Aug 3, 2016, at 6:47 PM, Jay Pipes <jaypipes at gmail.com> wrote:
>
>> Please see the README for examples of how the library works and how I'm thinking of structuring these capability strings and symbols. I intend os-capabilities to be the place where the OpenStack community catalogs and collates standardized features for hardware, devices, networks, storage, hypervisors, etc.
>
> Overall this looks good, although it seems a bit odd to have ALL_CAPS_STRINGS to represent all:caps:strings throughout.

ALL_CAPS is generally used for constant symbols in many (most?) 
programming languages, AFAIK.

> The example you gave:
>
>>>> print os_caps.HW_CPU_X86_SSE42
> hw:cpu:x86:sse42
>
> begs the question: is the rule going to be that capability for any constant will always be: CONST.lower().replace(“_”, “:”) ? If so, I’m not sure I see how the capabilities are not themselves constants.

Because you can make a typo with a string and it can go unnoticed. A 
typo in a constant means the code won't compile/import because of an 
unknown symbol.

That's the reason for having these strings represented as constant 
symbols in a shared library.

> The namespacing is ugly, but I guess it’s necessary given that names are not simple tags, but nested data structures in string form.

Yeah, it's ugly-ish. I'm certainly open to suggestions for how to better 
nest/represent these groups of capability constants.

Best,
-jay



More information about the OpenStack-dev mailing list