Imports name this capability’s declared dependencies, which fune builds next to it in your project; each one links to its page.
from typing import Sequence
from .monitor_check_status import CheckStatus ← from monitor.check-status ^1.0.0 · built alongside by fune
from .monitor_component_state_types import ComponentState
def component_state(statuses: Sequence[CheckStatus], under_maintenance: bool) -> ComponentState:
"""One component's state in Atlassian Statuspage's vocabulary. Maintenance
wins, so planned work never pages anyone as an outage; the statuses are
still checked, so a bad feed fails loudly even during maintenance."""
if len(statuses) == 0:
raise ValueError("statuses must not be empty")
if not isinstance(under_maintenance, bool):
raise ValueError("underMaintenance must be true or false")
down = 0
degraded = 0
for s in statuses:
if s == "down":
down += 1
elif s == "degraded":
degraded += 1
elif s != "up":
raise ValueError("unknown check status: %s" % (s,))
if under_maintenance:
return "maintenance"
if down == len(statuses):
return "major-outage"
if down > 0:
return "partial-outage"
return "degraded" if degraded > 0 else "operational"