2015-02-16 15 views
9

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) 

risposta

0

Se avete bisogno di controllare la lista dei plugin installati, ma diversamente abili è possibile controllare scheda Installato nel plugin manager.

Deselezionati sono quelli che sono disabilitati.

+0

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

+0

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 =' –

+0

Grazie per un'idea. Non sapevo di poter accedere a xml su http. Ma è la prima soluzione che ho fornito all'inizio. – mastier

0

Alcuni plugin riguardano solo la configurazione del sistema Jenkins, piuttosto che i singoli posti di lavoro; dovresti riuscire a trovarli modificando il metodo find nel tuo codice per includere /home/user/.jenkins/config.xml.

Molti plug-in hanno i propri file di configurazione in $ JENKINS_HOME, ad es. $ JENKINS_HOME/org.jenkinsci.plugins.p4.PerforceScm.xml. Non ho esaminato questo aspetto, ma potresti trovare qualche utilizzo aggiuntivo del plug-in eseguendo una ricerca nei file config.xml per il nome del plug-in (ad esempio PerforceSCM) anziché nel termine "plug-in".

Inoltre, se si desidera cercare solo lavori abilitati, è possibile filtrare i lavori con "<disabled>true</disabled>" nel proprio file config.xml.

10

C'è un Jenkins plug proprio per questa materia: Plugin Usage

Grazie a questo meraviglioso plug-in che ho trovato molti plugin ridondanti per rimuovere nel Plugin Manager (si sarà in grado di rimuovere i plugin che non ha dipendenze).

Ecco come appare: l'interfaccia del plugin ha un collegamento sulla barra laterale di Jenkins. Essa elenca tutti i plugin che qualsiasi di un impiego di lavoro esistenti (premendo sul pulsante di espansione per vedere i nomi di posti di lavoro):

enter image description here

+1

whoa! fantastico, davvero bello plugin :-) molte grazie per aver postato questo :-) – mastier

+1

@master è grandioso. se ha risposto alla tua domanda, ti preghiamo di contrassegnarlo con il segno V, grazie;) –

+0

@mastier^volevo dire –

Problemi correlati