Coverage for nova/api/validation/extra_specs/resources.py: 100%
8 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-04-24 11:16 +0000
« prev ^ index » next coverage.py v7.6.12, created at 2025-04-24 11:16 +0000
1# Copyright 2020 Red Hat, Inc. All rights reserved.
2#
3# Licensed under the Apache License, Version 2.0 (the "License"); you may
4# not use this file except in compliance with the License. You may obtain
5# a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12# License for the specific language governing permissions and limitations
13# under the License.
15"""Validators for ``resources`` namespaced extra specs."""
17import os_resource_classes
19from nova.api.validation.extra_specs import base
22EXTRA_SPEC_VALIDATORS = []
24for resource_class in os_resource_classes.STANDARDS:
25 EXTRA_SPEC_VALIDATORS.append(
26 base.ExtraSpecValidator(
27 name=f'resources{ group} :{resource_class}',
28 description=f'The amount of resource {resource_class} requested.',
29 value={
30 'type': int,
31 },
32 parameters=[
33 {
34 'name': 'group',
35 'pattern': r'([a-zA-Z0-9_-]{1,64})?',
36 },
37 ],
38 )
39 )
41EXTRA_SPEC_VALIDATORS.append(
42 base.ExtraSpecValidator(
43 name='resources{group}:CUSTOM_{resource}',
44 description=(
45 'The amount of resource CUSTOM_{resource} requested.'
46 ),
47 value={
48 'type': int,
49 },
50 parameters=[
51 {
52 'name': 'group',
53 'pattern': r'([a-zA-Z0-9_-]{1,64})?',
54 },
55 {
56 'name': 'resource',
57 'pattern': r'[A-Z0-9_]+',
58 },
59 ],
60 )
61)
64def register():
65 return EXTRA_SPEC_VALIDATORS