From 5740583e3817029d785d3a7ffd75739ddde3077d Mon Sep 17 00:00:00 2001 From: Josh Santos Date: Sun, 31 Mar 2024 17:52:18 -0400 Subject: [PATCH] Improvements for psql wait script. * support: Move to shared directory to avoid code drift. * feat: Make DB name configurable --- 15.0/wait-for-psql.py | 11 +++++++---- 16.0/wait-for-psql.py | 11 +++++++---- 17.0/wait-for-psql.py | 11 +++++++---- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/15.0/wait-for-psql.py b/15.0/wait-for-psql.py index a55f440..d0a66ea 100755 --- a/15.0/wait-for-psql.py +++ b/15.0/wait-for-psql.py @@ -10,21 +10,24 @@ if __name__ == '__main__': arg_parser.add_argument('--db_host', required=True) arg_parser.add_argument('--db_port', required=True) arg_parser.add_argument('--db_user', required=True) + arg_parser.add_argument('--db_name', required=True) arg_parser.add_argument('--db_password', required=True) arg_parser.add_argument('--timeout', type=int, default=5) args = arg_parser.parse_args() + conn = None start_time = time.time() + error = '' + while (time.time() - start_time) < args.timeout: try: - conn = psycopg2.connect(user=args.db_user, host=args.db_host, port=args.db_port, password=args.db_password, dbname='postgres') - error = '' + conn = psycopg2.connect(user=args.db_user, host=args.db_host, port=args.db_port, password=args.db_password, dbname=args.db_name) + conn.close() break except psycopg2.OperationalError as e: error = e - else: - conn.close() + time.sleep(1) if error: diff --git a/16.0/wait-for-psql.py b/16.0/wait-for-psql.py index a55f440..d0a66ea 100755 --- a/16.0/wait-for-psql.py +++ b/16.0/wait-for-psql.py @@ -10,21 +10,24 @@ if __name__ == '__main__': arg_parser.add_argument('--db_host', required=True) arg_parser.add_argument('--db_port', required=True) arg_parser.add_argument('--db_user', required=True) + arg_parser.add_argument('--db_name', required=True) arg_parser.add_argument('--db_password', required=True) arg_parser.add_argument('--timeout', type=int, default=5) args = arg_parser.parse_args() + conn = None start_time = time.time() + error = '' + while (time.time() - start_time) < args.timeout: try: - conn = psycopg2.connect(user=args.db_user, host=args.db_host, port=args.db_port, password=args.db_password, dbname='postgres') - error = '' + conn = psycopg2.connect(user=args.db_user, host=args.db_host, port=args.db_port, password=args.db_password, dbname=args.db_name) + conn.close() break except psycopg2.OperationalError as e: error = e - else: - conn.close() + time.sleep(1) if error: diff --git a/17.0/wait-for-psql.py b/17.0/wait-for-psql.py index a55f440..d0a66ea 100755 --- a/17.0/wait-for-psql.py +++ b/17.0/wait-for-psql.py @@ -10,21 +10,24 @@ if __name__ == '__main__': arg_parser.add_argument('--db_host', required=True) arg_parser.add_argument('--db_port', required=True) arg_parser.add_argument('--db_user', required=True) + arg_parser.add_argument('--db_name', required=True) arg_parser.add_argument('--db_password', required=True) arg_parser.add_argument('--timeout', type=int, default=5) args = arg_parser.parse_args() + conn = None start_time = time.time() + error = '' + while (time.time() - start_time) < args.timeout: try: - conn = psycopg2.connect(user=args.db_user, host=args.db_host, port=args.db_port, password=args.db_password, dbname='postgres') - error = '' + conn = psycopg2.connect(user=args.db_user, host=args.db_host, port=args.db_port, password=args.db_password, dbname=args.db_name) + conn.close() break except psycopg2.OperationalError as e: error = e - else: - conn.close() + time.sleep(1) if error: