feat: 脚本/定时任务真实执行+输出捕获+执行历史 — 替换pending空壳为本地执行,采集stdout/stderr,更新统计;修复CronJobManager/Automation字段名不匹配(status→enabled,cron→cron_expr,command→content,language→type)
This commit is contained in:
1 parent
85bc2a8e05
commit
a4fd5fc178
19 files changed
+2715
-114
No files matched your search
@@ -300,6 +300,13 @@ export const scriptApi = {
|
||||
},
|
||||
};
|
||||
|
||||
// ==================== 任务执行记录 API ====================
|
||||
export const taskExecutionApi = {
|
||||
getExecutions: async (params?: { task_type?: string; task_id?: string; page?: number; page_size?: number }) => {
|
||||
return http.get<ListResponse>('/task-executions', params);
|
||||
},
|
||||
};
|
||||
|
||||
// ==================== 审批流程 API ====================
|
||||
export const approvalApi = {
|
||||
getTemplates: async () => {
|
||||
@@ -444,6 +451,20 @@ export const billingApi = {
|
||||
},
|
||||
};
|
||||
|
||||
// ==================== Agent 监控 API ====================
|
||||
export const agentApi = {
|
||||
getLatest: () => http.get('/agent/latest'),
|
||||
getHistory: (hostname: string, hours = 1) => http.get(`/agent/history/${hostname}?hours=${hours}`),
|
||||
createTask: (data: { hostname: string; type: string; command: string; timeout?: number }) => http.post('/agent/tasks', data),
|
||||
listTasks: (params?: Record<string, string>) => http.get('/agent/tasks', params),
|
||||
listRules: () => http.get('/agent/rules'),
|
||||
createRule: (data: any) => http.post('/agent/rules', data),
|
||||
updateRule: (id: number, data: any) => http.put(`/agent/rules/${id}`, data),
|
||||
deleteRule: (id: number) => http.delete(`/agent/rules/${id}`),
|
||||
listAlerts: (params?: Record<string, string>) => http.get('/agent/alerts', params),
|
||||
resolveAlert: (id: number) => http.post(`/agent/alerts/${id}/resolve`),
|
||||
};
|
||||
|
||||
// ==================== 区域管理 API ====================
|
||||
export const regionApi = {
|
||||
list: async () => {
|
||||
|
||||
Reference in new issue
Block a user