OK, thanks for the explanation. In fact, this mirrors exactly my original 
proposal which was to have separate nestable group objects, so I like it.

However, I have now written the code to create a pre-flattened Application; are 
you saying that is NOT supported? So what *exactly* can or must an Application 
contain?

From: Reka Thirunavukkarasu [mailto:[email protected]]
Sent: Tuesday, March 17, 2015 7:17 PM
To: dev
Subject: Re: What is a Cartridge Group in Stratos 4.1.0?

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]<mailto:[email protected]>> wrote:
Reposting to main mailer…

From: Shaheedur Haque (shahhaqu)
Sent: Tuesday, March 17, 2015 10:29 AM
To: [email protected]<mailto:[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<tel:%2B94776442007>

Reply via email to