summaryrefslogtreecommitdiff
path: root/opendc/util
diff options
context:
space:
mode:
authorGeorgios Andreadis <info@gandreadis.com>2020-06-18 11:44:36 +0200
committerGeorgios Andreadis <info@gandreadis.com>2020-06-18 11:44:36 +0200
commit6f41be7d9c244b67bfa5ff72f1e90d18fa45b590 (patch)
treeb2b06b595a4664f73814c0cf6aca2bd8ab05d900 /opendc/util
parent4a33ea9d2c82c5fdcd29fc4f54fbb141c673b4d7 (diff)
Reformat and remove most old query methods
Diffstat (limited to 'opendc/util')
-rw-r--r--opendc/util/database.py87
1 files changed, 18 insertions, 69 deletions
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