[ 
https://issues.apache.org/jira/browse/ARIA-262?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16036317#comment-16036317
 ] 

ASF GitHub Bot commented on ARIA-262:
-------------------------------------

Github user mxmrlv commented on a diff in the pull request:

    https://github.com/apache/incubator-ariatosca/pull/141#discussion_r120013831
  
    --- Diff: aria/storage/collection_instrumentation.py ---
    @@ -204,39 +200,106 @@ def _raw(self):
     
     class _InstrumentedModel(object):
     
    -    def __init__(self, field_name, original_model, model_storage):
    +    def __init__(self, original_model, mapi, instrumentation):
    +        """
    +        The original model
    +        :param original_model: the model to be instrumented
    +        :param mapi: the mapi for that model
    +        """
             super(_InstrumentedModel, self).__init__()
    -        self._field_name = field_name
    -        self._model_storage = model_storage
             self._original_model = original_model
    +        self._mapi = mapi
    +        self._instrumentation = instrumentation
             self._apply_instrumentation()
     
         def __getattr__(self, item):
    -        return getattr(self._original_model, item)
    +        return_value = getattr(self._original_model, item)
    +        if isinstance(return_value, self._original_model.__class__):
    +            return _create_instrumented_model(return_value, self._mapi, 
self._instrumentation)
    +        if isinstance(return_value, (list, dict)):
    +            return _create_wrapped_model(return_value, self._mapi, 
self._instrumentation)
    --- End diff --
    
    check this + add test for 'recursive' e.g. get node from relationship from 
node


> Inconsistent node attributes behavior
> -------------------------------------
>
>                 Key: ARIA-262
>                 URL: https://issues.apache.org/jira/browse/ARIA-262
>             Project: AriaTosca
>          Issue Type: Story
>            Reporter: Maxim Orlov
>            Assignee: Maxim Orlov
>
> ARIA provides sugaring for node attributes. However this sugaring is somewhat 
> limited, as it sugars ctx accessed attributes. e.g. Under 
> NodeOperationContext {{ctx.node.attributes}} has a dict-like behavior, where 
> the value is another object with a dict-like behavior. This is provided by 
> the sugaring. 
> However {{ctx.node.relationships[0].target_node.attributes}} provides a dict 
> where the value is of type Parameter, accessing the value of this Parameter 
> requires {{param.value}} This creates inconsistency with regards to access to 
> attributes.
> There are several possible solutions:
> 1. Enable sugaring on the model level. this will effectively make the 
> creation of Parameter implicit, but this will be possible throughout the 
> entire code (not only under context).
> 2. Enable sugaring by tapping to sqla events and altering the return values. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to