查看命令状态及其输出末尾
带 wait_seconds 时,在命令结束或时间到时返回,以先发生者为准;时间到时返回 200,status 为 running,调用方需要再次请求。等待期间沙箱不会自行休眠;如果在本调用等待时沙箱被休眠,调用会继续等待,时间到时返回沙箱进入休眠时命令的状态,不会唤醒沙箱;如果期间沙箱从磁盘重启,则返回 409 command_lost。为了读取命令输出,会唤醒休眠中的沙箱;但如果沙箱中没有该 id,就不会唤醒,而是根据节点的记录直接返回 404。
所需权限范围:exec,或带 exec 的沙箱令牌。
GET
https://api.glac.ai/v1/sandboxes/{id}/exec/{exec_id}授权
路径参数
查询参数
请求头参数
Returns
200
命令;output=false 时不含输出字段。
JSON
以下之一:
- ExecResult
- Exec
400
请求不符合本调用的要求。unknown_parameter:查询中有本调用不接受的参数;invalid_field:某个字段或查询参数类型错误或超出范围。
JSON
401
missing_api_key, invalid_api_key, expired_api_key, invalid_token.
JSON
403
凭据无权执行此操作。token_scope:沙箱令牌缺少所需的权限范围。spend_limit_reached:沙箱因达到支出上限而被冻结;它会连同数据一起休眠,直到上限提高。
JSON
404
请求中指定的对象不存在。sandbox_not_found:沙箱不存在;exec_not_found:沙箱中没有该命令。
JSON
409
某个对象的状态不允许此操作。sandbox_failed:沙箱处于 failed 状态;command_lost:调用等待期间沙箱从磁盘重启了;sandbox_moved:调用等待期间沙箱被迁到了另一个节点,命令在那里继续运行(to、epoch、offset):通过控制平面发起同一调用,即可在那里查询。
JSON
default
其他任何失败,格式相同。internal (500):节点出错;错误信息不会多说,节点日志中以请求的 id 记录了原因。unavailable(503,可重试):no_capacity,节点的网络槽位都已占用;memory_full,调用需要启动的虚拟机(创建、唤醒、从磁盘启动、恢复、回滚、构建)在宿主机内存中放不下(还要算上已承诺给其上运行的虚拟机的内存),也没有暂停或空闲的虚拟机可以让其休眠来腾出空间(节点的 memory);drive_full,调用需要构建模板,而节点的数据盘没有空间(节点的 drive);unavailable,节点正在关闭、沙箱 10 分钟后仍处于 starting、沙箱没有响应,或者沙箱正在迁到本节点(带 Retry-After: 1);fenced,节点的租约隔离了该沙箱 (Node.lease)。moved (409):沙箱已迁到另一个节点,由 to 指明。
JSON