'constraints', 'required', 'status',
'entry_schema')
- def __init__(self, name, schema_dict):
+ def __init__(self, name, schema_dict, custom_defs=None):
self.name = name
self.schema = Schema(name, schema_dict)
+ self.custom_defs = custom_defs or {}
self._validate_field()
self.validate_type(self.type)
field=name))
def validate_type(self, input_type):
- if input_type not in Schema.PROPERTY_TYPES:
+ if input_type not in Schema.PROPERTY_TYPES and \
+ input_type not in self.custom_defs:
ExceptionCollector.appendException(
ValueError(_('Invalid type "%s".') % type))
datatype = tosca[self.type]
elif EntityType.DATATYPE_NETWORK_PREFIX + self.type in tosca:
datatype = tosca[EntityType.DATATYPE_NETWORK_PREFIX + self.type]
+ elif self.type in self.custom_defs:
+ datatype = self.custom_defs[self.type]
DataEntity.validate_datatype(self.type, value, None, datatype)
def _inputs(self):
inputs = []
for name, attrs in self._tpl_inputs().items():
- input = Input(name, attrs)
+ input = Input(name, attrs, self.custom_defs)
if self.parsed_params and name in self.parsed_params:
input.validate(self.parsed_params[name])
else: