提交 fea8f912 编写于 作者: J Jesse Glick

Review comments from @oleg-nenashev: plugin display name change;...

Review comments from @oleg-nenashev: plugin display name change; CommandLanguage → SystemCommandLanguage.
上级 af8ac036
......@@ -14,13 +14,13 @@
<jenkins.version>2.86-SNAPSHOT</jenkins.version> <!-- TODO pending split -->
<java.level>8</java.level>
</properties>
<name>Command Launcher Plugin</name>
<name>Command Agent Launcher Plugin</name>
<description>Allows agents to be launched using a specified command.</description>
<url>https://wiki.jenkins-ci.org/display/JENKINS/Command+Launcher+Plugin</url>
<url>https://wiki.jenkins.io/display/JENKINS/Command+Agent+Launcher+Plugin</url>
<licenses>
<license>
<name>MIT License</name>
<url>http://opensource.org/licenses/MIT</url>
<url>https://opensource.org/licenses/MIT</url>
</license>
</licenses>
<!-- TODO after split
......
......@@ -30,8 +30,8 @@ import hudson.model.TaskListener;
import hudson.util.FormValidation;
import java.io.IOException;
import org.jenkinsci.Symbol;
import org.jenkinsci.plugins.command_launcher.CommandLanguage;
import org.jenkinsci.plugins.command_launcher.Messages;
import org.jenkinsci.plugins.command_launcher.SystemCommandLanguage;
import org.jenkinsci.plugins.scriptsecurity.scripts.ApprovalContext;
import org.jenkinsci.plugins.scriptsecurity.scripts.ScriptApproval;
import org.kohsuke.stapler.DataBoundConstructor;
......@@ -49,11 +49,11 @@ public class CommandConnector extends ComputerConnector {
public CommandConnector(String command) {
this.command = command;
// TODO add withKey if we can determine the Cloud.name being configured
ScriptApproval.get().configuring(command, CommandLanguage.get(), ApprovalContext.create().withCurrentUser());
ScriptApproval.get().configuring(command, SystemCommandLanguage.get(), ApprovalContext.create().withCurrentUser());
}
private Object readResolve() {
ScriptApproval.get().configuring(command, CommandLanguage.get(), ApprovalContext.create());
ScriptApproval.get().configuring(command, SystemCommandLanguage.get(), ApprovalContext.create());
return this;
}
......@@ -74,7 +74,7 @@ public class CommandConnector extends ComputerConnector {
if (Util.fixEmptyAndTrim(value) == null) {
return FormValidation.error(Messages.CommandLauncher_NoLaunchCommand());
} else {
return ScriptApproval.get().checking(value, CommandLanguage.get());
return ScriptApproval.get().checking(value, SystemCommandLanguage.get());
}
}
......
......@@ -44,7 +44,7 @@ import java.util.logging.Logger;
import org.apache.commons.lang.StringUtils;
import org.jenkinsci.Symbol;
import org.jenkinsci.plugins.command_launcher.CommandLanguage;
import org.jenkinsci.plugins.command_launcher.SystemCommandLanguage;
import org.jenkinsci.plugins.scriptsecurity.scripts.ApprovalContext;
import org.jenkinsci.plugins.scriptsecurity.scripts.ScriptApproval;
import org.jenkinsci.plugins.scriptsecurity.scripts.UnapprovedUsageException;
......@@ -76,14 +76,14 @@ public class CommandLauncher extends ComputerLauncher {
agentCommand = command;
env = null;
// TODO add withKey if we can determine the Slave.nodeName being configured
ScriptApproval.get().configuring(command, CommandLanguage.get(), ApprovalContext.create().withCurrentUser());
ScriptApproval.get().configuring(command, SystemCommandLanguage.get(), ApprovalContext.create().withCurrentUser());
}
/** Constructor for programmatic use. Always approves the script. */
public CommandLauncher(String command, EnvVars env) {
this.agentCommand = command;
this.env = env;
ScriptApproval.get().preapprove(command, CommandLanguage.get());
ScriptApproval.get().preapprove(command, SystemCommandLanguage.get());
}
/** Constructor for use from {@link CommandConnector}. Never approves the script. */
......@@ -93,7 +93,7 @@ public class CommandLauncher extends ComputerLauncher {
}
private Object readResolve() {
ScriptApproval.get().configuring(agentCommand, CommandLanguage.get(), ApprovalContext.create());
ScriptApproval.get().configuring(agentCommand, SystemCommandLanguage.get(), ApprovalContext.create());
return this;
}
......@@ -119,7 +119,7 @@ public class CommandLauncher extends ComputerLauncher {
}
listener.getLogger().println(org.jenkinsci.plugins.command_launcher.Messages.Slave_Launching(getTimestamp()));
String command = ScriptApproval.get().using(getCommand(), CommandLanguage.get());
String command = ScriptApproval.get().using(getCommand(), SystemCommandLanguage.get());
if (command.trim().length() == 0) {
listener.getLogger().println(org.jenkinsci.plugins.command_launcher.Messages.CommandLauncher_NoLaunchCommand());
return;
......@@ -220,7 +220,7 @@ public class CommandLauncher extends ComputerLauncher {
if(Util.fixEmptyAndTrim(value)==null)
return FormValidation.error(org.jenkinsci.plugins.command_launcher.Messages.CommandLauncher_NoLaunchCommand());
else
return ScriptApproval.get().checking(value, CommandLanguage.get());
return ScriptApproval.get().checking(value, SystemCommandLanguage.get());
}
}
}
......@@ -36,20 +36,20 @@ import org.kohsuke.accmod.restrictions.NoExternalUse;
*/
@Restricted(NoExternalUse.class) // TODO move to script-security after split
@Extension
public class CommandLanguage extends Language {
public class SystemCommandLanguage extends Language {
public static Language get() {
return ExtensionList.lookup(Language.class).get(CommandLanguage.class);
return ExtensionList.lookup(Language.class).get(SystemCommandLanguage.class);
}
@Override
public String getName() {
return "command";
return "system-command";
}
@Override
public String getDisplayName() {
return "External Commands";
return "System Commands";
}
}
......@@ -42,7 +42,7 @@ import javax.annotation.CheckForNull;
import jenkins.model.Jenkins;
import org.apache.tools.ant.filters.StringInputStream;
import static org.hamcrest.Matchers.*;
import org.jenkinsci.plugins.command_launcher.CommandLanguage;
import org.jenkinsci.plugins.command_launcher.SystemCommandLanguage;
import org.jenkinsci.plugins.scriptsecurity.scripts.ScriptApproval;
import static org.junit.Assert.*;
import org.junit.Rule;
......@@ -69,7 +69,7 @@ public class CommandLauncher2Test {
rr.j.jenkins.setAuthorizationStrategy(new MockAuthorizationStrategy().
grant(Jenkins.ADMINISTER).everywhere().to("admin").
grant(Jenkins.READ, Computer.CONFIGURE).everywhere().to("dev"));
ScriptApproval.get().preapprove("echo unconfigured", CommandLanguage.get());
ScriptApproval.get().preapprove("echo unconfigured", SystemCommandLanguage.get());
DumbSlave s = new DumbSlave("s", "/", new CommandLauncher("echo unconfigured"));
rr.j.jenkins.addNode(s);
// First, reconfigure using GUI.
......@@ -102,7 +102,7 @@ public class CommandLauncher2Test {
assertEquals(Collections.emptySet(), ScriptApproval.get().getPendingScripts());
assertSerialForm(s, "echo configured by CLI");
// Now verify that all modes failed as dev. First as GUI.
ScriptApproval.get().preapprove("echo configured by admin", CommandLanguage.get());
ScriptApproval.get().preapprove("echo configured by admin", SystemCommandLanguage.get());
s.setLauncher(new CommandLauncher("echo configured by admin"));
s.save();
wc = rr.j.createWebClient().login("dev");
......@@ -116,7 +116,7 @@ public class CommandLauncher2Test {
Set<ScriptApproval.PendingScript> pendingScripts = ScriptApproval.get().getPendingScripts();
assertEquals(1, pendingScripts.size());
ScriptApproval.PendingScript pendingScript = pendingScripts.iterator().next();
assertEquals(CommandLanguage.get(), pendingScript.getLanguage());
assertEquals(SystemCommandLanguage.get(), pendingScript.getLanguage());
assertEquals("echo GUI ATTACK", pendingScript.script);
assertEquals("dev", pendingScript.getContext().getUser());
ScriptApproval.get().denyScript(pendingScript.getHash());
......@@ -131,7 +131,7 @@ public class CommandLauncher2Test {
pendingScripts = ScriptApproval.get().getPendingScripts();
assertEquals(1, pendingScripts.size());
pendingScript = pendingScripts.iterator().next();
assertEquals(CommandLanguage.get(), pendingScript.getLanguage());
assertEquals(SystemCommandLanguage.get(), pendingScript.getLanguage());
assertEquals("echo REST ATTACK", pendingScript.script);
assertEquals(/* deserialization, not recording user */ null, pendingScript.getContext().getUser());
ScriptApproval.get().denyScript(pendingScript.getHash());
......@@ -145,7 +145,7 @@ public class CommandLauncher2Test {
pendingScripts = ScriptApproval.get().getPendingScripts();
assertEquals(1, pendingScripts.size());
pendingScript = pendingScripts.iterator().next();
assertEquals(CommandLanguage.get(), pendingScript.getLanguage());
assertEquals(SystemCommandLanguage.get(), pendingScript.getLanguage());
assertEquals("echo CLI ATTACK", pendingScript.script);
assertEquals(/* ditto */null, pendingScript.getContext().getUser());
ScriptApproval.get().denyScript(pendingScript.getHash());
......@@ -167,7 +167,7 @@ public class CommandLauncher2Test {
Set<ScriptApproval.PendingScript> pendingScripts = ScriptApproval.get().getPendingScripts();
assertEquals(1, pendingScripts.size());
ScriptApproval.PendingScript pendingScript = pendingScripts.iterator().next();
assertEquals(CommandLanguage.get(), pendingScript.getLanguage());
assertEquals(SystemCommandLanguage.get(), pendingScript.getLanguage());
assertEquals("echo CLI ATTACK", pendingScript.script);
assertEquals(/* ditto */null, pendingScript.getContext().getUser());
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册