Commit beadaebf authored by 黎博's avatar 黎博

数据库同步脚本编写

parent addf9934
...@@ -148,6 +148,14 @@ ...@@ -148,6 +148,14 @@
<version>4.1.1</version> <version>4.1.1</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/io.fabric8/kubernetes-client -->
<dependency>
<groupId>io.fabric8</groupId>
<artifactId>kubernetes-client</artifactId>
<version>5.4.1</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
package cn.qg.holmes.config;
import io.fabric8.kubernetes.client.Config;
import io.fabric8.kubernetes.client.DefaultKubernetesClient;
import io.fabric8.kubernetes.client.KubernetesClient;
import java.io.IOException;
public class K8sConfig {
public static void main(String[] args) throws IOException {
Config config = Config.fromKubeconfig("classpath/KubeConfig.yml");
KubernetesClient kubernetesClient = new DefaultKubernetesClient(config);
System.out.println(kubernetesClient.pods().inNamespace("fe").list());
}
}
package cn.qg.holmes.controller.effect;
import cn.qg.holmes.common.JsonResult;
import cn.qg.holmes.service.effect.DatabaseSyncService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
@CrossOrigin
@RestController
@RequestMapping("/db")
public class DbSyncController {
@Autowired
DatabaseSyncService databaseSyncService;
@Value("${dbsync.mysql.ip}")
private String ip;
@Value("${dbsync.mysql.port}")
private String port;
@Value("${dbsync.mysql.username}")
private String username;
@Value("${dbsync.mysql.password}")
private String password;
@GetMapping("/sync/one")
public JsonResult syncSingleDatabase(@RequestParam String namespace, @RequestParam String dbName) {
databaseSyncService.getDbInfoFromSource(ip, port, username, password, dbName);
databaseSyncService.syncDbToDest("172.17.5.24", "31024", "qa", "qatest", dbName);
return JsonResult.buildSuccessResult(null);
}
/**
* 获取数据库列表
* @return
*/
@GetMapping("/sync/list")
public JsonResult getDatabaseList() {
return JsonResult.buildSuccessResult(databaseSyncService.getDatabaseList(ip, port, username, password));
}
}
package cn.qg.holmes.service.effect;
import java.util.List;
public interface DatabaseSyncService {
boolean getDbInfoFromSource(String ip, String port, String username, String password, String dbName);
boolean syncDbToDest(String ip, String port, String username, String password, String dbName);
List<Object> getDatabaseList(String ip, String port, String username, String password);
}
\ No newline at end of file
This diff is collapsed.
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURaRENDQWt5Z0F3SUJBZ0lJQWlFbzhnb1ZhZVl3RFFZSktvWklodmNOQVFFTEJRQXdVREVMTUFrR0ExVUUKQmhNQ1EwNHhLakFSQmdOVkJBb1RDblJsYm1ObGJuUjVkVzR3RlFZRFZRUUtFdzV6ZVhOMFpXMDZiV0Z6ZEdWeQpjekVWTUJNR0ExVUVBeE1NWTJ4ekxXRmpabmcwY0hacU1CNFhEVEU1TURFd016QXpNRFExTWxvWERUTTVNREV3Ck16QXpNRFExTWxvd1VERUxNQWtHQTFVRUJoTUNRMDR4S2pBUkJnTlZCQW9UQ25SbGJtTmxiblI1ZFc0d0ZRWUQKVlFRS0V3NXplWE4wWlcwNmJXRnpkR1Z5Y3pFVk1CTUdBMVVFQXhNTVkyeHpMV0ZqWm5nMGNIWnFNSUlCSWpBTgpCZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUE1UnVyS0hSMG5GMlAyNndlU01haittbXltdytsCkEvODFyNUl3QVFZaXoxSDRRT3IrVFdiZjd0Z2JsWXNOemJpSk5qTk56VkRiQ2RidkhZaHhLNlVjemJDOGJocXEKakE4Y29tcCtkbENlNm13VEJKNzRwM08rSlduNFJOY0QreHJ4dXJ6aE9GRFZra1RrRWNqMDZXT25oMk9Dc0VaQwpCeVczWlBYQ2p1ZG8wNUprTUhXaEUvcERmSWEyYWIxNmRZeGZ2SWhzdjhYcWdRMm92T0RvOEg5aVBmWkMvVkl4CmpoUWtPem1SbmRlRXgvWlpiWTlvMW9PbWwxcjl3ZnRXWklzWTJYbTY0SzRrVDg3YWZURi9xaXZ4OEdXOXBwRHkKb3JZVlhnVVFKVkRHMmIyWXdGYldYdlB3SzZZYlNVOUdydUplUnFmdklLaSt3S3RxQzBMZ1pZckxVd0lEQVFBQgpvMEl3UURBT0JnTlZIUThCQWY4RUJBTUNBb1F3SFFZRFZSMGxCQll3RkFZSUt3WUJCUVVIQXdJR0NDc0dBUVVGCkJ3TUJNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBRi9jYzF0RGZUSFEKeDVyRmpyUEt5YW5xOWJWb2YySlorMnhiaHp1b2sxU2ljYlNwdExia0h4VDh6cmlVeHNQM3djbFluSVFtN25XNgo5VEl6S1hJOUgra3ZFbDNQQXZyU1VVRnFOSytLWlBEZFpQdnNvcFZ1dDNtc3ZQeWRnNGRlODgzd0EwSmQ1dWl1CjNKV0xBYm1hekhZT01taEQyRW9yc1VpWTZ3NXVJNy9rMld6bUgzelVGd250WDRNMjFYR3JrZm5IUUVhVHQvaHQKR3JsUWpQVzgwNzFwSm9UaVgxNURzd2VNTS9KZEtMV3FTaHVJdWY3YXNqcFUrSWRtQjU3U0g3NER0eTNEaTU4QwpHVldBQjEzc3BtZGpIbGhDeTlRZGxpQzhkUzVGai80SFRIdDJHYTBDREZLRVk0TnF3SGUvK0hqNmRWOTJrcmJHCmdaNkZRa2FId1ZrPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
server: https://cls-acfx4pvj.ccs.tencent-cloud.com
name: local
contexts:
- context:
cluster: local
user: admin
name: cls-acfx4pvj-context-default
current-context: cls-acfx4pvj-context-default
kind: Config
preferences: {}
users:
- name: admin
user:
token: BIsuBv18csrBHVXClYZ4ln3izUYJt9Xa
\ No newline at end of file
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