diff --git a/manage_psql/__init__.py b/manage_psql/__init__.py index f37056b..0d31332 100755 --- a/manage_psql/__init__.py +++ b/manage_psql/__init__.py @@ -12,6 +12,7 @@ # */ import sys +from configparser import SafeConfigParser # Global name __version__ = '1.0' @@ -23,3 +24,11 @@ try: except ImportError: print('Psycopg2 library not found. Books-shelf cannot start.') sys.exit(1) + +try: + ini_conf = "./config/conf.ini" + config = SafeConfigParser() + config.read(ini_conf) +except config.Error as error: + print(error) + sys.exit(1) \ No newline at end of file diff --git a/manage_psql/__pycache__/__init__.cpython-35.pyc b/manage_psql/__pycache__/__init__.cpython-35.pyc deleted file mode 100644 index 330800e..0000000 Binary files a/manage_psql/__pycache__/__init__.cpython-35.pyc and /dev/null differ diff --git a/manage_psql/__pycache__/__init__.cpython-36.pyc b/manage_psql/__pycache__/__init__.cpython-36.pyc deleted file mode 100644 index a715e8d..0000000 Binary files a/manage_psql/__pycache__/__init__.cpython-36.pyc and /dev/null differ diff --git a/manage_psql/__pycache__/manage_psql.cpython-35.pyc b/manage_psql/__pycache__/manage_psql.cpython-35.pyc deleted file mode 100644 index 70ad171..0000000 Binary files a/manage_psql/__pycache__/manage_psql.cpython-35.pyc and /dev/null differ diff --git a/manage_psql/__pycache__/manage_psql.cpython-36.pyc b/manage_psql/__pycache__/manage_psql.cpython-36.pyc deleted file mode 100644 index fe010bd..0000000 Binary files a/manage_psql/__pycache__/manage_psql.cpython-36.pyc and /dev/null differ diff --git a/manage_psql/conf.ini b/manage_psql/conf.ini deleted file mode 100755 index 29909f0..0000000 --- a/manage_psql/conf.ini +++ /dev/null @@ -1,5 +0,0 @@ -[psql] -host=localhost -database=books_shelf -user=books_shelf -passwd=blabli diff --git a/manage_psql/config/conf.ini.sample b/manage_psql/config/conf.ini.sample new file mode 100644 index 0000000..d647b62 --- /dev/null +++ b/manage_psql/config/conf.ini.sample @@ -0,0 +1,5 @@ +[psql] +host=localhost +database=books +user=books_shelf +passwd=blabli \ No newline at end of file diff --git a/manage_psql/manage_psql.py b/manage_psql/manage_psql.py index 8681e60..0fe0302 100755 --- a/manage_psql/manage_psql.py +++ b/manage_psql/manage_psql.py @@ -11,9 +11,21 @@ # * ---------------------------------------------------------------------------- # */ +import socket from configparser import SafeConfigParser import psycopg2 +# Read conf.ini +INI_CONF = "./config/conf.ini" +CONFIG = SafeConfigParser() +CONFIG.read(INI_CONF) + +# DB parameters +PSQL_HOST = CONFIG.get('psql', 'host') +PSQL_DB = CONFIG.get('psql', 'database') +PSQL_USER = CONFIG.get('psql', 'user') +PSQL_PWD = CONFIG.get('psql', 'passwd') + class HandlePsql: """Class to handle psql connection.""" @@ -21,28 +33,39 @@ class HandlePsql: conn = None cur = None + @staticmethod + def psql_checkport(): + """Check pgsql port.""" + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + check_port = sock.connect_ex((PSQL_HOST, 5432)) + if check_port: + return True + return False + + @staticmethod + def psql_checkcon(): + """Check pgsql connexion to database.""" + try: + conn = psycopg2.connect(host=PSQL_HOST, database=PSQL_DB, + user=PSQL_USER, password=PSQL_PWD, + connect_timeout=5) + conn.close() + return True + except conn.error: + return False + @staticmethod def psql_conn(): """Init psql connection.""" - # Read conf.ini - ini_conf = "/usr/local/Securmail-Administration/config/conf.ini" - config = SafeConfigParser() - config.read(ini_conf) - - # DB parameters - psql_host = config.get('psql', 'host') - psql_db = config.get('psql', 'database') - psql_user = config.get('psql', 'user') - psql_pwd = config.get('psql', 'passwd') - # connexion DB # http://initd.org/psycopg/docs/usage.html # http://www.postgresqltutorial.com/postgresql-python/ try: global conn - conn = psycopg2.connect(host=psql_host, database=psql_db, user=psql_user, password=psql_pwd) + conn = psycopg2.connect(host=PSQL_HOST, database=PSQL_DB, + user=PSQL_USER, password=PSQL_PWD) conn.cursor() - except (Exception, psycopg2.DatabaseError) as error: + except psycopg2.DatabaseError as error: print(error) @staticmethod @@ -77,9 +100,11 @@ class HandlePsql: @staticmethod def psql_unconn(): """End psql connection.""" + global conn cur = conn.cursor() cur.close() conn.close() + if __name__ == "__main__": print("Module psql to handle the connection")