Fix inactive domain services health to show needs_attention on domain/port issues
Agent-Logs-Url: https://github.com/naturallaw777/staging_alpha/sessions/0baad662-d798-4d3e-a079-eefece637ab7 Co-authored-by: naturallaw777 <99053422+naturallaw777@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
2ff983f5f4
commit
1b2c0f2c1c
@@ -2421,6 +2421,36 @@ async def api_services():
|
||||
sync_headers = sync.get("headers", 0)
|
||||
sync_ibd = True
|
||||
elif status == "inactive":
|
||||
# For enabled services that are inactive (e.g. socket-activated PHP-FPM),
|
||||
# still check domain/port health so status remains consistent with
|
||||
# other domain services when there are actionable issues.
|
||||
has_domain_issues_inactive = False
|
||||
if needs_domain:
|
||||
has_domain_issues_inactive = await loop.run_in_executor(
|
||||
None,
|
||||
_check_domain_health_fast,
|
||||
domain,
|
||||
_cached_external_ip,
|
||||
)
|
||||
if not has_domain_issues_inactive and domain:
|
||||
cached_reachable = _is_domain_reachable_cached(domain)
|
||||
if cached_reachable is False:
|
||||
has_domain_issues_inactive = True
|
||||
has_port_issues_inactive = False
|
||||
if port_requirements:
|
||||
for p in port_requirements:
|
||||
ps = _check_port_status(
|
||||
str(p.get("port", "")),
|
||||
str(p.get("protocol", "TCP")),
|
||||
listening_ports,
|
||||
firewall_ports,
|
||||
)
|
||||
if ps == "closed":
|
||||
has_port_issues_inactive = True
|
||||
break
|
||||
if has_domain_issues_inactive or has_port_issues_inactive:
|
||||
health = "needs_attention"
|
||||
else:
|
||||
health = "inactive"
|
||||
elif status == "failed":
|
||||
health = "failed"
|
||||
@@ -2649,6 +2679,13 @@ async def api_service_detail(unit: str, icon: str | None = None):
|
||||
sync_headers = sync.get("headers", 0)
|
||||
sync_ibd = True
|
||||
elif status == "inactive":
|
||||
# For enabled services that are inactive (e.g. socket-activated PHP-FPM),
|
||||
# still check domain/port health so detail health is consistent.
|
||||
has_domain_issues_inactive = has_domain_issues
|
||||
has_port_issues_inactive = any(p["status"] == "closed" for p in port_statuses) if port_statuses else False
|
||||
if has_domain_issues_inactive or has_port_issues_inactive:
|
||||
health = "needs_attention"
|
||||
else:
|
||||
health = "inactive"
|
||||
elif status == "failed":
|
||||
health = "failed"
|
||||
|
||||
Reference in New Issue
Block a user