Hi, Curious to know couple of things..
Will this be available for stand-alone products as well? tenant-deletion is a requirement for stand-alone products as well, so it would be good if this is available in stand-alone products as well. Where will the development happen? For Carbon trunk, the tenant-mgt code can be found here [1] and the tenant-mgt code is no longer available in Stratos. Will you also be using the trunk? [1] https://github.com/wso2/carbon-multitenancy/tree/master/components/tenant-mgt Thanks, KasunG On Sat, Aug 23, 2014 at 8:40 PM, Amila Maha Arachchi <[email protected]> wrote: > > > > On Sat, Aug 23, 2014 at 3:12 AM, Dimuthu Leelarathne <[email protected]> > wrote: > >> >> >> >> On Fri, Aug 22, 2014 at 10:01 PM, Godwin Amila Shrimal <[email protected]> >> wrote: >> >>> >>> Hi Amila, >>> >>> >>> As per the discussion we had with Dimuthu and AF team. Listed below the >>> decision made to implement this. >>> >>> >>> 1. Add onDelete() and onPreDelete() methods to TenantMgtListener >>> interface >>> >> >> Add the onPreDelete() method to TenantMgtListener interface and call that >> method from the deleteTenant of the TenantMgtService. I don't see the point >> of adding onDelete method to TenantMgtListenter interface currently. >> > > I see couple of problems with this approach. > > 1. Since this involved an interface change, we are going to get trouble > when using this with existing products in our setup. We'll have to patch > their tenant.mgt code and all implementations of the listener. > 2. Even if we add the onPreDelete method, it will only execute the > implementation classes in that jvm only. So, if I call the deleteTenant > method in AF, it won't affect other products such as SS, Jenkins AS, > Stratos Manager. This will end of tenants' bits and pieces remaining in > other products even after we delete the tenant. > > Do we have a solution for this? > >> >> >> >>> >>> >> 2. Implement those methods in AppFactoryTenantMgtListener as we discussed. >>> >>> 3. We don’t use any BPEL implementation and use the existing listeners >>> to implement this >>> >>> 4. Future Cloud products can implement the onDelete() and onPreDelete() >>> methods in TenantMgtListener interface >>> >>> >>> >> thanks, >> dimuthu >> >> >> >>> Please share your feedback on this. >>> >>> Thanks >>> Godwin >>> >>> >>> >>> >>> >>> >>> On Fri, Aug 22, 2014 at 6:09 PM, Amila Maha Arachchi <[email protected]> >>> wrote: >>> >>>> +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 >>>> >>>> >>> >>> >>> -- >>> *Godwin Amila Shrimal* >>> Senior Software Engineer >>> WSO2 Inc.; http://wso2.com >>> lean.enterprise.middleware >>> >>> mobile: *+94772264165* >>> linkedin: *http://lnkd.in/KUum6D <http://lnkd.in/KUum6D>* >>> twitter: https://twitter.com/godwinamila >>> >> >> >> >> -- >> Dimuthu Leelarathne >> Architect & Product Lead of App Factory >> >> WSO2, Inc. (http://wso2.com) >> email: [email protected] >> Mobile : 0773661935 >> >> Lean . Enterprise . Middleware >> > > > > -- > *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 > > -- *Kasun Gajasinghe*Senior Software Engineer, WSO2 Inc. email: kasung AT spamfree wso2.com linked-in: http://lk.linkedin.com/in/gajasinghe blog: http://kasunbg.org
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
