Python利用requests库实现Jenkins的全局属性接口

368 阅读2分钟

前面几篇对Jenkins的节点、任务、标签、视图的api操作做了实现,但对于全局性的东西,还没有做实现,比如全部的任务,全部的视图等等,这一篇将向大家展示如何去获得这些全局的信息。

获取全部的任务与视图

GET /api/json

得到的结果中jobs包含了全部的任务,每个子项具有任务类型、名称、链接、最后一次构建颜色的属性。

image.png

而views中包含了全部的视图,每个子项具有视图类型、名称、链接的属性。这里的视图中还会多一个AllView,用来表示全部任务的一个视图。   image.png  

获取Jenkins的版本

版本信息包含在每次请求的响应头内一个,属性名为X-Jenkins

print(response.headers)

'X-Jenkins': '2.361.4'

获取全部节点

GET /computer/api/json

结果中的computer键内包含了全部的节点信息。包含了类型、标签、描述、名称、在线状态、执行器等关键信息。其中执行器信息还可以展示在运行的任务。没有详细的配置,但是可以通过这个了解机器在当前时刻的使用情况。 下图为一个节点的属性示例:

image.png

机器重启与关闭操作

Jenkins有多种重启方式,

普通重启: POST /restart

不等待任务的进行完成,直接重启。

安全重启:POST /safeRestart

不再启动新的任务,等现有任务完全结束后进行重启。

安全关机:POST /safeExit

不再启动新的任务,等现有任务结束后进行关机。关机后你就能只能在启动服务功能里重新启动Jenkins了,浏览器里就访问不了了。

安静模式的进入与退出:POST /quietDown ||  /cancelQuietDown

安静模式就是一种不再启动新任务的模式

进入后Jenkins主页会有个即将关闭的通知

image.png

此时再去点击任务就会提示peding,Jenkins准备关闭。 image.png 这几个都是很好用的功能,可以避免关闭前丢失任务。