diff --git a/atst/app.py b/atst/app.py index c56ea250..73e144fc 100644 --- a/atst/app.py +++ b/atst/app.py @@ -24,6 +24,7 @@ from atst.database import make_db ENV = os.getenv("TORNADO_ENV", "dev") + def make_app(config, deps, **kwargs): routes = [ @@ -31,16 +32,15 @@ def make_app(config, deps, **kwargs): url( r"/login-redirect", LoginRedirect, - {"sessions": deps["sessions"], "authnid_client": deps["authnid_client"], "authz_client": deps["authz_client"]}, + { + "sessions": deps["sessions"], + "authnid_client": deps["authnid_client"], + "authz_client": deps["authz_client"], + }, name="login_redirect", ), url(r"/home", Main, {"page": "home"}, name="home"), - url( - r"/styleguide", - Main, - {"page": "styleguide"}, - name="styleguide", - ), + url(r"/styleguide", Main, {"page": "styleguide"}, name="styleguide"), url( r"/workspaces/blank", Main, @@ -100,7 +100,7 @@ def make_app(config, deps, **kwargs): r"/request/approval", Main, {"page": "request_approval"}, - name="request_approval" + name="request_approval", ), url( r"/requests/verify/(\S+)", @@ -121,7 +121,9 @@ def make_app(config, deps, **kwargs): url(r"/users", Main, {"page": "users"}, name="users"), url(r"/reports", Main, {"page": "reports"}, name="reports"), url(r"/calculator", Main, {"page": "calculator"}, name="calculator"), - url(r"/workspaces/(\S+)/members", WorkspaceMembers, {}, name="workspace_members"), + url( + r"/workspaces/(\S+)/members", WorkspaceMembers, {}, name="workspace_members" + ), url(r"/workspaces/(\S+)/projects", Workspace, {}, name="workspace_projects"), url(r"/workspaces/123456/projects/789/edit", Main, {"page": "project_edit"}, name="project_edit"), url(r"/workspaces/123456/members/789/edit", Main, {"page": "member_edit"}, name="member_edit"), @@ -132,7 +134,11 @@ def make_app(config, deps, **kwargs): url( r"/login-dev", Dev, - {"action": "login", "sessions": deps["sessions"], "authz_client": deps["authz_client"]}, + { + "action": "login", + "sessions": deps["sessions"], + "authz_client": deps["authz_client"], + }, name="dev-login", ) ] @@ -146,7 +152,7 @@ def make_app(config, deps, **kwargs): debug=config["default"].getboolean("DEBUG"), ui_modules=ui_modules, ui_methods=ui_methods, - **kwargs, + **kwargs ) app.config = config app.sessions = deps["sessions"] @@ -173,8 +179,7 @@ def make_deps(config): validate_cert=validate_cert, ), "fundz_client": ApiClient( - config["default"]["FUNDZ_BASE_URL"], - validate_cert=validate_cert, + config["default"]["FUNDZ_BASE_URL"], validate_cert=validate_cert ), "requests_client": ApiClient( config["default"]["REQUESTS_QUEUE_BASE_URL"], @@ -192,8 +197,30 @@ def make_config(): ENV_CONFIG_FILENAME = os.path.join( os.path.dirname(__file__), "../config/", "{}.ini".format(ENV.lower()) ) + OVERRIDE_CONFIG_FILENAME = os.getenv("OVERRIDE_CONFIG_FULLPATH") + config = ConfigParser() + config_files = [BASE_CONFIG_FILENAME, ENV_CONFIG_FILENAME] + if OVERRIDE_CONFIG_FILENAME: + config_files.append(OVERRIDE_CONFIG_FILENAME) + # ENV_CONFIG will override values in BASE_CONFIG. - config.read([BASE_CONFIG_FILENAME, ENV_CONFIG_FILENAME]) + config.read(config_files) + + # Assemble DATABASE_URI value + database_uri = ( + "postgres://" + + config.get("default", "DATABASE_USERNAME") + + ":" + + config.get("default", "DATABASE_PASSWORD") + + "@" + + config.get("default", "DATABASE_HOST") + + ":" + + config.get("default", "DATABASE_PORT") + + "/" + + config.get("default", "DATABASE_NAME") + ) + config.set("default", "DATABASE_URI", database_uri) + return config diff --git a/config/base.ini b/config/base.ini index 8b6e68a2..92f40d5a 100644 --- a/config/base.ini +++ b/config/base.ini @@ -11,4 +11,8 @@ CAC_URL = https://localhost:8001 REQUESTS_QUEUE_BASE_URL = http://localhost:8003 REDIS_URI = redis://localhost:6379 SESSION_TTL_SECONDS = 600 -DATABASE_URI = postgres://postgres:postgres@localhost/atat +DATABASE_HOST = localhost +DATABASE_PORT = 5432 +DATABASE_USERNAME = postgres +DATABASE_PASSWORD = postgres +DATABASE_NAME = atat