You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@brooklyn.apache.org by Duncan Grant <du...@cloudsoftcorp.com> on 2015/11/06 14:55:58 UTC

DynamicCluster memberspec with 2 entities

Is it possible to set the memberSpec of a dynamic cluster to contain 2
entities?

I've tried using a SameServerEntity e.g.:

name: Empty System
location: jclouds:softlayer:ams01
services:
- type: brooklyn.entity.group.DynamicCluster
  initialSize: 2
  memberSpec:
    $brooklyn:entitySpec:
      - type: org.apache.brooklyn.entity.software.base.SameServerEntity
        brooklyn.children:
        - type:
org.apache.brooklyn.entity.software.base.EmptySoftwareProcess
        - type:
org.apache.brooklyn.entity.software.base.EmptySoftwareProcess

and I've tried using a child relationship e.g:

name: Empty System
location: jclouds:softlayer:ams01
services:
- type: brooklyn.entity.group.DynamicCluster
  initialSize: 2
  memberSpec:
    $brooklyn:entitySpec:
      - type: org.apache.brooklyn.entity.software.base.EmptySoftwareProcess
        brooklyn.config:
          children.startable.mode: background_late
        brooklyn.children:
        - type:
org.apache.brooklyn.entity.software.base.EmptySoftwareProcess

but I get an error of the form:

org.apache.brooklyn.util.exceptions.PropagatedRuntimeException:
org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: Error
invoking start at DynamicClusterImpl{id=vxtguIix}:
java.lang.IllegalStateException: On start of cluster
DynamicClusterImpl{id=vxtguIix}, failed to get to initial size of 2; size
is 1: Spec EntitySpec{type=interface
org.apache.brooklyn.entity.software.base.EmptySoftwareProcess} has parent
EmptySoftwareProcessImpl{id=hN8uSfbM} defined, but it is defined as a child
of EmptySoftwareProcessImpl{id=ft1Egn5i}

Both the above yamls work if I set the initial size to 1 but the cluster
will not be resizable.

Thanks

Duncan

Re: DynamicCluster memberspec with 2 entities

Posted by Mike Zaccardo <mi...@cloudsoftcorp.com>.
https://issues.apache.org/jira/browse/BROOKLYN-192

On Mon, Nov 9, 2015 at 1:35 PM Mike Zaccardo <
mike.zaccardo@cloudsoftcorp.com> wrote:

> Hi Duncan,
>
> I encountered this bug when developing BDP since I needed to have two
> different entities as children (Redis and Cache Proxy).  My temporary "fix"
> was to comment out the line which throws the exception since the lines
> after it actually assign the correct parenthood.
>
> "Fix" commit (see InternalEntityFactory.java):
> https://github.com/mikezaccardo/incubator-brooklyn/commit/4e2d4b7b57f9380b72de746e5c99d12bf857c1b3
>
> I will file a JIRA ticket for this.
>
> Cheers,
> Mike
>
> On Fri, Nov 6, 2015 at 5:56 AM Duncan Grant <
> duncan.grant@cloudsoftcorp.com> wrote:
>
>> Is it possible to set the memberSpec of a dynamic cluster to contain 2
>> entities?
>>
>> I've tried using a SameServerEntity e.g.:
>>
>> name: Empty System
>> location: jclouds:softlayer:ams01
>> services:
>> - type: brooklyn.entity.group.DynamicCluster
>>   initialSize: 2
>>   memberSpec:
>>     $brooklyn:entitySpec:
>>       - type: org.apache.brooklyn.entity.software.base.SameServerEntity
>>         brooklyn.children:
>>         - type:
>> org.apache.brooklyn.entity.software.base.EmptySoftwareProcess
>>         - type:
>> org.apache.brooklyn.entity.software.base.EmptySoftwareProcess
>>
>> and I've tried using a child relationship e.g:
>>
>> name: Empty System
>> location: jclouds:softlayer:ams01
>> services:
>> - type: brooklyn.entity.group.DynamicCluster
>>   initialSize: 2
>>   memberSpec:
>>     $brooklyn:entitySpec:
>>       - type:
>> org.apache.brooklyn.entity.software.base.EmptySoftwareProcess
>>         brooklyn.config:
>>           children.startable.mode: background_late
>>         brooklyn.children:
>>         - type:
>> org.apache.brooklyn.entity.software.base.EmptySoftwareProcess
>>
>> but I get an error of the form:
>>
>> org.apache.brooklyn.util.exceptions.PropagatedRuntimeException:
>> org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: Error
>> invoking start at DynamicClusterImpl{id=vxtguIix}:
>> java.lang.IllegalStateException: On start of cluster
>> DynamicClusterImpl{id=vxtguIix}, failed to get to initial size of 2; size
>> is 1: Spec EntitySpec{type=interface
>> org.apache.brooklyn.entity.software.base.EmptySoftwareProcess} has parent
>> EmptySoftwareProcessImpl{id=hN8uSfbM} defined, but it is defined as a
>> child
>> of EmptySoftwareProcessImpl{id=ft1Egn5i}
>>
>> Both the above yamls work if I set the initial size to 1 but the cluster
>> will not be resizable.
>>
>> Thanks
>>
>> Duncan
>>
>

Re: DynamicCluster memberspec with 2 entities

Posted by Mike Zaccardo <mi...@cloudsoftcorp.com>.
Hi Duncan,

I encountered this bug when developing BDP since I needed to have two
different entities as children (Redis and Cache Proxy).  My temporary "fix"
was to comment out the line which throws the exception since the lines
after it actually assign the correct parenthood.

"Fix" commit (see InternalEntityFactory.java):
https://github.com/mikezaccardo/incubator-brooklyn/commit/4e2d4b7b57f9380b72de746e5c99d12bf857c1b3

I will file a JIRA ticket for this.

Cheers,
Mike

On Fri, Nov 6, 2015 at 5:56 AM Duncan Grant <du...@cloudsoftcorp.com>
wrote:

> Is it possible to set the memberSpec of a dynamic cluster to contain 2
> entities?
>
> I've tried using a SameServerEntity e.g.:
>
> name: Empty System
> location: jclouds:softlayer:ams01
> services:
> - type: brooklyn.entity.group.DynamicCluster
>   initialSize: 2
>   memberSpec:
>     $brooklyn:entitySpec:
>       - type: org.apache.brooklyn.entity.software.base.SameServerEntity
>         brooklyn.children:
>         - type:
> org.apache.brooklyn.entity.software.base.EmptySoftwareProcess
>         - type:
> org.apache.brooklyn.entity.software.base.EmptySoftwareProcess
>
> and I've tried using a child relationship e.g:
>
> name: Empty System
> location: jclouds:softlayer:ams01
> services:
> - type: brooklyn.entity.group.DynamicCluster
>   initialSize: 2
>   memberSpec:
>     $brooklyn:entitySpec:
>       - type: org.apache.brooklyn.entity.software.base.EmptySoftwareProcess
>         brooklyn.config:
>           children.startable.mode: background_late
>         brooklyn.children:
>         - type:
> org.apache.brooklyn.entity.software.base.EmptySoftwareProcess
>
> but I get an error of the form:
>
> org.apache.brooklyn.util.exceptions.PropagatedRuntimeException:
> org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: Error
> invoking start at DynamicClusterImpl{id=vxtguIix}:
> java.lang.IllegalStateException: On start of cluster
> DynamicClusterImpl{id=vxtguIix}, failed to get to initial size of 2; size
> is 1: Spec EntitySpec{type=interface
> org.apache.brooklyn.entity.software.base.EmptySoftwareProcess} has parent
> EmptySoftwareProcessImpl{id=hN8uSfbM} defined, but it is defined as a child
> of EmptySoftwareProcessImpl{id=ft1Egn5i}
>
> Both the above yamls work if I set the initial size to 1 but the cluster
> will not be resizable.
>
> Thanks
>
> Duncan
>