package com.linkedin.thirdeye.client.pinot;
import io.dropwizard.configuration.ConfigurationFactory;
import io.dropwizard.jackson.Jackson;
import java.io.File;
import com.google.common.base.MoreObjects;
import com.google.common.base.MoreObjects.ToStringHelper;
import com.linkedin.thirdeye.common.ThirdEyeConfiguration;
import javax.validation.Validation;
public class PinotThirdEyeClientConfig {
String zookeeperUrl;
String controllerHost;
int controllerPort;
String clusterName;
String brokerUrl;
String tag;
public String getZookeeperUrl() {
return zookeeperUrl;
}
public void setZookeeperUrl(String zookeeperUrl) {
this.zookeeperUrl = zookeeperUrl;
}
public String getControllerHost() {
return controllerHost;
}
public void setControllerHost(String controllerHost) {
this.controllerHost = controllerHost;
}
public int getControllerPort() {
return controllerPort;
}
public void setControllerPort(int controllerPort) {
this.controllerPort = controllerPort;
}
public String getTag() {
return tag;
}
public void setTag(String tag) {
this.tag = tag;
}
public String getBrokerUrl() {
return brokerUrl;
}
public void setBrokerUrl(String brokerUrl) {
this.brokerUrl = brokerUrl;
}
public String getClusterName() {
return clusterName;
}
public void setClusterName(String clusterName) {
this.clusterName = clusterName;
}
public static PinotThirdEyeClientConfig fromFile(File dataSourceFile) throws Exception {
ConfigurationFactory<PinotThirdEyeClientConfig> factory =
new ConfigurationFactory<>(PinotThirdEyeClientConfig.class,
Validation.buildDefaultValidatorFactory().getValidator(), Jackson.newObjectMapper(),
"");
PinotThirdEyeClientConfig configuration;
try {
configuration = factory.build(dataSourceFile);
} catch (Exception e) {
throw new RuntimeException(e);
}
return configuration;
}
@Override
public String toString() {
ToStringHelper stringHelper = MoreObjects.toStringHelper(PinotThirdEyeClientConfig.class);
stringHelper.add("brokerUrl", brokerUrl).add("clusterName", clusterName)
.add("controllerHost", controllerHost).add("controllerPort", controllerPort)
.add("zookeeperUrl", zookeeperUrl);
return stringHelper.toString();
}
public static PinotThirdEyeClientConfig createThirdEyeClientConfig(ThirdEyeConfiguration config) throws Exception {
File clientConfigDir = new File(config.getRootDir(), "client-config");
File clientConfigFile = new File(clientConfigDir, config.getClient() + ".yml");
PinotThirdEyeClientConfig thirdEyeClientConfig =
PinotThirdEyeClientConfig.fromFile(clientConfigFile);
return thirdEyeClientConfig;
}
}