Complete Phase 1 Tally UI and local agent integration
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
from __future__ import annotations
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import date, datetime, timezone
|
||||
import asyncio
|
||||
@@ -82,6 +82,7 @@ from app.modules.core.tenancy.models import Branch, Tenant
|
||||
from app.modules.core.tenancy.year_control import is_row_financial_year_locked
|
||||
from app.modules.documents.agent_package import ERP_LOCAL_AGENT_VERSION, build_agent_env, build_preconfigured_agent_zip, build_agent_update_zip
|
||||
from app.modules.documents.models import BranchStorageNode
|
||||
from app.modules.accounting.agent_bridge import list_pending_agent_commands, record_agent_command_result
|
||||
|
||||
from app.modules.services.task_documents import (
|
||||
get_task_with_subscription,
|
||||
@@ -1693,7 +1694,8 @@ def _storage_agent_sync_payload(db, node):
|
||||
jobs += _permanent_storage_jobs_payload(list_pending_permanent_storage_jobs(db, node))
|
||||
requests_ = _normal_download_requests_payload(list_pending_download_requests(db, node))
|
||||
requests_ += _permanent_download_requests_payload(list_pending_permanent_download_requests(db, node))
|
||||
return {"ok": True, "jobs": jobs, "download_requests": requests_, "requests": requests_}
|
||||
commands = list_pending_agent_commands(node.node_code, limit=10)
|
||||
return {"ok": True, "jobs": jobs, "download_requests": requests_, "requests": requests_, "commands": commands}
|
||||
|
||||
|
||||
@router.get("/storage-agent/jobs/pending")
|
||||
@@ -1837,7 +1839,9 @@ async def storage_agent_tunnel(websocket: WebSocket):
|
||||
await websocket.send_json({"ok": False, "type": "error", "error": "node_deactivated_or_invalid"})
|
||||
await websocket.close(code=1008)
|
||||
return
|
||||
if message and message.get("type") in {"heartbeat", "agent_status"}:
|
||||
if message and message.get("type") == "command_result":
|
||||
record_agent_command_result(node.node_code, message)
|
||||
if message and message.get("type") in {"heartbeat", "agent_status", "command_result"}:
|
||||
try:
|
||||
node.storage_mode = "tunnel"
|
||||
except Exception:
|
||||
|
||||
Reference in New Issue
Block a user