summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Brenstuhl <brenstsr@miamioh.edu>2019-02-23 16:37:26 -0800
committerIrina Truong <i.chernyavska@gmail.com>2019-02-23 16:37:26 -0800
commit1c66dece59d4595eee3fb33d2609e2e288a28ff4 (patch)
treefaf80d9db45795e2ab25bf0aef30482e7423569b
parentbd0aaefdd277b7328ff5948d8621d34fb8f87dfd (diff)
Add reconnect automatically enhancement (#1009)
* Adding reconnect automatically enhancement * files for pr checklist * changelog fixes * setting auto-reconnect to be the default * fix issue of getting logged queries instead of most recent * travisci pep8 check issue
-rw-r--r--AUTHORS1
-rw-r--r--changelog.rst1
-rw-r--r--pgcli/main.py23
3 files changed, 13 insertions, 12 deletions
diff --git a/AUTHORS b/AUTHORS
index e4bbf9e2..fc750d9e 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -90,6 +90,7 @@ Contributors:
* Mikhail Elovskikh (wronglink)
* Marcin Cieślak (saper)
* easteregg
+ * Scott Brenstuhl (808sAndBR)
Creator:
--------
diff --git a/changelog.rst b/changelog.rst
index e1fbe5c7..e5f50985 100644
--- a/changelog.rst
+++ b/changelog.rst
@@ -5,6 +5,7 @@ Features:
---------
* keybindings for closing the autocomplete list
+* reconnect automatically when server closes connection
Bug fixes:
----------
diff --git a/pgcli/main.py b/pgcli/main.py
index 2e5cffde..856f28e3 100644
--- a/pgcli/main.py
+++ b/pgcli/main.py
@@ -555,7 +555,7 @@ class PGCli(object):
except OperationalError as e:
logger.error("sql: %r, error: %r", text, e)
logger.error("traceback: %r", traceback.format_exc())
- self._handle_server_closed_connection()
+ self._handle_server_closed_connection(text)
except PgCliQuitError as e:
raise
except Exception as e:
@@ -810,17 +810,16 @@ class PGCli(object):
return output, meta_query
- def _handle_server_closed_connection(self):
- """Used during CLI execution"""
- reconnect = click.prompt(
- 'Connection reset. Reconnect (Y/n)',
- show_default=False, type=bool, default=True)
- if reconnect:
- try:
- self.pgexecute.connect()
- click.secho('Reconnected!\nTry the command again.', fg='green')
- except OperationalError as e:
- click.secho(str(e), err=True, fg='red')
+ def _handle_server_closed_connection(self, text):
+ """Used during CLI execution."""
+ try:
+ click.secho('Reconnecting...', fg='green')
+ self.pgexecute.connect()
+ click.secho('Reconnected!', fg='green')
+ self.execute_command(text)
+ except OperationalError as e:
+ click.secho('Reconnect Failed', fg='red')
+ click.secho(str(e), err=True, fg='red')
def refresh_completions(self, history=None, persist_priorities='all'):
""" Refresh outdated completions