Skip to content
Snippets Groups Projects
__main__.py 1.31 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):
Simon Oehrl's avatar
Simon Oehrl committed
    database_host = 'database'
Simon Oehrl's avatar
Simon Oehrl committed
    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():
Simon Oehrl's avatar
Simon Oehrl committed
    # Wait for simulation nodes to post to database
    time.sleep(5)

    # get simulation nodes
    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
    cur.execute("SELECT address FROM nest_simulation_node")
    nodes.arbor_simulation_nodes = [i[0] for i in cur.fetchall()]
    con.close()


    # 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()