mirror of
https://github.com/jmagar/unraid-mcp.git
synced 2026-03-23 04:29:17 -07:00
Resolves review threads: - PRRT_kwDOO6Hdxs50fewG (setup.py): non-eliciting clients now return True from elicit_reset_confirmation so they can reconfigure without being blocked - PRRT_kwDOO6Hdxs50fewM (test-tools.sh): add notification/recalculate smoke test - PRRT_kwDOO6Hdxs50fewP (test-tools.sh): add system/array smoke test - PRRT_kwDOO6Hdxs50fewT (resources.py): surface manager error state instead of reporting 'connecting' for permanently failed subscriptions - PRRT_kwDOO6Hdxs50feAj (resources.py): use is not None check for empty cached dicts - PRRT_kwDOO6Hdxs50fewY (integration tests): remove duplicate snapshot-registration tests already covered in test_resources.py - PRRT_kwDOO6Hdxs50fewe (test_resources.py): replace brittle import-detail test with behavior tests for connecting/error states - PRRT_kwDOO6Hdxs50fewh (test_customization.py): strengthen public_theme assertion - PRRT_kwDOO6Hdxs50fewk (test_customization.py): strengthen theme assertion - PRRT_kwDOO6Hdxs50fewo (__init__.py): correct subaction count ~88 -> ~107 - PRRT_kwDOO6Hdxs50fewx (test_oidc.py): assert providers list value directly - PRRT_kwDOO6Hdxs50fewz (unraid.py): remove unreachable raise after vm handler - PRRT_kwDOO6Hdxs50few2 (unraid.py): remove unreachable raise after docker handler - PRRT_kwDOO6Hdxs50fev8 (CLAUDE.md): replace legacy 15-tool table with unified unraid action/subaction table - PRRT_kwDOO6Hdxs50fev_ (test_oidc.py): assert providers + defaultAllowedOrigins - PRRT_kwDOO6Hdxs50feAz (CLAUDE.md): update tool categories to unified API shape - PRRT_kwDOO6Hdxs50feBE (CLAUDE.md/setup.py): update unraid_health refs to unraid(action=health, subaction=setup)
53 lines
2.1 KiB
Python
53 lines
2.1 KiB
Python
"""GraphQL subscription query strings for snapshot and collect operations."""
|
|
|
|
# Subscriptions that only emit on state changes (not on a regular interval).
|
|
# When subscribe_once times out for these, it means no recent change — not an error.
|
|
EVENT_DRIVEN_ACTIONS: frozenset[str] = frozenset(
|
|
{
|
|
"parity_progress",
|
|
"ups_status",
|
|
"notifications_overview",
|
|
"owner",
|
|
"server_status",
|
|
}
|
|
)
|
|
|
|
SNAPSHOT_ACTIONS = {
|
|
"cpu": """
|
|
subscription { systemMetricsCpu { id percentTotal cpus { percentTotal percentUser percentSystem percentIdle } } }
|
|
""",
|
|
"memory": """
|
|
subscription { systemMetricsMemory { id total used free available active buffcache percentTotal swapTotal swapUsed swapFree percentSwapTotal } }
|
|
""",
|
|
"cpu_telemetry": """
|
|
subscription { systemMetricsCpuTelemetry { id totalPower power temp } }
|
|
""",
|
|
"array_state": """
|
|
subscription { arraySubscription { id state capacity { kilobytes { free used total } } parityCheckStatus { status progress speed errors } } }
|
|
""",
|
|
"parity_progress": """
|
|
subscription { parityHistorySubscription { date status progress speed errors correcting paused running } }
|
|
""",
|
|
"ups_status": """
|
|
subscription { upsUpdates { id name model status battery { chargeLevel estimatedRuntime health } power { inputVoltage outputVoltage loadPercentage } } }
|
|
""",
|
|
"notifications_overview": """
|
|
subscription { notificationsOverview { unread { info warning alert total } archive { info warning alert total } } }
|
|
""",
|
|
"owner": """
|
|
subscription { ownerSubscription { username url avatar } }
|
|
""",
|
|
"server_status": """
|
|
subscription { serversSubscription { id name status guid wanip lanip localurl remoteurl } }
|
|
""",
|
|
}
|
|
|
|
COLLECT_ACTIONS = {
|
|
"notification_feed": """
|
|
subscription { notificationAdded { id title subject description importance type timestamp } }
|
|
""",
|
|
"log_tail": """
|
|
subscription LogTail($path: String!) { logFile(path: $path) { path content totalLines startLine } }
|
|
""",
|
|
}
|