Jenkins中label是资源与任务的关联关系体现,而view是任务的集合体现,前面两篇文章对资源与任务的api操作进行了探究。这一篇就对label和view进行研究。
label部分
label下的工程数据提取我们已经在Jenkins label标签下的资源与任务分布观察 - 掘金 (juejin.cn)中进行了python api的粗略介绍,label部分整体能操作的功能不多。
读取label下的资源、任务
GET /label/use_docker/api/json
结果中可以观察云、节点和任务的数量,以及一些执行器的运行情况。
调整标签描述
POST /label/use_docker/submitDescription
同样需要增加data={'description': '测试中'}来添加描述,覆盖原值,原值在上面的label信息中提取。
需要注意的是联合多重计算label可以在任务和节点中配置,但是不能对这种label添加描述。返回404。
view部分
view功能一般用于将任务归类,便于在主页上展示,功能和;label其实差不多,但是又有一点区别。一个是被动产生的数据,一个是主动添加的任务。
查询view挂载的任务
GET /view/321/api/json
(321是测试用的view名称)
得到的数据中,第一级的class代表了view的类型,默认有三种,第一种是列表视图,用于展示一系列选定的任务,下图中的就是这种,第二种是Multijob视图,用于展示全部的multijob,这个改不了任务配置,默认是全部,第三种是用户视图,自动展示用户具有权限的全部任务。一般不会操作后面两种,特别是最后一种。
jobs中包含了这个视图里全部的任务。
给视图加描述
POST /view/321/submitDescription
和另外几种加描述一样,也是data里加description
读取和修改配置
GET/POST /view/321/config.xml
虽然比较少见,但是也可能是用的到的,功能实现和前面节点与任务的配置修改是一样的。
修改视图包含的任务
可以通过修改配置来直接进行任务和显示列的增删,但也有专门的api来增删任务
增加任务
POST /view/321/addJobToView
data = {
'name': 'cloud_test'
}
response = requests.post(f'{jenkins_url}/view/321/addJobToView', auth=auth,data=data)
增加成功返回200,已有的任务也返回200,不存在的任务添加不上去,返回400
移除任务
POST /view/321/removeJobFromView
用法和增加任务一致,功能逻辑也一样。
删除视图
POST /view/mul_view/delete
增加视图
POST /createView
与节点中增加节点类似,data数据是多一个json的。
data = {
'name': 'list_add2',
'mode': 'hudson.model.ListView',
'json': '{"name": "list_add2", "mode": "hudson.model.ListView"}',
}
response = requests.post(f'{jenkins_url}/createView', auth=auth, data=data)
不过这个json数据是可以为空的即:
'json': '{}',
但不能没有。视图的名称以name里的为准,json里的可以看作是额外的配置。
刚增加的视图是没有任务的,需要另行添加。