add new config pattern for database URI and overrides

This commit is contained in:
dandds 2018-07-30 10:15:48 -04:00 committed by richard-dds
parent 54f2a0dce0
commit 3bd1efcd03
2 changed files with 46 additions and 15 deletions

View File

@ -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

View File

@ -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