/** * Remove the node. * * <p> * To actually deallocate the resource tied to this {@link Node}, implement {@link Computer#onRemoved()}. */ protected void kill(Node n) throws IOException { Jenkins.get().removeNode(n); }
/** * Releases and removes this agent. */ public void terminate() throws InterruptedException, IOException { final Computer computer = toComputer(); if (computer != null) { computer.recordTermination(); } try { // TODO: send the output to somewhere real _terminate(new StreamTaskListener(System.out, Charset.defaultCharset())); } finally { try { Jenkins.get().removeNode(this); } catch (IOException e) { LOGGER.log(Level.WARNING, "Failed to remove "+name,e); } } }
/** * Really deletes the agent. */ @RequirePOST public HttpResponse doDoDelete() throws IOException { checkPermission(DELETE); Node node = getNode(); if (node != null) { Jenkins.getInstance().removeNode(node); } else { AbstractCIBase app = Jenkins.getInstance(); app.removeComputer(this); } return new HttpRedirect(".."); }
protected void terminate() { try { Jenkins.getInstance().removeNode(slave); } catch (IOException e) { e.printStackTrace(); } } /**
/** * Remove the node. * * <p> * To actually deallocate the resource tied to this {@link Node}, implement {@link Computer#onRemoved()}. */ protected void kill(Node n) throws IOException { Jenkins.getInstance().removeNode(n); }
protected void terminate() { try { Jenkins.getActiveInstance().removeNode(slave); } catch (IOException e) { e.printStackTrace(); } } /**
protected void removeNode(DockerTransientNode dtn) throws IOException { Jenkins.getInstance().removeNode(dtn); }
private void removeNode(EC2AbstractSlave ec2Slave) { try { Jenkins.getInstance().removeNode(ec2Slave); } catch (IOException e) { LOGGER.log(Level.WARNING, "Failed to remove node: " + ec2Slave.getInstanceId()); } }
private void removeNode(EC2AbstractSlave ec2Slave) { try { Jenkins.getInstance().removeNode(ec2Slave); } catch (IOException e) { LOGGER.log(Level.WARNING, "Failed to remove node: " + ec2Slave.getInstanceId()); } }
private synchronized void removeNode(String instanceId) { final Jenkins jenkins=Jenkins.getInstance(); //noinspection SynchronizationOnLocalVariableOrMethodParameter synchronized (jenkins) { // If this node is dying, remove it from Jenkins final Node n = jenkins.getNode(instanceId); if (n != null) { try { jenkins.removeNode(n); } catch(final Exception ex) { LOGGER.log(Level.WARNING, "Error removing node " + instanceId); throw new IllegalStateException(ex); } } } }
@Override @SuppressFBWarnings("NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE") public void afterDisconnect(SlaveComputer computer, TaskListener listener) { final Slave node = computer.getNode(); if (node != null) { try { Jenkins.getInstance().removeNode(node); } catch (IOException e) { e.printStackTrace(listener.error(e.getMessage())); } } else { listener.getLogger().printf("Could not remove node for %s as it appears to have been removed already%n", computer); } } };
void provisionFailed(Exception cause) { if (executable instanceof Run) { ((Run) executable).setResult(Result.NOT_BUILT); } try { Jenkins.getInstance().removeNode(this); } catch (IOException e) { e.printStackTrace(); } throw new OneShotExecutorProvisioningException(cause); }
void provisionFailed(Exception cause) { if (executable instanceof Run) { ((Run) executable).setResult(Result.NOT_BUILT); } try { Jenkins.getActiveInstance().removeNode(this); } catch (IOException e) { e.printStackTrace(); } throw new OneShotExecutorProvisioningException(cause); }
@Override protected void finished(StepContext context) throws Exception { final DockerTransientNode node = (DockerTransientNode) Jenkins.getInstance().getNode(nodeName); if (node != null) { TaskListener listener = context.get(TaskListener.class); listener.getLogger().println("Terminating docker node ..."); node.terminate(listener); Jenkins.getInstance().removeNode(node); } } }
@Override public void afterDisconnect(SlaveComputer computer, TaskListener listener) { if (!Jenkins.getInstance().isTerminating()) { try { Jenkins.getInstance().removeNode(computer.getNode()); } catch (IOException e) { LOG.log(Level.WARNING, "Error removing slave", e); } } }
/** * If item is canceled, remove the executor we created for it. */ @Override public void onLeft(Queue.LeftItem item) { if (item.isCancelled()) { DockerSlaveAssignmentAction action = item.getAction(DockerSlaveAssignmentAction.class); if( action == null) return; Node slave = action.getAssignedNodeName(); if (slave == null) return; try { Jenkins.getActiveInstance().removeNode(slave); } catch (Exception e) { LOGGER.log(Level.SEVERE, "Failure to remove One-Shot Slave", e); } } }
/** * If item is canceled, remove the executor we created for it. */ @Override public void onLeft(Queue.LeftItem item) { if (item.isCancelled()) { DockerSlaveAssignmentAction action = item.getAction(DockerSlaveAssignmentAction.class); if( action == null) return; Node slave = action.getAssignedNodeName(); if (slave == null) return; try { Jenkins.getInstance().removeNode(slave); } catch (Exception e) { LOGGER.log(Level.SEVERE, "Failure to remove One-Shot Slave", e); } } }
@Override public void terminate() throws InterruptedException, IOException { try { _terminate(getListener()); } finally { try { Jenkins.getInstance().removeNode(this); } catch (IOException e) { LOG.warn("Failed to remove {}", name, e); getListener().error("Failed to remove " + name); } } }
/** * Delete the slave, terminate the instance. Can be called either by doDoDelete() or from MesosRetentionStrategy. * * @throws InterruptedException */ public void deleteSlave() throws IOException, InterruptedException { LOGGER.info("Terminating " + getName() + " slave"); MesosSlave slave = getNode(); // Slave already deleted if (slave == null) return; VirtualChannel channel = slave.getChannel(); if (channel != null) { channel.close(); } slave.terminate(); getJenkins().removeNode(slave); }
/** * Really deletes the agent. */ @RequirePOST public HttpResponse doDoDelete() throws IOException { checkPermission(DELETE); Node node = getNode(); if (node != null) { Jenkins.getInstance().removeNode(node); } else { AbstractCIBase app = Jenkins.getInstance(); app.removeComputer(this); } return new HttpRedirect(".."); }