Hi,

Please find attached updated patch for RM1720.

Also test this patch with updated test suite patch which Navnath would be
sending.



-- 
*Harshal Dhumal*
*Software Engineer*

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

On Wed, Sep 21, 2016 at 8:39 PM, Dave Page <dp...@pgadmin.org> wrote:

> On Wed, Sep 21, 2016 at 4:02 PM, Navnath Gadakh
> <navnath.gad...@enterprisedb.com> wrote:
> > Hi Dave,
> >         Can you please run testsuite for server or database node only, as
> > there are some code modifications are remaining on the rest of the nodes.
> > Currently i don't have a machine to look into issue, will check it
> tomorrow.
>
> OK, here's the result:
>
> (pgadmin4)piranha:web dpage$ python regression/runtests.py --pkg
> browser.server_groups.servers.databases
> pgAdmin 4 - Application Initialisation
> ======================================
>
>
> The configuration database - '/Users/dpage/.pgadmin/test_pgadmin4.db'
> does not exist.
> Entering initial setup mode...
> NOTE: Configuring authentication for SERVER mode.
>
>
> The configuration database has been created at
> /Users/dpage/.pgadmin/test_pgadmin4.db
>
> =============Running the test cases for 'Regression - PG 9.4'=============
> runTest (pgadmin.browser.server_groups.servers.databases.
> tests.test_db_add.DatabaseAddTestCase)
> This function will add database under 1st server of tree node. (Check
> Databases Node URL) ... ok
> runTest (pgadmin.browser.server_groups.servers.databases.
> tests.test_db_delete.DatabaseDeleteTestCase)
> This function will delete the database. (Check Databases Node URL) ... ok
> runTest (pgadmin.browser.server_groups.servers.databases.
> tests.test_db_get.DatabasesGetTestCase)
> This function will fetch added database. (Check Databases Node URL) ... ok
> runTest (pgadmin.browser.server_groups.servers.databases.
> tests.test_db_put.DatabasesUpdateTestCase)
> This function will update the comments field of database. (Check
> Databases Node) ... ok
>
> ----------------------------------------------------------------------
> Ran 4 tests in 1.310s
>
> OK
>
> =============Running the test cases for 'Regression - PG 9.5'=============
> runTest (pgadmin.browser.server_groups.servers.databases.
> tests.test_db_add.DatabaseAddTestCase)
> This function will add database under 1st server of tree node. (Check
> Databases Node URL) ... ok
> runTest (pgadmin.browser.server_groups.servers.databases.
> tests.test_db_delete.DatabaseDeleteTestCase)
> This function will delete the database. (Check Databases Node URL) ... FAIL
> runTest (pgadmin.browser.server_groups.servers.databases.
> tests.test_db_get.DatabasesGetTestCase)
> This function will fetch added database. (Check Databases Node URL) ...
> ERROR
> runTest (pgadmin.browser.server_groups.servers.databases.
> tests.test_db_put.DatabasesUpdateTestCase)
> This function will update the comments field of database. (Check
> Databases Node) ... ERROR
>
> ======================================================================
> ERROR: runTest (pgadmin.browser.server_groups.servers.databases.
> tests.test_db_get.DatabasesGetTestCase)
> This function will fetch added database. (Check Databases Node URL)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_
> groups/servers/databases/tests/test_db_get.py",
> line 33, in runTest
>     self.db_id)
>   File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_
> groups/servers/databases/tests/utils.py",
> line 142, in verify_database
>     follow_redirects=True)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/werkzeug/test.py",
> line 788, in post
>     return self.open(*args, **kw)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/testing.py",
> line 113, in open
>     follow_redirects=follow_redirects)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/werkzeug/test.py",
> line 751, in open
>     response = self.run_wsgi_app(environ, buffered=buffered)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/werkzeug/test.py",
> line 668, in run_wsgi_app
>     rv = run_wsgi_app(self.application, environ, buffered=buffered)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/werkzeug/test.py",
> line 871, in run_wsgi_app
>     app_rv = app(environ, start_response)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 2000, in __call__
>     return self.wsgi_app(environ, start_response)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1991, in wsgi_app
>     response = self.make_response(self.handle_exception(e))
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1567, in handle_exception
>     reraise(exc_type, exc_value, tb)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1988, in wsgi_app
>     response = self.full_dispatch_request()
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1641, in full_dispatch_request
>     rv = self.handle_user_exception(e)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1544, in handle_user_exception
>     reraise(exc_type, exc_value, tb)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1639, in full_dispatch_request
>     rv = self.dispatch_request()
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1625, in dispatch_request
>     return self.view_functions[rule.endpoint](**req.view_args)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/views.py",
> line 84, in view
>     return self.dispatch_request(*args, **kwargs)
>   File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/utils.py", line
> 235, in dispatch_request
>     return method(*args, **kwargs)
>   File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_
> groups/servers/databases/__init__.py",
> line 364, in connect
>     conn = manager.connection(did=did, auto_reconnect=True)
>   File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/
> psycopg2/__init__.py",
> line 1448, in connection
>     "Couldn't find the specified database."
> Exception: Couldn't find the specified database.
>
> ======================================================================
> ERROR: runTest (pgadmin.browser.server_groups.servers.databases.
> tests.test_db_put.DatabasesUpdateTestCase)
> This function will update the comments field of database. (Check Databases
> Node)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_
> groups/servers/databases/tests/test_db_put.py",
> line 37, in runTest
>     db_id)
>   File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_
> groups/servers/databases/tests/utils.py",
> line 142, in verify_database
>     follow_redirects=True)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/werkzeug/test.py",
> line 788, in post
>     return self.open(*args, **kw)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/testing.py",
> line 113, in open
>     follow_redirects=follow_redirects)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/werkzeug/test.py",
> line 751, in open
>     response = self.run_wsgi_app(environ, buffered=buffered)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/werkzeug/test.py",
> line 668, in run_wsgi_app
>     rv = run_wsgi_app(self.application, environ, buffered=buffered)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/werkzeug/test.py",
> line 871, in run_wsgi_app
>     app_rv = app(environ, start_response)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 2000, in __call__
>     return self.wsgi_app(environ, start_response)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1991, in wsgi_app
>     response = self.make_response(self.handle_exception(e))
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1567, in handle_exception
>     reraise(exc_type, exc_value, tb)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1988, in wsgi_app
>     response = self.full_dispatch_request()
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1641, in full_dispatch_request
>     rv = self.handle_user_exception(e)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1544, in handle_user_exception
>     reraise(exc_type, exc_value, tb)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1639, in full_dispatch_request
>     rv = self.dispatch_request()
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1625, in dispatch_request
>     return self.view_functions[rule.endpoint](**req.view_args)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/views.py",
> line 84, in view
>     return self.dispatch_request(*args, **kwargs)
>   File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/utils.py", line
> 235, in dispatch_request
>     return method(*args, **kwargs)
>   File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_
> groups/servers/databases/__init__.py",
> line 364, in connect
>     conn = manager.connection(did=did, auto_reconnect=True)
>   File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/
> psycopg2/__init__.py",
> line 1448, in connection
>     "Couldn't find the specified database."
> Exception: Couldn't find the specified database.
>
> ======================================================================
> FAIL: runTest (pgadmin.browser.server_groups.servers.databases.
> tests.test_db_delete.DatabaseDeleteTestCase)
> This function will delete the database. (Check Databases Node URL)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_
> groups/servers/databases/tests/test_db_delete.py",
> line 38, in runTest
>     self.assertEquals(response.status_code, 200)
> AssertionError: 410 != 200
>
> ----------------------------------------------------------------------
> Ran 4 tests in 1.019s
>
> FAILED (failures=1, errors=2)
>
> =============Running the test cases for 'Regression - EPAS
> 9.5'=============
> runTest (pgadmin.browser.server_groups.servers.databases.
> tests.test_db_add.DatabaseAddTestCase)
> This function will add database under 1st server of tree node. (Check
> Databases Node URL) ... ok
> runTest (pgadmin.browser.server_groups.servers.databases.
> tests.test_db_delete.DatabaseDeleteTestCase)
> This function will delete the database. (Check Databases Node URL) ... FAIL
> runTest (pgadmin.browser.server_groups.servers.databases.
> tests.test_db_get.DatabasesGetTestCase)
> This function will fetch added database. (Check Databases Node URL) ...
> ERROR
> runTest (pgadmin.browser.server_groups.servers.databases.
> tests.test_db_put.DatabasesUpdateTestCase)
> This function will update the comments field of database. (Check
> Databases Node) ... ERROR
>
> ======================================================================
> ERROR: runTest (pgadmin.browser.server_groups.servers.databases.
> tests.test_db_get.DatabasesGetTestCase)
> This function will fetch added database. (Check Databases Node URL)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_
> groups/servers/databases/tests/test_db_get.py",
> line 33, in runTest
>     self.db_id)
>   File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_
> groups/servers/databases/tests/utils.py",
> line 142, in verify_database
>     follow_redirects=True)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/werkzeug/test.py",
> line 788, in post
>     return self.open(*args, **kw)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/testing.py",
> line 113, in open
>     follow_redirects=follow_redirects)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/werkzeug/test.py",
> line 751, in open
>     response = self.run_wsgi_app(environ, buffered=buffered)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/werkzeug/test.py",
> line 668, in run_wsgi_app
>     rv = run_wsgi_app(self.application, environ, buffered=buffered)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/werkzeug/test.py",
> line 871, in run_wsgi_app
>     app_rv = app(environ, start_response)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 2000, in __call__
>     return self.wsgi_app(environ, start_response)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1991, in wsgi_app
>     response = self.make_response(self.handle_exception(e))
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1567, in handle_exception
>     reraise(exc_type, exc_value, tb)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1988, in wsgi_app
>     response = self.full_dispatch_request()
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1641, in full_dispatch_request
>     rv = self.handle_user_exception(e)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1544, in handle_user_exception
>     reraise(exc_type, exc_value, tb)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1639, in full_dispatch_request
>     rv = self.dispatch_request()
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1625, in dispatch_request
>     return self.view_functions[rule.endpoint](**req.view_args)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/views.py",
> line 84, in view
>     return self.dispatch_request(*args, **kwargs)
>   File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/utils.py", line
> 235, in dispatch_request
>     return method(*args, **kwargs)
>   File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_
> groups/servers/databases/__init__.py",
> line 364, in connect
>     conn = manager.connection(did=did, auto_reconnect=True)
>   File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/
> psycopg2/__init__.py",
> line 1448, in connection
>     "Couldn't find the specified database."
> Exception: Couldn't find the specified database.
>
> ======================================================================
> ERROR: runTest (pgadmin.browser.server_groups.servers.databases.
> tests.test_db_put.DatabasesUpdateTestCase)
> This function will update the comments field of database. (Check Databases
> Node)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_
> groups/servers/databases/tests/test_db_put.py",
> line 37, in runTest
>     db_id)
>   File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_
> groups/servers/databases/tests/utils.py",
> line 142, in verify_database
>     follow_redirects=True)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/werkzeug/test.py",
> line 788, in post
>     return self.open(*args, **kw)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/testing.py",
> line 113, in open
>     follow_redirects=follow_redirects)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/werkzeug/test.py",
> line 751, in open
>     response = self.run_wsgi_app(environ, buffered=buffered)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/werkzeug/test.py",
> line 668, in run_wsgi_app
>     rv = run_wsgi_app(self.application, environ, buffered=buffered)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/werkzeug/test.py",
> line 871, in run_wsgi_app
>     app_rv = app(environ, start_response)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 2000, in __call__
>     return self.wsgi_app(environ, start_response)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1991, in wsgi_app
>     response = self.make_response(self.handle_exception(e))
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1567, in handle_exception
>     reraise(exc_type, exc_value, tb)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1988, in wsgi_app
>     response = self.full_dispatch_request()
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1641, in full_dispatch_request
>     rv = self.handle_user_exception(e)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1544, in handle_user_exception
>     reraise(exc_type, exc_value, tb)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1639, in full_dispatch_request
>     rv = self.dispatch_request()
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/app.py",
> line 1625, in dispatch_request
>     return self.view_functions[rule.endpoint](**req.view_args)
>   File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/flask/views.py",
> line 84, in view
>     return self.dispatch_request(*args, **kwargs)
>   File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/utils.py", line
> 235, in dispatch_request
>     return method(*args, **kwargs)
>   File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_
> groups/servers/databases/__init__.py",
> line 364, in connect
>     conn = manager.connection(did=did, auto_reconnect=True)
>   File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/
> psycopg2/__init__.py",
> line 1448, in connection
>     "Couldn't find the specified database."
> Exception: Couldn't find the specified database.
>
> ======================================================================
> FAIL: runTest (pgadmin.browser.server_groups.servers.databases.
> tests.test_db_delete.DatabaseDeleteTestCase)
> This function will delete the database. (Check Databases Node URL)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_
> groups/servers/databases/tests/test_db_delete.py",
> line 38, in runTest
>     self.assertEquals(response.status_code, 200)
> AssertionError: 410 != 200
>
> ----------------------------------------------------------------------
> Ran 4 tests in 1.807s
>
> FAILED (failures=1, errors=2)
>
> Test Result Summary
> ============================
> Regression - EPAS 9.5: 1 test passed, 3 tests failed :
> DatabaseDeleteTestCase
> DatabasesGetTestCase
> DatabasesUpdateTestCase
> Regression - PG 9.5: 1 test passed, 3 tests failed :
> DatabaseDeleteTestCase
> DatabasesGetTestCase
> DatabasesUpdateTestCase
> Regression - PG 9.4: 4 tests passed, 0 tests failed
> ============================
>
>
> --
> Dave Page
> Blog: http://pgsnake.blogspot.com
> Twitter: @pgsnake
>
> EnterpriseDB UK: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>
diff --git a/web/pgadmin/browser/server_groups/servers/__init__.py b/web/pgadmin/browser/server_groups/servers/__init__.py
index 0b6c6ca..611d701 100644
--- a/web/pgadmin/browser/server_groups/servers/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/__init__.py
@@ -24,6 +24,7 @@ from pgadmin.utils.menu import MenuItem
 import config
 from config import PG_DEFAULT_DRIVER
 from pgadmin.model import db, Server, ServerGroup, User
+from pgadmin.utils.driver import get_driver
 
 
 def has_any(data, keys):
@@ -64,7 +65,6 @@ class ServerModule(sg.ServerGroupPluginModule):
         servers = Server.query.filter_by(user_id=current_user.id,
                                          servergroup_id=gid)
 
-        from pgadmin.utils.driver import get_driver
         driver = get_driver(PG_DEFAULT_DRIVER)
 
         for server in servers:
@@ -156,7 +156,6 @@ class ServerModule(sg.ServerGroupPluginModule):
         sub-modules at once.
         """
         if first_registration:
-            from pgadmin.utils.driver import get_driver
             driver = get_driver(PG_DEFAULT_DRIVER, app)
             app.jinja_env.filters['qtLiteral'] = driver.qtLiteral
             app.jinja_env.filters['qtIdent'] = driver.qtIdent
@@ -224,7 +223,6 @@ class ServerNode(PGChildNodeView):
         servers = Server.query.filter_by(user_id=current_user.id,
                                          servergroup_id=gid)
 
-        from pgadmin.utils.driver import get_driver
         driver = get_driver(PG_DEFAULT_DRIVER)
 
         for server in servers:
@@ -293,7 +291,6 @@ class ServerNode(PGChildNodeView):
                 )
             )
 
-        from pgadmin.utils.driver import get_driver
         manager = get_driver(PG_DEFAULT_DRIVER).connection_manager(server.id)
         conn = manager.connection()
         connected = conn.connected()
@@ -353,6 +350,7 @@ class ServerNode(PGChildNodeView):
         else:
             try:
                 for s in servers:
+                    get_driver(PG_DEFAULT_DRIVER).delete_manager(s.id)
                     db.session.delete(s)
                 db.session.commit()
             except Exception as e:
@@ -405,7 +403,6 @@ class ServerNode(PGChildNodeView):
             request.data, encoding='utf-8'
         )
 
-        from pgadmin.utils.driver import get_driver
         manager = get_driver(PG_DEFAULT_DRIVER).connection_manager(sid)
         conn = manager.connection()
         connected = conn.connected()
@@ -473,7 +470,6 @@ class ServerNode(PGChildNodeView):
         ).first()
         res = []
 
-        from pgadmin.utils.driver import get_driver
         driver = get_driver(PG_DEFAULT_DRIVER)
 
         for server in servers:
@@ -519,7 +515,6 @@ class ServerNode(PGChildNodeView):
             id=server.servergroup_id
         ).first()
 
-        from pgadmin.utils.driver import get_driver
         driver = get_driver(PG_DEFAULT_DRIVER)
 
         manager = driver.connection_manager(sid)
@@ -594,7 +589,6 @@ class ServerNode(PGChildNodeView):
             user = None
 
             if 'connect_now' in data and data['connect_now']:
-                from pgadmin.utils.driver import get_driver
                 manager = get_driver(PG_DEFAULT_DRIVER).connection_manager(server.id)
                 manager.update(server)
                 conn = manager.connection()
@@ -663,7 +657,6 @@ class ServerNode(PGChildNodeView):
         return make_json_response(data='')
 
     def statistics(self, gid, sid):
-        from pgadmin.utils.driver import get_driver
         manager = get_driver(PG_DEFAULT_DRIVER).connection_manager(sid)
         conn = manager.connection()
 
@@ -717,7 +710,6 @@ class ServerNode(PGChildNodeView):
 
     def connect_status(self, gid, sid):
         """Check and return the connection status."""
-        from pgadmin.utils.driver import get_driver
         manager = get_driver(PG_DEFAULT_DRIVER).connection_manager(sid)
         conn = manager.connection()
         res = conn.connected()
@@ -769,7 +761,6 @@ class ServerNode(PGChildNodeView):
         save_password = False
 
         # Connect the Server
-        from pgadmin.utils.driver import get_driver
         manager = get_driver(PG_DEFAULT_DRIVER).connection_manager(sid)
         conn = manager.connection()
 
@@ -902,7 +893,6 @@ class ServerNode(PGChildNodeView):
             return bad_request(gettext("Server not found."))
 
         # Release Connection
-        from pgadmin.utils.driver import get_driver
         manager = get_driver(PG_DEFAULT_DRIVER).connection_manager(sid)
 
         status = manager.release()
@@ -923,7 +913,6 @@ class ServerNode(PGChildNodeView):
         """Reload the server configuration"""
 
         # Reload the server configurations
-        from pgadmin.utils.driver import get_driver
         manager = get_driver(PG_DEFAULT_DRIVER).connection_manager(sid)
         conn = manager.connection()
 
@@ -958,7 +947,6 @@ class ServerNode(PGChildNodeView):
         try:
             data = request.form
             restore_point_name = data['value'] if data else None
-            from pgadmin.utils.driver import get_driver
             manager = get_driver(PG_DEFAULT_DRIVER).connection_manager(sid)
             conn = manager.connection()
 
@@ -1033,7 +1021,6 @@ class ServerNode(PGChildNodeView):
             if user is None:
                 return unauthorized(gettext("Unauthorized request."))
 
-            from pgadmin.utils.driver import get_driver
             manager = get_driver(PG_DEFAULT_DRIVER).connection_manager(sid)
             conn = manager.connection()
 
@@ -1100,7 +1087,6 @@ class ServerNode(PGChildNodeView):
             )
 
         try:
-            from pgadmin.utils.driver import get_driver
             manager = get_driver(PG_DEFAULT_DRIVER).connection_manager(sid)
             conn = manager.connection()
 
diff --git a/web/pgadmin/utils/driver/psycopg2/__init__.py b/web/pgadmin/utils/driver/psycopg2/__init__.py
index 2d6239f..1ad3aa8 100644
--- a/web/pgadmin/utils/driver/psycopg2/__init__.py
+++ b/web/pgadmin/utils/driver/psycopg2/__init__.py
@@ -1721,6 +1721,17 @@ class Driver(BaseDriver):
         """
         return self.connection_manager(sid).release(database, conn_id)
 
+    def delete_manager(self, sid):
+        """
+        Delete manager for given server id.
+        """
+        manager = self.connection_manager(sid)
+        if manager is not None:
+            manager.release()
+        if session['_id'] in self.managers and \
+                str(sid) in self.managers[session['_id']]:
+            del self.managers[session['_id']][str(sid)]
+
     def gc(self):
         """
         Release the connections for the sessions, which have not pinged the
-- 
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers

Reply via email to