Interesting, can you describe exactly the scenario? including the service
template and the operation you are trying to run

On Mon, Jul 31, 2017 at 6:12 PM, D Jayachandran <d.jayachand...@ericsson.com
> wrote:

> Hi,
>
> I got the below error when I tried assigning values as like a dict.  It
> seems to fail when it tries to remove the existing value and triggering a
> change event.
>
> ObjectDereferencedError: Can't emit change event for attribute
> 'Node.attributes' - parent object of type <Node> has been garbage collected
>
>
> Regards,
> DJ
>
> -----Original Message-----
> From: Maxim Orlov [mailto:ma...@cloudify.co]
> Sent: Monday, July 31, 2017 6:08 PM
> To: dev@ariatosca.incubator.apache.org
> Subject: Re: Inputs and Node object context for python and shell scripts
>
> From within any operation or workflow you don't need to use the ".value"
> notation. In order to access the attribute use
> ctx.node.attributes['test'], and in order to assign the attribute just use
> ctx.node.attributes['test'] = "abc". Using this (hopefully simplified)
> notation does all the model related operations for you.
>
> On Mon, Jul 31, 2017, 15:02 D Jayachandran <d.jayachand...@ericsson.com>
> wrote:
>
> > Hi Max,
> >
> > Adding to this , I can access the attributes in my plugin only as
> > below. ( I have defined the attribute test in my node type )
> >
> > ctx.node.attributes['test'].value
> >
> > And to update the value
> >
> > ctx.node.attributes['test'].value = "abc"
> >
> > But this does not update the db. Am I missing something here in-terms
> > of the context usage ?
> >
> >
> > Regards,
> > DJ
> > -----Original Message-----
> > From: Maxim Orlov [mailto:ma...@cloudify.co]
> > Sent: Sunday, July 30, 2017 7:37 PM
> > To: dev@ariatosca.incubator.apache.org
> > Subject: Re: Inputs and Node object context for python and shell
> > scripts
> >
> > Sorry it took me so long to check it out, things have been kind of
> hectic.
> > Anyway, there is a JIRA issue opened just for that:
> > https://issues.apache.org/jira/browse/ARIA-263.
> >
> > On Tue, Jul 25, 2017 at 9:23 PM, Maxim Orlov <ma...@cloudify.co> wrote:
> >
> > > Not entirely sure about that actually, let me double check that.
> > >
> > > On Tue, Jul 25, 2017 at 7:37 PM, Tal Liron <t...@cloudify.co> wrote:
> > >
> > >> It should be impossible in TOSCA to create an attribute that was
> > >> not declared at the type. Are we allowing users to create any ad
> > >> hoc attribute?
> > >>
> > >> On Tue, Jul 25, 2017 at 7:33 AM, Maxim Orlov <ma...@cloudify.co>
> wrote:
> > >>
> > >> > Indeed runtime_properties became attributes in ARIA . As for the
> > >> behavior,
> > >> > attributes behave just as a dict would (behind the scenes
> > >> > attributes translate to a proper Attribute TOSCA model).
> > >> > No need to define the attributes on the node-type level, if an
> > >> > attribute with that name exists in on the model, the value of
> > >> > that attribute
> > >> would be
> > >> > overridden, if you are creating a whole new attribute, a proper
> > >> Attribute
> > >> > model would be created for you.
> > >> >
> > >> > as for:
> > >> >
> > >> > ctx.node.attributes['map']['key'] = 'value'
> > >> >
> > >> > “map” is a name of an attribute which holds a dict, “key” is a
> > >> > key in
> > >> that
> > >> > dict.
> > >> > ​
> > >> >
> > >> > On Tue, Jul 25, 2017 at 3:07 PM, D Jayachandran <
> > >> > d.jayachand...@ericsson.com
> > >> > > wrote:
> > >> >
> > >> > > Hi Max,
> > >> > >
> > >> > > I see the runtime_properties have been replaced with "attributes"
> > >> > > and there has been multiple changes with respect to attribute
> > handling.
> > >> > >
> > >> > > What do you refer by "map" in your below example, Is that a
> > >> > > keyword
> > ?
> > >> > > "ctx.node.attributes['map']['key'] = value"
> > >> > >
> > >> > > Also with runtime_properties plugins were able to update the
> > >> > > database
> > >> > with
> > >> > > new key=value. Can we achieve the same with attributes ?
> > >> > > Do we need to define the attributes in the node-types to be
> > >> > > able to
> > >> > update
> > >> > > them by the plugins ?
> > >> > >
> > >> > > Regards,
> > >> > > DJ
> > >> > >
> > >> > > -----Original Message-----
> > >> > > From: D Jayachandran [mailto:d.jayachand...@ericsson.com]
> > >> > > Sent: Tuesday, July 25, 2017 11:23 AM
> > >> > > To: dev@ariatosca.incubator.apache.org
> > >> > > Subject: RE: Inputs and Node object context for python and
> > >> > > shell
> > >> scripts
> > >> > >
> > >> > > Hi Max,
> > >> > >
> > >> > > Yes I can access the context ctx with a python plugin and shell
> > >> script as
> > >> > > you have mentioned.
> > >> > > But with python script .py files under implementation, am not
> > >> > > sure if
> > >> the
> > >> > > ctx and inputs are passed as "globals". I will re-confirm this.
> > >> > > The inputs which I was referring here were the lifecycle
> > >> > > operation
> > >> > inputs.
> > >> > >
> > >> > >
> > >> > > Regards,
> > >> > > DJ
> > >> > >
> > >> > > -----Original Message-----
> > >> > > From: Maxim Orlov [mailto:ma...@gigaspaces.com]
> > >> > > Sent: Tuesday, July 25, 2017 12:14 AM
> > >> > > To: dev@ariatosca.incubator.apache.org
> > >> > > Subject: Re: Inputs and Node object context for python and
> > >> > > shell
> > >> scripts
> > >> > >
> > >> > > I'm not entirely sure to which inputs you are referring to, but
> > >> > > any
> > >> ctx
> > >> > > attribute or method accessible from a python script is
> > >> > > accessible form
> > >> > any
> > >> > > shell script. For example:
> > >> > >
> > >> > >    - "ctx.node.attributes['map']['key']" (in python) is "ctx node
> > >> > >    attributes map.key" (under bash)
> > >> > >    - "ctx.node.attributes['map']['key'] = value" (in python) is
> > >> > > "ctx
> > >> > node
> > >> > >    attributes map.key value" (under bash)
> > >> > >    - "ctx.logger.info('some message')" (in python) is "ctx
> > >> > > logger
> > >> info
> > >> > >    'some message'" (under bash)
> > >> > >
> > >> > >
> > >> > > On Mon, Jul 24, 2017 at 8:47 PM, Tal Liron <t...@gigaspaces.com>
> > >> wrote:
> > >> > >
> > >> > > > I'm pretty sure you can access the inputs via the ctx call.
> > >> > > > Can
> > >> anyone
> > >> > > > confirm how to do this?
> > >> > > >
> > >> > > > We really need to document ctx usage...
> > >> > > >
> > >> > > > On Mon, Jul 24, 2017 at 5:57 AM, D Jayachandran <
> > >> > > > d.jayachand...@ericsson.com
> > >> > > > > wrote:
> > >> > > >
> > >> > > > > Hi,
> > >> > > > >
> > >> > > > > With current ARIA implementation, the python and shell
> > >> > > > > scripts are being executed by the "execution plugin".
> > >> > > > >
> > >> > > > > The context object and inputs are not passed to passed to
> > >> > > > > python
> > >> > > scripts.
> > >> > > > > We would like this to be passed to the python scripts.
> > >> > > > > For shell scripts atleast the inputs needs to be passed.
> > >> > > > > The
> > >> context
> > >> > > > > object can be accessed via client.py with the SOCKET URL.
> > >> > > > > Kindly let us know if this can be added as a JIRA issue ?
> > >> > > > >
> > >> > > > >
> > >> > > > > Regards,
> > >> > > > > DJ
> > >> > > > >
> > >> > > > >
> > >> > > > >
> > >> > > > >
> > >> > > >
> > >> > >
> > >> >
> > >>
> > >
> > >
> >
>

Reply via email to