Subject: Refactor: Registry Classes

From: Ashesh Vashi <[email-masked]>
Date: Sat, 19 Jun 2021 01:39:47 +0530

Hi Akshay,

We do have a couple of classes, which does automatic registration of the
base classes,
and which creates single-ton objects for these base classes, when needed.

I would be working on a patch sooner, which will be using similar
functionality for loading
the multi-factor authentication.

I realized - it will be a duplicate code at three places for the same
functionalities.
Hence - I worked on refactoring this registry class.

Please find the patch for the same.

--

Thanks & Regards,

Ashesh Vashi
EnterpriseDB INDIA: Enterprise PostgreSQL Company
<http://www.enterprisedb.com>

*http://www.linkedin.com/in/asheshvashi*
<http://www.linkedin.com/in/asheshvashi>

---

From: Ashesh Vashi <[email-masked]>
Date: Sat, 19 Jun 2021 11:27:19 +0530

> Please find the patch for the same.
Found issues - some test files were using the old function
'Driver.load_drivers(...)'.
They're fixed now.

-- Thanks, Ashesh

---

From: Akshay Joshi <[email-masked]>
Date: Wed, 23 Jun 2021 13:22:30 +0530

Hi Ashesh

Following are the review comments:

   - Fixed PEP8 issues.
   - In "dynamic_registry/__init__.py" decorator @classmethod used for "
   *_get*" and "*_load_modules*" methods which are actually outside of the
   class. Even constructor also outside of the class.
   - Remove unused imports from "driver/registry.py"
   - Fixed sonarqube issues in "dynamic_registry/tests/registry/__init__.py"

On Sat, Jun 19, 2021 at 11:27 AM Ashesh Vashi <[email-masked]>
wrote:

> On Sat, Jun 19, 2021 at 1:39 AM Ashesh Vashi <
> [email-masked]> wrote:
>
>> Hi Akshay,
>>

-- 
*Thanks & Regards*
*Akshay Joshi*
*pgAdmin Hacker | Principal Software Architect*
*EDB Postgres <http://edbpostgres.com>*

*Mobile: +91 976-788-8246*

---

From: Ashesh Vashi <[email-masked]>
Date: Wed, 23 Jun 2021 19:54:32 +0530

On Wed, Jun 23, 2021 at 1:22 PM Akshay Joshi <[email-masked]>
wrote:

> Done.

>    *_get*" and "*_load_modules*" methods which are actually outside of
>    the class. Even constructor also outside of the class.
>
> 'create_registry_metaclass' is not a class, but a method to create the
dynamic classes.
If I move these methods in 'create_registry_metaclass' method, SonarQube
raises issues about complexity of the functions, hence - they're best kept
outside of that method.

> Done

>
>    -
>    - Fixed sonarqube issues in
>    "dynamic_registry/tests/registry/__init__.py"
>
> Done
As discussed, SonarQube is not able to understand that the result object is
a class, and not an object, hence - showing linter issues.
I've disabled them in those lines by adding the comment '# NOSNAR' at the
end.

-- Thanks, Ashesh

>
> On Sat, Jun 19, 2021 at 11:27 AM Ashesh Vashi <

---

From: Akshay Joshi <[email-masked]>
Date: Thu, 24 Jun 2021 11:30:59 +0530

Thanks, the patch applied.

On Wed, Jun 23, 2021 at 7:54 PM Ashesh Vashi <[email-masked]>
wrote:

> On Wed, Jun 23, 2021 at 1:22 PM Akshay Joshi <
> [email-masked]> wrote:
>
>> Hi Ashesh
>>
> As discussed, SonarQube is not able to understand that the result object
> is a class, and not an object, hence - showing linter issues.
>>>> We do have a couple of classes, which does automatic registration of
>>>> the base classes,

---

From: Khushboo Vashi <[email-masked]>
Date: Thu, 24 Jun 2021 15:51:21 +0530

Hi,

This patch introduced the server mode api test case failure, please find
the attached patch to fix those as well as some of the old issues in the
server mode.
Patch by: Ashesh Vashi

Thanks,
Khushboo

On Thu, Jun 24, 2021 at 11:31 AM Akshay Joshi <[email-masked]>
wrote:

> On Wed, Jun 23, 2021 at 7:54 PM Ashesh Vashi <

---

From: Akshay Joshi <[email-masked]>
Date: Thu, 24 Jun 2021 20:02:00 +0530

On Thu, Jun 24, 2021 at 3:51 PM Khushboo Vashi <
[email-masked]> wrote:

> On Thu, Jun 24, 2021 at 11:31 AM Akshay Joshi <
>>>>    - In "dynamic_registry/__init__.py" decorator @classmethod used for
>>>>    "*_get*" and "*_load_modules*" methods which are actually outside
>>>>    of the class. Even constructor also outside of the class.
>>>>
>>> I've disabled them in those lines by adding the comment '# NOSNAR' at
>>> the end.
>>>
>>> -- Thanks, Ashesh
>>>
>>>>