首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于Curl请求的JSON响应,竹子能检测到故障吗?

基于Curl请求的JSON响应,竹子能检测到故障吗?
EN

Stack Overflow用户
提问于 2021-11-16 10:18:57
回答 2查看 24关注 0票数 0

我有一个在shell脚本中定义的Curl post请求,它是我在竹子计划中的默认任务的一部分。

Curl请求在我的一个QA环境上执行部署。由于是全栈部署,完成部署大约需要2个小时。

部署完成后,为了检查部署的状态,我希望再发送一个curl请求,它的响应中有一个状态字段,表明部署是否成功。

以下是请求的响应示例:

代码语言:javascript
复制
{
  "_id" : "xxx",
  "templateId" : "xxx",
  "templateName" : "all full reinstall",
  "epoch" : "2021-11-12T10:22:14.268Z",
  "userEmail" : "xxx@xxx.com",
  "playbook" : "all_full_reinstall.yml",
  "repoId" : "xxx",
  "repoName" : "tower-in-house",
  "inventoryId" : "xxx",
  "inventoryName" : "xxx",
  "status" : "failed"
}

我还有一些触发回归测试的其他阶段,但只有在状态为成功且未失败时才会触发这些阶段。

挑战是curl请求给出的响应是200。但在响应中,我希望读取“status”字段,以确定阶段是否成功。

我看过Can Bamboo interpret an HTTP 400 Bad request as a failure,但这篇文章谈到了返回非2xx代码。在我的示例中,它返回200,但是其中一个json响应字段包含错误消息,我需要查看该消息以确定是失败还是成功。

有没有办法让我继续下去?任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-16 18:08:37

我遵循了Oleksiy Chystoprudov上面的答案,我能够解决这个问题。

这是我用过的

代码语言:javascript
复制
response=$(curl -s "API_Endpoint_to_check_deployment_status" | jq '.status' | tr -d '"' )
if [ "$response" = "success" ]; then
exit 0
else
exit 1
fi
票数 0
EN

Stack Overflow用户

发布于 2021-11-16 12:32:57

我认为您可以编写shell脚本,它将使用jq等库分析响应JSON,然后根据状态字段的值调用exit 0或exit 1。在退出1的情况下,竹子会将任务和作业标记为失败

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69987335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档