thx On Nov 27, 2017 3:43 PM, "Tal Liron" <t...@cloudify.co> wrote:
It is a bug. I created this issue: https://issues.apache.org/jira/browse/ARIA-411 For now, the workaround is to add a "primary" key under "implementation". Also note that you must supply the "type" field for the interface definition. So: T1: derived_from: tosca.nodes.Root interfaces: Standard: type: tosca.interfaces.node.lifecycle.Standard create: implementation: primary: i1.sh On Mon, Nov 27, 2017 at 5:28 PM, DeWayne Filppi <dewa...@cloudify.co> wrote: > This should validate, no? > > tosca_definitions_version: tosca_simple_yaml_1_0 > > imports: > > - aria-1.0 > > > node_types: > > T1: > derived_from: tosca.nodes.Root > interfaces: > Standard: > create: > implementation: i1.sh > > T2: > derived_from: T1 > interfaces: > Standard: > create: > implementation: i1.sh > > > The content of 'i1.sh' doesn't matter. The error is (Aria 0.1.1): > > AttributeError: 'LocatableString' object has no attribute 'iteritems' > File > "/home/vagrant/venv/lib/python2.7/site-packages/aria/ > parser/consumption/consumer.py", > line 70, in consume > consumer.consume() > File > "/home/vagrant/venv/lib/python2.7/site-packages/aria/ > parser/consumption/validation.py", > line 30, in consume > self.context.presentation.presenter._validate(self.context) > File > "/home/vagrant/venv/lib/python2.7/site-packages/aria_ > extension_tosca/simple_v1_0/presenter.py", > line 65, in _validate > self.service_template._validate(context) > File > "/home/vagrant/venv/lib/python2.7/site-packages/aria/parser/presentation/ > presentation.py", > line 193, in _validate > validate_known_fields(context, self) > File > "/home/vagrant/venv/lib/python2.7/site-packages/aria/ > parser/presentation/utils.py", > line 110, in validate_known_fields > field.validate(presentation, context) > File > "/home/vagrant/venv/lib/python2.7/site-packages/aria/ > parser/presentation/fields.py", > line 409, in validate > self.default_validate(presentation, context) > File > "/home/vagrant/venv/lib/python2.7/site-packages/aria/ > parser/presentation/fields.py", > line 524, in default_validate > self.validate_value(value, context) > File > "/home/vagrant/venv/lib/python2.7/site-packages/aria/ > parser/presentation/fields.py", > line 540, in validate_value > inner_value._validate(context) > File > "/home/vagrant/venv/lib/python2.7/site-packages/aria_ > extension_tosca/simple_v1_0/types.py", > line 655, in _validate > self._get_interfaces(context) > File > "/home/vagrant/venv/lib/python2.7/site-packages/aria/utils/caching.py", > line 84, in __call__ > return_value = self.func(*args, **kwargs) > File > "/home/vagrant/venv/lib/python2.7/site-packages/aria_ > extension_tosca/simple_v1_0/types.py", > line 643, in _get_interfaces > return FrozenDict(get_inherited_interface_definitions(context, self, > 'node type')) > File > "/home/vagrant/venv/lib/python2.7/site-packages/aria_ > extension_tosca/simple_v1_0/modeling/interfaces.py", > line 127, in get_inherited_interface_definitions > for_presentation=for_presentation) > File > "/home/vagrant/venv/lib/python2.7/site-packages/aria_ > extension_tosca/simple_v1_0/modeling/interfaces.py", > line 435, in merge_interface_definitions > 'definition') > File > "/home/vagrant/venv/lib/python2.7/site-packages/aria_ > extension_tosca/simple_v1_0/modeling/interfaces.py", > line 425, in merge_interface_definition > presentation, type_name) > File > "/home/vagrant/venv/lib/python2.7/site-packages/aria_ > extension_tosca/simple_v1_0/modeling/interfaces.py", > line 392, in merge_raw_operation_definitions > presentation, type_name) > File > "/home/vagrant/venv/lib/python2.7/site-packages/aria_ > extension_tosca/simple_v1_0/modeling/interfaces.py", > line 364, in merge_raw_operation_definition > deepcopy_with_locators(our_operation._raw['implementation'])) > File > "/home/vagrant/venv/lib/python2.7/site-packages/aria/ > utils/collections.py", > line 232, in merge > for key, value_b in dict_b.iteritems(): > Validation issues: > 0: 'LocatableString' object has no attribute 'iteritems' > AttributeError: 'LocatableString' object has no attribute 'iteritems' >