Hi Senaka,

We have an approach known as TenantMgtListener, where all the registered
listeners will get notified when a tenant is created or deleted. There are
methods (onPreDelete, onPostDelete, etc) that gets called by the tenant-mgt
core component during tenant deletion. So for all component specific data
deletion, we can use this listener approach. And from tenant-mgt/kernel
point of view, we only have to deal with the kernel level registry data,
when deleting a tenant.

@Shashika, can we have an update on this please? Where are we with registry
level tenant data deletion?

On Wed, Feb 25, 2015 at 7:35 PM, Senaka Fernando <sen...@wso2.com> wrote:

> Hi Shashika,
>
> So do you plan to create API methods on a per kernel component and per
> product component basis? I would find that rather scattered and hard to
> maintain. Though this looks justifiable from a kernel's point of view how
> would you repeat the same at a component level? My thought was that you'd
> be creating some new or adding to an existing component and you'll
> aggregate all tenant clean-up functionality in there making it easier to
> execute cross component operations. But, this is my personal viewpoint and
> it could be that I'm missing something.
>
> Thanks,
> Senaka.
>
> On Wed, Feb 25, 2015 at 10:21 AM, Shashika Karunatilaka <
> shashi...@wso2.com> wrote:
>
>> HI Senaka,
>>
>> Main reason for putting this method inside the kernel is, because when
>> creating a tenant all the user management data addition resides inside the
>> kernel, and all the registry related data addition reside inside the. and
>> each data deletion methods also reside inside the kernel, so this is the
>> main reason for putting this method inside kernel to delete all the tenant
>> registry data
>>
>> Thank you.
>>
>> On Wed, Feb 25, 2015 at 2:39 PM, Senaka Fernando <sen...@wso2.com> wrote:
>>
>>> Shashika,
>>>
>>> Apart from whatever tool that you build (again for a specific tenant
>>> administration purpose), who else will need to invoke this API method? My
>>> feeling is that this method does not belong inside the registry kernel or
>>> components. WDYT?
>>>
>>> Thanks,
>>> Senaka.
>>>
>>>
>>> On Wed, Feb 25, 2015 at 3:18 AM, Shashika Karunatilaka <
>>> shashi...@wso2.com> wrote:
>>>
>>>> Hi Senaka/all
>>>>
>>>> To do delete the DB related data one option is to add a new method to
>>>> registry api called deleteAllTenantData(or suitable one) so i have to
>>>> implement this method on every dependent registry classes, Is it ok to
>>>> introduce new method to registry api?
>>>>
>>>> As i see when deleting a registry resources it goes to
>>>> UserRegistry->CacheBackRegistry->EmbeddedRegistry and it calls data
>>>> deletion DAOs. So in my case do i need to go through this flow to delete
>>>> the DB data or is it enough calling the DB queries in UserRegistry tenant
>>>> data deletion method
>>>>
>>>> Also i have another concern, as an example let say there is an
>>>> association related operation  so to do that it will go above process I
>>>> mentioned and call the DAOs, those DAOs are implemented in a structural
>>>> manner where JDBCAssociationDAO implemented all the AssociationDAO
>>>> operation, in my case do i need to adhere to above structure where adding
>>>> all the registry related table data deletion methods to interface and
>>>> implement it or else is it ok to call the queries directly?
>>>>
>>>> Thank you.
>>>>
>>>> On Tue, Feb 24, 2015 at 10:52 AM, Danesh Kuruppu <dan...@wso2.com>
>>>> wrote:
>>>>
>>>>> Hi Shashika,
>>>>>
>>>>> In solr indexing, we store the resource by its tenant_id
>>>>> (indexed_document_id = resourcePath + "tenant" + tenantId)
>>>>>
>>>>> e.g: Assume you stored resource from the tenant1, indexed document id
>>>>> looks like below,
>>>>>
>>>>> "id": "/_system/governance/services/aaa/aaa/1.0.0*tenantId1*"
>>>>>
>>>>> You can get all resource store under tenantId using wildcard search.
>>>>>
>>>>> id:**tenantId1*
>>>>>>
>>>>>
>>>>> In Solr server, they have provided an api to delete by query.
>>>>>
>>>>> deleteByQuery(String query)
>>>>>>
>>>>>
>>>>> We can write new method in SolrClient to support this and call it from
>>>>> your component. Currently we only support delete index by resource id 
>>>>> where
>>>>> we need resource path.
>>>>>
>>>>> Thanks
>>>>> Danesh
>>>>>
>>>>> On Mon, Feb 23, 2015 at 7:14 PM, Senaka Fernando <sen...@wso2.com>
>>>>> wrote:
>>>>>
>>>>>> Hi Shashika,
>>>>>>
>>>>>> I believe this is the only way to do this. There are several things
>>>>>> to note here.
>>>>>>
>>>>>> 1. In memory data - Ideally unloading the tenant should clean-up all
>>>>>> of this and if it does not there is an issue.
>>>>>> 2. DB data - all the tables have a tenant-id column. What you need is
>>>>>> a query to delete all records matching that tenant id.
>>>>>> 3. Solr Index etc and Registry Extensions deployed on the Filesystem
>>>>>> - These should be in corresponding folder/files structures either having 
>>>>>> a
>>>>>> tenant id or tenant domain. I don't recall this is as X, Y, and Z and I
>>>>>> don't think anyone else would do too. You can scan the code (Registry
>>>>>> Kernel, Registry Component and Governance Component) but it can be 
>>>>>> tedious.
>>>>>> So, may be you can setup a tenant and grep for tenant-id/domain or grep 
>>>>>> for
>>>>>> "-1234" and "carbon.super" in the filesystem.
>>>>>> 4. Other related data - The kernel alone uses the filesystem (inside
>>>>>> repository/deployment) which you might need to clean. There are temporary
>>>>>> files created that many require cleaning and also logs, if you are
>>>>>> interested in a full wipeout. The registry utilises some of these 
>>>>>> standard
>>>>>> features from the kernel and some information (mostly transient) can be
>>>>>> found in those.
>>>>>>
>>>>>> Appreciate some help from others in the G-Reg team to identify
>>>>>> anything I missed.
>>>>>>
>>>>>> Thanks,
>>>>>> Senaka.
>>>>>>
>>>>>> On Mon, Feb 23, 2015 at 6:02 AM, Shashika Karunatilaka <
>>>>>> shashi...@wso2.com> wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> Im in the process of deleting a tenant and all its related
>>>>>>> resources,so what i came up with is to delete all the resources related 
>>>>>>> to
>>>>>>> that tenant using a direct DB call is there any other options to delete
>>>>>>> these data.
>>>>>>> and if i to continue on the above approach what are the areas i have
>>>>>>> to concern
>>>>>>>
>>>>>>> --
>>>>>>> Shashika Prabath Karunatilaka,
>>>>>>> Software Engineer,
>>>>>>> WSO2, Inc: http://wso2.com/
>>>>>>> mobile : +94 77 7487792
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>>
>>>>>> *[image: http://wso2.com] <http://wso2.com>Senaka Fernando*
>>>>>> Solutions Architect; WSO2 Inc.; http://wso2.com
>>>>>>
>>>>>>
>>>>>>
>>>>>> *Member; Apache Software Foundation; http://apache.org
>>>>>> <http://apache.org>E-mail: senaka AT wso2.com <http://wso2.com>**P:
>>>>>> +1 408 754 7388 <%2B1%20408%20754%207388>; ext: 51736*;
>>>>>>
>>>>>>
>>>>>> *M: +44 782 741 1966 <%2B44%20782%20741%201966>Linked-In:
>>>>>> http://linkedin.com/in/senakafernando
>>>>>> <http://linkedin.com/in/senakafernando>*Lean . Enterprise .
>>>>>> Middleware
>>>>>>
>>>>>> _______________________________________________
>>>>>> Dev mailing list
>>>>>> Dev@wso2.org
>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> Danesh Kuruppu
>>>>> Software Engineer
>>>>> WSO2 Inc,
>>>>> Mobile: +94 (77) 1690552
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Shashika Prabath Karunatilaka,
>>>> Software Engineer,
>>>> WSO2, Inc: http://wso2.com/
>>>> mobile : +94 77 7487792
>>>>
>>>
>>>
>>>
>>> --
>>>
>>>
>>> *[image: http://wso2.com] <http://wso2.com>Senaka Fernando*
>>> Solutions Architect; WSO2 Inc.; http://wso2.com
>>>
>>>
>>>
>>> *Member; Apache Software Foundation; http://apache.org
>>> <http://apache.org>E-mail: senaka AT wso2.com <http://wso2.com>**P: +1
>>> 408 754 7388 <%2B1%20408%20754%207388>; ext: 51736*;
>>>
>>>
>>> *M: +44 782 741 1966 <%2B44%20782%20741%201966>Linked-In:
>>> http://linkedin.com/in/senakafernando
>>> <http://linkedin.com/in/senakafernando>*Lean . Enterprise . Middleware
>>>
>>
>>
>>
>> --
>> Shashika Prabath Karunatilaka,
>> Software Engineer,
>> WSO2, Inc: http://wso2.com/
>> mobile : +94 77 7487792
>>
>
>
>
> --
>
>
> *[image: http://wso2.com] <http://wso2.com>Senaka Fernando*
> Solutions Architect; WSO2 Inc.; http://wso2.com
>
>
>
> *Member; Apache Software Foundation; http://apache.org
> <http://apache.org>E-mail: senaka AT wso2.com <http://wso2.com>**P: +1
> 408 754 7388 <%2B1%20408%20754%207388>; ext: 51736*;
>
>
> *M: +44 782 741 1966 <%2B44%20782%20741%201966>Linked-In:
> http://linkedin.com/in/senakafernando
> <http://linkedin.com/in/senakafernando>*Lean . Enterprise . Middleware
>



-- 
*Kishanthan Thangarajah*
Senior Software Engineer,
Platform Technologies Team,
WSO2, Inc.
lean.enterprise.middleware

Mobile - +94773426635
Blog - *http://kishanthan.wordpress.com <http://kishanthan.wordpress.com>*
Twitter - *http://twitter.com/kishanthan <http://twitter.com/kishanthan>*
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to