Skip to content

Commit

Permalink
[INLONG-10076][Manager] Doris data node supports test connections (#1…
Browse files Browse the repository at this point in the history
  • Loading branch information
haifxu committed May 14, 2024
1 parent 974ef70 commit e8dbf28
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,6 @@ public Boolean deleteByKey(String name, String type, String operator) {
@Override
public Boolean testConnection(DataNodeRequest request) {
LOGGER.info("begin test connection for: {}", request);
String type = request.getType();

// according to the data node type, test connection
DataNodeOperator dataNodeOperator = operatorFactory.getInstance(request.getType());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,16 @@
import org.apache.inlong.manager.common.enums.ErrorCodeEnum;
import org.apache.inlong.manager.common.exceptions.BusinessException;
import org.apache.inlong.manager.common.util.CommonBeanUtils;
import org.apache.inlong.manager.common.util.Preconditions;
import org.apache.inlong.manager.dao.entity.DataNodeEntity;
import org.apache.inlong.manager.pojo.node.DataNodeInfo;
import org.apache.inlong.manager.pojo.node.DataNodeRequest;
import org.apache.inlong.manager.pojo.node.doris.DorisDataNodeDTO;
import org.apache.inlong.manager.pojo.node.doris.DorisDataNodeInfo;
import org.apache.inlong.manager.pojo.node.doris.DorisDataNodeRequest;
import org.apache.inlong.manager.pojo.node.mysql.MySQLDataNodeDTO;
import org.apache.inlong.manager.service.node.AbstractDataNodeOperator;
import org.apache.inlong.manager.service.resource.sink.mysql.MySQLJdbcUtils;

import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.lang3.StringUtils;
Expand All @@ -36,6 +39,8 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.sql.Connection;

@Service
public class DorisDataNodeOperator extends AbstractDataNodeOperator {

Expand Down Expand Up @@ -81,4 +86,21 @@ protected void setTargetEntity(DataNodeRequest request, DataNodeEntity targetEnt
}
}

@Override
public Boolean testConnection(DataNodeRequest request) {
String jdbcUrl = MySQLDataNodeDTO.convertToJdbcurl(request.getUrl());
String username = request.getUsername();
String password = request.getToken();
Preconditions.expectNotBlank(jdbcUrl, ErrorCodeEnum.INVALID_PARAMETER, "connection jdbcUrl cannot be empty");
try (Connection ignored = MySQLJdbcUtils.getConnection(jdbcUrl, username, password)) {
LOGGER.info("doris connection not null - connection success for jdbcUrl={}, username={}, password={}",
jdbcUrl, username, password);
return true;
} catch (Exception e) {
String errMsg = String.format("doris connection failed for jdbcUrl=%s, username=%s, password=%s", jdbcUrl,
username, password);
LOGGER.error(errMsg, e);
throw new BusinessException(errMsg);
}
}
}

0 comments on commit e8dbf28

Please sign in to comment.