Hi Martin,

As Udara and Lakmal mentioned, it's easy for the readability. Otherwise we
have to scroll up and down to find out the subscribe info about the
particular cartridge. When the JSON get large it's difficult.

Thanks !


On Tue, Dec 2, 2014 at 9:34 AM, Lakmal Warusawithana <lak...@wso2.com>
wrote:

>
>
> On Tue, Dec 2, 2014 at 9:20 AM, Udara Liyanage <ud...@wso2.com> wrote:
>
>> Hi,
>>
>> Defining inline improves readability since all subscription information
>> are in same place, no need to go up and down to see all information.
>>
>>
> Yes, it easy to understand whole application while looking at glance IMO.
>
>
>> 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?
>>>
>>>
>>>
>>> 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/
>>>
>>>
>>>
>>>
>>
>>
>> --
>>
>> Udara Liyanage
>> Software Engineer
>> WSO2, Inc.: http://wso2.com
>> lean. enterprise. middleware
>>
>> web: http://udaraliyanage.wordpress.com
>> phone: +94 71 443 6897
>>
>
>
>
> --
> Lakmal Warusawithana
> Vice President, Apache Stratos
> Director - Cloud Architecture; WSO2 Inc.
> Mobile : +94714289692
> Blog : http://lakmalsview.blogspot.com/
>
>


-- 
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/

Reply via email to