Validate attributes schema

We always check that a properties schema is valid at the time that it is
created. Do the same for the attributes schema. This will catch programming
errors in the writing of Resource plugins.

Change-Id: I8119aec30b83f1f9e711013a60a828ae4a8337c7
Story: #2003915
This commit is contained in:
Zane Bitter 2018-09-25 14:53:02 -04:00
parent 7b34d88e13
commit f2b60f308f
2 changed files with 11 additions and 5 deletions

View File

@ -48,19 +48,19 @@ class Schema(constr.Schema):
)
TYPES = (
STRING, MAP, LIST, INTEGER, BOOLEAN
UNKNOWN, STRING, MAP, LIST, INTEGER, BOOLEAN
) = (
'String', 'Map', 'List', 'Integer', 'Boolean'
None, 'String', 'Map', 'List', 'Integer', 'Boolean'
)
def __init__(self, description=None,
support_status=support.SupportStatus(),
cache_mode=CACHE_LOCAL,
type=None):
self.description = description
type=UNKNOWN):
super(Schema, self).__init__(type, description)
self.support_status = support_status
self.cache_mode = cache_mode
self.type = type
self.validate()
def __getitem__(self, key):
if key == self.DESCRIPTION:

View File

@ -0,0 +1,6 @@
---
upgrade:
- |
When loading a Resource plugin, the attribute schema is now validated in
the same way that the properties schema is. Third-party resource plugins
should be tested to check that they still comply.