stratos-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Imesh Gunaratne <im...@apache.org>
Subject Re: What is a Cartridge Group in Stratos 4.1.0?
Date Wed, 18 Mar 2015 19:24:06 GMT
We had an offline discussion on this with Shaheed.

It looks like we may need to change the alias based dependency reference to
cartridge type and group name. More importantly we might need to consider
generating aliases internally by looking at the level and the index of the
hierarchy. Will post more information on this soon.

Thanks

On Wed, Mar 18, 2015 at 5:05 PM, Shaheedur Haque (shahhaqu) <
shahhaqu@cisco.com> wrote:

>  Correction: I see the examples do not support “separate nestable
> groups”, only “one flattened set of groups”. So now I am even more confused
> as to what the Application can/must contain.
>
>
>
> *From:* Shaheedur Haque (shahhaqu)
> *Sent:* Wednesday, March 18, 2015 10:21 AM
> *To:* dev
> *Subject:* RE: What is a Cartridge Group in Stratos 4.1.0?
>
>
>
> 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:reka@wso2.com <reka@wso2.com>]
> *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) <
> shahhaqu@cisco.com> wrote:
>
>  Reposting to main mailer…
>
>
>
> *From:* Shaheedur Haque (shahhaqu)
> *Sent:* Tuesday, March 17, 2015 10:29 AM
> *To:* dev@stratos.incubator.apache.org
> *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
>
>
>



-- 
Imesh Gunaratne

Technical Lead, WSO2
Committer & PMC Member, Apache Stratos

Mime
View raw message