Commit 2ca6b89b authored by 黎博's avatar 黎博

新增域名替换方法

parent 9d8042ad
...@@ -2,6 +2,7 @@ package cn.qg.holmes.controller.effect; ...@@ -2,6 +2,7 @@ package cn.qg.holmes.controller.effect;
import cn.qg.holmes.common.JsonResult; import cn.qg.holmes.common.JsonResult;
import cn.qg.holmes.service.effect.DatabaseSyncService; import cn.qg.holmes.service.effect.DatabaseSyncService;
import cn.qg.holmes.utils.K8sService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
...@@ -42,7 +43,7 @@ public class DbSyncController { ...@@ -42,7 +43,7 @@ public class DbSyncController {
if (tableName.equalsIgnoreCase("all") || tableName.equals("")) { if (tableName.equalsIgnoreCase("all") || tableName.equals("")) {
log.info("开始同步{}库下所有的表", dbName); log.info("开始同步{}库下所有的表", dbName);
databaseSyncService.getDbInfoFromSource(ip, port, username, password, dbName); databaseSyncService.getDbInfoFromSource(ip, port, username, password, dbName);
databaseSyncService.syncDbToDest(destIp, destPort, "qa", "qatest", dbName); databaseSyncService.syncDbToDest(destIp, destPort, "qa", "qatest", dbName, namespace);
} else { } else {
log.info("开始同步{}库下{}表", dbName, tableName); log.info("开始同步{}库下{}表", dbName, tableName);
databaseSyncService.getSingleTableFromSource(ip, port, username, password, dbName, tableName); databaseSyncService.getSingleTableFromSource(ip, port, username, password, dbName, tableName);
...@@ -66,7 +67,6 @@ public class DbSyncController { ...@@ -66,7 +67,6 @@ public class DbSyncController {
return JsonResult.buildSuccessResult(databaseSyncService.getDatabaseList(ip, port, username, password)); return JsonResult.buildSuccessResult(databaseSyncService.getDatabaseList(ip, port, username, password));
} }
/** /**
* 获取某个库下的表列表 * 获取某个库下的表列表
* @param dbName 数据库名 * @param dbName 数据库名
......
...@@ -7,7 +7,7 @@ public interface DatabaseSyncService { ...@@ -7,7 +7,7 @@ public interface DatabaseSyncService {
boolean getDbInfoFromSource(String ip, String port, String username, String password, String dbName); boolean getDbInfoFromSource(String ip, String port, String username, String password, String dbName);
boolean syncDbToDest(String ip, String port, String username, String password, String dbName); boolean syncDbToDest(String ip, String port, String username, String password, String dbName, String namespace);
boolean getSingleTableFromSource(String ip, String port, String username, String password, String dbName, String tableName); boolean getSingleTableFromSource(String ip, String port, String username, String password, String dbName, String tableName);
......
...@@ -159,7 +159,7 @@ public class DatabaseSyncServiceImpl implements DatabaseSyncService { ...@@ -159,7 +159,7 @@ public class DatabaseSyncServiceImpl implements DatabaseSyncService {
* @return * @return
*/ */
@Override @Override
public boolean syncDbToDest(String ip, String port, String username, String password, String dbName) { public boolean syncDbToDest(String ip, String port, String username, String password, String dbName, String namespace) {
String driver = "com.mysql.jdbc.Driver"; String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://" + ip + ":" + port; String url = "jdbc:mysql://" + ip + ":" + port;
...@@ -210,6 +210,7 @@ public class DatabaseSyncServiceImpl implements DatabaseSyncService { ...@@ -210,6 +210,7 @@ public class DatabaseSyncServiceImpl implements DatabaseSyncService {
log.info("开始同步表数据!"); log.info("开始同步表数据!");
long dataStartTime = System.currentTimeMillis(); long dataStartTime = System.currentTimeMillis();
for (String insertSql: insertTableRedisValue.split("\n")) { for (String insertSql: insertTableRedisValue.split("\n")) {
// statement.addBatch(replaceDomain(insertSql, namespace));
statement.addBatch(insertSql); statement.addBatch(insertSql);
} }
statement.executeBatch(); statement.executeBatch();
...@@ -699,4 +700,13 @@ public class DatabaseSyncServiceImpl implements DatabaseSyncService { ...@@ -699,4 +700,13 @@ public class DatabaseSyncServiceImpl implements DatabaseSyncService {
} }
} }
private String replaceDomain(String sql, String namespace) {
if (sql.contains("xyqb.com")) {
return sql.replace(".xyqb.com", "-" + namespace + ".liangkebang.net");
} else if (sql.contains(".q-gp.com")) {
return sql.replace(".q-gp.com", "-" + namespace + ".liangkebang.net");
} else {
return sql;
}
}
} }
package cn.qg.holmes.utils; package cn.qg.holmes.utils;
import io.fabric8.kubernetes.api.model.Namespace;
import io.fabric8.kubernetes.client.Config; import io.fabric8.kubernetes.client.Config;
import io.fabric8.kubernetes.client.ConfigBuilder;
import io.fabric8.kubernetes.client.DefaultKubernetesClient; import io.fabric8.kubernetes.client.DefaultKubernetesClient;
import io.fabric8.kubernetes.client.KubernetesClient; import io.fabric8.kubernetes.client.KubernetesClient;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.io.*; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
@Slf4j @Slf4j
@Component //@Component
public class K8sService { public class K8sService {
private KubernetesClient kubernetesClient; private KubernetesClient kubernetesClient;
...@@ -32,6 +37,12 @@ public class K8sService { ...@@ -32,6 +37,12 @@ public class K8sService {
} }
/**
* 读取k8s配置文件
* @param file 配置文件名
* @return
* @throws IOException
*/
public static List<String> readConfigFile(String file) throws IOException { public static List<String> readConfigFile(String file) throws IOException {
String str = ""; String str = "";
ClassPathResource resource = new ClassPathResource(file); ClassPathResource resource = new ClassPathResource(file);
...@@ -44,8 +55,26 @@ public class K8sService { ...@@ -44,8 +55,26 @@ public class K8sService {
return result; return result;
} }
public static void main(String[] args) throws IOException { /**
K8sService k8sService = new K8sService(); * 获取namespace列表
* @return
*/
public List<Map<String, Object>> getNamespaceList() {
List<Map<String, Object>> resultList = new ArrayList<>();
List<Namespace> namespaceList = kubernetesClient.namespaces().list().getItems();
for (Namespace namespace: namespaceList) {
log.info(namespace.toString());
if (namespace.getMetadata().getAnnotations() != null) {
Map<String, Object> map = new HashMap<>();
map.put("name", namespace.getMetadata().getName());
map.put("description", namespace.getMetadata().getAnnotations().get("description"));
map.put("owner", namespace.getMetadata().getAnnotations().get("owner"));
map.put("status", namespace.getStatus().getPhase());
map.put("createdAt",namespace.getMetadata().getCreationTimestamp());
resultList.add(map);
}
} }
return resultList;
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment