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

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. 

14 

15"""Validators for ``resources`` namespaced extra specs.""" 

16 

17import os_resource_classes 

18 

19from nova.api.validation.extra_specs import base 

20 

21 

22EXTRA_SPEC_VALIDATORS = [] 

23 

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 ) 

40 

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) 

62 

63 

64def register(): 

65 return EXTRA_SPEC_VALIDATORS