package com.sequenceiq.cloudbreak.api.model;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableList;
public enum ExposedService {
ALL("ALL", "ALL", "", "", ""),
SSH("SSH", "SSH", "", "", ""),
HTTPS("HTTPS", "HTTPS", "", "", ""),
GATEWAY("Gateway", "Gateway", "", "", ""),
AMBARI("Ambari", "AMBARI_SERVER", "", "AMBARI", "/ambari/"),
AMBARIUI("Ambari", "AMBARI_SERVER", "", "AMBARIUI", "/ambari/"),
CONSUL("Consul", "Consul", "", "", ""),
WEBHDFS("WebHDFS", "NAMENODE", "", "WEBHDFS", "/webhdfs/"),
NAMENODE("Name Node", "NAMENODE", "", "HDFSUI", "/hdfs/"),
RESOURCEMANAGER_WEB("Resource Manager", "RESOURCEMANAGER", "", "YARNUI", "/yarn/"),
RESOURCEMANAGER_SCHEDULER("RM Scheduler", "RM Scheduler", "", "", ""),
RESOURCEMANAGER_IPC("RM IPC", "RM IPC", "", "", ""),
JOB_HISTORY_SERVER("Job History Server", "HISTORYSERVER", "", "JOBHISTORYUI", "/jobhistory/"),
HBASE_MASTER("HBase Master", "HBase Master", "", "", ""),
HBASE_MASTER_WEB("HBase Master Web", "HBASE_MASTER", "", "", ""),
HBASE_REGION("HBase Region Server", "HBase Region Server", "", "", ""),
HBASE_REGION_INFO("HBase Region Server Info", "HBase Region Server Info", "", "", ""),
HIVE_METASTORE("Hive Metastore", "Hive Metastore", "", "", ""),
HIVE_SERVER("Hive Server", "HIVE_SERVER", "", "", ""),
HIVE_SERVER_INTERACTIVE("Hive Server Interactive", "HIVE_SERVER_INTERACTIVE", "", "", ""),
HIVE_SERVER_HTTP("Hive Server Http", "Hive Server Http", "", "", ""),
FALCON("Falcon", "FALCON_SERVER", "", "", ""),
STORM("Storm", "STORM", "", "", ""),
OOZIE("Oozie", "OOZIE_SERVER", "/oozie", "", ""),
ACCUMULO_MASTER("Accumulo Master", "Accumulo Master", "", "", ""),
ACCUMULO_TSERVER("Accumulo Tserver", "Accumulo Tserver", "", "", ""),
ATLAS("Atlas", "ATLAS_SERVER", "", "", ""),
KNOX_GW("Knox GW", "Knox GW", "", "", ""),
SPARK_HISTORY_SERVER("Spark History Server", "SPARK_JOBHISTORYSERVER", "", "SPARKHISTORYUI", "/sparkhistory/"),
CONTAINER_LOGS("Container logs", "Container logs", "", "", ""),
ZEPPELIN_WEB_SOCKET("Zeppelin Web Socket", "ZEPPELIN_MASTER", "", "ZEPPELINWS", ""),
ZEPPELIN_UI("Zeppelin UI", "ZEPPELIN_MASTER", "", "ZEPPELINUI", "/zeppelin/"),
RANGER("Ranger Admin UI", "RANGER_ADMIN", "", "RANGERUI", "/ranger/"),
KIBANA("Kibana", "KIBANA", "", "", ""),
ELASTIC_SEARCH("Elastic Search", "ELASTIC_SEARCH", "", "", ""),
SWARM("Swarm", "SWARM", "", "", ""),
SHIPYARD("Shipyard", "SHIPYARD", "", "", ""),
DRUID_SUPERSET("Druid Superset", "DRUID_SUPERSET", "", "", "");
private final String serviceName;
private final String portName;
private final String postfix;
private final String knoxService;
private final String knoxUrl;
ExposedService(String portName, String serviceName, String postFix, String knoxService, String knoxUrl) {
this.portName = portName;
this.serviceName = serviceName;
this.postfix = postFix;
this.knoxService = knoxService;
this.knoxUrl = knoxUrl;
}
public static List<ExposedService> filterSupportedKnoxServices() {
return Arrays.stream(values()).filter(x -> !Strings.isNullOrEmpty(x.getKnoxService())).collect(Collectors.toList());
}
public static List<String> getAllKnoxExposed() {
List<String> allKnoxExposed = filterSupportedKnoxServices().stream().map(ExposedService::getKnoxService).collect(Collectors.toList());
return ImmutableList.copyOf(allKnoxExposed);
}
public static List<String> getAllServiceName() {
List<String> allServiceName = Arrays.stream(values()).filter(x -> !Strings.isNullOrEmpty(x.getServiceName()))
.map(ExposedService::getServiceName).collect(Collectors.toList());
return ImmutableList.copyOf(allServiceName);
}
public String getServiceName() {
return this.serviceName;
}
public String getPortName() {
return this.portName;
}
public String getPostFix() {
return this.postfix;
}
public String getKnoxService() {
return knoxService;
}
public String getKnoxUrl() {
return knoxUrl;
}
}