in bedrock/base/views.py [0:0]
def cron_health_check(request):
results = []
check_pass = True
for fname, max_time in HEALTH_FILES:
fpath = f"{settings.DATA_PATH}/last-run-{fname}"
try:
last_check = os.path.getmtime(fpath)
except OSError:
check_pass = False
results.append((fname, max_time, "None", False))
continue
time_since = int(time() - last_check)
if time_since > max_time:
task_pass = False
check_pass = False
else:
task_pass = True
results.append((fname, max_time, time_since, task_pass))
git_repos = git.GitRepoState.objects.exclude(repo_name="").order_by("repo_name", "-latest_ref_timestamp")
unique_repos = {}
for repo in git_repos:
if repo.repo_name in unique_repos:
continue
unique_repos[repo.repo_name] = repo
setattr(
unique_repos[repo.repo_name],
"last_updated_timestamp",
datetime.fromtimestamp(repo.latest_ref_timestamp),
)
try:
most_recent_data_change_ts = sorted([x.last_updated_timestamp for x in unique_repos.values()])[-1]
except IndexError:
most_recent_data_change_ts = None
return render(
request,
"cron-health-check.html",
{
"results": results,
"server_info": get_extra_server_info(),
"contentful_info": get_contentful_sync_info(),
"success": check_pass,
"git_repos": unique_repos.values(),
"fluent_repo": get_l10n_repo_info(),
"SQLITE_DB_IN_USE": SQLITE_DB_IN_USE,
"most_recent_data_change_ts": most_recent_data_change_ts,
"switches": Switch.objects.order_by("name"),
},
status=200 if check_pass else 500,
)