Sto cercando un metodo per verificare quali plugin jenkins non sono usati. Finora ho trovato che posso cercare i tag in config.xml file con attributo plug poi confrontarli con quelli elencati nella plugin directory. Ma questo non mi dà la lista completa. Ancora alcuni non sono lì come role-strategy.Come elencare tutti i plugin jenkins non utilizzati?
Io uso codice Python come qui di seguito
#!/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)
Grazie, ma non è quello che sto cercando, voglio elencare tutti i plugin che sono non utilizzato nei lavori. So che alcuni di questi sono usati a livello globale, c'è un modo per differenziarlo? Questo è un problema. – mastier
Si potrebbe provare a leggere il file di configurazione del lavoro utilizzando il seguente url 'http: //10.157.137.17: 8010/view/viewName/job/jobNm/config.xml' Sostituisci nomevvisione e nome lavoro con il proprio. Filtra i plug-in usando un'espressione regolare. Cerca 'plugin =' –
Grazie per un'idea. Non sapevo di poter accedere a xml su http. Ma è la prima soluzione che ho fornito all'inizio. – mastier