Hi Martin,

On Mon, Dec 1, 2014 at 10:04 PM, Martin Eppel (meppel) <mep...@cisco.com>
wrote:

>  Hi Manula,
>
>
>
> What is the reason that we change the application format – we used to
> define the cartridge subscription info in a separate section
> ("subscribableInfo": )  instead inline?
>
 IMHO this format is more readable and clear. AFAIK, we used the previous
format to reduce the complexity of the JSON definition and make it less
nested. This made the parsing logic complex, made the application
definition less intuitive and less readable. In real world, we might rarely
come across situations where we need more than one or two levels of
recursion (nested groups). Therefore, +1 from me for this change.

>
>
> See sample below:
>
>
>
>
>
>   "applicationId": "test_app5",
>
>   "alias": "myapp5",
>
>   "components": {
>
>     "groups": [
>
>     ],
>
>     "subscribables": [
>
>       {
>
>         "type": "cisco-sample-vm",
>
>         "alias": "c1xxx"
>
>       }
>
>     ]
>
>   },
>
>   "subscribableInfo": [
>
>     {
>
>       "alias": "c1xxx",
>
>       "deploymentPolicy": "static-1-Core",
>
>       "autoscalingPolicy": "economyPolicy",
>
>       "privateRepo": "true",
>
>       "repoPassword": "password",
>
>       "repoURL": "http://xxx:10080/git/default.git";,
>
>       "repoUsername": "user"
>
>     }
>
>   ]
>
> }
>
>
>
> *From:* Manula Chathurika Thantriwatte [mailto:manu...@wso2.com]
> *Sent:* Monday, December 01, 2014 4:20 AM
> *To:* dev@stratos.apache.org
> *Subject:* [Discuss] Groups and Application JSON formats in Stratos 4.1.0
>
>
>
> Hi All,
>
>
>
> I have started working on $subject. Here I have came up with the more
> readable way of the new groups definition JSON and the application JSON
> format. Both of this support nested group definitions. Below I have listed
> the high level format of the application and group JSON format.
>
>
>
> Application JSON format;
>
>
>
> · applicationId
>
> · alias
>
> · components
>
> · groups
>
> · name
>
> · alias
>
> · min/max
>
> · group scaling enable/disable
>
> · cartridges
>
> · min/max
>
> · subscribable info
>
> · groups
>
> · alias
>
> · min/max
>
> · group scaling enable/disable
>
> · cartridges
>
> · min/max
>
> · subscribable info
>
> · cartridges
>
> · min/max
>
> · subscribable info
>
> · dependencies
>
> · startup order
>
> · termination behavior
>
> · dependent scaling
>
>
>
> Group JSON format;
>
>
>
> · name
>
> · groups
>
> · name
>
> · cartridges
>
> · dependencies
>
> · cartridges
>
> · dependencies
>
>
>
> Below I have listed the sample JSON files as well.
>
>
>
> Application JSON :
>
>
>
> {
>
>    "applicationId":"test_app5",
>
>    "alias":"myapp5",
>
>    "components":{
>
>       "groups":[
>
>          {
>
>             "name":"group2",
>
>             "alias":"group2alias",
>
>             "groupMinInstances":1,
>
>             "groupMaxInstances":2,
>
>             "isGroupScalingEnabled":"false",
>
>             "cartridges":[
>
>                {
>
>                   "type":"tomcat",
>
>                   "cartridgeMin":1,
>
>                   "cartridgeMax":2,
>
>                   "subscribableInfo":{
>
>                      "alias":"alias2",
>
>                      "autoscalingPolicy":"autoscale_policy_1",
>
>                      "privateRepo":"true",
>
>                      "repoPassword":"password",
>
>                      "repoURL":"http://xxx:10080/git/default.git";,
>
>                      "repoUsername":"user"
>
>                   }
>
>                }
>
>             ],
>
>             "groups":[
>
>                {
>
>                   "name":"group1",
>
>                   "alias":"group1alias",
>
>                   "groupMinInstances":2,
>
>                   "groupMaxInstances":5,
>
>                   "isGroupScalingEnabled":"true",
>
>                   "cartridges":[
>
>                      {
>
>                         "type":"tomcat1",
>
>                         "cartridgeMin":1,
>
>                         "cartridgeMax":2,
>
>                         "subscribableInfo":{
>
>                            "alias":"alias3",
>
>                            "autoscalingPolicy":"autoscale_policy_1",
>
>                            "privateRepo":"true",
>
>                            "repoPassword":"password",
>
>                            "repoURL":"http://xxx:10080/git/default.git";,
>
>                            "repoUsername":"user"
>
>                         }
>
>                      }
>
>                   ]
>
>                }
>
>             ]
>
>          }
>
>       ],
>
>       "cartridges":[
>
>          {
>
>             "type":"tomcat",
>
>             "cartridgeMin":1,
>
>             "cartridgeMax":2,
>
>             "subscribableInfo":{
>
>                "alias":"alias1",
>
>                "autoscalingPolicy":"autoscale_policy_1",
>
>                "privateRepo":"true",
>
>                "repoPassword":"password",
>
>                "repoURL":"http://xxx:10080/git/default.git";,
>
>                "repoUsername":"user"
>
>             }
>
>          }
>
>       ]
>
>    }
>
> }
>
>
>
> Group JSON :
>
>
>
> {
>
>    "name":"group2",
>
>    "groups":[
>
>       {
>
>          "name":"group1",
>
>          "cartridges":[
>
>             "tomcat1"
>
>          ],
>
>          "dependencies":{
>
>             "terminationBehaviour":"terminate-none"
>
>          }
>
>       }
>
>    ],
>
>    "cartridges":[
>
>       "tomcat"
>
>    ],
>
>    "dependencies":{
>
>       "startupOrders":[
>
>          "group1,tomcat"
>
>       ],
>
>       "terminationBehaviour":"terminate-dependents",
>
>       "scalingDependents":[
>
>          "group1,tomcat"
>
>       ]
>
>    }
>
> }
>
>
>
> Please share your thoughts.
>
>
>
> Thanks !
>
>
>
> --
>
> Regards,
>
> Manula Chathurika Thantriwatte
>
> Software Engineer
>
> WSO2 Inc. : http://wso2.com
>
> lean . enterprise . middleware
>
> email : manu...@wso2.com / man...@apache.org
>
> phone : +94 772492511
>
> blog : http://manulachathurika.blogspot.com/
>
> --
> <http://manulachathurika.blogspot.com/>
> Thanks and Regards,
>
> Isuru H.
> <http://manulachathurika.blogspot.com/>
> +94 716 358 048 <http://manulachathurika.blogspot.com/>*
> <http://wso2.com/>*
>
>
> * <http://wso2.com/>*
>
>
>

Reply via email to