diff --git a/core/src/main/java/hudson/cli/DeleteNodeCommand.java b/core/src/main/java/hudson/cli/DeleteNodeCommand.java index fb35bf3dac0e0e5f3fd4eb7682a17c1748130fe1..81e7a74003bfea63f839482dfc4e963c551bc695 100644 --- a/core/src/main/java/hudson/cli/DeleteNodeCommand.java +++ b/core/src/main/java/hudson/cli/DeleteNodeCommand.java @@ -29,6 +29,7 @@ import hudson.model.Node; import jenkins.model.Jenkins; import org.kohsuke.args4j.Argument; +import java.nio.file.AccessDeniedException; import java.util.HashSet; import java.util.List; import java.util.logging.Logger; @@ -77,15 +78,12 @@ public class DeleteNodeCommand extends CLICommand { continue; } - try { - node.checkPermission(Computer.DELETE); - } catch (Exception e) { - stderr.println(e.getMessage()); - errorOccurred = true; - continue; - } - - jenkins.removeNode(node); + node.toComputer().doDoDelete(); + } catch (AccessDeniedException e) { + stderr.println(e.getMessage()); + errorOccurred = true; + //noinspection UnnecessaryContinue + continue; } catch (Exception e) { final String errorMsg = String.format("Unexpected exception occurred during deletion of node '%s': %s", node == null ? "(null)" : node.toComputer().getName(), diff --git a/test/src/test/java/hudson/cli/DeleteNodeCommandTest.java b/test/src/test/java/hudson/cli/DeleteNodeCommandTest.java index 641768a0545f5ed6f8573271007a2408631ff263..60b3494e0aee1321d7df03c24b3ce4dec10c8fdb 100644 --- a/test/src/test/java/hudson/cli/DeleteNodeCommandTest.java +++ b/test/src/test/java/hudson/cli/DeleteNodeCommandTest.java @@ -48,7 +48,7 @@ public class DeleteNodeCommandTest { @Before public void setUp() { - command = new CLICommandInvoker(j, new DeleteNodeCommand()); + command = new CLICommandInvoker(j, "delete-node"); } @Test public void deleteNodeShouldFailWithoutNodeDeletePermission() throws Exception {