/** * Configures the test with additional environment variables in the specified Pod, beyond those which would be * included by the Scheduler or by Mesos. This may be useful for services whose tasks configure environment * variables before rendering config files via execution of {@code bootstrap}. * * @param podType the pod to set the environment against * @param podEnvKeyVals an even number of strings which will be unpacked as (key, value, key, value, ...) * @return {@code this} */ public ServiceTestRunner setPodEnv(String podType, String... podEnvKeyVals) { return setPodEnv(podType, toMap(podEnvKeyVals)); }
private ServiceTestRunner getDefaultRunner() throws Exception { // Our Main.java only defines SERVICE_ZK_ROOT in our name nodes. // However, the test utilities are strict about missing template params so we set something for all pods: return new ServiceTestRunner() .setPodEnv("journal", "SERVICE_ZK_ROOT", "") .setPodEnv("data", "SERVICE_ZK_ROOT", "") .setPodEnv("name", "SERVICE_ZK_ROOT", "/path/to/zk"); } }
.setPodEnv( "master", "CLUSTER_NAME", "cluster-foo", "CUSTOM_YAML_BLOCK", "some.thing=true", "ZONE", "us-east-1a") .setPodEnv( "data", "CLUSTER_NAME", "cluster-foo", "CUSTOM_YAML_BLOCK", "some.thing=true", "ZONE", "us-east-1a") .setPodEnv( "ingest", "CLUSTER_NAME", "cluster-foo", "CUSTOM_YAML_BLOCK", "some.thing=true", "ZONE", "us-east-1a") .setPodEnv( "coordinator", "CLUSTER_NAME", "cluster-foo", "CUSTOM_YAML_BLOCK",
private ServiceTestRunner getZoneRunner() { Map<String, String> map = getDefaultNodeEnv(); map.put("ZONE", "zone"); return new ServiceTestRunner().setPodEnv("node", map); } }
@Test public void testSpec() throws Exception { new ServiceTestRunner().setPodEnv("node", getDefaultNodeEnv()).run(); }
public CassandraRecoveryPlanOverriderTest() throws Exception { ServiceTestResult result = new ServiceTestRunner() .setPodEnv("node", "LOCAL_SEEDS", "foo,bar") .run(); rawSpec = result.getRawServiceSpec(); serviceSpec = result.getServiceSpec(); }
@Test public void testSpecSSL() throws Exception { ServiceTestResult result = new ServiceTestRunner() .setOptions("service.security.transport_encryption.enabled", "true") .setPodEnv("node", getDefaultNodeEnv()) .run(); Assert.assertTrue(result.getTaskConfig("node", "server", "cassandra").contains("internode_encryption: all")); Assert.assertTrue(result.getTaskConfig("node", "server", "cassandra").contains( "client_encryption_options:\n enabled: true\n optional: false")); }
@Test public void testRegionAwareness() throws Exception { ServiceTestResult result = new ServiceTestRunner() .setOptions("service.region", "Europe") .setPodEnv("node", getDefaultNodeEnv()) .run(); Assert.assertEquals(result.getSchedulerEnvironment().get("SERVICE_REGION"), "Europe"); }
@Test public void testSpecCustomUserAndSeeds() throws Exception { Map<String, String> nodeEnv = getDefaultNodeEnv(); nodeEnv.put("REMOTE_SEEDS", "baz"); ServiceTestResult result = new ServiceTestRunner() .setOptions("service.user", "foo") .setPodEnv("node", nodeEnv) .run(); Assert.assertEquals("foo", result.getServiceSpec().getUser()); Assert.assertEquals("foo", result.getServiceSpec().getPods().get(0).getUser().get()); Assert.assertTrue(result.getTaskConfig("node", "server", "cassandra").contains("- seeds: \"foo,bar,baz\"")); }
@Test public void testTLS() throws Exception { ServiceTestResult result = new ServiceTestRunner() .setPodEnv("journal", "SERVICE_ZK_ROOT", "") .setPodEnv("data", "SERVICE_ZK_ROOT", "") .setPodEnv("name", "SERVICE_ZK_ROOT", "/path/to/zk") .setOptions( "service.security.transport_encryption.enabled", "true",