On Thu, Aug 21, 2014 at 8:24 PM, Mahesh Chinthaka <mahe...@wso2.com> 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 : mahe...@wso2.com
>
> _______________________________________________
> Architecture mailing list
> Architecture@wso2.org
> 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
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to