Skip to content
Snippets Groups Projects
__main__.py 1.25 KiB
Newer Older
Jan Müller's avatar
Jan Müller committed
#!/usr/bin/env python3

import connexion

from access_node import encoder
Simon Oehrl's avatar
Simon Oehrl committed
from flask_cors import CORS
Jan Müller's avatar
Jan Müller committed

from access_node.models.nodes import nodes
import time
Jan Müller's avatar
Jan Müller committed
import psycopg2

Simon Oehrl's avatar
Simon Oehrl committed
def ConnectToDatabase(postgres_username, postgres_password):
	database_host = 'database'
    with open('database_host.txt') as database_host_file:
        database_host = database_host_file.readline()
    return psycopg2.connect(database="postgres", user="postgres",
                       password="postgres", host=database_host, port="5432")
Jan Müller's avatar
Jan Müller committed

Jan Müller's avatar
Jan Müller committed

def main():
	# Wait for simulation nodes to post to database
Simon Oehrl's avatar
Simon Oehrl committed
	time.sleep(5)
Jan Müller's avatar
Jan Müller committed

	# get simulation nodes
Simon Oehrl's avatar
Simon Oehrl committed
	con = ConnectToDatabase('postgres', 'postgres')
	cur = con.cursor()
	# NEST
	cur.execute("SELECT address FROM nest_simulation_node")
	nodes.nest_simulation_nodes = [i[0] for i in cur.fetchall()]
	# Arbor
Jan Müller's avatar
Jan Müller committed
	cur.execute("SELECT address FROM nest_simulation_node")
	nodes.arbor_simulation_nodes = [i[0] for i in cur.fetchall()]
	con.close()

Jan Müller's avatar
Jan Müller committed

	# run acces_node
	app = connexion.App(__name__, specification_dir='./swagger/')
	app.app.json_encoder = encoder.JSONEncoder
	app.add_api('swagger.yaml', arguments={
				'title': 'In-Situ Pipeline REST API'})
	CORS(app.app)
	app.run(port=8080)
Jan Müller's avatar
Jan Müller committed


if __name__ == '__main__':
    main()