in metron-platform/metron-elasticsearch/metron-elasticsearch-common/src/main/java/org/apache/metron/elasticsearch/utils/ElasticsearchUtils.java [91:141]
public static List<HostnamePort> getIps(Map<String, Object> globalConfiguration) {
Object ipObj = globalConfiguration.get("es.ip");
Object portObj = globalConfiguration.get("es.port");
if(ipObj == null) {
return Collections.emptyList();
}
if(ipObj instanceof String
&& ipObj.toString().contains(",") && ipObj.toString().contains(":")){
List<String> ips = Arrays.asList(((String)ipObj).split(","));
List<HostnamePort> ret = new ArrayList<>();
for(String ip : ips) {
Iterable<String> tokens = Splitter.on(":").split(ip);
String host = Iterables.getFirst(tokens, null);
String portStr = Iterables.getLast(tokens, null);
ret.add(new HostnamePort(host, Integer.parseInt(portStr)));
}
return ret;
}else if(ipObj instanceof String
&& ipObj.toString().contains(",")){
List<String> ips = Arrays.asList(((String)ipObj).split(","));
List<HostnamePort> ret = new ArrayList<>();
for(String ip : ips) {
ret.add(new HostnamePort(ip, Integer.parseInt(portObj + "")));
}
return ret;
}else if(ipObj instanceof String
&& !ipObj.toString().contains(":")
) {
return ImmutableList.of(new HostnamePort(ipObj.toString(), Integer.parseInt(portObj + "")));
}
else if(ipObj instanceof String
&& ipObj.toString().contains(":")
) {
Iterable<String> tokens = Splitter.on(":").split(ipObj.toString());
String host = Iterables.getFirst(tokens, null);
String portStr = Iterables.getLast(tokens, null);
return ImmutableList.of(new HostnamePort(host, Integer.parseInt(portStr)));
}
else if(ipObj instanceof List) {
List<String> ips = (List)ipObj;
List<HostnamePort> ret = new ArrayList<>();
for(String ip : ips) {
Iterable<String> tokens = Splitter.on(":").split(ip);
String host = Iterables.getFirst(tokens, null);
String portStr = Iterables.getLast(tokens, null);
ret.add(new HostnamePort(host, Integer.parseInt(portStr)));
}
return ret;
}
throw new IllegalStateException("Unable to read the elasticsearch ips, expected es.ip to be either a list of strings, a string hostname or a host:port string");
}