>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 <[email protected]> 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:[email protected]] > Sent: Sunday, July 30, 2017 7:37 PM > To: [email protected] > 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 <[email protected]> wrote: > > > Not entirely sure about that actually, let me double check that. > > > > On Tue, Jul 25, 2017 at 7:37 PM, Tal Liron <[email protected]> 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 <[email protected]> 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 < > >> > [email protected] > >> > > 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:[email protected]] > >> > > Sent: Tuesday, July 25, 2017 11:23 AM > >> > > To: [email protected] > >> > > 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:[email protected]] > >> > > Sent: Tuesday, July 25, 2017 12:14 AM > >> > > To: [email protected] > >> > > 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 <[email protected]> > >> 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 < > >> > > > [email protected] > >> > > > > 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 > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > > > > >
