[openstack-dev] [nova] os-capabilities library created
Jay Pipes
jaypipes at gmail.com
Sun Aug 14 17:31:51 UTC 2016
Word up, Travis :) A few comments inline, but overall I'm looking
forward to collaborating with you, Steve, and all the other Searchlight
contributors on os-capabilities (or os-caps as Sean wants to rename it ;)
On 08/11/2016 08:00 PM, Tripp, Travis S wrote:
> [Graffit] was originally co-sponsored by Intel
> to help expose out all the CPU capabilities in Nova. The constants in
> the metadef catalog all come from combing through the code in Nova
> was a complete maze and were not available at the time from
> Nova (or cinder or glance or …) See overview here [2]:
>
> [2] https://wiki.openstack.org/wiki/Graffiti
Yep, I'm thoroughly familiar with the maze-ishness of the code in Nova
and os-capabilities was borne out of an attempt to curate/catalog a
number of collections of string metadata, constants spread over modules,
and various hardcoded feature flags/strings in the virt drivers and
elsewhere.
>> 2) It uses a custom JSON format instead of JSONSchema, so we now need to
>> figure out the schema for these metadef documents and keep up to date
>> with that schema as it changes.
>
> It uses JSON schema, but surrounds it with a very lightweight envelope.
> The envelope is called a namespace and is simply a container of JSON
> schema, allowing us to manage it as a programmatic unit and as a way
> for cloud deployers to share the capabilities across clouds very easily.
>
> We did place a limitation on it that it cannot support nested objects. This
> was primarily due to the extreme difficulty of representing that construct
> to users in an easy to understand way:
>
> http://docs.openstack.org/developer/glance/metadefs-concepts.html#catalog-terminology
I actually do not think there is a need for a JSON schema for any of the
capability strings in os-caps. I wasn't planning on supporting anything
more than simple strings with a string prefix for "namespaces" and a
common delimiter (I chose ':'). I'd like to keep things as simple as
possible.
>> 3) It mixes qualitative things -- CPU model, features, etc -- with
>> quantitative things -- amount of cores, threads, etc. These two things
>> are precisely what we are trying to decouple from each other in the next
>> generation of Nova's "flavors".
I noticed you didn't respond to this part of my email (from a year ago).
It's actually a really important point. The mixing of quantitative and
qualitative things in the Nova flavor extra specs as well as the Glance
metadefs stuff is a real problem we're trying to fix with the new
placement API.
Best,
-jay
More information about the OpenStack-dev
mailing list