Skip to content
Snippets Groups Projects
Commit a182ce5b authored by Vladimír Višňovský's avatar Vladimír Višňovský
Browse files

add global config & refactor main folder

parent b3339582
No related branches found
No related tags found
2 merge requests!8Development,!7Remodule (v1.0 -> v1.1)
import os
class Config:
# Auth
CLIENT_ID = os.environ.get("CLIENT_ID", None)
CLIENT_SECRET = os.environ.get("CLIENT_SECRET", None)
DISCOVERY_URL = "https://login.elixir-czech.org/oidc/.well-known/openid-configuration"
REDIRECT_URI = "https://pmcvff-correction.cerit-sc.cz/login/callback"
# General
DATABASE= "/var/lib/sqlite/sqlite_db"
PIPELINE_IMAGE = "spectraes/pipeline:2021-05-07"
GENERAL_NAME = "pmcvff-correction"
TEMPLATES_PATH = f"/app/pmcff/pipeline/templates"
YAMLS_PATH = "/srv"
RUN_AS = 0
# Pvc
PVC_NAME = f"{GENERAL_NAME}-claim"
PVC_STORAGE = "10Gi"
# Service
SERVICE_NAME = f"{GENERAL_NAME}-svc"
SERVICE_JUPYTERPORT = "jupyterport"
# Ingress
INGRESS_NAME = f"{GENERAL_NAME}-ingress"
# http://flask.pocoo.org/docs/1.0/tutorial/database/
import click
import sqlite3
import click
from flask import current_app, g
from flask import current_app, g, current_app
from flask.cli import with_appcontext
DATABASE_PATH = "/var/lib/sqlite"
def get_db():
if "db" not in g:
g.db = sqlite3.connect(
f"{DATABASE_PATH}/sqlite_db", detect_types=sqlite3.PARSE_DECLTYPES
current_app.config['DATABASE'], detect_types=sqlite3.PARSE_DECLTYPES
)
g.db.row_factory = sqlite3.Row
return g.db
def get_connection(db_file):
conn = None
try:
......@@ -25,18 +24,21 @@ def get_connection(db_file):
return conn
def close_db(e=None):
db = g.pop("db", None)
if db is not None:
db.close()
def init_db():
db = get_db()
with current_app.open_resource("schema.sql") as f:
db.executescript(f.read().decode("utf8"))
@click.command("init-db")
@with_appcontext
def init_db_command():
......@@ -44,6 +46,8 @@ def init_db_command():
init_db()
click.echo("Initialized the database.")
def init_app(app):
app.teardown_appcontext(close_db)
app.cli.add_command(init_db_command)
requests==2.21.0
Flask==1.0.2
oauthlib==3.0.1
pyOpenSSL==19.0.0
Flask-Login==0.4.1
waitress==1.4.4
ruamel.yaml==0.16.12
......@@ -5,3 +5,4 @@ CREATE TABLE user (
dns_name TEXT UNIQUE,
token TEXT UNIQUE
);
from flask_login import UserMixin
from pmcff.db import get_db
from db import get_db
class User(UserMixin):
def __init__(self, id_, name, email, dns_name, token):
......@@ -10,6 +10,7 @@ class User(UserMixin):
self.dns_name = dns_name
self.token = token
@staticmethod
def get(conn, user_id):
db = conn.cursor()
......@@ -25,6 +26,7 @@ class User(UserMixin):
)
return user
@staticmethod
def get_user_by_dns_name(conn, dns_name):
db = conn.cursor()
......@@ -40,6 +42,7 @@ class User(UserMixin):
)
return user
@staticmethod
def remove_container(conn, dns_name):
user = User.get_user_by_dns_name(conn, dns_name)
......@@ -51,6 +54,7 @@ class User(UserMixin):
User.update(conn, new_user)
@staticmethod
def assign_dns_name(conn, user_id, dns_name):
db = conn.cursor()
......@@ -62,6 +66,7 @@ class User(UserMixin):
conn.commit()
@staticmethod
def assign_token(conn, user_id, token):
db = conn.cursor()
......@@ -73,6 +78,7 @@ class User(UserMixin):
conn.commit()
@staticmethod
def update(conn, user):
db = conn.cursor()
......@@ -84,6 +90,7 @@ class User(UserMixin):
conn.commit()
@staticmethod
def create(conn, id_, name, email, dns_name, token):
db = conn.cursor()
......
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