Инициализировать пробный плагин аудита в Jenkins, используя Groovy - PullRequest
0 голосов
/ 28 мая 2018

Мой подход:

import hudson.plugins.audit_trail.AuditTrailPlugin
import hudson.plugins.jobConfigHistory.JobConfigHistory
import net.sf.json.JSONObject

def auditTrialPlugin = Jenkins.getInstance().getPlugin(AuditTrailPlugin.class)

// println(auditTrialPlugin.getConfigXml().asString())

println("Going to configure...")

def logger = new JSONObject()
logger.put("log", "Vibin")
logger.put("limit", "1")
logger.put("count", "2")
logger.put("stapler-class", "hudson.plugins.audit_trail.LogFileAuditLogger")
logger.put("\$class", "hudson.plugins.audit_trail.LogFileAuditLogger")

def plugin = new JSONObject()
plugin.put("name", "audit-trail")
plugin.put("pattern", "")
plugin.put("logBuildCause", true)
plugin.put("loggers", logger)

auditTrialPlugin.configure(null, plugin)

Error happening:

java.lang.NoSuchMethodException: hudson.plugins.audit_trail.LogFileAuditLogger.<init>()
    at java.lang.Class.getConstructor0(Class.java:3082)
    at java.lang.Class.newInstance(Class.java:412)
Caused: java.lang.InstantiationException: hudson.plugins.audit_trail.LogFileAuditLogger
    at java.lang.Class.newInstance(Class.java:427)
    at hudson.model.Descriptor.newInstance(Descriptor.java:578)
Caused: java.lang.Error: Failed to instantiate class hudson.plugins.audit_trail.LogFileAuditLogger from {"log":"Vibin","limit":"1","count":"2","stapler-class":"hudson.plugins.audit_trail.LogFileAuditLogger","$class":"hudson.plugins.audit_trail.LogFileAuditLogger"}
    at hudson.model.Descriptor.newInstance(Descriptor.java:600)
    at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:1055)
    at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:1017)
    at hudson.plugins.audit_trail.AuditTrailPlugin.configure(AuditTrailPlugin.java:78)
    at hudson.plugins.audit_trail.AuditTrailPlugin$configure$1.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
    at Script1.run(Script1.groovy:24)

Я пытался следовать кодовой базе плагина, которую я нашел на GitHub.Для плагина, который я пытался использовать, есть функция configure , которая не работает.

Кодовая база плагина: GitHub link

1 Ответ

0 голосов
/ 27 февраля 2019

Попробуйте:

import jenkins.model.*;
import hudson.plugins.audit_trail.AuditTrailPlugin;
import hudson.plugins.audit_trail.LogFileAuditLogger;

def log   = "Vibin"
def limit = 1
def count = 2

LogFileAuditLogger logFileAuditLogger = new LogFileAuditLogger(log, limit, count)

Jenkins j = Jenkins.getInstance();
AuditTrailPlugin plugin = j.getPlugin(AuditTrailPlugin.class);
plugin.loggers.clear()
plugin.loggers.add(logFileAuditLogger)
plugin.pattern = "" // empty pattern?

plugin.save()
plugin.start()

Я думаю, использование LogFileAuditLogger class более понятно, чем функция 'configure'.

...