Duplicate type names are also something we can warn about during import
merging. I included this in the aforementioned JIRA ticket.

On Tue, Oct 24, 2017 at 12:36 PM, Steve Baillargeon <
[email protected]> wrote:

> Hi Tal
> Thanks for the info.
>
> In summary, the last imported node template overrides the previous node
> template if they are using the same name.
> I feel this is the correct behavior and the only enhancement I see is an
> indication of such occurrence back to the "user".
> Another option is to add a system-wide configurable attribute to decide
> between 1) override and notify/log (default) versus 2) stop and send error
> message.
>
> What about node types.
> Say I want to override a normative node type with my own custom type using
> the same node type name (yes this is a strange case).
> Can I import a custom node type that will override a normative node type?
>
> -Steve
>
> -----Original Message-----
> From: Thomas Nadeau [mailto:[email protected]]
> Sent: Monday, October 23, 2017 1:38 PM
> To: [email protected]
> Subject: Re: Note template names
>
>
>
> > On Oct 23, 2017, at 1:12 PM, Tal Liron <[email protected]> wrote:
> >
> > TOSCA says some things about how imports happen, but not that match. I
> > think we are aligned with the spec here.
>
>         That is what I suspected, but best to check explicitly.
>
> > By the way, I'm quite proud of the implementation in ARIA: we handle
> > imports in a threadpool, so that if you are importing from many http
> > repositories at the same time, each download will happen simultaneously.
> > Performance is as optimal as it can be. (We are also caching the
> > results according to the conditional http request standard.)
>
>         I had no reservations about that. 8)
>
>         —Tom
>
>
> >
> > On Mon, Oct 23, 2017 at 12:06 PM, Thomas Nadeau
> > <[email protected]>
> > wrote:
> >
> >>
> >>        Just for my own understanding, is the algorithm you describe
> >> used based on what TOSCA specifies,
> >> or is this our implementation detail?    I ask because you can imagine
> >> process done
> >> one at a time, i.e.: per-file, but the processed results can of
> >> course, be different.
> >>
> >>        —Tom
> >>
> >>
> >>
> >>> On Oct 23, 2017, at 12:46 PM, Tal Liron <[email protected]> wrote:
> >>>
> >>> Yes, you can do that. Think of imports as being essentially like a
> >>> smart copy-paste from one YAML file to another. In the end, ARIA
> >>> treats it as just one big service template.
> >>>
> >>> In other words, the requirements-and-capabilities matching occurs
> >>> only after all imports were done and the final service template is
> valid.
> >>>
> >>> On Mon, Oct 23, 2017 at 10:45 AM, Steve Baillargeon <
> >>> [email protected]> wrote:
> >>>
> >>>> Thank you Tal
> >>>>
> >>>> Can ARIA handle the case when ST1 imports ST2 with a relationship
> >>>> (link) between source node template AA defined in ST1 and target
> >>>> node template
> >> BB
> >>>> defined in ST2?
> >>>> For instance, a SoftwareComponent node is defined in ST1 with a
> >>>> specific requirement to run on a Compute node that is defined in ST2.
> >>>>
> >>>> -Steve
> >>>>
> >>>> -----Original Message-----
> >>>> From: Tal Liron [mailto:[email protected]]
> >>>> Sent: Thursday, October 19, 2017 2:18 PM
> >>>> To: [email protected]
> >>>> Subject: Re: Note template names
> >>>>
> >>>> Some good questions here. Let me try to break it down,
> >>>>
> >>>> On Thu, Oct 19, 2017 at 12:39 PM, Steve Baillargeon <
> >>>> [email protected]> wrote:
> >>>>
> >>>>> Node template names must be unique within  a given service template.
> >>>>>
> >>>>
> >>>> Yes. Actually, there is an "interesting" issue with this: in YAML,
> >>>> a
> >> dict
> >>>> could have multiple keys with the same name. What happens in that
> >>>> case
> >> is
> >>>> that subsequent keys (node template names in this case) override
> >> previous
> >>>> ones of the same name. So, you can syntactically have two node
> >> templates of
> >>>> the same name, but only one will count.
> >>>>
> >>>> We tried to find ways in ARIA to emit an error in this case, but
> >> actually
> >>>> it's very hard to do because it's a YAML spec issue that allows it.
> >>>>
> >>>>
> >>>>> What about the case when ST1 imports ST2 as follows.
> >>>>> ST1 has 2 node templates: template A derived from node type X and
> >>>>> template B derived from node type Y.
> >>>>> ST2 has 1 node template: template A derived from node type Z .
> >>>>>
> >>>>
> >>>> Actually, the "imports" keyword isn't 100% clear in the TOSCA spec.
> >>>> What we do in ARIA is merge the dicts, and again identical keys
> >>>> (node
> >> template
> >>>> names) will override without error. So, the final behavior will be
> >>>> undefined.
> >>>>
> >>>> However, I think that in this particular case ARIA can do something
> >> more,
> >>>> because we handle merging ourselves (it's not an issue of the YAML
> >> spec). I
> >>>> have opened a new JIRA about this:
> >>>> https://issues.apache.org/jira/browse/ARIA-390
> >>>>
> >>
> >>
>
>

Reply via email to