// Copyright 2016 Twitter. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.twitter.heron.spi.common;
import java.util.logging.Logger;
import org.junit.Assert;
import org.junit.Test;
public class ConfigDefaultsTest {
private static final Logger LOG = Logger.getLogger(ConfigDefaultsTest.class.getName());
@Test
public void testHeronEnviron() throws Exception {
Assert.assertEquals(
"/usr/local/heron",
ConfigDefaults.get("HERON_HOME")
);
Assert.assertEquals(
"${HERON_HOME}/bin",
ConfigDefaults.get("HERON_BIN")
);
Assert.assertEquals(
"${HERON_HOME}/conf",
ConfigDefaults.get("HERON_CONF")
);
Assert.assertEquals(
"${HERON_HOME}/dist",
ConfigDefaults.get("HERON_DIST")
);
Assert.assertEquals(
"${HERON_HOME}/etc",
ConfigDefaults.get("HERON_ETC")
);
Assert.assertEquals(
"${HERON_HOME}/lib",
ConfigDefaults.get("HERON_LIB")
);
Assert.assertEquals(
"${JAVA_HOME}",
ConfigDefaults.get("JAVA_HOME")
);
}
@Test
public void testConfigFiles() throws Exception {
Assert.assertEquals(
"${HERON_CONF}/cluster.yaml",
ConfigDefaults.get("CLUSTER_YAML")
);
Assert.assertEquals(
"${HERON_CONF}/defaults.yaml",
ConfigDefaults.get("DEFAULTS_YAML")
);
Assert.assertEquals(
"${HERON_CONF}/metrics_sinks.yaml",
ConfigDefaults.get("METRICS_YAML")
);
Assert.assertEquals(
"${HERON_CONF}/packing.yaml",
ConfigDefaults.get("PACKING_YAML")
);
Assert.assertEquals(
"${HERON_CONF}/scheduler.yaml",
ConfigDefaults.get("SCHEDULER_YAML")
);
Assert.assertEquals(
"${HERON_CONF}/statemgr.yaml",
ConfigDefaults.get("STATEMGR_YAML")
);
Assert.assertEquals(
"${HERON_CONF}/heron_internals.yaml",
ConfigDefaults.get("SYSTEM_YAML")
);
Assert.assertEquals(
"${HERON_CONF}/uploader.yaml",
ConfigDefaults.get("UPLOADER_YAML")
);
}
@Test
public void testBinaries() throws Exception {
Assert.assertEquals(
"${HERON_SANDBOX_BIN}/heron-executor",
ConfigDefaults.get("SANDBOX_EXECUTOR_BINARY")
);
Assert.assertEquals(
"${HERON_SANDBOX_BIN}/heron-stmgr",
ConfigDefaults.get("SANDBOX_STMGR_BINARY")
);
Assert.assertEquals(
"${HERON_SANDBOX_BIN}/heron-tmaster",
ConfigDefaults.get("SANDBOX_TMASTER_BINARY")
);
Assert.assertEquals(
"${HERON_SANDBOX_BIN}/heron-shell",
ConfigDefaults.get("SANDBOX_SHELL_BINARY")
);
Assert.assertEquals(
"${HERON_SANDBOX_BIN}/heron-python-instance",
ConfigDefaults.get("SANDBOX_PYTHON_INSTANCE_BINARY")
);
Assert.assertEquals(
"heron.jars.scheduler",
"${HERON_LIB}/scheduler/heron-scheduler.jar",
ConfigDefaults.get("SCHEDULER_JAR")
);
}
@Test
public void testClassPaths() throws Exception {
Assert.assertEquals(
"${HERON_LIB}/instance/*",
ConfigDefaults.get("INSTANCE_CLASSPATH")
);
Assert.assertEquals(
"${HERON_LIB}/metricsmgr/*",
ConfigDefaults.get("METRICSMGR_CLASSPATH")
);
Assert.assertEquals(
"${HERON_LIB}/packing/*",
ConfigDefaults.get("PACKING_CLASSPATH")
);
Assert.assertEquals(
"${HERON_LIB}/scheduler/*",
ConfigDefaults.get("SCHEDULER_CLASSPATH")
);
Assert.assertEquals(
"${HERON_LIB}/statemgr/*",
ConfigDefaults.get("STATEMGR_CLASSPATH")
);
Assert.assertEquals(
"${HERON_LIB}/uploader/*",
ConfigDefaults.get("UPLOADER_CLASSPATH")
);
}
@Test
public void testResources() throws Exception {
Assert.assertEquals(
Long.valueOf(Constants.GB),
ConfigDefaults.getLong("STMGR_RAM")
);
Assert.assertEquals(
Double.valueOf(1.0),
ConfigDefaults.getDouble("INSTANCE_CPU"),
0.001
);
Assert.assertEquals(
Long.valueOf(Constants.GB),
ConfigDefaults.getLong("INSTANCE_RAM")
);
Assert.assertEquals(
Long.valueOf(Constants.GB),
ConfigDefaults.getLong("INSTANCE_DISK")
);
}
}