HI Rajeevan, No GUI please. We are changing the whole user story here.
thanks, dimuthu On Wed, Dec 3, 2014 at 10:54 AM, Aiyadurai Rajeevan <rajeev...@wso2.com> wrote: > Hi Dimuthu/All, > > In addition to this mail conversation we had discussed this in an internal > forum, Here is the update of thatdiscussion.... > > As of today We are using appfactory.xml file for the runtime > configurations the below fraction is the the configuration properties. > > <ApplicationType name="*"> > > <ClassName> > org.wso2.carbon.appfactory.jenkins.deploy.JenkinsArtifactDeployer > </ClassName> > > <Endpoint>https://sc.s2.AF_HOST:9463/services/</Endpoint> > > <RepositoryProvider> > > <Property name="Class"> > > > org.wso2.carbon.appfactory.s4.integration.GITBlitBasedGITRepositoryProvider\ > > </Property> > > <Property name="BaseURL">https://gitblit.s2.wso2.com:8444/ > </Property> > > <Property name="URLPattern">{@stage}/as</Property> > > <Property name="AdminUserName">admin</Property> > > <Property name="AdminPassword">admin</Property> > > </RepositoryProvider> > > <Properties> > > <Property name="alias">asdev</Property> > > <Property name="cartridgeType">asdev</Property> > > <Property name="deploymentPolicy">af-deployment</Property> > > <Property name="autoscalePolicy">economy</Property> > > <Property name="repoURL"></Property> > > <Property name="dataCartridgeType"></Property> > > <Property name="dataCartridgeAlias"></Property> > > <Property name="subscribeOnDeployment">false</Property> > > </Properties> > > </ApplicationType> > > > *Proposed solution* > > *Part 1: -* In the above xml, Content which enclosed within the > *RepositoryProvider* are used to do the Pass artifact storage > configuration. Hence, As suggested we can keep this in the > *org.wso2.carbon.appfactory.jenkins.AppfactoryPluginManager.xml* file. > > *Part 2:- *Content which are enclosed within *Properties* tag are used > for the subscription. Hence, Below is the solution which we are proposing. > So, it would be more user friendly. > > There can be multi tenant subscriber and single tenant subscriber, Lets > focus on the multi tenant scenario here. > > *Step 1*: Create Tenant > > *Step 2*:Tenant Admin Login > > *Step 3*: Go to subscriber manager, This would be a GUI which let > the user to subscribe the needed Cartridge type, Environment(Dev,Test > &Prod), deploymentPolicy and autoscalePolicy. The GUI shall look like > below. > > > > > Here We can populate cartridge type, deploymentPolicy and autoscalePolicy > details from Stratos service. > > So user can select the needed details in the above GUI and click > subscribe, That will invoke a call to Stratos service for the cartridge > allocation and create Repo URL which will used to commit the code in s2Git. > Altogether there would be three URL for the 3 environments. > > > Appreciate your views in this approach please. > > Thanks & Regards, > S.A.Rajeevan > Software Engineer WSO2 Inc > E-Mail: rajeev...@wso2.com | Mobile : +94776411636 > > On Tue, Dec 2, 2014 at 12:27 PM, Dimuthu Leelarathne <dimut...@wso2.com> > wrote: > >> Hi Danushka, >> >> Please see my comments below. >> >> On Tue, Dec 2, 2014 at 12:01 PM, Danushka Fernando <danush...@wso2.com> >> wrote: >> >>> HI Dimuthu >>> Please find my comments inline >>> >>> >>> On Tue, Dec 2, 2014 at 8:45 AM, Dimuthu Leelarathne <dimut...@wso2.com> >>> wrote: >>> >>>> Hi Rajeevan, >>>> >>>> Please see my comments below. >>>> >>>> On Mon, Dec 1, 2014 at 10:46 PM, Aiyadurai Rajeevan <rajeev...@wso2.com >>>> > wrote: >>>> >>>>> Hi All, >>>>> >>>>> We are trying to implement a feature on AF which enables the user to >>>>> deploy their customized app types, Currently this configuration is >>>>> available in *appfactory.xml *under *<Deployer>* tag the content >>>>> would be as [1], likewise we have for each app types. Hence this wouldn't >>>>> be editable by the users and may not deploy their own app types. If we >>>>> move >>>>> out this [1] from *appfactory.xml* and put this in a configurable >>>>> file would enable the users to customize their need. >>>>> >>>>> When we analyzing the [1] we found out , The below content related to >>>>> Pass artifact storage configuration and common to all app types. >>>>> >>>>> <RepositoryProvider> >>>>> >>>>> <Property name="Class"> >>>>> >>>>> >>>>> org.wso2.carbon.appfactory.s4.integration.GITBlitBasedGITRepositoryProvider >>>>> >>>>> </Property> >>>>> >>>>> <Property name="BaseURL"> >>>>> https://gitblit.s2.wso2.com:8444/</Property> >>>>> >>>>> <Property name="URLPattern">{@stage}/as >>>>> </Property> >>>>> >>>>> <Property name="AdminUserName">admin</Property> >>>>> >>>>> <Property name="AdminPassword">admin >>>>> </Property> >>>>> >>>>> </RepositoryProvider> >>>>> >>>>> >>>> What is the other xml file are you talking about? Lets call it foo.xml. >>>> The only other place that require these information other than App Factory >>>> is Jenkins. So rather than putting these in separate xml file, I will put >>>> it in the appfactory-plugin.xml file. This is because Jenkins provide and >>>> inherent way to read appfactory-plugin.xml file and it doesn't give an >>>> inherent way to read foo.xml file. >>>> >>>> So at this stage the foo.xml file is only used in App Factory. You may >>>> merge it with appfactory.xml. The next question you may ask configuration >>>> duplication. I say puppet is the answer. >>>> >>>> If we have code to read foo.xml we have to put the code in both Jenkins >>>> side and AF side. I would rather use Jenkins inherent way of config files >>>> as oppose to duplicating code in both places and having a special file. >>>> >>> >>> I was thinking about moving outside the tag but keep it inside the same >>> appfactory.xml. We can pass these to jenkins through property bag when >>> deployment. >>> >>>> >>>> >>>> So we are planning to move this to a common configuration file and all >>>>> the application types can access that. >>>>> >>>>> In [1] below properties are not used. Hence, We shall get rid of that >>>>> from AF >>>>> >>>>> <Property name="minInstances">1</Property> >>>>> >>>>> <Property name="maxInstances">1</Property> >>>>> >>>>> <Property name="shouldActivate"></Property> >>>>> <Property name="subscribeOnDeployment">false >>>>> </Property> >>>>> >>>>> And the below properties are used. So, We can keep them in the >>>>> *apptype.xml* as we already have separate apptype.xml for each app >>>>> types.. >>>>> >>>> <Property name="alias">162dev</Property> >>>>> >>>>> <Property name="cartridgeType">162dev >>>>> </Property> >>>>> >>>>> <Property name="deploymentPolicy">af-deployment >>>>> </Property> >>>>> >>>>> <Property name="autoscalePolicy">economy >>>>> </Property> >>>>> >>>>> <Property name="repoURL"></Property> >>>>> >>>>> <Property name="dataCartridgeType"></Property> >>>>> >>>>> <Property name="dataCartridgeAlias"></Property> >>>>> >>>>> >>>>> >>>> >>>> >>>> What is the propose of having the below in apptype.xml itself? What if >>>> we move this to a different runtime.xml file? I am proposing because >>>> Runtime is a different concept that is required by App Factory.Let me prove >>>> it by example. If we use a different xml file for deployment(runtime), in >>>> future we can implement "multiple deployment environments very easily. For >>>> example consider the below relationship. >>>> >>> >>> What I thought the cartidgeType only being used. But seems all of them >>> used just for cartridge subscription. So we need a separate place to these >>> indeed. And IMO we should add support to add the cartridge configuration >>> file to the apptype as well. >>> >> >>>> AppType (1) ----------------- has ------------------> (n)Deployment >>>> Envs >>>> >>>> Question about this. Is it one to many or many to many. If it is many >>> to many its going to be complex I guess. In that case we cannot deploy the >>> deploy / runtime configs with apptype it self. And there should be a way to >>> map which runtimes are available to which apptype. If it is one to many >>> there will be same deployer mentioned in several app types. >>> >>> Should we focus on that feature here. If it is to implement many to many >>> relationship then we are doing that feature now. >>> >> >> You are correct in saying we need to concentrate on this current feature >> only. But since we are going to be doing refactoring anyway I propose to >> separate out Runtime concept gradually. There is no harm in adding a new >> meta data object saying Runtime. It can only do us good. Less refactoring >> in the future. >> >> Could you tell me why we need to add cartridge.xml to *.apptype archive >> itself? I prefer to keep it separate as a part of PaaS. And use Runtime >> object to refer to it. I don't want CartridgeInfo objects being used all >> over in our code. Rather I prefer to see Runtime being used because >> AppFactory and Stratos can evolve fairly independently. >> >> thanks, >> dimuthu >> >> >>> >>>> Right now it is 1 to 1 relationship. In future it is 1 to n >>>> relationship. So if we keep it in a separate XML the work we have to do is >>>> simply externalise the deployment xmls to support the below scenario. >>>> >>>> For example consider app creation page. >>>> >>>> There is a "Application Type" drop down. In future we are going to have >>>> "Runtimes" drop down. So if we have deployment as a separate concept in the >>>> architecture it is going to be much better. >>>> >>>> thanks, >>>> dimuthu >>>> >>>> >>>> >>>>> Look forward your views in this. >>>>> >>>>> Thanks & Regards, >>>>> S.A.Rajeevan >>>>> Software Engineer WSO2 Inc >>>>> E-Mail: rajeev...@wso2.com | Mobile : +94776411636 >>>>> >>>> >>>> >>>> >>>> -- >>>> Dimuthu Leelarathne >>>> Architect & Product Lead of App Factory >>>> >>>> WSO2, Inc. (http://wso2.com) >>>> email: dimut...@wso2.com >>>> Mobile : 0773661935 >>>> >>>> Lean . Enterprise . Middleware >>>> >>> >>> Thanks & Regards >>> Danushka Fernando >>> Software Engineer >>> WSO2 inc. http://wso2.com/ >>> Mobile : +94716332729 >>> >> >> >> >> -- >> Dimuthu Leelarathne >> Architect & Product Lead of App Factory >> >> WSO2, Inc. (http://wso2.com) >> email: dimut...@wso2.com >> Mobile : 0773661935 >> >> Lean . Enterprise . Middleware >> > > -- Dimuthu Leelarathne Architect & Product Lead of App Factory WSO2, Inc. (http://wso2.com) email: dimut...@wso2.com Mobile : 0773661935 Lean . Enterprise . Middleware
_______________________________________________ Architecture mailing list Architecture@wso2.org https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture