Skip to content
Snippets Groups Projects
Commit aa80c938 authored by Jan Müller's avatar Jan Müller
Browse files

Start using Database

#9
parent 2ba71f22
No related branches found
No related tags found
1 merge request!4Feature/add arbor support
Pipeline #163318 canceled
FROM python:3-alpine FROM python:3.6-slim
RUN mkdir -p /usr/src/app RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app WORKDIR /usr/src/app
......
...@@ -9,34 +9,67 @@ from access_node.models.nodes import nodes ...@@ -9,34 +9,67 @@ from access_node.models.nodes import nodes
import json import json
import requests import requests
import time import psycopg2
def SetupDB(postgres_username, postgres_password, port):
con = psycopg2.connect(database="postgres", user=postgres_username,
password=postgres_password, host="database", port=str(port))
print("Database connection opened successfully!")
cur = con.cursor()
cur.execute('''CREATE TABLE IF NOT EXISTS SIMULATION_NODES (
NODE_ID INT PRIMARY KEY NOT NULL UNIQUE,
ADDRESS VARCHAR(25),
CURRENT_SIM_TIME FLOAT);''')
cur.execute('''CREATE TABLE IF NOT EXISTS MULTIMETERS (
MULTIMETER_ID INT PRIMARY KEY NOT NULL UNIQUE,
ATTRIBUTE CHAR(50) );''')
cur.execute('''CREATE TABLE IF NOT EXISTS GIDS (
GID INT PRIMARY KEY NOT NULL UNIQUE,
NODE_ID INT,
POPULATION_ID INT,
FOREIGN KEY (NODE_ID) REFERENCES SIMULATION_NODES (NODE_ID));''')
cur.execute('''CREATE TABLE IF NOT EXISTS MULT_PER_GID(
GID INT NOT NULL,
MULTIMETER_ID INT NOT NULL,
PRIMARY KEY (GID,MULTIMETER_ID),
FOREIGN KEY (GID) REFERENCES GIDS (GID),
FOREIGN KEY (MULTIMETER_ID) REFERENCES MULTIMETERS (MULTIMETER_ID));''')
con.commit()
print("Tables created successfully!\n")
con.close()
def main(): def main():
# This is just to give the info-node some time to start the server # Connect to the Database and initalize basic Table structure
# in the docker container SetupDB('postgres', 'docker', 5432)
time.sleep(5)
# get info node
# get info node with open('access_node//info_node.json', 'r') as f:
with open('access_node//info_node.json', 'r') as f: info = json.load(f)
info = json.load(f) nodes.info_node = info['address']
nodes.info_node = info['address']
# get simulation nodes
# get simulation nodes node_type = 'nest_simulation'
node_type = 'nest_simulation' nodes.nest_simulation_nodes = requests.get(
nodes.nest_simulation_nodes = requests.get( nodes.info_node+'/nodes', params={"node_type": node_type}).json()
nodes.info_node+'/nodes', params={"node_type": node_type}).json() node_type = 'arbor_simulation'
node_type = 'arbor_simulation' nodes.arbor_simulation_nodes = requests.get(
nodes.arbor_simulation_nodes = requests.get( nodes.info_node+'/nodes', params={"node_type": node_type}).json()
nodes.info_node+'/nodes', params={"node_type": node_type}).json()
# run acces_node
# run acces_node app = connexion.App(__name__, specification_dir='./swagger/')
app = connexion.App(__name__, specification_dir='./swagger/') app.app.json_encoder = encoder.JSONEncoder
app.app.json_encoder = encoder.JSONEncoder app.add_api('swagger.yaml', arguments={
app.add_api('swagger.yaml', arguments={ 'title': 'In-Situ Pipeline REST API'})
'title': 'In-Situ Pipeline REST API'}) CORS(app.app)
CORS(app.app) app.run(port=8080)
app.run(port=8080)
if __name__ == '__main__': if __name__ == '__main__':
......
...@@ -3,3 +3,4 @@ python_dateutil == 2.6.0 ...@@ -3,3 +3,4 @@ python_dateutil == 2.6.0
setuptools >= 21.0.0 setuptools >= 21.0.0
requests requests
flask_cors flask_cors
psycopg2-binary
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment