add new config pattern for database URI and overrides
This commit is contained in:
parent
54f2a0dce0
commit
3bd1efcd03
55
atst/app.py
55
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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user