Hangi jenkins eklentilerinin kullanılmadığını kontrol etmek için bir yöntem arıyorum. Şu ana kadar config.xml dosyasında eklentisi uzantılı etiketleri arayabilir ve bunları eklentileri klasöründe listelenmiş olanlarla karşılaştırabildiğimi öğrendim. Ama bu bana tam bir liste vermez. Hala bazıları rol-strateji gibi yok. Eğer eklenti yöneticisinde yüklü sekmesini kontrol edebilirsiniz yüklenip devre dışı eklentilerin listesini kontrol gerekiyorsaKullanılmayan tüm jenkins eklentileri nasıl listelenir?
Ben
altına#!/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)
Teşekkür ama ben tüm eklentileri listelemek istiyorum, ne arıyorum değil işlerde kullanılmaz. Bazılarının dünya çapında kullanıldığını biliyorum, bunu ayırt etmek için bir yol var mı? Bu sorun. – mastier
Aşağıdaki url 'http: //10.157.137.17: 8010/view/viewName/jobNm/config.xml' kullanarak iş yapılandırma dosyasını okumaya çalışabilirsiniz Görünüm adını ve iş adını sizinkiyle değiştirin. Bir regex kullanarak eklentileri filtreleyin. 'Plugin =' –
için bir fikir arayın. Http üzerinden xml'ye erişebileceğimi bilmiyordum. Ama başlangıçta verdiğim ilk çözüm. – mastier