Hi Richard,

Thanks for raising this. FYI Alex has created a PR with tests demonstrating the behaviour [1] you describe.

---

In the docs [2], we encourage the use of the format below for "entity" (because there is only one thing, the `services: ` is unnecessary and misleading - it suggests you could have multiple things under `services`):

   brooklyn.catalog:
      version: 0.1.3.SNAPSHOT
      items:
        - id: inner
          itemType: entity
          item:
            type: server
        - id: outer
          itemType: entity
          item:
            type: inner

In contrast, if you're adding a "template" (which can consist of multiple services), then the format would be:

   brooklyn.catalog:
      version: 0.1.3-SNAPSHOT
      items:
        - id: my-app
          itemType: template
          item:
            services:
   - type: server

If you use that format for `itemType: entity`, I think it works as expected.

Aled

[1] https://github.com/apache/brooklyn-server/pull/748

[2] http://brooklyn.apache.org/v/0.11.0/ops/catalog/



On 29/06/2017 09:48, Richard Downer wrote:
Hello all,

If I create a catalog.bom with these contents and try to add this to the
catalog with `br catalog add`:

brooklyn.catalog:
   version: 0.1.3.SNAPSHOT
   items:
     - id: inner
       itemType: entity
       item:
         services:
           - type: server
     - id: outer
       itemType: entity
       item:
         services:
           - type: inner

it fails with error `Server error (400): Could not resolve item 'outer'; 2
errors including: Transformer for Brooklyn OASIS CAMP interpreter gave an
error creating this plan: Unable to match plan item:
Service[name=<null>,description=<null>,serviceType=inner,characteristics=[],customAttributes={}]`

If I split this into two different catalog.bom files, and add them one
after the other, it works.

It seems to me that what works with two individual catalog.bom files should
also work when both files are combined into one. What do others think about
this?

Changing `entity` for `template` resolves this problem - as I understand
it, `template` causes in-depth parsing to be deferred until something tries
to use the catalog item. Unfortunately that means that some errors in the
catalog item may not be discovered until deployment time.

Richard.


Reply via email to