in uReplicator-Manager/src/main/java/com/uber/stream/kafka/mirrormaker/manager/ManagerConf.java [441:608]
public static ManagerConf getManagerConf(CommandLine cmd) {
ManagerConf managerConf = new ManagerConf();
if (cmd.hasOption("config")) {
managerConf.setConfigFile(cmd.getOptionValue("config"));
} else {
managerConf.setConfigFile("");
}
if (cmd.hasOption("srcClusters")) {
managerConf.setSourceClusters(cmd.getOptionValue("srcClusters"));
} else {
managerConf.setSourceClusters("");
}
if (cmd.hasOption("destClusters")) {
managerConf.setDestinationClusters(cmd.getOptionValue("destClusters"));
} else {
managerConf.setDestinationClusters("");
}
if (cmd.hasOption("enableRebalance")) {
managerConf.setEnableRebalance(cmd.getOptionValue("enableRebalance"));
} else {
managerConf.setEnableRebalance(Boolean.toString(DEFAULT_ENABLE_REBALANCE));
}
if (cmd.hasOption("zookeeper")) {
managerConf.setManagerZkStr(cmd.getOptionValue("zookeeper"));
} else {
throw new RuntimeException("Missing option: --zookeeper");
}
if (cmd.hasOption("managerPort")) {
managerConf.setManagerPort(cmd.getOptionValue("managerPort"));
} else {
throw new RuntimeException("Missing option: --managerPort");
}
if (cmd.hasOption("deployment")) {
managerConf.setManagerDeployment(cmd.getOptionValue("deployment"));
} else {
throw new RuntimeException("Missing option: --deployment");
}
if (cmd.hasOption("env")) {
managerConf.setEnvironment(cmd.getOptionValue("env"));
} else {
throw new RuntimeException("Missing option: --env");
}
if (cmd.hasOption("instanceId")) {
managerConf.setManagerInstanceId(cmd.getOptionValue("instanceId"));
} else {
try {
managerConf.setManagerInstanceId(InetAddress.getLocalHost().getHostName());
} catch (UnknownHostException e) {
throw new RuntimeException("Missing option: --instanceId");
}
}
if (cmd.hasOption("graphiteHost")) {
managerConf.setGraphiteHost(cmd.getOptionValue("graphiteHost"));
}
if (cmd.hasOption("graphitePort")) {
managerConf.setGraphitePort(cmd.getOptionValue("graphitePort"));
} else {
managerConf.setGraphitePort("0");
}
if (cmd.hasOption("metricsPrefix")) {
managerConf.setMetricsPrefix(cmd.getOptionValue("metricsPrefix"));
} else {
managerConf.setMetricsPrefix(DEFAULT_METRICS_PREFIX);
}
if (cmd.hasOption("graphiteReportFreqInSec")) {
managerConf.setGraphiteReportFreqInSec(cmd.getOptionValue("graphiteReportFreqInSec"));
} else {
managerConf.setGraphiteReportFreqInSec(Long.toString(DEFAULT_GRAPHITE_REPORT_FREQ_IN_SEC));
}
if (cmd.hasOption("enableJmxReport")) {
managerConf.setEnableJmxReport(cmd.getOptionValue("enableJmxReport"));
} else {
managerConf.setEnableJmxReport(String.valueOf(DEFAULT_ENABLE_JMX_REPORT));
}
if (cmd.hasOption("enableGraphiteReport")) {
managerConf.setEnableGraphiteReport(cmd.getOptionValue("enableGraphiteReport"));
} else {
managerConf.setEnableGraphiteReport(String.valueOf(DEFAULT_ENABLE_GRAPHITE_REPORT));
}
if (cmd.hasOption("c3Host")) {
managerConf.setC3Host(cmd.getOptionValue("c3Host"));
} else {
managerConf.setC3Host(DEFAULT_C3_HOST);
}
if (cmd.hasOption("c3Port")) {
managerConf.setC3Port(cmd.getOptionValue("c3Port"));
} else {
managerConf.setC3Port(Integer.toString(DEFAULT_C3_PORT));
}
if (cmd.hasOption("clusterPrefixLength")) {
managerConf.setClusterPrefixLength(cmd.getOptionValue("clusterPrefixLength"));
} else {
managerConf.setClusterPrefixLength(Integer.toString(DEFAULT_CLUSTER_PREFIX_LENGTH));
}
if (cmd.hasOption("workloadRefreshPeriodInSeconds")) {
managerConf
.setWorkloadRefreshPeriodInSeconds(cmd.getOptionValue("workloadRefreshPeriodInSeconds"));
} else {
managerConf.setWorkloadRefreshPeriodInSeconds(
Integer.toString(DEFAULT_WORKLOAD_REFRESH_PERIOD_IN_SECONDS));
}
if (cmd.hasOption("initMaxNumPartitionsPerRoute")) {
managerConf
.setInitMaxNumPartitionsPerRoute(cmd.getOptionValue("initMaxNumPartitionsPerRoute"));
} else {
managerConf.setInitMaxNumPartitionsPerRoute(
Integer.toString(DEFAULT_INIT_MAX_NUM_PARTITIONS_PER_ROUTE));
}
if (cmd.hasOption("maxNumPartitionsPerRoute")) {
managerConf.setMaxNumPartitionsPerRoute(cmd.getOptionValue("maxNumPartitionsPerRoute"));
} else {
managerConf
.setMaxNumPartitionsPerRoute(Integer.toString(DEFAULT_MAX_NUM_PARTITIONS_PER_ROUTE));
}
if (cmd.hasOption("initMaxNumWorkersPerRoute")) {
managerConf.setInitMaxNumWorkersPerRoute(cmd.getOptionValue("initMaxNumWorkersPerRoute"));
} else {
managerConf
.setInitMaxNumWorkersPerRoute(Integer.toString(DEFAULT_INIT_MAX_NUM_WORKERS_PER_ROUTE));
}
if (cmd.hasOption("maxNumWorkersPerRoute")) {
managerConf.setMaxNumWorkersPerRoute(cmd.getOptionValue("maxNumWorkersPerRoute"));
} else {
managerConf.setMaxNumWorkersPerRoute(Integer.toString(DEFAULT_MAX_NUM_WORKERS_PER_ROUTE));
}
if (cmd.hasOption("bytesPerSecondDefault")) {
managerConf.setBytesPerSecondDefault(cmd.getOptionValue("bytesPerSecondDefault"));
} else {
managerConf.setBytesPerSecondDefault(Double.toString(DEFAULT_BYTES_PER_SECOND_DEFAULT));
}
if (cmd.hasOption("msgsPerSecondDefault")) {
managerConf.setMsgsPerSecondDefault(cmd.getOptionValue("msgsPerSecondDefault"));
} else {
managerConf.setMsgsPerSecondDefault(Double.toString(DEFAULT_MSGS_PER_SECOND_DEFAULT));
}
if (cmd.hasOption("updateStatusCoolDownMs")) {
managerConf.setUpdateStatusCoolDownMs(cmd.getOptionValue("updateStatusCoolDownMs"));
} else {
managerConf.setUpdateStatusCoolDownMs(Integer.toString(DEFAULT_UPDATE_STATUS_COOL_DOWN_MS));
}
if (cmd.hasOption("config")) {
String fileName = cmd.getOptionValue("config");
managerConf.setConfigFile(fileName);
// load config from file
PropertiesConfiguration configFromFile = new PropertiesConfiguration();
configFromFile.setDelimiterParsingDisabled(true);
try {
configFromFile.load(fileName);
} catch (ConfigurationException e) {
throw new RuntimeException(
"Failed to load config from file " + fileName + ": " + e.getMessage());
}
// merge the config with command line. Option from command line has higher priority to override config from file
@SuppressWarnings("unchecked")
Iterator<String> keyIter = configFromFile.getKeys();
while (keyIter.hasNext()) {
String key = keyIter.next();
if (!managerConf.containsKey(key)) {
managerConf.addPropertyDirect(key, configFromFile.getProperty(key));
}
}
} else {
managerConf.setConfigFile("");
}
return managerConf;
}