首页 > 解决方案 > Jenkins:从队列中的项目获取作业名称(通过 API)

问题描述

我似乎无法通过 API 找到队列中某个项目的作业名称。我错过了什么(很明显)吗?

我创建了两个虚拟作业,它们需要一台名为“build1”的离线机器。

当我访问http://JENKINS_URL:8080/queue/api/json我得到这个:

{
  "_class": "hudson.model.Queue",
  "discoverableItems": [],
  "items": [
    {
      "_class": "hudson.model.Queue$BuildableItem",
      "actions": [
        {}
      ],
      "blocked": false,
      "buildable": true,
      "id": 262,
      "inQueueSince": 1529331225093,
      "params": "",
      "stuck": true,
      "task": {
        "_class": "org.jenkinsci.plugins.workflow.support.steps.ExecutorStepExecution$PlaceholderTask"
      },
      "url": "queue/item/262/",
      "why": "build1 is offline",
      "buildableStartMilliseconds": 1529331225094,
      "pending": false
    },
    {
      "_class": "hudson.model.Queue$BuildableItem",
      "actions": [
        {}
      ],
      "blocked": false,
      "buildable": true,
      "id": 260,
      "inQueueSince": 1529331219128,
      "params": "",
      "stuck": true,
      "task": {
        "_class": "org.jenkinsci.plugins.workflow.support.steps.ExecutorStepExecution$PlaceholderTask"
      },
      "url": "queue/item/260/",
      "why": "build1 is offline",
      "buildableStartMilliseconds": 1529331219128,
      "pending": false
    }
  ]
}

如果我访问http://JENKINS_URL:8080/queue/item/262/api/json我什么也得不到(只是项目本身)。

但是,如果我创建了一个由于 crontab-created 而被搁置的项目,并且前一个项目仍在执行中,那么它不再是 ahudson.model.Queue$BuildableItem而是 a hudson.model.Queue$BlockedItem,并且该task键有一个包含更多详细信息的完整对象......以及名称。

关于在哪里可以找到队列(而不是特定队列,顺便说一句)中任何项目的作业名称的任何想法?

谢谢!

标签: jenkinsjenkins-api

解决方案


推荐阅读