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?
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:[email protected]]
Sent: Monday, December 01, 2014 4:20 AM
To: [email protected]
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 : [email protected]<mailto:[email protected]> /
[email protected]<mailto:[email protected]>
phone : +94 772492511
blog : http://manulachathurika.blogspot.com/