public void testWhenAdminAccess() { AdminAccess.Configuration configuration = createMock(AdminAccess.Configuration.class); AdminAccess statement = createMock(AdminAccess.class); AdminAccess newStatement = createMock(AdminAccess.class); expect(statement.init(configuration)).andReturn(newStatement); replay(configuration); replay(statement); replay(newStatement); InitAdminAccess initAdminAccess = new InitAdminAccess(configuration); initAdminAccess.visit(statement); verify(configuration); verify(statement); verify(newStatement); }
public void testWhenAdminAccess() { AdminAccess.Configuration configuration = createMock(AdminAccess.Configuration.class); AdminAccess statement = createMock(AdminAccess.class); AdminAccess newStatement = createMock(AdminAccess.class); expect(statement.init(configuration)).andReturn(newStatement); replay(configuration); replay(statement); replay(newStatement); InitAdminAccess initAdminAccess = new InitAdminAccess(configuration); initAdminAccess.visit(statement); verify(configuration); verify(statement); verify(newStatement); }
public void testWhenAdminAccessInsideList() { AdminAccess.Configuration configuration = createMock(AdminAccess.Configuration.class); AdminAccess statement = createMock(AdminAccess.class); AdminAccess newStatement = createMock(AdminAccess.class); expect(statement.init(configuration)).andReturn(newStatement); replay(configuration); replay(statement); replay(newStatement); InitAdminAccess initAdminAccess = new InitAdminAccess(configuration); initAdminAccess.visit(Statements.newStatementList(statement)); verify(configuration); verify(statement); verify(newStatement); }
public void testWhenNotAdminAccess() { AdminAccess.Configuration configuration = createMock(AdminAccess.Configuration.class); InitAdminAccess initAdminAccess = new InitAdminAccess(configuration); replay(configuration); initAdminAccess.visit(Statements.exec("echo hello")); initAdminAccess.visit(Statements.newStatementList(Statements.exec("echo hello"))); verify(configuration); }
public void testWhenAdminAccessInsideList() { AdminAccess.Configuration configuration = createMock(AdminAccess.Configuration.class); AdminAccess statement = createMock(AdminAccess.class); AdminAccess newStatement = createMock(AdminAccess.class); expect(statement.init(configuration)).andReturn(newStatement); replay(configuration); replay(statement); replay(newStatement); InitAdminAccess initAdminAccess = new InitAdminAccess(configuration); initAdminAccess.visit(Statements.newStatementList(statement)); verify(configuration); verify(statement); verify(newStatement); }
public void testWhenNotAdminAccess() { AdminAccess.Configuration configuration = createMock(AdminAccess.Configuration.class); InitAdminAccess initAdminAccess = new InitAdminAccess(configuration); replay(configuration); initAdminAccess.visit(Statements.exec("echo hello")); initAdminAccess.visit(Statements.newStatementList(Statements.exec("echo hello"))); verify(configuration); }
/** * {@inheritDoc} */ @Override public ExecResponse runScriptOnNode(String id, Statement runScript, RunScriptOptions options) { NodeMetadata node = this.getNodeMetadata(id); if (node == null) throw new NoSuchElementException(id); if (node.getStatus() != Status.RUNNING) throw new IllegalStateException("node " + id + " needs to be running before executing a script on it. current state: " + formatStatus(node)); initAdminAccess.visit(runScript); node = updateNodeWithCredentialsIfPresent(node, options); ExecResponse response = runScriptOnNodeFactory.create(node, runScript, options).init().call(); persistNodeCredentials.ifAdminAccess(runScript).apply(node); return response; }
/** * {@inheritDoc} */ @Override public ListenableFuture<ExecResponse> submitScriptOnNode(String id, final Statement runScript, RunScriptOptions options) { NodeMetadata node = this.getNodeMetadata(id); if (node == null) throw new NoSuchElementException(id); if (node.getStatus() != Status.RUNNING) throw new IllegalStateException("node " + id + " needs to be running before executing a script on it. current state: " + formatStatus(node)); initAdminAccess.visit(runScript); final NodeMetadata node1 = updateNodeWithCredentialsIfPresent(node, options); ListenableFuture<ExecResponse> response = runScriptOnNodeFactory.submit(node1, runScript, options); response.addListener(new Runnable() { public void run() { persistNodeCredentials.ifAdminAccess(runScript).apply(node1); } }, userExecutor); return response; }
/** * {@inheritDoc} */ @Override public ExecResponse runScriptOnNode(String id, Statement runScript, RunScriptOptions options) { NodeMetadata node = this.getNodeMetadata(id); if (node == null) throw new NoSuchElementException(id); if (node.getStatus() != Status.RUNNING) throw new IllegalStateException("node " + id + " needs to be running before executing a script on it. current state: " + formatStatus(node)); initAdminAccess.visit(runScript); node = updateNodeWithCredentialsIfPresent(node, options); ExecResponse response = runScriptOnNodeFactory.create(node, runScript, options).init().call(); persistNodeCredentials.ifAdminAccess(runScript).apply(node); return response; }
/** * {@inheritDoc} */ @Override public ExecResponse runScriptOnNode(String id, Statement runScript, RunScriptOptions options) { NodeMetadata node = this.getNodeMetadata(id); if (node == null) throw new NoSuchElementException(id); if (node.getStatus() != Status.RUNNING) throw new IllegalStateException("node " + id + " needs to be running before executing a script on it. current state: " + formatStatus(node)); initAdminAccess.visit(runScript); node = updateNodeWithCredentialsIfPresent(node, options); ExecResponse response = runScriptOnNodeFactory.create(node, runScript, options).init().call(); persistNodeCredentials.ifAdminAccess(runScript).apply(node); return response; }
/** * {@inheritDoc} */ @Override public ListenableFuture<ExecResponse> submitScriptOnNode(String id, final Statement runScript, RunScriptOptions options) { NodeMetadata node = this.getNodeMetadata(id); if (node == null) throw new NoSuchElementException(id); if (node.getStatus() != Status.RUNNING) throw new IllegalStateException("node " + id + " needs to be running before executing a script on it. current state: " + formatStatus(node)); initAdminAccess.visit(runScript); final NodeMetadata node1 = updateNodeWithCredentialsIfPresent(node, options); ListenableFuture<ExecResponse> response = runScriptOnNodeFactory.submit(node1, runScript, options); response.addListener(new Runnable() { public void run() { persistNodeCredentials.ifAdminAccess(runScript).apply(node1); } }, userExecutor); return response; }
/** * {@inheritDoc} */ @Override public ListenableFuture<ExecResponse> submitScriptOnNode(String id, final Statement runScript, RunScriptOptions options) { NodeMetadata node = this.getNodeMetadata(id); if (node == null) throw new NoSuchElementException(id); if (node.getStatus() != Status.RUNNING) throw new IllegalStateException("node " + id + " needs to be running before executing a script on it. current state: " + formatStatus(node)); initAdminAccess.visit(runScript); final NodeMetadata node1 = updateNodeWithCredentialsIfPresent(node, options); ListenableFuture<ExecResponse> response = runScriptOnNodeFactory.submit(node1, runScript, options); response.addListener(new Runnable() { public void run() { persistNodeCredentials.ifAdminAccess(runScript).apply(node1); } }, userExecutor); return response; }
/** * {@inheritDoc} */ @Override public ExecResponse runScriptOnNode(String id, Statement runScript, RunScriptOptions options) { NodeMetadata node = this.getNodeMetadata(id); if (node == null) throw new NoSuchElementException(id); if (node.getStatus() != Status.RUNNING) throw new IllegalStateException("node " + id + " needs to be running before executing a script on it. current state: " + formatStatus(node)); initAdminAccess.visit(runScript); node = updateNodeWithCredentialsIfPresent(node, options); ExecResponse response = runScriptOnNodeFactory.create(node, runScript, options).init().call(); persistNodeCredentials.ifAdminAccess(runScript).apply(node); return response; }
/** * {@inheritDoc} */ @Override public ListenableFuture<ExecResponse> submitScriptOnNode(String id, final Statement runScript, RunScriptOptions options) { NodeMetadata node = this.getNodeMetadata(id); if (node == null) throw new NoSuchElementException(id); if (node.getStatus() != Status.RUNNING) throw new IllegalStateException("node " + id + " needs to be running before executing a script on it. current state: " + formatStatus(node)); initAdminAccess.visit(runScript); final NodeMetadata node1 = updateNodeWithCredentialsIfPresent(node, options); ListenableFuture<ExecResponse> response = runScriptOnNodeFactory.submit(node1, runScript, options); response.addListener(new Runnable() { public void run() { persistNodeCredentials.ifAdminAccess(runScript).apply(node1); } }, userExecutor); return response; }
public void testWhenAdminAccessInsideInitBuilder() { AdminAccess.Configuration configuration = createMock(AdminAccess.Configuration.class); AdminAccess statement = createMock(AdminAccess.class); AdminAccess newStatement = createMock(AdminAccess.class); expect(statement.init(configuration)).andReturn(newStatement); replay(configuration); replay(statement); replay(newStatement); InitScript testInitBuilder = InitScript.builder().name("mkebsboot").home("/mnt/tmp") .exportVariables(ImmutableMap.of("tmpDir", "/mnt/tmp")).run(statement).build(); InitAdminAccess initAdminAccess = new InitAdminAccess(configuration); initAdminAccess.visit(testInitBuilder); verify(configuration); verify(statement); verify(newStatement); } }
public void testWhenAdminAccessInsideInitBuilder() { AdminAccess.Configuration configuration = createMock(AdminAccess.Configuration.class); AdminAccess statement = createMock(AdminAccess.class); AdminAccess newStatement = createMock(AdminAccess.class); expect(statement.init(configuration)).andReturn(newStatement); replay(configuration); replay(statement); replay(newStatement); InitScript testInitBuilder = InitScript.builder().name("mkebsboot").home("/mnt/tmp") .exportVariables(ImmutableMap.of("tmpDir", "/mnt/tmp")).run(statement).build(); InitAdminAccess initAdminAccess = new InitAdminAccess(configuration); initAdminAccess.visit(testInitBuilder); verify(configuration); verify(statement); verify(newStatement); } }
@Override public Set<? extends NodeMetadata> createNodesInGroup(String group, int count, Template template) throws RunNodesException { checkNotNull(group, "group cannot be null"); checkNotNull(template.getLocation(), "location"); logger.debug(">> running %d node%s group(%s) location(%s) image(%s) hardwareProfile(%s) options(%s)", count, count > 1 ? "s" : "", group, template.getLocation().getId(), template.getImage().getId(), template .getHardware().getId(), template.getOptions()); Set<NodeMetadata> goodNodes = newLinkedHashSet(); Map<NodeMetadata, Exception> badNodes = newLinkedHashMap(); Multimap<NodeMetadata, CustomizationResponse> customizationResponses = LinkedHashMultimap.create(); if (template.getOptions().getRunScript() != null) initAdminAccess.visit(template.getOptions().getRunScript()); Map<?, ListenableFuture<Void>> responses = runNodesAndAddToSetStrategy.execute(group, count, template, goodNodes, badNodes, customizationResponses); Map<?, Exception> executionExceptions; try { executionExceptions = awaitCompletion(responses, userExecutor, null, logger, "createNodesInGroup(" + group + ")"); } catch (TimeoutException te) { throw propagate(te); } Function<NodeMetadata, NodeMetadata> fn = persistNodeCredentials.always(template.getOptions().getRunScript()); badNodes = Maps2.transformKeys(badNodes, fn); goodNodes = ImmutableSet.copyOf(Iterables.transform(goodNodes, fn)); if (executionExceptions.size() > 0 || badNodes.size() > 0) { throw new RunNodesException(group, count, template, goodNodes, executionExceptions, badNodes); } return goodNodes; }
@Override public Set<? extends NodeMetadata> createNodesInGroup(String group, int count, Template template) throws RunNodesException { checkNotNull(group, "group cannot be null"); checkNotNull(template.getLocation(), "location"); logger.debug(">> running %d node%s group(%s) location(%s) image(%s) hardwareProfile(%s) options(%s)", count, count > 1 ? "s" : "", group, template.getLocation().getId(), template.getImage().getId(), template .getHardware().getId(), template.getOptions()); Set<NodeMetadata> goodNodes = newLinkedHashSet(); Map<NodeMetadata, Exception> badNodes = newLinkedHashMap(); Multimap<NodeMetadata, CustomizationResponse> customizationResponses = LinkedHashMultimap.create(); if (template.getOptions().getRunScript() != null) initAdminAccess.visit(template.getOptions().getRunScript()); Map<?, ListenableFuture<Void>> responses = runNodesAndAddToSetStrategy.execute(group, count, template, goodNodes, badNodes, customizationResponses); Map<?, Exception> executionExceptions; try { executionExceptions = awaitCompletion(responses, userExecutor, null, logger, "createNodesInGroup(" + group + ")"); } catch (TimeoutException te) { throw propagate(te); } Function<NodeMetadata, NodeMetadata> fn = persistNodeCredentials.always(template.getOptions().getRunScript()); badNodes = Maps2.transformKeys(badNodes, fn); goodNodes = ImmutableSet.copyOf(Iterables.transform(goodNodes, fn)); if (executionExceptions.size() > 0 || badNodes.size() > 0) { throw new RunNodesException(group, count, template, goodNodes, executionExceptions, badNodes); } return goodNodes; }
@Override public Set<? extends NodeMetadata> createNodesInGroup(String group, int count, Template template) throws RunNodesException { checkNotNull(group, "group cannot be null"); checkNotNull(template.getLocation(), "location"); logger.debug(">> running %d node%s group(%s) location(%s) image(%s) hardwareProfile(%s) options(%s)", count, count > 1 ? "s" : "", group, template.getLocation().getId(), template.getImage().getId(), template .getHardware().getId(), template.getOptions()); Set<NodeMetadata> goodNodes = newLinkedHashSet(); Map<NodeMetadata, Exception> badNodes = newLinkedHashMap(); Multimap<NodeMetadata, CustomizationResponse> customizationResponses = LinkedHashMultimap.create(); if (template.getOptions().getRunScript() != null) initAdminAccess.visit(template.getOptions().getRunScript()); Map<?, ListenableFuture<Void>> responses = runNodesAndAddToSetStrategy.execute(group, count, template, goodNodes, badNodes, customizationResponses); Map<?, Exception> executionExceptions; try { executionExceptions = awaitCompletion(responses, userExecutor, null, logger, "createNodesInGroup(" + group + ")"); } catch (TimeoutException te) { throw propagate(te); } Function<NodeMetadata, NodeMetadata> fn = persistNodeCredentials.always(template.getOptions().getRunScript()); badNodes = Maps2.transformKeys(badNodes, fn); goodNodes = ImmutableSet.copyOf(Iterables.transform(goodNodes, fn)); if (!executionExceptions.isEmpty() || !badNodes.isEmpty()) { throw new RunNodesException(group, count, template, goodNodes, executionExceptions, badNodes); } return goodNodes; }
@Override public Set<? extends NodeMetadata> createNodesInGroup(String group, int count, Template template) throws RunNodesException { checkNotNull(group, "group cannot be null"); checkNotNull(template.getLocation(), "location"); logger.debug(">> running %d node%s group(%s) location(%s) image(%s) hardwareProfile(%s) options(%s)", count, count > 1 ? "s" : "", group, template.getLocation().getId(), template.getImage().getId(), template .getHardware().getId(), template.getOptions()); Set<NodeMetadata> goodNodes = newLinkedHashSet(); Map<NodeMetadata, Exception> badNodes = newLinkedHashMap(); Multimap<NodeMetadata, CustomizationResponse> customizationResponses = LinkedHashMultimap.create(); if (template.getOptions().getRunScript() != null) initAdminAccess.visit(template.getOptions().getRunScript()); Map<?, ListenableFuture<Void>> responses = runNodesAndAddToSetStrategy.execute(group, count, template, goodNodes, badNodes, customizationResponses); Map<?, Exception> executionExceptions; try { executionExceptions = awaitCompletion(responses, userExecutor, null, logger, "createNodesInGroup(" + group + ")"); } catch (TimeoutException te) { throw propagate(te); } Function<NodeMetadata, NodeMetadata> fn = persistNodeCredentials.always(template.getOptions().getRunScript()); badNodes = Maps2.transformKeys(badNodes, fn); goodNodes = ImmutableSet.copyOf(Iterables.transform(goodNodes, fn)); if (!executionExceptions.isEmpty() || !badNodes.isEmpty()) { throw new RunNodesException(group, count, template, goodNodes, executionExceptions, badNodes); } return goodNodes; }