From 6f41be7d9c244b67bfa5ff72f1e90d18fa45b590 Mon Sep 17 00:00:00 2001 From: Georgios Andreadis Date: Thu, 18 Jun 2020 11:44:36 +0200 Subject: Reformat and remove most old query methods --- opendc/util/database.py | 87 ++++++++++--------------------------------------- 1 file changed, 18 insertions(+), 69 deletions(-) (limited to 'opendc/util/database.py') diff --git a/opendc/util/database.py b/opendc/util/database.py index 20006ff2..92d0feef 100644 --- a/opendc/util/database.py +++ b/opendc/util/database.py @@ -1,28 +1,21 @@ import json -import sys - -from datetime import datetime -from pymongo import MongoClient -from bson.json_util import loads, dumps, RELAXED_JSON_OPTIONS, CANONICAL_JSON_OPTIONS import urllib.parse +from datetime import datetime -#from mysql.connector.pooling import MySQLConnectionPool - -# Get keys from config file -with open(sys.argv[1]) as f: - KEYS = json.load(f) +from bson.json_util import dumps +from pymongo import MongoClient DATETIME_STRING_FORMAT = '%Y-%m-%dT%H:%M:%S' CONNECTION_POOL = None def init_connection_pool(user, password, database, host, port): - user = urllib.parse.quote_plus(user) #TODO: replace this with environment variable - password = urllib.parse.quote_plus(password) #TODO: same as above + user = urllib.parse.quote_plus(user) # TODO: replace this with environment variable + password = urllib.parse.quote_plus(password) # TODO: same as above database = urllib.parse.quote_plus(database) host = urllib.parse.quote_plus(host) - global client + global client global opendcdb global prefabs_collection global user_collection @@ -34,10 +27,9 @@ def init_connection_pool(user, password, database, host, port): topologies_collection = opendcdb.topologies user_collection = opendcdb.users - - #global CONNECTION_POOL - #CONNECTION_POOL = MySQLConnectionPool(pool_name="opendcpool", pool_size=5, - #user=user, password=password, database=database, host=host, port=port) + # global CONNECTION_POOL + # CONNECTION_POOL = MySQLConnectionPool(pool_name="opendcpool", pool_size=5, + # user=user, password=password, database=database, host=host, port=port) def execute(statement, t): @@ -62,70 +54,27 @@ def execute(statement, t): return row_id -def fetchone(statement, t=None): - """Open a database connection and return the first row matched by the SELECT statement.""" - - # Connect to the database - connection = CONNECTION_POOL.get_connection() - cursor = connection.cursor() - - # Execute the SELECT statement - - if t is not None: - cursor.execute(statement, t) - else: - cursor.execute(statement) - - value = cursor.fetchone() - - # Disconnect from the database and return - connection.close() - return value - - -def fetchall(statement, t=None): - """Open a database connection and return all rows matched by the SELECT statement.""" - - # Connect to the database - connection = CONNECTION_POOL.get_connection() - cursor = connection.cursor() - - # Execute the SELECT statement - - if t is not None: - cursor.execute(statement, t) - else: - cursor.execute(statement) - - values = cursor.fetchall() - - # Disconnect from the database and return - connection.close() - return values - - def fetchone(query, collection): """Uses existing mongo connection to return a single (the first) document in a collection matching the given query as a JSON object""" # query needs to be in json format, i.e.: {'name': prefab_name} - #TODO: determine which collection to pull from + # TODO: determine which collection to pull from bson = prefabs_collection.find_one(query) - json_string = dumps(bson) #convert BSON representation to JSON - json_obj = json.loads(json_string) #load as a JSON object - #leave the id field in for now, we can use it later - #json_obj.pop("_id") + json_string = dumps(bson) # convert BSON representation to JSON + json_obj = json.loads(json_string) # load as a JSON object + # leave the id field in for now, we can use it later + # json_obj.pop("_id") return json_obj - def fetchall(query, collection): """Uses existing mongo connection to return all documents matching a given query, as a list of JSON objects""" results = [] cursor = prefabs_collection.find(query) for doc in cursor: - json_string = dumps(doc) #convert BSON representation to JSON - json_obj = json.loads(json_string) #load as a JSON object - #leave the id field in for now, we can use it later - #json_obj.pop("_id") + json_string = dumps(doc) # convert BSON representation to JSON + json_obj = json.loads(json_string) # load as a JSON object + # leave the id field in for now, we can use it later + # json_obj.pop("_id") results.append(json_obj) return results -- cgit v1.2.3