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

Reply via email to