api: Add framework for extra spec validation

Add the validation framework necessary to verify extra specs along with
the definitions for every extra spec we currently recognize in-tree.
None of this is currently used since we don't have the API microversions
wired up, but that will come in a future patch.

Note that we must add the H238 hacking check to the ignore list here,
since this includes our first use of Python 3-type classes without the
explicit 'object' subclass. This can be removed when that check is
removed from hacking.

Part of blueprint flavor-extra-spec-validators

Change-Id: Ib64a1348cce1dca995746214616c4f33d9d664bd
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This commit is contained in:
Stephen Finucane
2020-01-20 16:18:19 +00:00
committed by Stephen Finucane
parent e487b05f7e
commit 58784943f7
26 changed files with 1996 additions and 28 deletions
+14
View File
@@ -46,6 +46,20 @@ oslo.policy.policies =
# list_rules method into a separate entry point rather than using the
# aggregate method.
nova = nova.policies:list_rules
nova.api.extra_spec_validators =
aggregate_instance_extra_specs = nova.api.validation.extra_specs.aggregate_instance_extra_specs
capabilities = nova.api.validation.extra_specs.capabilities
hw = nova.api.validation.extra_specs.hw
hw_rng = nova.api.validation.extra_specs.hw_rng
hw_video = nova.api.validation.extra_specs.hw_video
null = nova.api.validation.extra_specs.null
os = nova.api.validation.extra_specs.os
pci_passthrough = nova.api.validation.extra_specs.pci_passthrough
powervm = nova.api.validation.extra_specs.powervm
quota = nova.api.validation.extra_specs.quota
resources = nova.api.validation.extra_specs.resources
traits = nova.api.validation.extra_specs.traits
vmware = nova.api.validation.extra_specs.vmware
nova.compute.monitors.cpu =
virt_driver = nova.compute.monitors.cpu.virt_driver:Monitor
nova.scheduler.driver =