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



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

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

Reply via email to