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