feat(api): auto_repair_service 整合 repair_by_uri (Sprint 3 T6)
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -497,19 +497,16 @@ class AutoRepairService:
|
||||
logger.warning("action_executor_not_available")
|
||||
return "SKIPPED (executor not available)"
|
||||
|
||||
# 2026-04-05 Claude Code: SSH_COMMAND — 主機層修復 (Sprint 3 Host Auto-Repair)
|
||||
# 2026-04-06 Claude Code: Sprint 3 — repair_by_uri (URI scheme 路由)
|
||||
if step.action_type == ActionType.SSH_COMMAND:
|
||||
from src.services.host_repair_agent import HostRepairAgent
|
||||
agent = HostRepairAgent()
|
||||
# step.command 格式: "<layer>/<component>" 例如 "docker-110/sentry"
|
||||
try:
|
||||
layer, component = step.command.split("/", 1)
|
||||
except ValueError:
|
||||
return f"FAILED: invalid ssh_command format '{step.command}' (expected layer/component)"
|
||||
result = await agent.repair(layer=layer, component=component)
|
||||
approved = not getattr(step, "requires_approval", False)
|
||||
result = await agent.repair_by_uri(step.command, approved=approved)
|
||||
if result.success:
|
||||
return f"SUCCESS: {result.output}"
|
||||
return f"FAILED: {result.error}"
|
||||
else:
|
||||
return f"FAILED: {result.error}"
|
||||
|
||||
return "UNKNOWN_ACTION_TYPE"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user