Hi Shaheedur,

Cartridge group used to specify what are the cartridges/groups need to be
grouped together and the behavior among the children of that group. That's
how we have grouped the cartridge/groups together. The behaviors of a group
can be startupDependency, termiation Behaviour and scale dependents. When
you decide that a bunch of cartridges can be grouped together based on
their functionality, you can define a group and specify these behaviors.
This behavior will be specified in a cartridge group w.r.t the children of
that group. Please note that since we have recursive group support, you can
define a cartridge group inside a cartridge group as well as i mentioned
earlier.

Why we have defined separate cartridge  group definition rather than
directly defining cartridge group inline in the application is that the
re-usability. If you define a cartridge group definition, then it can be
used in multiple application. In that case, if you are to have a group in
your application, you will have to define at-least one cartridge group
definition by having these behaviors in recursive manner.

Then you can use that cartridge group in your application and provide
dynamic information such as alias, how many group instances and etc (these
i believe dynamic information which can be differed from application to
application).

You can find sample carriage groups in
https://github.com/apache/stratos/tree/master/samples/cartridges-groups


Thanks,
Reka

On Tue, Mar 17, 2015 at 11:38 AM, Shaheedur Haque (shahhaqu) <
[email protected]> wrote:

>  Reposting to main mailer…
>
>
>
> *From:* Shaheedur Haque (shahhaqu)
> *Sent:* Tuesday, March 17, 2015 10:29 AM
> *To:* [email protected]
> *Subject:* What is a Cartridge Group in Stratos 4.1.0?
>
>
>
> Hi,
>
>
>
> I am trying to define the application shown below, but am getting this
> exception:
>
>
>
> TID: [0] [STRATOS] [2015-03-17 10:09:21,282] ERROR
> {org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver} -  Cartridge
> group not found: [group-name] blade-0x0
>
> java.lang.RuntimeException: Cartridge group not found: [group-name]
> blade-0x0
>
>         at
> org.apache.stratos.autoscaler.applications.parser.DefaultApplicationParser.parseGroups(DefaultApplicationParser.java:563)
>
>         at
> org.apache.stratos.autoscaler.applications.parser.DefaultApplicationParser.buildCompositeAppStructure(DefaultApplicationParser.java:315)
>
>         …
>
>
>
> I’d not heard of a cartridge group, so I Iooked in
> https://docs.google.com/document/d/1AYLAAXySvh24JZw0NQixlKg4yX8jqD3Vtc_Pz-zmHaw,
> only to see a (new?) reference to such an object, with no data. I
> eventually found
> https://cwiki.apache.org/confluence/display/STRATOS/4.1.0+Sample+Cartridge+Group+Definition.
> However, ignoring the obvious errors/obsolete items, this seems completely
> redundant w.r.t to the Application definition. So what is this object for?
> How do I get rid of the error?
>
>
>
> Thanks, Shaheed
>
>
>
> P.S. This is the Application, note that “blade-0x0” is in the outermost
> group, and the output is sorted by key:
>
>
>
> {
>
>     "application_template_id": "system",
>
>     "components": {
>
>         "cartridges": [],
>
>         "groups": [
>
>             {
>
>                 "alias": "blade-0x0",
>
>                 "cartridges": [
>
>                     {
>
>                         "cartridgeMax": 10,
>
>                         "cartridgeMin": 1,
>
>                         "subscribableInfo": {
>
>                             "alias": "cartridge1-1x0",
>
>                             "artifactRepository": {
>
>                                 "privateRepo": true,
>
>                                 "repoPassword": "c-policy-2",
>
>                                 "repoUrl": "
> http://xxx:10080/git/default.git";,
>
>                                 "repoUsername": "user"
>
>                             },
>
>                             "autoscalingPolicy": "economyPolicy",
>
>                             "deploymentPolicy": "static-1"
>
>                         },
>
>                         "type": "cartridge1"
>
>                     },
>
>                     {
>
>                         "cartridgeMax": 10,
>
>                         "cartridgeMin": 1,
>
>                         "subscribableInfo": {
>
>                             "alias": "cartridge2-1x0",
>
>                             "artifactRepository": {
>
>                                 "privateRepo": true,
>
>                                 "repoPassword": "c-policy-2",
>
>                                 "repoUrl": "
> http://xxx:10080/git/default.git";,
>
>                                 "repoUsername": "user"
>
>                             },
>
>                             "autoscalingPolicy": "economyPolicy",
>
>                             "deploymentPolicy": "static-1"
>
>                         },
>
>                         "type": "cartridge2"
>
>                     }
>
>                 ],
>
>                 "groups": [
>
>                     {
>
>                         "alias": "slice-1x0",
>
>                         "cartridges": [
>
>                             {
>
>                                 "cartridgeMax": 10,
>
>                                 "cartridgeMin": 1,
>
>                                 "subscribableInfo": {
>
>                                     "alias": "cartridge-proxy-2x0",
>
>                                     "artifactRepository": {
>
>                                         "privateRepo": true,
>
>                                         "repoPassword": "c-policy-1a",
>
>                                         "repoUrl": "
> http://xxx:10080/git/default.git";,
>
>                                         "repoUsername": "user"
>
>                                     },
>
>                                     "autoscalingPolicy": "economyPolicy",
>
>                                     "deploymentPolicy": "static-1"
>
>                                 },
>
>                                 "type": "cartridge-proxy"
>
>                             },
>
>                             {
>
>                                 "cartridgeMax": 10,
>
>                                 "cartridgeMin": 1,
>
>                                 "subscribableInfo": {
>
>                                     "alias": "cisco-sample-vm-2x0",
>
>                                     "artifactRepository": {
>
>                                         "privateRepo": true,
>
>                                         "repoPassword": "c-policy-1b",
>
>                                         "repoUrl": "
> http://xxx:10080/git/default.git";,
>
>                                         "repoUsername": "user"
>
>                                     },
>
>                                     "autoscalingPolicy": "economyPolicy",
>
>                                     "deploymentPolicy": "static-1"
>
>                                 },
>
>                                 "type": "cisco-sample-vm"
>
>                             }
>
>                         ],
>
>                         "groups": [],
>
>                         "max": 1,
>
>                         "min": 1,
>
>                         "name": "slice-1x0"
>
>                     }
>
>                 ],
>
>                 "max": 2,
>
>                 "min": 1,
>
>                 "name": "blade-0x0"
>
>             }
>
>         ]
>
>     }
>
> }
>
>
>
>
>



-- 
Reka Thirunavukkarasu
Senior Software Engineer,
WSO2, Inc.:http://wso2.com,
Mobile: +94776442007

Reply via email to