Re: [pgadmin-hackers] Driver Module - Mailing list pgadmin-hackers

From George Gelashvili
Subject Re: [pgadmin-hackers] Driver Module
Date
Msg-id CAHowoHY+9h_=wpkGS3DUhey9ua+OVee6X+4OmifMH9cU6KiCug@mail.gmail.com
Whole thread Raw
In response to Re: [pgadmin-hackers] Driver Module  (Dave Page <dpage@pgadmin.org>)
Responses Re: [pgadmin-hackers] Driver Module  (Dave Page <dpage@pgadmin.org>)
List pgadmin-hackers
Hi Dave,

Thanks for the pointer.
We realized that many of the changes we would need to make for supporting Greenplum would need to go where there is pg version checking throughout the code. This is because unlike PPAS which mostly adds additional features, Greenplum is based on postgres 8.3.

It looks like much of the version checking logic is repeated at points where the features are differentiated by postgres version.

It might make sense at this point to refactor the way that feature flagging is done to be a little bit more unified between server types and postgres versions so that we could for example have logic along the lines of: 
feature_enablement = FeatureEnablement(postgres_flavor, postgres_version)

#...

if(feature_enablement.check_internal_triggers ):
# feature call here
and then in a feature enablement class, reference the various versions and flavors of postgres.

Any thoughts on this?

Thanks,
Tira and George


On Sun, Jan 8, 2017 at 4:57 AM, Dave Page <dpage@pgadmin.org> wrote:
Hi

On Friday, January 6, 2017, George Gelashvili <ggelashvili@pivotal.io> wrote:
Hi there,

We are working on connecting Greenplum to pgAdmin4. Currently we are exploring how modules work in pgAdmin. In an earlier off-thread email it was suggested we look at "the EDB PPAS" as an example of a driver class. We are not entirely clear on what that means.

We found:
- the BaseDriver in web/pgadmin/utils/driver, documented: https://www.pgadmin.org/docs4/1.x/code_snippets.html?highlight=driver#basedriver
- things that look EDB-related in web/pgadmin/utils/driver/psycopg2/__init__.py

Is it a good idea to keep looking for EDB PPAS as an example of a driver?
Does anyone know exactly where it lives?

I believe 99% of it is simply inherited from the base driver, and (some of?) the rest of it is in web/pgadmin/browser/server_groups/servers/ppas.py.

Ashesh, can you help here? You know that code infinitely better than I do.

Thanks. 


--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


pgadmin-hackers by date:

Previous
From: Dave Page
Date:
Subject: [pgadmin-hackers] Re: PATCH: RM# 1679 - Background process for "restore" not reportingstatus back to pgAdmin
Next
From: Josh Berkus
Date:
Subject: [pgadmin-hackers] Building server without Apache