HI Kishanthan, Currently i have done some implementation on registry related data deletion, removing solr indexes. But there are scenarios i have to consider where deleting registry related data in mounted environment.
Thank you. On Fri, Feb 27, 2015 at 10:00 AM, Kishanthan Thangarajah < kishant...@wso2.com> wrote: > 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>* > -- Shashika Prabath Karunatilaka, Software Engineer, WSO2, Inc: http://wso2.com/ mobile : +94 77 7487792
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev