public static ManagerConf getManagerConf()

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;
  }