[ 
https://issues.apache.org/jira/browse/BROOKLYN-381?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15656893#comment-15656893
 ] 

ASF GitHub Bot commented on BROOKLYN-381:
-----------------------------------------

Github user neykov commented on a diff in the pull request:

    https://github.com/apache/brooklyn-server/pull/417#discussion_r87578030
  
    --- Diff: 
camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/DslComponent.java
 ---
    @@ -182,63 +257,112 @@ public Entity call() throws Exception {
                         throw new IllegalStateException("Unexpected scope 
"+scope);
                 }
                 
    -            Optional<Entity> result = Iterables.tryFind(entitiesToSearch, 
EntityPredicates.configEqualTo(BrooklynCampConstants.PLAN_ID, componentId));
    +            String desiredComponentId;
    +            if (componentId == null) {
    +                if (componentIdSupplier == null) {
    +                    throw new IllegalArgumentException("No component-id or 
component-id supplier, when resolving entity in scope '" + scope + "' wrt " + 
entity);
    +                }
    +                
    +                Maybe<Object> maybeComponentId = 
Tasks.resolving(componentIdSupplier)
    +                        .as(Object.class)
    +                        .context(getExecutionContext())
    +                        .immediately(immediate)
    --- End diff --
    
    For the `false` case would make more sense to skip `if (timeout == null) 
timeout = ValueResolver.NON_BLOCKING_WAIT;` in the method.


> Support nested DSL in $brooklyn:entity
> --------------------------------------
>
>                 Key: BROOKLYN-381
>                 URL: https://issues.apache.org/jira/browse/BROOKLYN-381
>             Project: Brooklyn
>          Issue Type: Improvement
>    Affects Versions: 0.9.0
>            Reporter: Aled Sage
>
> When using the yaml DSL to look up values on other entities, it would be 
> useful to be able to make this more dynamic by getting the entity id from the 
> DSL (e.g. from another attribute).
> For example, a slightly simplified example below - note the DSL for "url", to 
> retrieve the URL from an entity whose id is set dynamically on the 
> {{TestHttpCall}} entity:
> {noformat}
> services:
> - type: org.apache.brooklyn.entity.nosql.riak.RiakCluster
>   id: target-app
> ...
> - type: loop-test-case
>   name: "Value replicated on all Riak nodes"
>   brooklyn.config:
>     target: $brooklyn:component("target-app")
>     testSpec:
>       $brooklyn:entitySpec:
>         type: test-http-status-200
>         brooklyn.config:
>           url: 
> $brooklyn:entity(config("targetId")).attributeWhenReady("main.uri")
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to