use of org.apache.whirr.ClusterController in project whirr by apache.
the class Cdh3HadoopServiceTest method setUp.
@BeforeClass
public static void setUp() throws Exception {
CompositeConfiguration config = new CompositeConfiguration();
if (System.getProperty("config") != null) {
config.addConfiguration(new PropertiesConfiguration(System.getProperty("config")));
}
config.addConfiguration(new PropertiesConfiguration(getPropertiesFilename()));
clusterSpec = ClusterSpec.withTemporaryKeys(config);
controller = new ClusterController();
cluster = controller.launchCluster(clusterSpec);
proxy = new HadoopProxy(clusterSpec, cluster);
proxy.start();
}
use of org.apache.whirr.ClusterController in project whirr by apache.
the class CdhYarnServiceTest method setUp.
@BeforeClass
public static void setUp() throws Exception {
CompositeConfiguration config = new CompositeConfiguration();
if (System.getProperty("config") != null) {
config.addConfiguration(new PropertiesConfiguration(System.getProperty("config")));
}
config.addConfiguration(new PropertiesConfiguration(getPropertiesFilename()));
clusterSpec = ClusterSpec.withTemporaryKeys(config);
controller = new ClusterController();
cluster = controller.launchCluster(clusterSpec);
proxy = new HadoopProxy(clusterSpec, cluster);
proxy.start();
}
use of org.apache.whirr.ClusterController in project whirr by apache.
the class DryRunModuleTest method testNoInitScriptsAfterConfigurationStartedAndNoConfigScriptsAfterDestroy.
/**
* Simple test that tests dry run module and at the same time enforces clear
* separation of script execution phases.
*/
@Test
public void testNoInitScriptsAfterConfigurationStartedAndNoConfigScriptsAfterDestroy() throws ConfigurationException, JSchException, IOException, InterruptedException {
final List<String> expectedExecutionOrder = ImmutableList.of("bootstrap", "configure", "start", "destroy");
CompositeConfiguration config = new CompositeConfiguration();
config.setProperty("whirr.provider", "stub");
config.setProperty("whirr.cluster-name", "stub-test");
config.setProperty("whirr.instance-templates", "10 noop+noop3,10 noop2+noop,10 noop3+noop2");
config.setProperty("whirr.state-store", "memory");
ClusterSpec clusterSpec = ClusterSpec.withTemporaryKeys(config);
ClusterController controller = new ClusterController();
DryRun dryRun = getDryRunInControllerForCluster(controller, clusterSpec);
dryRun.reset();
controller.launchCluster(clusterSpec);
controller.destroyCluster(clusterSpec);
ListMultimap<NodeMetadata, Statement> perNodeExecutions = dryRun.getExecutions();
List<StatementOnNode> totalExecutions = dryRun.getTotallyOrderedExecutions();
for (Entry<NodeMetadata, Collection<Statement>> entry : perNodeExecutions.asMap().entrySet()) {
assertSame("An incorrect number of scripts was executed in the node: " + entry.getValue(), entry.getValue().size(), expectedExecutionOrder.size());
List<Statement> asList = Lists.newArrayList(entry.getValue());
int count = 0;
for (String phase : expectedExecutionOrder) {
String scriptName = getScriptName(asList.get(count));
assertTrue("The '" + phase + "' script was executed in the wrong order, found: " + scriptName, scriptName.startsWith(phase));
count += 1;
}
}
// This tests the barrier by making sure that once a configure
// script is executed no more setup scripts are executed
Stack<String> executedPhases = new Stack<String>();
for (StatementOnNode script : totalExecutions) {
String[] parts = getScriptName(script.getStatement()).split("-");
if ((!executedPhases.empty() && !executedPhases.peek().equals(parts[0])) || executedPhases.empty()) {
executedPhases.push(parts[0]);
}
}
// Assert that all scripts executed in the right order with no overlaps
assertEquals(expectedExecutionOrder.size(), executedPhases.size());
for (String phaseName : Lists.reverse(expectedExecutionOrder)) {
assertEquals(executedPhases.pop(), phaseName);
}
}
use of org.apache.whirr.ClusterController in project whirr by apache.
the class DryRunModuleTest method testExecuteOnlyBootstrapForNoopWithListener.
@Test
public void testExecuteOnlyBootstrapForNoopWithListener() throws Exception {
CompositeConfiguration config = new CompositeConfiguration();
config.setProperty("whirr.provider", "stub");
config.setProperty("whirr.cluster-name", "stub-test");
config.setProperty("whirr.instance-templates", "1 noop");
config.setProperty("whirr.state-store", "memory");
ClusterSpec clusterSpec = ClusterSpec.withTemporaryKeys(config);
MockClusterActionHandlerListener listener = new MockClusterActionHandlerListener();
clusterSpec.setHandlerListener(listener);
ClusterController controller = new ClusterController();
DryRun dryRun = getDryRunInControllerForCluster(controller, clusterSpec);
dryRun.reset();
controller.launchCluster(clusterSpec);
controller.destroyCluster(clusterSpec);
ListMultimap<NodeMetadata, Statement> perNodeExecutions = dryRun.getExecutions();
for (Entry<NodeMetadata, Collection<Statement>> entry : perNodeExecutions.asMap().entrySet()) {
assertSame("An incorrect number of scripts was executed in the node " + entry, entry.getValue().size(), 1);
}
assertEquals("beforeCalls should be 4", listener.beforeCalls, 4);
assertEquals("afterCalls should be 4", listener.afterCalls, 4);
}
use of org.apache.whirr.ClusterController in project whirr by apache.
the class ScriptBasedClusterActionTest method testEmptyInstanceTemplates.
@Test(expected = IllegalArgumentException.class)
public void testEmptyInstanceTemplates() throws Exception {
T action = newClusterActionInstance(EMPTYSET, EMPTYSET);
DryRun dryRun = getDryRunForAction(action).reset();
ClusterSpec tempSpec = ClusterSpec.withTemporaryKeys();
tempSpec.setClusterName("test-cluster-for-script-exection");
tempSpec.setProvider("stub");
tempSpec.setIdentity("dummy");
tempSpec.setStateStore("none");
ClusterController controller = new ClusterController();
Cluster tempCluster = controller.launchCluster(tempSpec);
action.execute(tempSpec, tempCluster);
List<StatementOnNode> executions = dryRun.getTotallyOrderedExecutions();
}
Aggregations