diff --git a/heat/engine/attributes.py b/heat/engine/attributes.py index 47e50be56a..f5fcdf2655 100644 --- a/heat/engine/attributes.py +++ b/heat/engine/attributes.py @@ -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: diff --git a/releasenotes/notes/attribute-schema-validation-db615003e577f8dd.yaml b/releasenotes/notes/attribute-schema-validation-db615003e577f8dd.yaml new file mode 100644 index 0000000000..904678a64d --- /dev/null +++ b/releasenotes/notes/attribute-schema-validation-db615003e577f8dd.yaml @@ -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.