summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Finucane <stephenfin@redhat.com>2020-03-31 10:44:10 +0100
committerStephen Finucane <stephenfin@redhat.com>2020-04-08 13:19:39 +0000
commit1b606da3f12f487ab48fc069fbdd1e94e4d54990 (patch)
tree5f7aa98c4cb3dc51212fc012861f158de717dcc4
parent58784943f73b00b2c7f32dfe1f7206c526ab94f5 (diff)
downloadnova-1b606da3f12f487ab48fc069fbdd1e94e4d54990.tar.gz
api: Add support for new cyborg extra specs
There's currently only one, as noted at [1]. [1] https://specs.openstack.org/openstack/nova-specs/specs/train/approved/nova-cyborg-interaction.html Change-Id: Ie70a0aef4f6647510750b7e0bdd2f040331b79e8 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
-rw-r--r--nova/api/validation/extra_specs/accel.py36
-rw-r--r--setup.cfg1
2 files changed, 37 insertions, 0 deletions
diff --git a/nova/api/validation/extra_specs/accel.py b/nova/api/validation/extra_specs/accel.py
new file mode 100644
index 0000000000..79e25b4e2c
--- /dev/null
+++ b/nova/api/validation/extra_specs/accel.py
@@ -0,0 +1,36 @@
+# Copyright 2020 Red Hat, Inc. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+"""Validators for ``accel`` namespaced extra specs."""
+
+from nova.api.validation.extra_specs import base
+
+
+EXTRA_SPEC_VALIDATORS = [
+ base.ExtraSpecValidator(
+ name='accel:device_profile',
+ description=(
+ 'The name of a device profile to configure for the instance. '
+ 'A device profile may be viewed as a "flavor for devices".'
+ ),
+ value={
+ 'type': str,
+ 'description': 'A name of a device profile.',
+ },
+ ),
+]
+
+
+def register():
+ return EXTRA_SPEC_VALIDATORS
diff --git a/setup.cfg b/setup.cfg
index bc09961367..d7652248be 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -47,6 +47,7 @@ oslo.policy.policies =
# aggregate method.
nova = nova.policies:list_rules
nova.api.extra_spec_validators =
+ accel = nova.api.validation.extra_specs.accel
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