ClusterModelConverter.java 6.3 KB
Newer Older
Z
init  
zengqiao 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
package com.xiaojukeji.kafka.manager.web.converters;

import com.xiaojukeji.kafka.manager.web.model.ClusterModel;
import com.xiaojukeji.kafka.manager.web.vo.cluster.ClusterBasicVO;
import com.xiaojukeji.kafka.manager.web.vo.cluster.ClusterDetailVO;
import com.xiaojukeji.kafka.manager.common.entity.bizenum.DBStatusEnum;
import com.xiaojukeji.kafka.manager.common.entity.po.ClusterDO;
import com.xiaojukeji.kafka.manager.common.entity.po.ControllerDO;
import com.xiaojukeji.kafka.manager.common.entity.zookeeper.ControllerData;
import com.xiaojukeji.kafka.manager.service.cache.ClusterMetadataManager;
import com.xiaojukeji.kafka.manager.web.vo.KafkaControllerVO;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * cluster相关转换
 * @author huangyiminghappy@163.com
 * @date 2019/3/15
 */
public class ClusterModelConverter {
    public static List<ClusterBasicVO> convert2ClusterBasicVOList(List<ClusterDO> clusterDOList) {
        if (clusterDOList == null || clusterDOList.isEmpty()) {
            return new ArrayList<>();
        }
        List<ClusterBasicVO> clusterBasicVOList = new ArrayList<>();
        for (ClusterDO clusterDO: clusterDOList) {
            clusterBasicVOList.add(convert2ClusterBasicVO(clusterDO));
        }
        return clusterBasicVOList;
    }

    public static ClusterBasicVO convert2ClusterBasicVO(ClusterDO clusterDO) {
        ClusterBasicVO clusterBasicVO = new ClusterBasicVO();
        clusterBasicVO.setClusterId(clusterDO.getId());
        clusterBasicVO.setClusterName(clusterDO.getClusterName());
        clusterBasicVO.setBootstrapServers(clusterDO.getBootstrapServers());
        clusterBasicVO.setKafkaVersion(clusterDO.getKafkaVersion());
        clusterBasicVO.setGmtCreate(clusterDO.getGmtCreate().getTime());
        clusterBasicVO.setGmtModify(clusterDO.getGmtModify().getTime());
        clusterBasicVO.setBrokerNum(ClusterMetadataManager.getBrokerIdList(clusterDO.getId()).size());
        clusterBasicVO.setTopicNum(ClusterMetadataManager.getTopicNameList(clusterDO.getId()).size());
        return clusterBasicVO;
    }

    public static List<ClusterDetailVO> convert2ClusterDetailVOList(List<ClusterDO> clusterDOList,
                                                                    Map<Long, Long> clusterIdTagNumMap,
                                                                    Map<Long, Integer> consumerGroupNumMap) {
        List<ClusterDetailVO> clusterDetailVOList = new ArrayList<>();
        for (ClusterDO clusterDO: clusterDOList) {
            ClusterDetailVO clusterDetailVO = new ClusterDetailVO();
            clusterDetailVO.setClusterId(clusterDO.getId());
            clusterDetailVO.setClusterName(clusterDO.getClusterName());
            clusterDetailVO.setZookeeper(clusterDO.getZookeeper());
            clusterDetailVO.setBootstrapServers(clusterDO.getBootstrapServers());
            clusterDetailVO.setKafkaVersion(clusterDO.getKafkaVersion());
            clusterDetailVO.setSecurityProtocol(clusterDO.getSecurityProtocol());
            clusterDetailVO.setSaslMechanism(clusterDO.getSaslMechanism());
            clusterDetailVO.setSaslJaasConfig(clusterDO.getSaslJaasConfig());
            clusterDetailVO.setAlarmFlag(clusterDO.getAlarmFlag());
            clusterDetailVO.setStatus(clusterDO.getStatus());
            clusterDetailVO.setGmtCreate(clusterDO.getGmtCreate().getTime());
            clusterDetailVO.setGmtModify(clusterDO.getGmtModify().getTime());

            if (DBStatusEnum.DELETED.getStatus().equals(clusterDO.getStatus())) {
                clusterDetailVO.setBrokerNum(-1);
                clusterDetailVO.setTopicNum(-1);
                clusterDetailVO.setControllerId(-1);
                clusterDetailVO.setRegionNum(-1);
                clusterDetailVOList.add(clusterDetailVO);
                continue;
            }
            clusterDetailVO.setRegionNum(clusterIdTagNumMap.getOrDefault(clusterDO.getId(), 0L).intValue());
            clusterDetailVO.setBrokerNum(ClusterMetadataManager.getBrokerIdList(clusterDO.getId()).size());
            clusterDetailVO.setTopicNum(ClusterMetadataManager.getTopicNameList(clusterDO.getId()).size());
            ControllerData controllerData = ClusterMetadataManager.getControllerData(clusterDO.getId());
            if (controllerData == null) {
                clusterDetailVO.setControllerId(-1);
            } else {
                clusterDetailVO.setControllerId(controllerData.getBrokerid());
            }
            clusterDetailVO.setConsumerGroupNum(consumerGroupNumMap.getOrDefault(clusterDO.getId(), 0));
            clusterDetailVOList.add(clusterDetailVO);
        }
        return clusterDetailVOList;
    }

    public static List<KafkaControllerVO> convert2KafkaControllerVOList(List<ControllerDO> controllerDOList) {
        if (controllerDOList == null) {
            return new ArrayList<>();
        }
        List<KafkaControllerVO> kafkaControllerVOList = new ArrayList<>();
        for (ControllerDO kafkaControllerDO: controllerDOList) {
            KafkaControllerVO kafkaControllerVO = new KafkaControllerVO();
            kafkaControllerVO.setBrokerId(kafkaControllerDO.getBrokerId());
            kafkaControllerVO.setHost(kafkaControllerDO.getHost());
            kafkaControllerVO.setControllerVersion(kafkaControllerDO.getVersion());
            kafkaControllerVO.setControllerTimestamp(kafkaControllerDO.getTimestamp());
            kafkaControllerVOList.add(kafkaControllerVO);
        }
        return kafkaControllerVOList;
    }

    public static ClusterDO convert2ClusterDO(ClusterModel reqObj) {
        ClusterDO clusterDO = new ClusterDO();
        clusterDO.setClusterName(reqObj.getClusterName());
        clusterDO.setZookeeper(reqObj.getZookeeper());
        clusterDO.setKafkaVersion(reqObj.getKafkaVersion());
        clusterDO.setBootstrapServers(reqObj.getBootstrapServers());
        clusterDO.setId(reqObj.getClusterId());
        clusterDO.setAlarmFlag(reqObj.getAlarmFlag() == null? 0: reqObj.getAlarmFlag());
        clusterDO.setSecurityProtocol(reqObj.getSecurityProtocol() == null? "": reqObj.getSecurityProtocol());
        clusterDO.setSaslMechanism(reqObj.getSaslMechanism() == null? "": reqObj.getSaslMechanism());
        clusterDO.setSaslJaasConfig(reqObj.getSaslJaasConfig() == null? "": reqObj.getSaslJaasConfig());
        return clusterDO;
    }
}