>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
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > >
> >> > >
> >> >
> >>
> >
> >
>

Reply via email to