Thank you Geoff $brooklyn:entityId(). worked perfectly!
Peter On Thu, Aug 1, 2019 at 2:48 PM Geoff Macartney <[email protected]> wrote: > Hi Peter, > > I don't have a Brooklyn to hand to verify this but I think you can get the > ID you want with $brooklyn:entityId(). > > There doesn't seem to be any documentation on this, to my surprise, but you > can see an example of its use in the Java code for tests here: > > > https://github.com/apache/brooklyn-server/blob/c782aae54f424e317c0999f5cde3fab19bc45cfb/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslYamlTest.java#L433 > > Alternatively this is equivalent to $brooklyn:attributeWhenReady(" > entity.id") > as used for example here: > > > https://github.com/brooklyncentral/clocker/blob/master/kubernetes/catalog/kubernetes/kubernetes.bom#L492 > > Regards > Geoff > > > > > On Thu, 1 Aug 2019 at 22:10, Peter Abramowitsch <[email protected]> > wrote: > > > Hi Brooklyn experts > > > > I'm trying to create a cluster where each instance has a unique id that I > > can feed to the process during the customize and launch stages, so I > > thought of using the entity's own ID. I've tried many ways to get the id > > just before customize, but none of them work. The entity in question is > > of type VanillaJavaApp > > > > Here's one example > > > > This one fails giving "Cannot coerce type > > org.apache.brooklyn.core.sensor.BasicAttributeSensor to java.lang.String > > (Sensor: entity.id (java.lang.String)): no adapter known" which I think > > means that the sensor isn't avalable at the moment it is evaluated. Ok > > that makes sense, but see the other examples I've tried below..... > > > > name: htsuite > > description: testserver > > location: localhost > > services: > > - id: client_cluster > > type: org.apache.brooklyn.entity.group.DynamicCluster > > brooklyn.config: > > cluster.initial.size: 2 > > dynamiccluster.memberspec: > > $brooklyn:entitySpec: > > type: htclienttemplate:1.4 > > name: client > > customize.command: | > > sudo mkdir > > $brooklyn:formatString("/Users/peterabramowitsch/manhattan/%s", > > *$brooklyn:sensor("entity.id > > <http://entity.id>") *) > > brooklyn.config: > > clientname: *$brooklyn:sensor("entity.id <http://entity.id > >") > > * > > rundir: > > $brooklyn:formatString: > > - /Users/peterabramowitsch/manhattan/%s > > - *$brooklyn:sensor("entity.id <http://entity.id>")* > > resturl: > > $brooklyn:formatString: > > - > > > > > http://127.0.0.1:8081/v1/applications/infocommons-composed/entities/%s/sensors > > - *$brooklyn:sensor("entity.id <http://entity.id>")* > > > > I have also tried > > *$brooklyn:component("this","id")* > > * $brooklyn:component("this").attributeWhenReady("id")* > > * $brooklyn.id <http://brooklyn.id>* > > > > * $brooklyn:config("id")* > > > > * id* > > >
