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 : [email protected] / [email protected]
phone : +94 772492511
blog : http://manulachathurika.blogspot.com/