package com.alibaba.doris.admin.service.impl; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.stereotype.Service; import com.alibaba.doris.admin.dao.PhysicalNodeDao; import com.alibaba.doris.admin.dataobject.PhysicalNodeDO; import com.alibaba.doris.admin.service.AdminNodeService; import com.alibaba.doris.common.StoreNodeSequenceEnum; /** * @project :doris * @author : len.liu * @datetime : 2011-5-12 下午10:14:06 * @version :0.1 * @Modification: */ @Service public class AdminNodeServiceImp implements AdminNodeService { private PhysicalNodeDao physicalNodeDao; public Integer addPhysicalNode(PhysicalNodeDO phsicalNodeDo) { return physicalNodeDao.addPhysicalNode(phsicalNodeDo); } public List<PhysicalNodeDO> queryAllPhysicalNodes() { return physicalNodeDao.queryAllPhysicalNodes(); } public List<PhysicalNodeDO> queryAllUsablePhysicalNodes() { return physicalNodeDao.queryAllUsablePhysicalNodes(); } public PhysicalNodeDO queryPhysicalNodeByPhysicalId(String physicalId) { return physicalNodeDao.queryPhysicalNodeByPhysicalId(physicalId); } public List<PhysicalNodeDO> queryPhysicalNodesBySerialId(String serialId) { return physicalNodeDao.queryPhysicalNodesBySerialId(serialId); } public List<PhysicalNodeDO> queryUnUsablePhysicalNodes() { return physicalNodeDao.queryUnUsablePhysicalNodes(); } public void updatePhysicalNodeStatus(String id, int status) { physicalNodeDao.updatePhysicalNodeStatus(id, status); } public PhysicalNodeDO queryPhysicalNodesByConditions(PhysicalNodeDO physicalNodeDO) { return physicalNodeDao.queryPhysicalNodesByConditions(physicalNodeDO); } public void setPhysicalNodeDao(PhysicalNodeDao physicalNodeDao) { this.physicalNodeDao = physicalNodeDao; } public PhysicalNodeDO queryPhysicalNodeById(Integer id) { return physicalNodeDao.queryPhysicalNodeById(id); } public void updatePhysicalNode(PhysicalNodeDO physicalNodeDO) { physicalNodeDao.updatePhysicalNode(physicalNodeDO); } public void updatePhysicalNodeList(List<PhysicalNodeDO> physicalNodeDoList) { physicalNodeDao.updatePhysicalNodeList(physicalNodeDoList); } public void deletePhysicalNode(String physicalId) { physicalNodeDao.deletePhysicalNode(physicalId); } public List<PhysicalNodeDO> queryNomalPhysicalNodesByIP(String IP) { return physicalNodeDao.queryNomalPhysicalNodesByIP(IP); } /* * (non-Javadoc) * @see com.alibaba.doris.admin.service.AdminNodeService#isLegalMigrate(java.lang.String, java.lang.String) */ public boolean checkLegalMigrateByIP(String IP, StoreNodeSequenceEnum targetSequence) { Map<String, StoreNodeSequenceEnum> checkMap = new HashMap<String, StoreNodeSequenceEnum>(); List<PhysicalNodeDO> nodeList = queryNomalPhysicalNodesByIP(IP); if (nodeList != null && nodeList.size() > 0) { checkMap.put(IP, StoreNodeSequenceEnum.getTypeByValue(nodeList.get(0).getSerialId())); } else { return true; } if (StoreNodeSequenceEnum.isNormalSequence(targetSequence) && checkMap.get(IP) != null && !checkMap.get(IP).equals(targetSequence)) { return false; } else { checkMap.put(IP, targetSequence); } return true; } /* * (non-Javadoc) * @see com.alibaba.doris.admin.service.AdminNodeService#checkLegalMigrateByPhysicalId(java.lang.String, * java.lang.String) */ public boolean checkLegalMigrateByPhysicalId(String physicalId, StoreNodeSequenceEnum targetSequence) { PhysicalNodeDO node = queryPhysicalNodeByPhysicalId(physicalId); if (node == null) return false; String IP = node.getIp(); return checkLegalMigrateByIP(IP, targetSequence); } public PhysicalNodeDO queryDuplicateNodesForEdit(PhysicalNodeDO physicalNodeDO) { return physicalNodeDao.queryDuplicateNodesForEdit(physicalNodeDO); } public void updatePhysicalNodeByNodeId(PhysicalNodeDO physicalNodeDO) { physicalNodeDao.updatePhysicalNodeByNodeId(physicalNodeDO); } }