Quick update on this issue: We merged the relevant pull request: https://github.com/apache/incubator-ariatosca/pull/187 Now inputs behave as expected.
On Tue, Jul 11, 2017 at 5:39 AM, D Jayachandran <[email protected] > wrote: > Hi Avia, > > Thanks for the detailed explanation. Finally we have better clarity and > are in the same page. > > Regards, > DJ > > -----Original Message----- > From: Avia Efrat [mailto:[email protected]] > Sent: Tuesday, July 11, 2017 3:42 AM > To: [email protected] > Subject: Re: Query on operation inputs > > Here is the Jira issue: > https://issues.apache.org/jira/browse/ARIA-313 > > On Tue, Jul 11, 2017 at 12:44 AM, Ran Ziv <[email protected]> wrote: > > > Avia, could you please create a JIRA issue for this? > > > > > > On Mon, Jul 10, 2017 at 5:12 PM, Avia Efrat <[email protected]> wrote: > > > > > Hello DJ, > > > > > > I ran the example you provided: https://github.com/djay8887/Ar > > > ia-operationInputs [It should be noted that you can't just parse the > > > service template kubernetes-deployment.yaml as is. I needed to > > > create a folder named type and place kubernetes_type.yaml in there, > > > as the import: section in your service templates contains `- > > > *types*/kubernetes_type.yaml`] > > > > > > *Short answer:* > > > You are correct, the example should pass, and we will change the > > > code accordingly. > > > > > > *Longer answer + explanations:* > > > I will separate my answer into three parts. I will repeat some of > > > what > > was > > > said before me, but I think it will help clear the situation. > > > 1. The result of my run. > > > 2. Why do we currently get this error. > > > 3. Our revised understanding of the TOSCA spec regarding the > > > required > > field > > > of node type operation inputs. > > > > > > *1.* *The result of my run:* > > > The commands I ran were: > > > aria plugins install sample-1.0.0-py27-none-any.wgn aria > > > service-templates store kubernetes-deployment.yaml dj aria services > > > create -t dj dj aria executions start -s dj install after running > > > the last command I got: > > > Declared parameters "labels" have not been provided values > > > > > > *2.* *Why do we currently get this error:* First, let my just > > > clarify, that this error has no relation whatsoever to the contents > > > of the inputs section under topology_template. > > > We are dealing here only with the inputs section of an operation, > > > which > > is > > > section 3.5.13 Operation Definition <https://goo.gl/g5bMtV>. > > > Currently, when we execute a workflow (aria executions start ...), > > > we > > check > > > the inputs of each operation in the following manner (ignoring > > > interface inputs for now): > > > we check that every input defined in the input section of the node > > template > > > operation, whether the input is required or not has a value, has a > value. > > > This check is done in the merge_parameters_value function, inside > > > aria/modelling/utils, so you can check the logic yourself. > > > > > > Anyway, these values can be supplied directly from the service > > > template, > > or > > > in an indirect way via execution inputs, or programmatically when > > creating > > > workflow tasks. The latter method shouldn't concern us now, as we > > > are dealing with the operation inputs that were provided in the > > > inputs > > section > > > of the operation. > > > > > > So, in conclusion, we get this error since the labels input is not > > assigned > > > a value in the inputs section of the operation inside the node > template. > > > This happens even if the input is defined as required: false in the > > inputs > > > section of the operation inside the node *type*. > > > > > > *3. **Our revised understanding of the TOSCA spec regarding the > > > required field operation definition inputs:* After rechecking the > > > spec, we feel that an operation input that has > > > required: > > > false indeed allows it not to be defined in the corresponding > > > operation > > in > > > the service template. We base this on section 3.5.13.1 Operation > > Definition > > > keyname <https://goo.gl/g5bMtV>. This section clearly state the node > > type > > > operation inputs are of type property definitions (3.5.8) > > > <http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile- > > > YAML/v1.0/os/TOSCA-Simple-Profile-YAML-v1.0-os.html# > > > DEFN_ELEMENT_PROPERTY_DEFN> > > > . > > > > > > Therefore, the required field of a node type operation input is the > > > same > > as > > > the required field in a node type property. > > > > > > So, just as you can omit in a node template property that has required: > > > false in its corresponding node type property, you can omit a node > > template > > > operation input that has required: false in its corresponding node > > > type operation input. > > > > > > > > > > > > > > > On Mon, Jul 3, 2017 at 10:17 PM, Tal Liron <[email protected]> wrote: > > > > > > > Oops, it seems your email from before was somehow tagged as read > > > > by mistake, so I missed it. I will get to it after the US holiday! > > > > > > > > On Mon, Jul 3, 2017 at 4:21 AM, D Jayachandran < > > > > [email protected]> > > > > wrote: > > > > > > > > > Hi Tal, > > > > > > > > > > Have you got a chance to look into this below issue ? > > > > > > > > > > Regards, > > > > > DJ > > > > > -----Original Message----- > > > > > From: D Jayachandran [mailto:[email protected]] > > > > > Sent: Monday, June 05, 2017 3:44 PM > > > > > To: [email protected] > > > > > Subject: RE: Query on operation inputs > > > > > > > > > > Hi Tal, > > > > > > > > > > Please find below the git repo of my example. > > > > > > > > > > https://github.com/djay8887/Aria-operationInputs > > > > > > > > > > regards, > > > > > DJ > > > > > > > > > > -----Original Message----- > > > > > From: Tal Liron [mailto:[email protected]] > > > > > Sent: Thursday, June 01, 2017 9:59 PM > > > > > To: [email protected] > > > > > Subject: Re: Query on operation inputs > > > > > > > > > > I'm still a bit confused by all this. DJ, could you possibly > > > > > create a quick git repo with your complete example to make sure > > > > > we're all on > > the > > > > > same page here? > > > > > > > > > > On Thu, Jun 1, 2017 at 7:10 AM, Ran Ziv <[email protected]> > wrote: > > > > > > > > > > > Right, it makes more sense now :) But now I simply have to say > > again > > > > > > that as far as I can tell this should in fact be the intended > > > behavior. > > > > > > > > > > > > What would you rather happen? the "labels" parameter be > > > > > > assigned > > with > > > > > > "None" instead? > > > > > > We considered this but part of the problem here is that the > > > > > > information about whether an input is required or not is no > > > > > > longer available at this stage so it's impossible to know > > > > > > whether to use > > > > "None" > > > > > or raise an error. > > > > > > Tal and I have talked about it in the past, and from what I > > remember, > > > > > > Tal said the "required" field information in fact should not > > > > > > be stored, and is only relevant for parsing phase. It is > > > > > > possible I'm getting this wrong though :) > > > > > > > > > > > > I'm open for changes here as it is a somewhat confusing > > > > > > behavior - although I think it does make sense after all. > > > > > > > > > > > > > > > > > > > > > > > > On Thu, Jun 1, 2017 at 3:04 PM, D Jayachandran < > > > > > > [email protected]> > > > > > > wrote: > > > > > > > > > > > > > Hi Ran/Tal, > > > > > > > > > > > > > > I was wrong, Tal's branch still throws the validation error > > > > > > > (I > > was > > > > > > loading > > > > > > > a different service template) :). So the issue which I told > > > > > > > still exists > > > > > > > > > > > > > > [root@DJ-DEV tal-test]# python /root/tal-test/incubator- > > > > > > ariatosca/aria/cli/main.py > > > > > > > executions start install -s s2 Declared parameters "labels" > > > > > > > have not been provided values > > > > > > > > > > > > > > Regards, > > > > > > > DJ > > > > > > > > > > > > > > -----Original Message----- > > > > > > > From: Ran Ziv [mailto:[email protected]] > > > > > > > Sent: Thursday, June 01, 2017 5:24 PM > > > > > > > To: [email protected] > > > > > > > Subject: Re: Query on operation inputs > > > > > > > > > > > > > > Again, there's a difference between the "required" > > > > > > > validation and the actual runtime validation. the runtime > > > > > > > one cannot be done > > > during > > > > > > > instantiation phase, which is why there are two separate > > > validations. > > > > > > > > > > > > > > I do not know how come Tal's branch (which by now has been > > > > > > > merged > > > to > > > > > > > master) helped fixing your issue, so I might have > > > > > > > misunderstood something about your problem :) > > > > > > > > > > > > > > Ran > > > > > > > > > > > > > > On Thu, Jun 1, 2017 at 2:11 PM, D Jayachandran < > > > > > > > [email protected]> > > > > > > > wrote: > > > > > > > > > > > > > > > Hi Tal, > > > > > > > > > > > > > > > > I did test your branch https://github.com/apache/ > > > > > > > > incubator-ariatosca/tree/ARIA-149-functions-in-operation- > > > configura > > > > > > > > tion and it seems to have the fix for operation/interface > > inputs. > > > > > > > > > > > > > > > > Regards, > > > > > > > > DJ > > > > > > > > -----Original Message----- > > > > > > > > From: D Jayachandran > > > > > > > > Sent: Thursday, June 01, 2017 4:40 PM > > > > > > > > To: [email protected] > > > > > > > > Subject: RE: Query on operation inputs > > > > > > > > > > > > > > > > Hi Ran, > > > > > > > > > > > > > > > > The validation of operation inputs is also done during > > > > instantiation. > > > > > > > > Please find below. > > > > > > > > > > > > > > > > [root@DJ-DEV tal-test]# python > > > > > > > > /root/tal-test/incubator-ariatosca/aria/cli/main.py > > > > > > > > service-templates store /root/tosca_simple_yaml_ > > > > > > > > plugin/kubernetes-deployment.yaml st-3 Storing service > > template > > > > > > st-3... > > > > > > > > Validation issues: > > > > > > > > 4: interface definition "Standard" does not assign a > > > > > > > > value > > to a > > > > > > > > required operation input "create.name" in "web_app" > > > > > > > > > > > > > > > > @"/root/tosca_simple_yaml_plugin/kubernetes-deployment. > > > yaml":64:25 > > > > > > > > Failed to parse service template > > > > > > > > > > > > > > > > > > > > > > > > I think the branch Tal provided > > > > > > > > https://github.com/apache/ > > > > > > > > incubator-ariatosca/tree/ARIA-149-functions-in-operation- > > > configura > > > > > > > > tion has fixed the issue on operation inputs. > > > > > > > > > > > > > > > > Regards, > > > > > > > > DJ > > > > > > > > > > > > > > > > -----Original Message----- > > > > > > > > From: Ran Ziv [mailto:[email protected]] > > > > > > > > Sent: Thursday, June 01, 2017 2:27 PM > > > > > > > > To: [email protected] > > > > > > > > Subject: Re: Query on operation inputs > > > > > > > > > > > > > > > > I think there's some confusion about different types of > inputs. > > > > > > > > The validation on inputs that is done during parsing > > > > > > > > (actually > > > > > > > > "instantiation") stage is for the service's inputs, not > > > operations. > > > > > > > > Execution and operation inputs (or more broadly, > > > > > > > > arguments) are validated before an execution is run. > > > > > > > > > > > > > > > > > > > > > > > > On Tue, May 30, 2017 at 8:48 AM, D Jayachandran < > > > > > > > > [email protected] > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > Hi Ran, > > > > > > > > > > > > > > > > > > I think Tal as updated, it might be possibly a bug here. > > > > > > > > > May > > be > > > > > > > > > we all should come to common understanding. > > > > > > > > > > > > > > > > > > As I updated earlier, since the inputs validation are > > > completing > > > > > > > > > during parsing stage, I don’t feel why the validation is > > > > > > > > > required again during orchestration time ? > > > > > > > > > Does the TOSCA spec actually refers the 2nd points of > yours ? > > > > > > > > > (The operation inputs must either have a default value > > > > > > > > > in the type definition or be supplied with a value in > > > > > > > > > the actual operation > > > > > > > > > definition) > > > > > > > > > > > > > > > > > > > > > > > > > > > Regards, > > > > > > > > > DJ > > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > > > > > From: Ran Ziv [mailto:[email protected]] > > > > > > > > > Sent: Sunday, May 28, 2017 6:14 PM > > > > > > > > > To: [email protected] > > > > > > > > > Subject: Re: Query on operation inputs > > > > > > > > > > > > > > > > > > I've reviewed your example, and I think either I'm > > > > > > > > > missing something or my original explanation still applies: > > > > > > > > > > > > > > > > > > 1. The validation at orchestration time for whether > > required > > > > > > > > > inputs have been specified does not deal with the > "required" > > > > > > > > > flag at all (actually, the flag never makes it past the > > parsing > > > > > > > > > stage and into the > > > > > > > > storage models). > > > > > > > > > > > > > > > > > > 2. For operation inputs to validate successfully, each > > input > > > > > > > > > must either have a default value in the type definition > > > > > > > > > or be supplied with a value in the actual operation > > > > > > > > > definition. In your case, both "labels" and "isService" > > > > > > > > > for example didn't > > > have > > > > > > > > > a default value set in the type definition (as opposed > > > > > > > > > to "target_host" for example) - > > > > > > > > However, "isService" > > > > > > > > > was set to "true" in the actual operation definition, > > > > > > > > > while > > > > > "labels" > > > > > > > > > wasn't assigned with any such value - Which is why you > > received > > > > > > > > > the validation error for a missing required input over > > > > > > > > > the > > > > "labels" > > > > > > > > > operation input. > > > > > > > > > > > > > > > > > > > > > > > > > > > Does this make sense? > > > > > > > > > > > > > > > > > > > > > > > > > > > On Fri, May 26, 2017 at 7:26 PM, Tal Liron < > > [email protected] > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > OK, I see now -- the error you are getting is about > > > > > > > > > > the operation inputs, not the topology inputs which > > > > > > > > > > are > > > different. > > > > > > > > > > > > > > > > > > > > You may have discovered a bug here. It seems like > > > > > > > > > > you're > > > doing > > > > > > > > > > the right thing and giving values to all these inputs, > > > > > > > > > > so > > it > > > > > > > > > > should not be complaining. > > > > > > > > > > > > > > > > > > > > I am actually working on a PR right now that makes > > > > > > > > > > some significant changes to this mechanism, but it's > > > > > > > > > > not merged yet. I don't mean to waste your time, but I > > > > > > > > > > would > > appreciate > > > > > > > > > > if you could test it out for me in your environment. > > > > > > > > > > Here > > is > > > > the > > > > > branch to use: > > > > > > > > > > > > > > > > > > > > https://github.com/apache/incubator-ariatosca/tree/ARI > > > > > > > > > > A- 149-functions-in-operation-configuration > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Fri, May 26, 2017 at 4:53 AM, D Jayachandran < > > > > > > > > > > [email protected] > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > Hi Tal, > > > > > > > > > > > > > > > > > > > > > > Thanks for your email. > > > > > > > > > > > > > > > > > > > > > > With the same example you took with my inputs > > "isService" & > > > > > > > "image". > > > > > > > > > > > ARIA has a problem when I don’t specify "isService" > > > > > > > > > > > which > > > is > > > > > > > > > > > defined as > > > > > > > > > > > required: false. > > > > > > > > > > > > > > > > > > > > > > Please find just the different inputs used in my > > > > > > > > > > > example > > ( > > > > > > > > > > > topology, node type and node template) > > > > > > > > > > > > > > > > > > > > > > TOPOLOGY INPUTS > > > > > > > > > > > > > > > > > > > > > > inputs: > > > > > > > > > > > web_app_name: > > > > > > > > > > > type: string > > > > > > > > > > > value: tosca-webapp > > > > > > > > > > > > > > > > > > > > > > web_app_image: > > > > > > > > > > > type: string > > > > > > > > > > > value: kuber-master:5000/webwithdbinput > > > > > > > > > > > > > > > > > > > > > > web_app_port: > > > > > > > > > > > type: integer > > > > > > > > > > > value: 80 > > > > > > > > > > > > > > > > > > > > > > db_name: > > > > > > > > > > > type: string > > > > > > > > > > > value: tosca-database > > > > > > > > > > > > > > > > > > > > > > db_image: > > > > > > > > > > > type: string > > > > > > > > > > > value: kuber-master:5000/dbforweb > > > > > > > > > > > > > > > > > > > > > > db_port: > > > > > > > > > > > type: integer > > > > > > > > > > > value: 3306 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > NODE-TYPE INPUTS > > > > > > > > > > > > > > > > > > > > > > create: > > > > > > > > > > > inputs: > > > > > > > > > > > name: > > > > > > > > > > > type: string > > > > > > > > > > > required: true > > > > > > > > > > > image: > > > > > > > > > > > type: string > > > > > > > > > > > required: true > > > > > > > > > > > exposed_port: > > > > > > > > > > > type: integer > > > > > > > > > > > required: false > > > > > > > > > > > target_port: > > > > > > > > > > > type: integer > > > > > > > > > > > required: false > > > > > > > > > > > default: 8080 > > > > > > > > > > > target_host: > > > > > > > > > > > type: string > > > > > > > > > > > required: false > > > > > > > > > > > default: test > > > > > > > > > > > labels: > > > > > > > > > > > type: string > > > > > > > > > > > required: false > > > > > > > > > > > isService: > > > > > > > > > > > type: boolean > > > > > > > > > > > required: false > > > > > > > > > > > > > > > > > > > > > > NODE-TEMPLATE INPUTS > > > > > > > > > > > > > > > > > > > > > > interfaces: > > > > > > > > > > > Standard: > > > > > > > > > > > create: > > > > > > > > > > > inputs: > > > > > > > > > > > name: { get_input: > > > web_app_name } > > > > > > > > > > > image: { get_property: [ > > > > > > > > > > > web_app, image] > > > > > > > > } > > > > > > > > > > > exposed_port: { > > get_property: [ > > > > > > > > > > > web_app, > > > > > > > > > > port] > > > > > > > > > > > } > > > > > > > > > > > target_host: { > get_property: > > [ > > > > > > > > > > > database, > > > > > > > > > > name] > > > > > > > > > > > } > > > > > > > > > > > target_port: { > get_property: > > [ > > > > > > > > > > > database, > > > > > > > > > > port] > > > > > > > > > > > } > > > > > > > > > > > isService: true > > > > > > > > > > > > > > > > > > > > > > All my TOPOLOGY templates have a value, so it's not > > > > > > > > > > > an > > > issue > > > > > > > > > > > in my > > > > > > > > > case. > > > > > > > > > > > Only "name" and "image" from my NODE-TYPE have the > > required > > > > > > > > > > > definition as "true". So I Must mandatory have these > > input > > > > > > > > > > > specified in my > > > > > > > > > > NODE-TEMPLATE > > > > > > > > > > > which I have specified. > > > > > > > > > > > Remaining NODE-TYPE inputs "exposed_port", > > > > > > > > > > > "target_port", "target_host", > > > > > > > > > > " > > > > > > > > > > > labels" and "isService" have the required > > > > > > > > > > > definition as > > > > > "false". > > > > > > > > > > > Hence > > > > > > > > > > I > > > > > > > > > > > may or may not specify them in my NODE-TEMPLATE > > > > > > > > > > > input > > > > section. > > > > > > > > > > > Except "labels" I have metioned all my optional > outputs. > > I > > > > > > > > > > > expect my service to be started without any issue > > > > > > > > > > > but it fails with the error > > > > > > > > > > "label" > > > > > > > > > > > is not specified. This is why I find ARIA is having > > > > > > > > > > > a > > > > problem. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > # python /root/incubator-ariatosca/aria/cli/main.py > > > > > > > > > > > executions start -s > > > > > > > > > > > demo-sr-1 install > > > > > > > > > > > Required inputs [u'labels'] have not been specified > > > > > > > > > > > - expected > > > > > > > > inputs: > > > > > > > > > > > [u'isService', u'name', u'exposed_port', u'image', > > > > > > > > > > > u'labels', u'target_port', u'target_host'] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Regards, > > > > > > > > > > > DJ > > > > > > > > > > > -----Original Message----- > > > > > > > > > > > From: Tal Liron [mailto:[email protected]] > > > > > > > > > > > Sent: Thursday, May 25, 2017 11:19 PM > > > > > > > > > > > To: [email protected] > > > > > > > > > > > Subject: Re: Query on operation inputs > > > > > > > > > > > > > > > > > > > > > > Hi DJ, let's try to look at these issues one at a time. > > > > > > > > > > > > > > > > > > > > > > I got your YAML to parse OK, but had to change it > > > > > > > > > > > around > > a > > > > > bit... > > > > > > > > > > > it > > > > > > > > > > would > > > > > > > > > > > help if you used a complete example here, and also > > > > > > > > > > > if it would be much shorter to demonstrate the > > > > > > > > > > > specific issue > > you > > > > > > > > > > > are asking > > > > > > > about. > > > > > > > > > > > There's a lot going on in this example and you are > > asking a > > > > > > > > > > > few different > > > > > > > > > > questions. > > > > > > > > > > > > > > > > > > > > > > The error message you are getting is not about > > > > > > > > > > > operation inputs, but > > > > > > > > > > about > > > > > > > > > > > topology template inputs. I can't help much here > > > > > > > > > > > unless I see those input > > > > > > > > > > > definitions: they do not appear in your YAML > > > > > > > > > > > fragment. In general, see section 3.8.2.1 in the > > > > > > > > > > > TOSCA spec. Values > > for > > > > > > > > > > > topology template inputs > > > > > > > > > > must > > > > > > > > > > > come from an external source, and indeed in this > > > > > > > > > > > case you are providing them via the CLI. ARIA makes > > > > > > > > > > > sure that all required topology template inputs have > > > > > > > > > > > a value, and that > > it > > > > > > > > > > > is a valid value for the type. So, > > > > > > > > > > that's > > > > > > > > > > > the error you are seeing. > > > > > > > > > > > > > > > > > > > > > > The inputs we *do* see in your YAML fragment are > > > > > > > > > > > input definitions at the node type and input > > > > > > > > > > > assignments at the node template. These work > > > > > > > > > > > differently from topology > > > template > > > > > > > > > > > inputs, because their values do not > > > > > > > > > > come > > > > > > > > > > > from an external source directly (though this can be > > > > > > > > > > > indirect via > > > > > > > > > > get_input > > > > > > > > > > > and other intrinsic functions). > > > > > > > > > > > > > > > > > > > > > > According to the spec you quote (3.5.8.2) , the key > > > > "required" > > > > > > > > > > > is > > > > > > > > > > optional > > > > > > > > > > > in YAML, meaning that you do not have to specify it. > > > > > > > > > > > Its default value is "true". So, unless you specify > > "required: > > > > > > > > > > > false", that property is required. So actually all > > > > > > > > > > > your > > > > > "required" true" > > > > > > > > > > > lines are redundant (informative, but don't change > > > > > > functionality). > > > > > > > > > > > > > > > > > > > > > > So, let's look at your "isService" input. At the > > > > > > > > > > > node > > type, > > > > > > > > > > > it is defined as required: false. And indeed, if at > > > > > > > > > > > the > > > node > > > > > > > > > > > template I don't assign a value to it, ARIA has no > > problem. > > > > > > > > > > > However, if you do not assign a value > > > > > > > > > > to > > > > > > > > > > > a required input, say "image", then ARIA would be > > unhappy. > > > > > > > > > > > > > > > > > > > > > > I hope this is clear, though I have a feeling you > > > > > > > > > > > are > > > asking > > > > > > > > > > > about something else which I'm not quite understanding. > > > > > > > > > > > Again, a shorter and complete example would help > > > demonstrate > > > > > > > > > > > what you > > > > > > mean. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Thu, May 25, 2017 at 9:56 AM, D Jayachandran < > > > > > > > > > > > [email protected] > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > > > Hi Ran, > > > > > > > > > > > > > > > > > > > > > > > > When I refer the TOSCA spec, it says > > > > > > > > > > > > > > > > > > > > > > > > " An optional key that declares a property as > > > > > > > > > > > > required > > > > > > > > > > > > (true) or not (false)." > > > > > > > > > > > > property_required: represents an optional boolean > > > > > > > > > > > > value (true or > > > > > > > > > > > > false) indicating whether or not the property is > > > required. > > > > > > > > > > > > If this keyname is not present on a property > > definition, > > > > > > > > > > > > then the property SHALL be considered required > > > > > > > > > > > > (i.e., > > > true) > > > > > by default. > > > > > > > > > > > > > > > > > > > > > > > > It is not clear to whom this property is required > > > > > > > > > > > > or > > not > > > ? > > > > > > > > > > > > > > > > > > > > > > > > With your argument, it seems we always need to > > > > > > > > > > > > provide > > a > > > > > > > > > > > > default value to an input, when we don’t declare > > > > > > > > > > > > in my service > > > > > > > template. > > > > > > > > > > > > Is my understanding correct here ? > > > > > > > > > > > > But the TOSCA spec says the default value is > > > > > > > > > > > > always an optional > > > > > > > > one. > > > > > > > > > > > > Also since the parser validates the service > > > > > > > > > > > > template inputs according to the "required" field > > > > > > > > > > > > am not sure > > why > > > > > > > > > > > > we need another validation during the execution ? > > > > > > > > > > > > > > > > > > > > > > > > I also don’t find any reference in TOSCA spec > > > > > > > > > > > > which > > says, > > > > > > > > > > > > all inputs defined in node type be declared in > > > > > > > > > > > > node template to be used by any operation. Could > > > > > > > > > > > > you please help me with that reference > > > > > > > > > in TOSCA spec ? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Regards, > > > > > > > > > > > > DJ > > > > > > > > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > > > > > > > > From: Ran Ziv [mailto:[email protected]] > > > > > > > > > > > > Sent: Thursday, May 25, 2017 5:16 PM > > > > > > > > > > > > To: [email protected] > > > > > > > > > > > > Subject: Re: Query on operation inputs > > > > > > > > > > > > > > > > > > > > > > > > Yes, I understand the confusion here. The issue is > > that, > > > > > > > > > > > > despite its name, the "required" field isn't what > > defines > > > > > > > > > > > > whether an input is optional or not > > > > > > > > > > > > - it is only relevant during the parsing phase > > > > > > > > > > > > (This is according to our understanding of the > > > > > > > > > > > > TOSCA spec. Tal could probably expand more on > > > > > > > > > > > this). > > > > > > > > > > > > What's relevant for deciding whether an input is > > required > > > > > > > > > > > > or not for actual execution is whether it has a > > > > > > > > > > > > default value - so all inputs would have a value > > > > > > > > > > > > when the > > actual > > > > > > > > > > > > execution > > > > > > takes > > > > > > > place. > > > > > > > > > > > > > > > > > > > > > > > > I hope this helps clearing this confusing issue.. > > > > > > > > > > > > > > > > > > > > > > > > Ran > > > > > > > > > > > > > > > > > > > > > > > > On Thu, May 25, 2017 at 2:08 PM, D Jayachandran < > > > > > > > > > > > > [email protected] > > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > > > > > Hi Ran, > > > > > > > > > > > > > > > > > > > > > > > > > > Thanks for your response. > > > > > > > > > > > > > > > > > > > > > > > > > > In my case, I have defined the inputs as > > > > > > > > > > > > > optional > > under > > > > > > > > > > > > > the create operation of my custom node type. > > > > > > > > > > > > > Since it is an optional input, I haven't > > > > > > > > > > > > > declared it > > in > > > > > > > > > > > > > my > > > > > > > > > > > node-template. > > > > > > > > > > > > > I assume optional input may or may not be > > > > > > > > > > > > > declared > > in a > > > > > > > > > > > > > service template > > > > > > > > > > > > ? > > > > > > > > > > > > > Am I missing something here ? > > > > > > > > > > > > > > > > > > > > > > > > > > Please find below the node type and node > > > > > > > > > > > > > template in > > my > > > > > case. > > > > > > > > > > > > > > > > > > > > > > > > > > # python > > > > > > > > > > > > > /root/incubator-ariatosca/aria/cli/main.py > > > > > > > > > > > > > executions start -s > > > > > > > > > > > > > demo-sr-1 install Required inputs [u'labels'] > > > > > > > > > > > > > have not been specified - expected > > > > > > > > > > inputs: > > > > > > > > > > > > > [u'isService', u'name', u'exposed_port', > > > > > > > > > > > > > u'image', u'labels', u'target_port', > > > > > > > > > > > > > u'target_host'] > > > > > > > > > > > > > > > > > > > > > > > > > > Node-type > > > > > > > > > > > > > > > > > > > > > > > > > > node_types: > > > > > > > > > > > > > test.nodes.Container.Application: > > > > > > > > > > > > > derived_from: tosca.nodes.Root > > > > > > > > > > > > > properties: > > > > > > > > > > > > > name: > > > > > > > > > > > > > type: string > > > > > > > > > > > > > required: true > > > > > > > > > > > > > image: > > > > > > > > > > > > > type: string > > > > > > > > > > > > > required: true > > > > > > > > > > > > > port: > > > > > > > > > > > > > type: integer > > > > > > > > > > > > > required: false > > > > > > > > > > > > > interfaces: > > > > > > > > > > > > > Standard: > > > > > > > > > > > > > type: tosca.interfaces.node. > > > > > > lifecycle.Standard > > > > > > > > > > > > > create: > > > > > > > > > > > > > inputs: > > > > > > > > > > > > > name: > > > > > > > > > > > > > type: string > > > > > > > > > > > > > required: true > > > > > > > > > > > > > image: > > > > > > > > > > > > > type: string > > > > > > > > > > > > > required: true > > > > > > > > > > > > > exposed_port: > > > > > > > > > > > > > type: integer > > > > > > > > > > > > > required: false > > > > > > > > > > > > > target_port: > > > > > > > > > > > > > type: integer > > > > > > > > > > > > > required: false > > > > > > > > > > > > > target_host: > > > > > > > > > > > > > type: integer > > > > > > > > > > > > > required: false > > > > > > > > > > > > > labels: > > > > > > > > > > > > > type: string > > > > > > > > > > > > > required: false > > > > > > > > > > > > > isService: > > > > > > > > > > > > > type: boolean > > > > > > > > > > > > > required: false > > > > > > > > > > > > > implementation: > > > > > > > > > > > > > primary: sample > > > > > > > > > > > > > > sample.samplemethod > > > > > > > > > > > > > > > > > > > > > > > > > > Node template: > > > > > > > > > > > > > > > > > > > > > > > > > > web_app: > > > > > > > > > > > > > type: test.nodes.Container.Application > > > > > > > > > > > > > properties: > > > > > > > > > > > > > name: { get_input: web_app_name } > > > > > > > > > > > > > image: { get_input: web_app_image } > > > > > > > > > > > > > port: { get_input: web_app_port } > > > > > > > > > > > > > requirements: > > > > > > > > > > > > > - dependency: > > > > > > > > > > > > > node: database > > > > > > > > > > > > > relationship: > > > > > > > > > > > > > type: > > > > > tosca.relationships.DependsOn > > > > > > > > > > > > > interfaces: > > > > > > > > > > > > > Standard: > > > > > > > > > > > > > create: > > > > > > > > > > > > > inputs: > > > > > > > > > > > > > name: { get_input: > > > > > web_app_name } > > > > > > > > > > > > > image: { > > > > > > > > > > > > > get_property: [ web_app, image] > > > > > > > > > > } > > > > > > > > > > > > > exposed_port: { > > > > > > > > > > > > > get_property: [ web_app, port] } > > > > > > > > > > > > > target_host: { > > > get_property: > > > > > > > > > > > > > [ database, name] } > > > > > > > > > > > > > target_port: { > > > get_property: > > > > > > > > > > > > > [ database, port] } > > > > > > > > > > > > > isService: true > > > > > > > > > > > > > > > > > > > > > > > > > > Regards, > > > > > > > > > > > > > DJ > > > > > > > > > > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > > > > > > > > > From: Ran Ziv [mailto:[email protected]] > > > > > > > > > > > > > Sent: Thursday, May 25, 2017 4:07 PM > > > > > > > > > > > > > To: [email protected] > > > > > > > > > > > > > Subject: Re: Query on operation inputs > > > > > > > > > > > > > > > > > > > > > > > > > > Hi, > > > > > > > > > > > > > > > > > > > > > > > > > > Weird, I remember responding to this mail > > > > > > > > > > > > > before, but > > > it > > > > > > > > > > > > > doesn't seem like I have. > > > > > > > > > > > > > In any case, it is indeed our intention that no > > inputs > > > > > > > > > > > > > may be passed into operations unless they have > > > > > > > > > > > > > been clearly declared in the > > > > > > > > > > > > service-template. > > > > > > > > > > > > > ARIA opts to be a strict implementation of TOSCA > > > > > > > > > > > > > wherever > > > > > > > > possible. > > > > > > > > > > > > > > > > > > > > > > > > > > Ran > > > > > > > > > > > > > > > > > > > > > > > > > > On Thu, May 25, 2017 at 1:22 PM, D Jayachandran > > > > > > > > > > > > > < [email protected] > > > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > Hi, > > > > > > > > > > > > > > > > > > > > > > > > > > > > The latest Apache-aria is throwing a > > > > > > > > > > > > > > validation > > error > > > > > > > > > > > > > > during the execution of a service. > > > > > > > > > > > > > > It demands all the operation inputs defined in > > > > > > > > > > > > > > a > > node > > > > > > > > > > > > > > type be declared in the service template > > > > > > > > > > > > > > though > > they > > > > > > > > > > > > > > are optional > > > > > > > > inputs. > > > > > > > > > > > > > > Could you please let us know if this change > > > > > > > > > > > > > > was > > > > > > intentional ? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Regards, > > > > > > > > > > > > > > DJ(D Jayachandran) > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > > Tal Liron > > > > > > > > > > > Senior Engineer > > > > > > > > > > > [email protected] | +1 (773) 828-9339 Cloudify | > > > > > > > > > > > http://getcloudify.org > > > > > > > > > > > <http://getcloudify.org?utm_source=signaturesatori&u > > > > > > > > > > > tm_ medium=email&utm_campaign=general_signature> > > > > > > > > > > > > > > > > > > > > > > <https://twitter.com/CloudifySource> > > > > > > > > > > > <https://www.linkedin.com/groups/8467478> > > > > > > > > > > > <https://github.com/cloudify-cosmo> < > > > > > > > https://github.com/cloudify- > > > > > > > > > cosmo > > > > > > > > > > > > > > > > > > > > > > [image: Azure Webinar] > > > > > > > > > > > <http://getcloudify.org/webinars/Azure-plugin-for- > > > > > > > > > > > cloudify-webinar.html?utm_source=signaturesatori&utm > > > > > > > > > > > _ medium=email&utm_campaign=general_signature> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > Tal Liron > > > > > > > > > > Senior Engineer > > > > > > > > > > [email protected] | +1 (773) 828-9339 Cloudify | > > > > > > > > > > http://getcloudify.org > > > > > > > > > > <http://getcloudify.org?utm_source=signaturesatori&utm > > > > > > > > > > _ medium=email&utm_campaign=general_signature> > > > > > > > > > > > > > > > > > > > > <https://twitter.com/CloudifySource> > > > > > > > > > > <https://www.linkedin.com/groups/8467478> > > > > > > > > > > <https://github.com/cloudify-cosmo> < > > > > > > https://github.com/cloudify- > > > > > > > > cosmo > > > > > > > > > > > > > > > > > > > > [image: Azure Webinar] > > > > > > > > > > <http://getcloudify.org/webinars/Azure-plugin-for- > > > > > > > > > > cloudify-webinar.html?utm_source=signaturesatori&utm_ > > > > > > > > > > medium=email&utm_campaign=general_signature> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > Tal Liron > > > > > Senior Engineer > > > > > [email protected] | +1 (773) 828-9339 Cloudify | > > > > > http://getcloudify.org > > > > > <http://getcloudify.org?utm_source=signaturesatori&utm_ > > > > > medium=email&utm_campaign=general_signature> > > > > > > > > > > <https://twitter.com/CloudifySource> > > > > > <https://www.linkedin.com/groups/8467478> > > > > > <https://github.com/cloudify-cosmo> < > https://github.com/cloudify- > > > cosmo > > > > > > > > > > [image: Azure Webinar] > > > > > <http://getcloudify.org/webinars/Azure-plugin-for- > > > > > cloudify-webinar.html?utm_source=signaturesatori&utm_ > > > > > medium=email&utm_campaign=general_signature> > > > > > > > > > > > > > > > > > > > > > -- > > > > Tal Liron, Senior Solutions Architect <http://cloudify.co> > > > > ------------------------------ > > > > M: +1-312-375-8299 http://cloudify.co @cloudifysource > > > > <https://twitter.com/CloudifySource> > > > > <https://www.linkedin.com/company-beta/17918192/> > > > > <https://github.com/cloudify-cosmo> > > > > <https://www.youtube.com/cloudifysource> > > > > > > > > > > > > > > > > -- > > > Avia Efrat > > > SW Engineer > > > [email protected] | +972546204553 > > > Cloudify | http://getcloudify.org > > > <http://getcloudify.org?utm_source=signaturesatori&utm_ > > > medium=email&utm_campaign=general_signature> > > > > > > <https://twitter.com/CloudifySource> > > > <https://www.linkedin.com/groups/8467478> > > > <https://github.com/cloudify-cosmo> <https://github.com/cloudify- > cosmo > > > > > > [image: Azure Webinar] > > > <http://getcloudify.org/webinars/Azure-plugin-for- > > > cloudify-webinar.html?utm_source=signaturesatori&utm_ > > > medium=email&utm_campaign=general_signature> > > > > > >
