Specify Flask SERVER_NAME value for Celery worker.

The Celery worker cannot render URLs for the app without having a
SERVER_NAME value set. AT-AT's ability to send notifications when an
environment is ready is broken as a result.

This commit sets a null default value for SERVER_NAME in the default
config file. A setting must exist in the INI file in order to be
over-written by an environment variable, which is why we declare it as
null here. There is an additional kwarg, "allow_no_value", that must be
passed to ConfigParser to allow null values.

This also applies the correct domains as SERVER_NAME environment
variables in the Kubernetes ConfigMaps for the AWS and Azure Celery
workers.
This commit is contained in:
dandds
2019-10-16 10:46:21 -04:00
parent ff68c640de
commit fc637e933d
5 changed files with 7 additions and 5 deletions

View File

@@ -89,16 +89,17 @@ def protected_routes(app):
def test_protected_routes_redirect_to_login(client, app):
server_name = app.config.get("SERVER_NAME") or "localhost"
for rule, protected_route in protected_routes(app):
if "GET" in rule.methods:
resp = client.get(protected_route)
assert resp.status_code == 302
assert "http://localhost/" in resp.headers["Location"]
assert server_name in resp.headers["Location"]
if "POST" in rule.methods:
resp = client.post(protected_route)
assert resp.status_code == 302
assert "http://localhost/" in resp.headers["Location"]
assert server_name in resp.headers["Location"]
def test_get_protected_route_encodes_redirect(client):