linuxrouter/docker/routlin-dash/app/api_apply_health.py

26 lines
839 B
Python
Raw Normal View History

2026-05-20 04:06:50 -04:00
from flask import Blueprint, request, jsonify
2026-06-07 00:21:08 -04:00
import auth
import config_utils
2026-05-20 04:06:50 -04:00
2026-05-25 01:04:47 -04:00
bp = Blueprint('api_apply_health', __name__)
2026-05-20 04:06:50 -04:00
2026-05-25 01:04:47 -04:00
@bp.route('/api/apply-health')
2026-06-07 00:21:08 -04:00
@auth.require_level('viewer')
2026-05-25 01:04:47 -04:00
def apply_health():
2026-05-20 04:06:50 -04:00
entry_uuid = request.args.get('uuid', '')
if not entry_uuid:
return jsonify({'status': 'unknown'})
2026-06-07 00:21:08 -04:00
if entry_uuid in config_utils._load_done_set():
2026-05-20 04:06:50 -04:00
return jsonify({'status': 'complete'})
2026-06-07 00:21:08 -04:00
if config_utils._is_locked():
mtime = config_utils._lock_mtime()
entry_ts = config_utils._entry_ts_from_queue(entry_uuid)
2026-05-20 04:06:50 -04:00
if mtime and entry_ts is not None and entry_ts < mtime:
return jsonify({'status': 'running'})
return jsonify({'status': 'pending', 'next_in': None})
2026-06-07 00:21:08 -04:00
return jsonify({'status': 'pending', 'next_in': config_utils._seconds_until_next_run()})