@Override public Image getImage(String id) { return find(listImages(), ImagePredicates.idEquals(id), null); }
@Override public void rebootNode(String id) { NodeMetadata node = nodes.get(id); if (node == null) throw new ResourceNotFoundException("node not found: " + id); setStateOnNode(Status.PENDING, node); setStateOnNodeAfterDelay(Status.RUNNING, node, 50); }
@Override public void run() { try { Thread.sleep(millis); } catch (InterruptedException e) { Throwables.propagate(e); } setStateOnNode(status, node); }
@Override public void destroyNode(final String id) { NodeMetadata node = nodes.get(id); if (node == null) return; setStateOnNodeAfterDelay(Status.PENDING, node, 0); setStateOnNodeAfterDelay(Status.TERMINATED, node, 50); ioExecutor.execute(new Runnable() { @Override public void run() { try { Thread.sleep(200); } catch (InterruptedException e) { Throwables.propagate(e); } finally { nodes.remove(id); } } }); }
@Override public void run() { try { Thread.sleep(millis); } catch (InterruptedException e) { Throwables.propagate(e); } setStateOnNode(status, node); }
@Override public void destroyNode(final String id) { NodeMetadata node = nodes.get(id); if (node == null) return; setStateOnNodeAfterDelay(Status.PENDING, node, 0); setStateOnNodeAfterDelay(Status.TERMINATED, node, 50); groupsForNodes.removeAll(id); ioExecutor.execute(new Runnable() { @Override public void run() { try { Thread.sleep(200); } catch (InterruptedException e) { Throwables.propagate(e); } finally { nodes.remove(id); } } }); }
@Override public void rebootNode(String id) { NodeMetadata node = nodes.get(id); if (node == null) throw new ResourceNotFoundException("node not found: " + id); setStateOnNode(Status.PENDING, node); setStateOnNodeAfterDelay(Status.RUNNING, node, 50); }
@Override public void run() { try { Thread.sleep(millis); } catch (InterruptedException e) { Throwables.propagate(e); } setStateOnNode(status, node); }
@Override public void destroyNode(final String id) { NodeMetadata node = nodes.get(id); if (node == null) return; setStateOnNodeAfterDelay(Status.PENDING, node, 0); setStateOnNodeAfterDelay(Status.TERMINATED, node, 50); groupsForNodes.removeAll(id); executor.execute(new Runnable() { @Override public void run() { try { Thread.sleep(200); } catch (InterruptedException e) { Throwables.propagate(e); } finally { nodes.remove(id); } } }); }
@Override public Image getImage(String id) { return find(listImages(), ImagePredicates.idEquals(id), null); }
@Override public void rebootNode(String id) { NodeMetadata node = nodes.get(id); if (node == null) throw new ResourceNotFoundException("node not found: " + id); setStateOnNode(Status.PENDING, node); setStateOnNodeAfterDelay(Status.RUNNING, node, 50); }
@Override public void run() { try { Thread.sleep(millis); } catch (InterruptedException e) { Throwables.propagate(e); } setStateOnNode(status, node); }
@Override public void destroyNode(final String id) { NodeMetadata node = nodes.get(id); if (node == null) return; setStateOnNodeAfterDelay(Status.PENDING, node, 0); setStateOnNodeAfterDelay(Status.TERMINATED, node, 50); groupsForNodes.removeAll(id); executor.execute(new Runnable() { @Override public void run() { try { Thread.sleep(200); } catch (InterruptedException e) { Throwables.propagate(e); } finally { nodes.remove(id); } } }); }
@Override public Image getImage(String id) { return find(listImages(), ImagePredicates.idEquals(id), null); }
@Override public void rebootNode(String id) { NodeMetadata node = nodes.get(id); if (node == null) throw new ResourceNotFoundException("node not found: " + id); setStateOnNode(Status.PENDING, node); setStateOnNodeAfterDelay(Status.RUNNING, node, 50); }
protected void setStateOnNodeAfterDelay(final Status status, final NodeMetadata node, final long millis) { if (millis == 0l) setStateOnNode(status, node); else ioExecutor.execute(new Runnable() { @Override public void run() { try { Thread.sleep(millis); } catch (InterruptedException e) { Throwables.propagate(e); } setStateOnNode(status, node); } }); } @Override
setStateOnNodeAfterDelay(Status.RUNNING, node, 100); return new NodeWithInitialCredentials(node);
@Override public Image getImage(String id) { return find(listImages(), ImagePredicates.idEquals(id), null); }
@Override public void resumeNode(String id) { NodeMetadata node = nodes.get(id); if (node == null) throw new ResourceNotFoundException("node not found: " + id); if (node.getStatus() == Status.RUNNING) return; if (node.getStatus() != Status.SUSPENDED) throw new IllegalStateException("to resume a node, it must be in suspended status, not: " + formatStatus(node)); setStateOnNode(Status.PENDING, node); setStateOnNodeAfterDelay(Status.RUNNING, node, 50); }
protected void setStateOnNodeAfterDelay(final Status status, final NodeMetadata node, final long millis) { if (millis == 0L) setStateOnNode(status, node); else executor.execute(new Runnable() { @Override public void run() { try { Thread.sleep(millis); } catch (InterruptedException e) { Throwables.propagate(e); } setStateOnNode(status, node); } }); } @Override