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/