use of com.dtstack.taier.common.enums.EComponentScheduleType in project Taier by DTStack.
the class ConsoleClusterService method getConsoleClusterInfo.
/**
* 获取集群信息详情 需要根据组件分组
*
* @param clusterId
* @return
*/
public ClusterVO getConsoleClusterInfo(Long clusterId) {
Cluster cluster = clusterMapper.getOne(clusterId);
if (null == cluster) {
return new ClusterVO();
}
ClusterVO clusterVO = ClusterVO.toVO(cluster);
// 查询默认版本或者多个版本
List<com.dtstack.taier.dao.domain.Component> components = componentMapper.listByClusterId(clusterId, null, false);
List<IComponentVO> componentConfigs = componentConfigService.getComponentVoByComponent(components, true, clusterId, true, true);
Table<Integer, String, KerberosConfig> kerberosTable = null;
// kerberos的配置
kerberosTable = HashBasedTable.create();
for (KerberosConfig kerberosConfig : consoleKerberosMapper.getByClusters(clusterId)) {
kerberosTable.put(kerberosConfig.getComponentType(), StringUtils.isBlank(kerberosConfig.getComponentVersion()) ? StringUtils.EMPTY : kerberosConfig.getComponentVersion(), kerberosConfig);
}
Map<EComponentScheduleType, List<IComponentVO>> scheduleType = new HashMap<>(4);
// 组件根据用途分组(计算,资源)
if (CollectionUtils.isNotEmpty(componentConfigs)) {
scheduleType = componentConfigs.stream().collect(Collectors.groupingBy(c -> EComponentType.getScheduleTypeByComponent(c.getComponentTypeCode())));
}
List<SchedulingVo> schedulingVos = convertComponentToScheduling(kerberosTable, scheduleType);
clusterVO.setScheduling(schedulingVos);
clusterVO.setCanModifyMetadata(checkMetadata(clusterId, components));
return clusterVO;
}
use of com.dtstack.taier.common.enums.EComponentScheduleType in project Taier by DTStack.
the class ConsoleClusterService method convertComponentToScheduling.
private List<SchedulingVo> convertComponentToScheduling(Table<Integer, String, KerberosConfig> kerberosTable, Map<EComponentScheduleType, List<IComponentVO>> scheduleType) {
List<SchedulingVo> schedulingVos = new ArrayList<>();
// 为空也返回
for (EComponentScheduleType value : EComponentScheduleType.values()) {
SchedulingVo schedulingVo = new SchedulingVo();
schedulingVo.setSchedulingCode(value.getType());
schedulingVo.setSchedulingName(value.getName());
List<IComponentVO> componentVoList = scheduleType.getOrDefault(value, Collections.emptyList());
if (Objects.nonNull(kerberosTable) && !kerberosTable.isEmpty() && CollectionUtils.isNotEmpty(componentVoList)) {
componentVoList.forEach(component -> {
// 组件每个版本设置k8s参数
for (ComponentVO componentVO : component.loadComponents()) {
KerberosConfig kerberosConfig;
EComponentType type = EComponentType.getByCode(componentVO.getComponentTypeCode());
if (type == EComponentType.YARN || type == EComponentType.SPARK_THRIFT || type == EComponentType.HIVE_SERVER) {
kerberosConfig = kerberosTable.get(type.getTypeCode(), StringUtils.EMPTY);
} else {
kerberosConfig = kerberosTable.get(componentVO.getComponentTypeCode(), StringUtils.isBlank(componentVO.getVersionValue()) ? StringUtils.EMPTY : componentVO.getVersionValue());
}
if (Objects.nonNull(kerberosConfig)) {
componentVO.setPrincipal(kerberosConfig.getPrincipal());
componentVO.setPrincipals(kerberosConfig.getPrincipals());
componentVO.setMergeKrb5Content(kerberosConfig.getMergeKrbContent());
}
}
});
}
schedulingVo.setComponents(componentVoList);
schedulingVos.add(schedulingVo);
}
return schedulingVos;
}
Aggregations