@Override @GuardedBy("hudson.model.Queue.lock") public long check(final AbstractCloudComputer c) { final AbstractCloudSlave computerNode = c.getNode(); if (c.isIdle() && !disabled && computerNode != null) { final long idleMilliseconds = System.currentTimeMillis() - c.getIdleStartMilliseconds(); if (idleMilliseconds > MINUTES.toMillis(idleMinutes)) { LOGGER.log(Level.INFO, "Disconnecting {0}", c.getName()); try { computerNode.terminate(); } catch (InterruptedException | IOException e) { LOGGER.log(WARNING, "Failed to terminate " + c.getName(), e); } } } return 1; }
/** * When the agent is deleted, free the node right away. */ @Override @RequirePOST public HttpResponse doDoDelete() throws IOException { checkPermission(DELETE); try { T node = getNode(); if (node != null) { // No need to terminate nodes again node.terminate(); } return new HttpRedirect(".."); } catch (InterruptedException e) { return HttpResponses.error(500,e); } } }
@Override public void run() { try { AbstractCloudSlave node = computer.getNode(); if (node != null) { node.terminate(); } } catch (InterruptedException e) { LOGGER.log(Level.WARNING, "Failed to terminate " + computer.getName(), e); } catch (IOException e) { LOGGER.log(Level.WARNING, "Failed to terminate " + computer.getName(), e); } } });
@Override @GuardedBy("hudson.model.Queue.lock") public long check(final AbstractCloudComputer c) { final AbstractCloudSlave computerNode = c.getNode(); if (c.isIdle() && !disabled && computerNode != null) { final long idleMilliseconds = System.currentTimeMillis() - c.getIdleStartMilliseconds(); if (idleMilliseconds > MINUTES.toMillis(idleMinutes)) { LOGGER.log(Level.INFO, "Disconnecting {0}", c.getName()); try { computerNode.terminate(); } catch (InterruptedException e) { LOGGER.log(WARNING, "Failed to terminate " + c.getName(), e); } catch (IOException e) { LOGGER.log(WARNING, "Failed to terminate " + c.getName(), e); } } } return 1; }
protected void done(final AbstractCloudComputer<?> c) { c.setAcceptingTasks(false); // just in case synchronized (this) { if (terminating) { return; } terminating = true; } final Future<?> submit = Computer.threadPoolForRemoting.submit(() -> { try { AbstractCloudSlave node = c.getNode(); if (node != null) { node.terminate(); } } catch (InterruptedException | IOException e) { LOG.warn("Failed to terminate " + c.getName(), e); synchronized (DockerOnceRetentionStrategy.this) { terminating = false; } } } ); }
public synchronized long check(AbstractCloudComputer c) { if (c.isIdle() && !disabled) { final long idleMilliseconds = System.currentTimeMillis() - c.getIdleStartMilliseconds(); if (idleMilliseconds > MINUTES.toMillis(idleMinutes)) { LOGGER.info("Disconnecting " + c.getName()); try { c.getNode().terminate(); } catch (InterruptedException e) { LOGGER.log(WARNING, "Failed to terminate " + c.getName(), e); } catch (IOException e) { LOGGER.log(WARNING, "Failed to terminate " + c.getName(), e); } } } return 1; }
public synchronized long check(AbstractCloudComputer c) { if (c.isIdle() && !disabled) { final long idleMilliseconds = System.currentTimeMillis() - c.getIdleStartMilliseconds(); if (idleMilliseconds > MINUTES.toMillis(idleMinutes)) { LOGGER.info("Disconnecting "+c.getName()); try { c.getNode().terminate(); } catch (InterruptedException e) { LOGGER.log(WARNING,"Failed to terminate "+c.getName(),e); } catch (IOException e) { LOGGER.log(WARNING,"Failed to terminate "+c.getName(),e); } } } return 1; }
public synchronized long check(AbstractCloudComputer c) { if (c.isIdle() && !disabled) { final long idleMilliseconds = System.currentTimeMillis() - c.getIdleStartMilliseconds(); if (idleMilliseconds > MINUTES.toMillis(idleMinutes)) { LOGGER.info("Disconnecting "+c.getName()); try { c.getNode().terminate(); } catch (InterruptedException e) { LOGGER.log(WARNING,"Failed to terminate "+c.getName(),e); } catch (IOException e) { LOGGER.log(WARNING,"Failed to terminate "+c.getName(),e); } } } return 1; }
public synchronized long check(AbstractCloudComputer c) { if (c.isIdle() && !disabled) { final long idleMilliseconds = System.currentTimeMillis() - c.getIdleStartMilliseconds(); if (idleMilliseconds > MINUTES.toMillis(idleMinutes)) { LOGGER.info("Disconnecting "+c.getName()); try { c.getNode().terminate(); } catch (InterruptedException e) { LOGGER.log(WARNING,"Failed to terminate "+c.getName(),e); } catch (IOException e) { LOGGER.log(WARNING,"Failed to terminate "+c.getName(),e); } } } return 1; }
/** * While x-stream serialisation buggy, copy implementation. */ @Override @GuardedBy("hudson.model.Queue.lock") public long check(final AbstractCloudComputer c) { final AbstractCloudSlave computerNode = c.getNode(); if (c.isIdle() && computerNode != null) { final long idleMilliseconds = System.currentTimeMillis() - c.getIdleStartMilliseconds(); if (idleMilliseconds > MINUTES.toMillis(idleMinutes)) { LOG.info("Disconnecting {}, after {} min timeout.", c.getName(), idleMinutes); try { computerNode.terminate(); } catch (InterruptedException | IOException e) { LOG.warn("Failed to terminate {}", c.getName(), e); } } } return 1; }
/** * When the slave is deleted, free the node. */ @Override public HttpResponse doDoDelete() throws IOException { checkPermission(DELETE); try { getNode().terminate(); return new HttpRedirect(".."); } catch (InterruptedException e) { return HttpResponses.error(500,e); } } }
/** * When the slave is deleted, free the node. */ @Override public HttpResponse doDoDelete() throws IOException { checkPermission(DELETE); try { getNode().terminate(); return new HttpRedirect(".."); } catch (InterruptedException e) { return HttpResponses.error(500, e); } } }
/** * When the slave is deleted, free the node. */ @Override public HttpResponse doDoDelete() throws IOException { checkPermission(DELETE); try { getNode().terminate(); return new HttpRedirect(".."); } catch (InterruptedException e) { return HttpResponses.error(500,e); } } }
/** * When the slave is deleted, free the node. */ @Override public HttpResponse doDoDelete() throws IOException { checkPermission(DELETE); try { getNode().terminate(); return new HttpRedirect(".."); } catch (InterruptedException e) { return HttpResponses.error(500,e); } } }
/** * When the agent is deleted, free the node right away. */ @Override @RequirePOST public HttpResponse doDoDelete() throws IOException { checkPermission(DELETE); try { T node = getNode(); if (node != null) { // No need to terminate nodes again node.terminate(); } return new HttpRedirect(".."); } catch (InterruptedException e) { return HttpResponses.error(500,e); } } }