Hi Shaheed, Found another good reference documentation page[1] and updated with the points for the application.
[1] https://cwiki.apache.org/confluence/display/STRATOS/4.1.0+Updating+Artifacts+that+Correspond+to+a+Deployed+Application On Fri, Jul 24, 2015 at 5:15 PM, Reka Thirunavukkarasu <r...@wso2.com> wrote: > Hi Shaheed, > > Sorry for the confusion..Application update didn't work properly when the > application is in CREATED state. It didn't bring up the correct topology > even the existing application got updated. We will fix this in the next > release. So, the points that you have mentioned are correct. Please keep > these points as the working items for the 4.1.0. > > 1. The Deployment policy “max” can be updated as needed. >> >> a. This controls the overall limit on the maximum number of >> cartridges on a region+partition basis for each cartridge using this policy. >> >> 2. The Application can only be updated when in deployed state. >> > 3. The supported changes are to cartridgeMin/cartridgeMax and/or >> groupMinInstances/groupMaxInstances. >> >> a. For the groupMinInstances/groupMaxInstances to be usable, the >> initial setting must be such that Max > 1, otherwise the group scaling is >> disabled permanently. >> > Thanks, > Reka > > > On Fri, Jul 24, 2015 at 4:41 PM, Reka Thirunavukkarasu <r...@wso2.com> > wrote: > >> Thanks Shaheed for summarizing it..There is a small correction. Sorry..my >> bad..I gave wrong point earlier. I have checked the code and verified the >> functionality. Even application update is implemented when the application >> is in added state. >> >> On Fri, Jul 24, 2015 at 4:20 PM, Shaheedur Haque (shahhaqu) < >> shahh...@cisco.com> wrote: >> >>> So, let me see if I can summarise the rules: >>> >>> >>> >> Is this correct? Did I miss something? If this is OK, I’d like to find a >>> home for this information in the docs, but I did not see an obvious page. >>> Can somebody kindly suggest one? (Maybe under the Advanced User Guide >>> section?) >>> >> >> We have only following page currently. We will include the points that >> you have mentioned here also to the page. >> >> [1] >> https://cwiki.apache.org/confluence/display/STRATOS/4.1.0+Updating+an+Application >> >> [2] >> https://cwiki.apache.org/confluence/display/STRATOS/4.1.0+Updating+a+Network+Partition >> >> Thanks, >> Reka >> >>> >>> >>> Thanks, Shaheed >>> >>> >>> >>> *From:* Martin Eppel (meppel) >>> *Sent:* 23 July 2015 17:25 >>> *To:* dev@stratos.apache.org >>> *Subject:* RE: 4.1 Stratos testig: clarifying application update API >>> >>> >>> >>> Thanks Reka for the clarification, I’ll update my test case accordingly >>> >>> >>> >>> *From:* Reka Thirunavukkarasu [mailto:r...@wso2.com <r...@wso2.com>] >>> *Sent:* Wednesday, July 22, 2015 11:50 PM >>> *To:* dev >>> *Subject:* Re: 4.1 Stratos testig: clarifying application update API >>> >>> >>> >>> Hi Martin, >>> >>> As we tested the scenario along with your sample, we found out that in >>> the initial application, you were using groupMinInstances=1 and >>> groupMaxInstances=1 which means that stratos took that decision saying >>> groupScaling is disabled for this particular group. After that when you >>> update this particular group with groupMinInstances=2 and >>> groupMaxInstances=2, stratos should take the decision back that >>> groupScaling is enabled for this group which is not possible at the moment. >>> Stratos can't change the groupScaling decision dynamically due to the >>> design. >>> >>> But you can achieve group update, if you use the groupMinInstances=1 and >>> groupMaxInstances=2 for the initial application and then if you update with >>> groupMinInstances=2 and groupMaxInstances=2, it will bring one additional >>> group instance. >>> >>> Please note that GroupScaling is decided by stratos as true only when >>> groupMaxInstances > 1 >>> >>> >>> >>> Hope you understand how the group instance update works. Please let me >>> know, if you need more clarification on this. >>> >>> Thanks, >>> >>> Reka >>> >>> >>> >>> On Thu, Jul 23, 2015 at 3:12 AM, Martin Eppel (meppel) <mep...@cisco.com> >>> wrote: >>> >>> Sorry, forgot to attach the log file … >>> >>> >>> >>> *From:* Martin Eppel (meppel) >>> *Sent:* Wednesday, July 22, 2015 2:41 PM >>> *To:* dev@stratos.apache.org >>> *Subject:* RE: 4.1 Stratos testig: clarifying application update API >>> >>> >>> >>> Hi Reka, Pubudu >>> >>> >>> >>> I tested a scenario where I update group groupMinInstances/groupMaxInstances >>> (which according the email thread should ?!). >>> >>> However, what I observed is that after updating >>> groupMinInstances/groupMaxInstances >>> (from 1 to 2) no new group is created. >>> >>> >>> >>> Here are the application definitions and log is attached >>> (scenario starts with: TID: [0] [STRATOS] [2015-07-22 18:53:37,099] >>> INFO {org.apache.stratos.autoscaler.services.impl.AutoscalerServiceImpl} - >>> Adding application: [application-id] sub-app-update-4) >>> >>> >>> >>> Application deployed (groupMin/Max = 1): >>> >>> >>> >>> 2015-07-22 11:53:37,217 libmultiiaas.octl DEBUG: Stratos format >>> Application: >>> >>> {"alias": "sub-app-update-4", "applicationId": "sub-app-update-4", >>> "components": {"cartridges": [], "groups": [{"name": "sub-app-update-4", >>> "groupMaxInstances": 1, "groupMinInstances": 1, "alias": >>> "sub-app-update-4-x0x", "cartridges": [{"cartridgeMin": 1, "cartridgeMax": >>> 1, "type": "c1", "subscribableInfo": {"alias": "c1-0x0", >>> "deploymentPolicy": "static-3", "autoscalingPolicy": "economyPolicy"}}], >>> "groups": [{"name": "application-update-4-2", "groupMaxInstances": 1, >>> "groupMinInstances": 1, "alias": "application-update-4-2-0x0", >>> "cartridges": [{"cartridgeMin": 1, "cartridgeMax": 1, "type": "c2", >>> "subscribableInfo": {"alias": "c2-1x0", "deploymentPolicy": "static-2", >>> "autoscalingPolicy": "economyPolicy"}}], "groups": []}]}]}} >>> >>> >>> >>> 2015-07-22 11:53:37,540 libmultiiaas.octl INFO: Application added >>> successfully: [application] sub-app-update-4 >>> >>> 2015-07-22 11:53:37,770 libmultiiaas.octl DEBUG: Application deployed >>> successfully: [application] sub-app-update-4 >>> >>> 2015-07-22 11:53:37,825 libmultiiaas.octl INFO: Deploying Application >>> sub-app-update-4 state Deployed after 0 s >>> >>> 2015-07-22 11:53:39,826 libmultiiaas.octl DEBUG: Application deployed >>> successfully: [application] sub-app-update-4 >>> >>> 2015-07-22 11:53:39,826 root INFO: Application deployed successfully: >>> [application] sub-app-update-4 >>> >>> >>> >>> >>> >>> Updated application (groupMin/Max = 2): >>> >>> >>> >>> {"alias": "sub-app-update-4", "applicationId": "sub-app-update-4", >>> "components": {"cartridges": [], "groups": [{"name": "sub-app-update-4", >>> "groupMaxInstances": 1, "groupMinInstances": 1, "alias": >>> "sub-app-update-4-x0x", "cartridges": [{"cartridgeMin": 1, "cartridgeMax": >>> 1, "type": "c1", "subscribableInfo": {"alias": "c1-0x0", >>> "deploymentPolicy": "static-3", "autoscalingPolicy": "economyPolicy"}}], >>> "groups": [{"name": "application-update-4-2", "groupMaxInstances": 2, >>> "groupMinInstances": 2, "alias": "application-update-4-2-0x0", >>> "cartridges": [{"cartridgeMin": 1, "cartridgeMax": 1, "type": "c2", >>> "subscribableInfo": {"alias": "c2-1x0", "deploymentPolicy": "static-2", >>> "autoscalingPolicy": "economyPolicy"}}], "groups": []}]}]}} >>> >>> >>> >>> 2015-07-22 12:03:14,356 libmultiiaas.octl INFO: Application updated >>> successfully: [application] sub-app-update-4 >>> >>> 2015-07-22 12:03:14,356 root INFO: {u'status': u'success', u'message': >>> u'Application updated successfully: [application] sub-app-update-4'} >>> >>> >>> >>> Application after update: >>> >>> >>> >>> >>> >>> This is what I would have expected after the application update: >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> Please let me know if there is an issue or updating runtime >>> groupMinInstances/groupMaxInstances is currently not supported, >>> >>> >>> >>> Thanks >>> >>> >>> >>> Martin >>> >>> >>> >>> >>> >>> >>> >>> *From:* Reka Thirunavukkarasu [mailto:r...@wso2.com <r...@wso2.com>] >>> >>> *Sent:* Tuesday, July 21, 2015 11:25 PM >>> *To:* dev >>> *Subject:* Re: 4.1 Stratos testig: clarifying application update API >>> >>> >>> >>> Hi Martin, >>> >>> As Pubudu explained, those are the expected steps and the result of the >>> application update. *Application Runtime* can only be updated with >>> cartridgeMin/cartridgeMax and/or with groupMinInstances/groupMaxInstances. >>> Even if you update other parameters, it will get ignored by the back end. >>> >>> Please note that you can update application only when it is in deployed >>> mode. After application is created, if you need to update, then you will >>> have to delete the application and create it again. Currently application >>> update is not available when the application is in created mode. >>> >>> Thanks, >>> >>> Reka >>> >>> >>> >>> On Wed, Jul 22, 2015 at 11:29 AM, Pubudu Gunatilaka <pubu...@wso2.com> >>> wrote: >>> >>> Hi Martin, >>> >>> >>> >>> You can update only carridgeMin and cartridgeMax at runtime in >>> application update. Even you can update the deployment policy which uses >>> the application. But you cannot change the deployment policy in application >>> at runtime. >>> >>> >>> >>> In your case, as you have used two different deployment policies, it >>> won't work. It will use the previous deployment policy. I have tested >>> following scenario. >>> >>> >>> >>> 1. Use the deployment policy with partition max as 1. >>> >>> 2. Deploy the application with cartridgeMin 1. >>> >>> 3. Update the same deployment policy with partition max 2. >>> >>> 4. Update application at runtime to cartridgeMin 2. >>> >>> 4. Another instance spawned successfully. >>> >>> >>> >>> Thank you! >>> >>> >>> >>> >>> >>> On Wed, Jul 22, 2015 at 9:25 AM, Martin Eppel (meppel) <mep...@cisco.com> >>> wrote: >>> >>> Hi, >>> >>> >>> >>> I am currently testing the API to update an application (most notably to >>> update the cartridge cartridgeMin / cartridgeMax in a cartridge deployment >>> policy). >>> >>> >>> >>> My main question is which are the parameters which are currently >>> supported to be updated as part of application update. >>> >>> >>> >>> I have tested updating (increasing the value) of cartridge cartridgeMin >>> / cartridgeMax of a cartridge policy which works fine, as long as the >>> cartridge deployment policy is correspondingly configured: >>> >>> >>> >>> e.g. updating min/max from 1/1 to 2/2 and (using the deployment policy >>> “static-2”) with a partitionMax set to 2. >>> >>> >>> >>> However, updating the deployment policy either not supported or fails to >>> work. >>> >>> >>> >>> For example, if I start initially with cartridgeMin / cartridgeMax = 1 >>> and a deployment policy “static-1” (with a partitionMax set to 1) and >>> then update the cartridge policy cartridgeMin / cartridgeMax = 2 and >>> the deployment policy “static-2” ( with a partitionMax set to 2) the >>> cartridge instances are not properly spun up to 2. >>> >>> >>> >>> I am not sure if updating the deployment policy (or any other parameters >>> beyond min / max in the cartridge policy, e.g min / max in group policy etc >>> …) is currently supported or not, which brings me back to my initial >>> question which parameters are supported as part of application “update”, >>> please clarify. >>> >>> >>> >>> Also, is the case supported when decreasing the values, e.g. updating >>> the cartridgeMin / cartridgeMax = 2 to 1 ? >>> >>> >>> >>> Just in case I attached the policy files and log to the email, >>> application, cartridge group json see below inline >>> >>> >>> >>> Thanks >>> >>> >>> >>> Martin >>> >>> >>> >>> Before application update: >>> >>> Application json: >>> >>> {"alias": "sub-app-update-1", "applicationId": "sub-app-update-1", >>> "components": {"cartridges": [], "groups": [{"name": "sub-app-update-1", >>> "groupMaxInstances": 1, "groupMinInstances": 1, "alias": >>> "sub-app-update-1-x0x", "cartridges": [{"cartridgeMin": 1, >>> "cartridgeMax": 1, "type": "c1", "subscribableInfo": {"alias": >>> "c1-0x0", "deploymentPolicy": "static-1", "autoscalingPolicy": >>> "economyPolicy"}}], "groups": []}]}} >>> >>> >>> >>> Cartridge-group.json: >>> >>> {"name": "sub-app-update-1", "dependencies": {"terminationBehaviour": >>> "terminate-none", "startupOrders": []}, "cartridges": ["c1"], "groups": []} >>> >>> >>> >>> application update json: >>> >>> >>> >>> {"alias": "sub-app-update-1", "applicationId": "sub-app-update-1", >>> "components": {"cartridges": [], "groups": [{"name": "sub-app-update-1", >>> "groupMaxInstances": 1, "groupMinInstances": 1, "alias": >>> "sub-app-update-1-x0x", "cartridges": [{"cartridgeMin": 2, >>> "cartridgeMax": 2, "type": "c1", "subscribableInfo": {"alias": >>> "c1-0x0", "deploymentPolicy": "static-2", "autoscalingPolicy": >>> "economyPolicy"}}], "groups": []}]}} >>> >>> >>> >>> >>> >>> Deployment policies (attached): >>> >>> >>> >>> static-1.json, static-2.json >>> >>> >>> >>> Application (before / after update): >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> -- >>> >>> *Pubudu Gunatilaka* >>> >>> Software Engineer >>> >>> WSO2, Inc.: http://wso2.com >>> >>> lean.enterprise.middleware >>> >>> mobile: +94 77 4078049 >>> >>> >>> >>> >>> -- >>> >>> Reka Thirunavukkarasu >>> Senior Software Engineer, >>> WSO2, Inc.:http://wso2.com, >>> >>> Mobile: +94776442007 >>> >>> >>> >>> >>> >>> >>> -- >>> >>> Reka Thirunavukkarasu >>> Senior Software Engineer, >>> WSO2, Inc.:http://wso2.com, >>> >>> Mobile: +94776442007 >>> >>> >>> >> >> >> >> -- >> Reka Thirunavukkarasu >> Senior Software Engineer, >> WSO2, Inc.:http://wso2.com, >> Mobile: +94776442007 >> >> >> > > > -- > Reka Thirunavukkarasu > Senior Software Engineer, > WSO2, Inc.:http://wso2.com, > Mobile: +94776442007 > > > -- Reka Thirunavukkarasu Senior Software Engineer, WSO2, Inc.:http://wso2.com, Mobile: +94776442007