-
Notifications
You must be signed in to change notification settings - Fork 0
/
db_console.py
39 lines (34 loc) · 1.23 KB
/
db_console.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import fast.manager.engine as engine
import json
import argparse
from fast.manager.models import *
import sqlalchemy
import sqlalchemy as sa
from pprint import pp
import tasks
import sys
import networkx as nx
import fast.dataflow.cross_package as cp
import fast.dataflow.trust_domains as td
if __name__ == '__main__':
ap = argparse.ArgumentParser(description="Direct console access.")
ap.add_argument("--db", action="store", default=False, required=False)
ap.add_argument("--echo", action="store_true", default=False, required=False)
args = ap.parse_args()
if args.db:
try:
with open(args.db) as f:
db = json.load(f)
except FileNotFoundError as e:
sys.stderr.write(f"No db config file found at {args.db}.\n")
sys.exit(1)
except json.JSONDecodeError as e:
sys.stderr.write(f"Could not load json db config file at {args.db}.\n")
sys.exit(1)
db_uri = f"postgresql+psycopg2://{db['username']}:{db['password']}@{db['host']}:{db['port']}/{db['db']}"
engine, Session = engine.init(db_uri, echo=args.echo)
else:
engine, Session = engine.init()
sess = Session()
session = sess
sei = 'system_extra_info'