命令行输出格式
每个已解析的cosh-cli操作都会返回一个JSON信封。先解析信封,再处理操作对应的data或error对象。
成功响应
{
"ok": true,
"data": { "packages": [] },
"meta": {
"subsystem": "pkg",
"duration_ms": 342,
"distro": "alinux",
"dry_run": false
}
}
失败响应
{
"ok": false,
"error": {
"code": "PkgNotFound",
"message": "package 'nginx-extra' not found",
"recoverable": false,
"hint": "Try 'cosh pkg search nginx' to check availability",
"subsystem": "pkg"
},
"meta": {
"subsystem": "pkg",
"duration_ms": 120,
"distro": "ubuntu",
"dry_run": false
}
}
字段
| 字段 | 含义 |
|---|---|
ok | 成功为true,失败为false。 |
data | 操作结果,成功时存在。 |
error | 失败详情:code、message、recoverable、可选的hint和details,以及subsystem。 |
meta.subsystem | pkg、svc、checkpoint或audit。 |
meta.duration_ms | 操作耗时,单位为毫秒。 |
meta.distro | 可用时返回检测到的平台ID。 |
meta.dry_run | true表示预览,实际操作未执行。 |
meta.warning | 随结果返回的可选警告。 |
错误码是稳定字符串,例如PkgNotFound、UnsupportedDistro、SvcNotFound、CheckpointNotFound、AuditDenied、Timeout和PermissionDenied;请使用error.code和error.hint,不要解析错误消息文本。
退出码和Agent处理
- 退出码
0表示ok: true;退出码1表示ok: false。 - 失败时先检查
error.recoverable再决定是否重试,并在有error.hint时展示它。 meta.dry_run为true时,只报告预览结果,不要声称主机已发生变化。