From 98d306c6148cee33fdc74c2340d0dd640f068a03 Mon Sep 17 00:00:00 2001 From: Kenny Moens Date: Mon, 28 Oct 2019 09:44:45 +0100 Subject: [PATCH 1/2] JENKINS-57117 - support pipeline jobs --- pom.xml | 4 +++- .../scripttrigger/ScriptTriggerExecutor.java | 16 ++++++++++++++++ .../groovy/GroovyScriptTrigger.java | 7 +++++-- .../groovy/GroovyScriptTriggerExecutor.java | 5 +++++ src/main/resources/index.jelly | 1 + .../scripttrigger/ScriptTrigger/config.jelly | 1 + .../ScriptTriggerAction/index.jelly | 1 + .../groovy/GroovyScriptTrigger/config.jelly | 1 + .../groovy/GroovyScriptTriggerAction/index.jelly | 1 + 9 files changed, 34 insertions(+), 3 deletions(-) mode change 100644 => 100755 pom.xml mode change 100644 => 100755 src/main/java/org/jenkinsci/plugins/scripttrigger/ScriptTriggerExecutor.java mode change 100644 => 100755 src/main/java/org/jenkinsci/plugins/scripttrigger/groovy/GroovyScriptTrigger.java mode change 100644 => 100755 src/main/java/org/jenkinsci/plugins/scripttrigger/groovy/GroovyScriptTriggerExecutor.java mode change 100644 => 100755 src/main/resources/index.jelly mode change 100644 => 100755 src/main/resources/org/jenkinsci/plugins/scripttrigger/ScriptTrigger/config.jelly mode change 100644 => 100755 src/main/resources/org/jenkinsci/plugins/scripttrigger/ScriptTriggerAction/index.jelly mode change 100644 => 100755 src/main/resources/org/jenkinsci/plugins/scripttrigger/groovy/GroovyScriptTrigger/config.jelly mode change 100644 => 100755 src/main/resources/org/jenkinsci/plugins/scripttrigger/groovy/GroovyScriptTriggerAction/index.jelly diff --git a/pom.xml b/pom.xml old mode 100644 new mode 100755 index 3441fdd..d666999 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ THE SOFTWARE. org.jenkins-ci.plugins plugin - 1.424 + 3.51 scripttrigger @@ -52,6 +52,8 @@ THE SOFTWARE. + 2.176.1 + 8 UTF-8 1.6 1.6 diff --git a/src/main/java/org/jenkinsci/plugins/scripttrigger/ScriptTriggerExecutor.java b/src/main/java/org/jenkinsci/plugins/scripttrigger/ScriptTriggerExecutor.java old mode 100644 new mode 100755 index d31da29..b2e556b --- a/src/main/java/org/jenkinsci/plugins/scripttrigger/ScriptTriggerExecutor.java +++ b/src/main/java/org/jenkinsci/plugins/scripttrigger/ScriptTriggerExecutor.java @@ -32,6 +32,7 @@ import hudson.tasks.CommandInterpreter; import hudson.tasks.Shell; import org.jenkinsci.lib.xtrigger.XTriggerLog; +import org.jenkinsci.remoting.RoleChecker; import java.io.*; import java.util.Map; @@ -78,6 +79,9 @@ protected String getStringContent(Node executingNode, final String filePath) thr try { return executingNode.getRootPath().act(new FilePath.FileCallable() { + @Override + public void checkRoles(RoleChecker roleChecker) throws SecurityException { + } public String invoke(File f, VirtualChannel channel) throws IOException, InterruptedException { StringBuffer content = new StringBuffer(); @@ -106,6 +110,10 @@ private int executeScript(final Node executingNode, final String scriptContent, try { boolean isUnix = executingNode.getRootPath().act(new Callable() { + @Override + public void checkRoles(RoleChecker roleChecker) throws SecurityException { + } + public Boolean call() throws ScriptTriggerException { return File.pathSeparatorChar == ':'; } @@ -125,6 +133,10 @@ public Boolean call() throws ScriptTriggerException { throw new ScriptTriggerException("The node is offline."); } return rootPath.act(new FilePath.FileCallable() { + @Override + public void checkRoles(RoleChecker roleChecker) throws SecurityException { + } + public Integer invoke(File f, VirtualChannel channel) throws IOException, InterruptedException { try { return getLocalLauncher(log.getListener()).launch().cmds(cmd).envs(envVars).stdout(log.getListener()).pwd(rootPath).join(); @@ -159,6 +171,10 @@ private Launcher getLocalLauncher(TaskListener listener) throws ScriptTriggerExc protected boolean existsScript(Node executingNode, final String path) throws ScriptTriggerException { try { return executingNode.getRootPath().act(new Callable() { + @Override + public void checkRoles(RoleChecker roleChecker) throws SecurityException { + } + public Boolean call() throws ScriptTriggerException { File f = new File(path); if (!f.exists()) { diff --git a/src/main/java/org/jenkinsci/plugins/scripttrigger/groovy/GroovyScriptTrigger.java b/src/main/java/org/jenkinsci/plugins/scripttrigger/groovy/GroovyScriptTrigger.java old mode 100644 new mode 100755 index 4e5a79f..697e7b6 --- a/src/main/java/org/jenkinsci/plugins/scripttrigger/groovy/GroovyScriptTrigger.java +++ b/src/main/java/org/jenkinsci/plugins/scripttrigger/groovy/GroovyScriptTrigger.java @@ -30,6 +30,7 @@ import hudson.model.*; import hudson.remoting.VirtualChannel; import hudson.security.ACL; +import jenkins.model.Jenkins; import org.acegisecurity.Authentication; import org.acegisecurity.context.SecurityContextHolder; import org.apache.commons.jelly.XMLOutput; @@ -40,6 +41,7 @@ import org.jenkinsci.plugins.scripttrigger.AbstractTrigger; import org.jenkinsci.plugins.scripttrigger.LabelRestrictionClass; import org.jenkinsci.plugins.scripttrigger.ScriptTriggerException; +import org.jenkinsci.remoting.RoleChecker; import org.kohsuke.stapler.DataBoundConstructor; import java.io.File; @@ -48,8 +50,6 @@ import java.nio.charset.Charset; import java.util.*; -import jenkins.model.Jenkins; - /** * @author Gregory Boissinot @@ -127,6 +127,9 @@ protected Action[] getScheduledActions(Node pollingNode, final XTriggerLog log) throw new ScriptTriggerException("The node is offline."); } return rootPath.act(new FilePath.FileCallable() { + @Override + public void checkRoles(RoleChecker roleChecker) throws SecurityException { + } public Action[] invoke(File f, VirtualChannel channel) throws IOException, InterruptedException { File propFile = new File(propertiesFilePath); diff --git a/src/main/java/org/jenkinsci/plugins/scripttrigger/groovy/GroovyScriptTriggerExecutor.java b/src/main/java/org/jenkinsci/plugins/scripttrigger/groovy/GroovyScriptTriggerExecutor.java old mode 100644 new mode 100755 index 84c0776..5e601ec --- a/src/main/java/org/jenkinsci/plugins/scripttrigger/groovy/GroovyScriptTriggerExecutor.java +++ b/src/main/java/org/jenkinsci/plugins/scripttrigger/groovy/GroovyScriptTriggerExecutor.java @@ -33,6 +33,7 @@ import org.jenkinsci.lib.xtrigger.XTriggerLog; import org.jenkinsci.plugins.scripttrigger.ScriptTriggerException; import org.jenkinsci.plugins.scripttrigger.ScriptTriggerExecutor; +import org.jenkinsci.remoting.RoleChecker; import java.io.File; import java.io.FileInputStream; @@ -60,6 +61,10 @@ public boolean evaluateGroovyScript(Node executingNode, final AbstractProject pr } return executingNode.getRootPath().act(new Callable() { + @Override + public void checkRoles(RoleChecker roleChecker) throws SecurityException { + } + public Boolean call() throws ScriptTriggerException { log.info("Running as node script"); return evaluateGroovyScript(null, scriptContent, envVars); diff --git a/src/main/resources/index.jelly b/src/main/resources/index.jelly old mode 100644 new mode 100755 index ae14d0d..ddb97cc --- a/src/main/resources/index.jelly +++ b/src/main/resources/index.jelly @@ -1,3 +1,4 @@ +
This plugin makes it possible to poll changes of an environment with a script.
diff --git a/src/main/resources/org/jenkinsci/plugins/scripttrigger/ScriptTrigger/config.jelly b/src/main/resources/org/jenkinsci/plugins/scripttrigger/ScriptTrigger/config.jelly old mode 100644 new mode 100755 index 766cab9..7805f77 --- a/src/main/resources/org/jenkinsci/plugins/scripttrigger/ScriptTrigger/config.jelly +++ b/src/main/resources/org/jenkinsci/plugins/scripttrigger/ScriptTrigger/config.jelly @@ -1,3 +1,4 @@ +