mas*_*ier 12 python jenkins jenkins-plugins
我正在寻找方法来检查哪些jenkins插件没有使用.到目前为止,我发现我可以在config.xml文件中查找带有属性插件的标签,然后将它们与plugins目录中列出的标签进行比较.但这并没有给我完整的清单.还有一些不像角色战略那样.
我使用如下的python代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import glob
from lxml import etree as ET
from collections import defaultdict
def find(name, path):
return glob.glob(path+'/jobs/*/'+name)
def get_plugin_list(path):
return [x[:-4].split('/')[-1] for x in glob.glob(path+'/plugins/*.jpi')]
if __name__ == "__main__":
jobs_dict = defaultdict(list)
plugins_all = set(get_plugin_list('/home/user/.jenkins')
for config in find('config.xml', '/home/user/.jenkins'):
with open(config) as f:
tree = ET.XML(f.read())
plugins = tree.xpath("/project//@plugin")
job = config.split('/')[-2]
for p in plugins:
jobs_dict[p].append(job)
with open('/home/user/.jenkins/config.xml') as f:
tree = ET.XML(f.read())
plugins_config = tree.xpath("/hudson//@plugin")
plugins_used = set([x.split('@')[0] for x in jobs_dict.keys()+plugins_config])
print "######## All plugins\n", '\n'.join(plugins_all)
print "######## Used plugins\n", '\n'.join(plugins_used)
print "######## Unused plugins\n", '\n'.join(plugins_all - plugins_used)
Run Code Online (Sandbox Code Playgroud)
Noa*_*nos 23
有一个Jenkins插件正是为了这个问题: 插件使用
感谢这个精彩的插件,我在插件管理器中找到了许多要删除的冗余插件(你将能够删除没有依赖关系的插件).
这是它的外观 - 插件界面在Jenkins侧边栏上有一个链接.它列出了任何现有作业使用的所有插件(按下展开按钮查看作业名称):
| 归档时间: |
|
| 查看次数: |
3105 次 |
| 最近记录: |