跳到主要内容

命令行输出格式

English

每个已解析的cosh-cli操作都会返回一个JSON信封。先解析信封,再处理操作对应的dataerror对象。

成功响应

{
"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失败详情:codemessagerecoverable、可选的hintdetails,以及subsystem
meta.subsystempkgsvccheckpointaudit
meta.duration_ms操作耗时,单位为毫秒。
meta.distro可用时返回检测到的平台ID。
meta.dry_runtrue表示预览,实际操作未执行。
meta.warning随结果返回的可选警告。

错误码是稳定字符串,例如PkgNotFoundUnsupportedDistroSvcNotFoundCheckpointNotFoundAuditDeniedTimeoutPermissionDenied;请使用error.codeerror.hint,不要解析错误消息文本。

退出码和Agent处理

  • 退出码0表示ok: true;退出码1表示ok: false
  • 失败时先检查error.recoverable再决定是否重试,并在有error.hint时展示它。
  • meta.dry_runtrue时,只报告预览结果,不要声称主机已发生变化。