Tôi đang tìm phương pháp để kiểm tra trình cắm thêm jenkins nào không được sử dụng. Cho đến nay tôi thấy rằng tôi có thể tìm các thẻ trong các tệp config.xml với thuộc tính plugin rồi so sánh chúng với các thẻ được liệt kê trong thư mục plugins. Nhưng điều đó không cho tôi danh sách đầy đủ. Một số vẫn không có như vai trò-chiến lược.Làm thế nào để liệt kê tất cả các plugin jenkins chưa sử dụng?
tôi sử dụng mã python như dưới đây
#!/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)
Cảm ơn, nhưng nó không phải là những gì tôi đang tìm kiếm, tôi muốn liệt kê tất cả các plugin được không được sử dụng trong công việc. Tôi biết rằng một số người trong số họ được sử dụng trên toàn cầu, có cách nào để phân biệt điều đó không? Đó là vấn đề. – mastier
Bạn có thể thử đọc tệp cấu hình lệnh bằng cách sử dụng url bên dưới 'http: //10.157.137.17: 8010/view/viewName/job/jobNm/config.xml' Thay thế tên hiển thị và tên công việc bằng tên của bạn. Lọc ra các plugin bằng regex. Tìm kiếm 'plugin = ' –
Cảm ơn bạn đã có ý tưởng. Tôi không biết rằng tôi có thể truy cập xml trên http. Nhưng đó là giải pháp đầu tiên tôi cung cấp ngay từ đầu. – mastier