+1 for preOnDelete method. Actually there is a place which has this kind of an implementation. Thats the user.core. So, we can learn from it and do this implementation.
BTW, Mahesh, can you post what did you agreed online+offline? On Fri, Aug 22, 2014 at 4:51 PM, Mahesh Chinthaka <[email protected]> wrote: > Thanks Dimuthu, Danushka & Ajanthan for your feedback. > We will do this with the approach discussed online+offline. > > > On Fri, Aug 22, 2014 at 10:59 AM, Danushka Fernando <[email protected]> > wrote: > >> Hi >> +1 for the OnPreDelete concept. But the thing is we don't have this Pre >> and Post events anywhere in platform. I think that's something we should >> consider about. WDYT? >> >> Thanks & Regards >> Danushka Fernando >> Software Engineer >> WSO2 inc. http://wso2.com/ >> Mobile : +94716332729 >> >> >> On Fri, Aug 22, 2014 at 9:14 AM, Dimuthu Leelarathne <[email protected]> >> wrote: >> >>> Hi Mahesh all, >>> >>> Lets consider Carbon Platform aspect first. >>> >>> Before we remove tenant from user core and registry, we have to delete >>> it from all other places. So +1 for the interface that would allow >>> different product teams to clean up their cleanup process, but here is what >>> I recommend, >>> >>> We need a method call "onPreDelete()" on TenantMgtListener. This is to >>> allow all product teams to implement it. So the first rule of thumb is, if >>> any product is moving to cloud they must implement this method and prove >>> that they clean up the tenant before they move to WSO2Cloud. >>> >>> So basically, in tenant.core what you have to do is call all OSGi >>> registered TenantMgtListener's onPreDelete(), and after that delete from >>> registry and finally user.core. >>> >>> That would be the most elegant and extensible fix for platform. >>> >>> Now we come to AF as a product/solution. We have to implement >>> onPreDelete() method. So we as a product team should decide whether we are >>> going to implement it from BPEL or not. So as a product in order to be >>> WSO2Cloud friendly we have to implement onPreDelete() method. From what I >>> feel, I believe the way to do is code + BPEL. >>> >>> thanks, >>> dimuthu >>> >>> >>> On Fri, Aug 22, 2014 at 7:26 AM, Ajanthan Balachandran < >>> [email protected]> wrote: >>> >>>> >>>> >>>> >>>> On Fri, Aug 22, 2014 at 5:48 AM, Danushka Fernando <[email protected]> >>>> wrote: >>>> >>>>> Hi Ajanthan >>>>> Problem with OnDelete is it is called after tenant deleted (After >>>>> deleting userstore and registry). But we need to cleanup before that >>>>> otherwise we cannot call admin services since tenant is not there. As per >>>>> I >>>>> mentioned in the previous thread we need to call this at a OnPreDelete. >>>>> >>>> IMO OnDelete method should be called as first step. >>>> >>>>> @Mahesh : I think you have missed delete applications step. And delete >>>>> applications step would Issue tracker details as well I guess. @ Ajanthan >>>>> : >>>>> Correct me if I am wrong. >>>>> >>>> Looping through each applications and deleting will not be a salable >>>> solution. >>>> >>>>> Thanks & Regards >>>>> Danushka Fernando >>>>> Software Engineer >>>>> WSO2 inc. http://wso2.com/ >>>>> Mobile : +94716332729 >>>>> >>>>> >>>>> On Thu, Aug 21, 2014 at 8:46 PM, Ajanthan Balachandran < >>>>> [email protected]> wrote: >>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Thu, Aug 21, 2014 at 8:24 PM, Mahesh Chinthaka <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> Hi Everyone, >>>>>>> >>>>>>> >>>>>>> We are working on the Training Project -[Cloud] Tenant deletion >>>>>>> code/script for cloud - https://redmine.wso2.com/issues/3121. >>>>>>> Listed below the workflow of the tenant deletion process in the App >>>>>>> Cloud >>>>>>> as we identified. >>>>>>> >>>>>>> 1. Undeploy Jenkins web app from application server >>>>>>> >>>>>>> 2. Delete Git repository (use gitblit api to delete repo in Git) >>>>>>> >>>>>>> 3. Unsubscribe Stratos using Stratos Rest Services >>>>>>> >>>>>>> 4. Check database created by RSSAdmin and delete them >>>>>>> >>>>>>> 5. Perform TenantMgtAdminService deleteTenant operation >>>>>>> >>>>>>> - >>>>>>> >>>>>>> i. Delete Billing data >>>>>>> ii. Delete Tenant Registration Data (Ex. REG_CLUSTER_LOCK, >>>>>>> REG_LOG) >>>>>>> iii. Delete Tenant User management data (Ex. UM_USER_PERMISSION, >>>>>>> UM_USER) >>>>>>> iv. Remove Tenant information from cache >>>>>>> v. Delete UM_TENANT table >>>>>>> >>>>>>> >>>>>>> >>>>>>> Don't you need to cleanup issue tracker? >>>>>> >>>>>>> As per the analysis there are two solutions we have identified to >>>>>>> implement this , such as BPEL and Carbon Component. We thought of going >>>>>>> for >>>>>>> a *carbon component* implementation rather than using a* BPEL* due >>>>>>> to following reasons. >>>>>>> >>>>>>> 1. Plugging a Carbon Component will give more extensibility to >>>>>>> implement Tenant Deletion operation in future Cloud base products >>>>>>> >>>>>>> 2. If we used a BPEL we will have to reconstruct at each time when >>>>>>> we meet a new requirement (ex: esb cloud integration). >>>>>>> >>>>>>> >>>>>>> Proposed Solution >>>>>>> >>>>>> Why can't you use existing TenantMgtListener and add onDelete >>>>>> method.It also has ListenerOrder and every implementation should be >>>>>> registered as OSGI service. >>>>>> >>>>>>> >>>>>>> 1. Create an abstraction for delete operation >>>>>>> >>>>>>> public interface TenantDeletion{ >>>>>>> >>>>>>> public void onDeletion(); >>>>>>> >>>>>>> } >>>>>>> >>>>>>> 2. Implement TenantDeletion for each operations >>>>>>> >>>>>>> public class JenkinsAppUndeployer implements TenantDeletion{ >>>>>>> >>>>>>> public void onDeletion(){ >>>>>>> >>>>>>> //Implementation of the JenkinsApp undeploy process >>>>>>> >>>>>>> } >>>>>>> >>>>>>> } >>>>>>> >>>>>>> 3. Use a configuration file to maintain the execution order which >>>>>>> help to dynamically add new requirement >>>>>>> >>>>>>> <ExecutionOrder> >>>>>>> >>>>>>> <class name=”org.wso2.cloud.tenant.JenkinsAppUndeployer”></class> >>>>>>> >>>>>>> <class name=”org.wso2.cloud.tenant.GitRepoRemover”></class> >>>>>>> >>>>>>> <class name=”org.wso2.cloud.tenant.XXXXXX”></class> >>>>>>> >>>>>>> </ExecutionOrder> >>>>>>> >>>>>>> >>>>>>> We are looking for a feedback on this to move forward with selected >>>>>>> design. >>>>>>> >>>>>>> -- >>>>>>> Mahesh Chinthaka >>>>>>> Software Engineer , WSO2. >>>>>>> >>>>>>> Phone : (+94) 71 63 63 083 >>>>>>> Email : [email protected] >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Architecture mailing list >>>>>>> [email protected] >>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> ajanthan >>>>>> -- >>>>>> Ajanthan Balachandiran >>>>>> Senior Software Engineer; >>>>>> Solutions Technologies Team ;WSO2, Inc.; http://wso2.com/ >>>>>> >>>>>> email: ajanthan <http://goog_595075977>@wso2.com; cell: +94775581497 >>>>>> blog: http://bkayts.blogspot.com/ >>>>>> >>>>>> Lean . Enterprise . Middleware >>>>>> >>>>>> _______________________________________________ >>>>>> Architecture mailing list >>>>>> [email protected] >>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>>> >>>>>> >>>>> >>>>> _______________________________________________ >>>>> Architecture mailing list >>>>> [email protected] >>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>> >>>>> >>>> >>>> >>>> -- >>>> ajanthan >>>> -- >>>> Ajanthan Balachandiran >>>> Senior Software Engineer; >>>> Solutions Technologies Team ;WSO2, Inc.; http://wso2.com/ >>>> >>>> email: ajanthan <http://goog_595075977>@wso2.com; cell: +94775581497 >>>> blog: http://bkayts.blogspot.com/ >>>> >>>> Lean . Enterprise . Middleware >>>> >>>> _______________________________________________ >>>> Architecture mailing list >>>> [email protected] >>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>> >>>> >>> >>> >>> -- >>> Dimuthu Leelarathne >>> Architect & Product Lead of App Factory >>> >>> WSO2, Inc. (http://wso2.com) >>> email: [email protected] >>> Mobile : 0773661935 >>> >>> Lean . Enterprise . Middleware >>> >>> _______________________________________________ >>> Architecture mailing list >>> [email protected] >>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>> >>> >> >> _______________________________________________ >> Architecture mailing list >> [email protected] >> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >> >> > > > -- > Mahesh Chinthaka > Software Engineer , WSO2. > > Phone : (+94) 71 63 63 083 > Email : [email protected] > > _______________________________________________ > Architecture mailing list > [email protected] > https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture > > -- *Amila Maharachchi* Senior Technical Lead WSO2, Inc.; http://wso2.com Blog: http://maharachchi.blogspot.com Mobile: +94719371446
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
