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

新增/k8s/sync/mq2接口

parent cc517e42
...@@ -323,6 +323,17 @@ public class K8sController { ...@@ -323,6 +323,17 @@ public class K8sController {
return JsonResult.buildSuccessResult(mqService.setDefinitions(host)); return JsonResult.buildSuccessResult(mqService.setDefinitions(host));
} }
/**
* 同步mq
* @param sourceHost 源mq
* @param targetHost 目标mq
* @return
*/
@PostMapping("/sync/mq2")
public JsonResult syncOnlineMqToTest2(@RequestParam String sourceHost, @RequestParam String targetHost) {
return JsonResult.buildSuccessResult(mqService.setDefinitions(sourceHost, targetHost));
}
/** /**
* 比较线上和测试mq * 比较线上和测试mq
* @param host * @param host
......
...@@ -68,6 +68,40 @@ public class MqService { ...@@ -68,6 +68,40 @@ public class MqService {
} }
} }
public boolean setDefinitions(String sourceHost, String targetHost) {
try {
String ONLINE_MQ_URL = "http://" + sourceHost;
String ONLINE_MQ_AUTH = "Basic cWE6cWF0ZXN0";
Map<String, Object> onlineDefinitions = getDefinitionsOfHost(ONLINE_MQ_URL, ONLINE_MQ_AUTH);
List<Map<String, String>> permissionList = (List<Map<String, String>>) onlineDefinitions.get("permissions");
List<Map<String, String>> qaPermissionList = new ArrayList<>();
for (Map<String, String> permission : permissionList) {
if (permission.get("user").equals("rabbit_admin")) {
Map<String, String> temp = new HashMap<>();
temp.putAll(permission);
qaPermissionList.add(temp);
permission.put("user", "qa");
qaPermissionList.add(permission);
} else if (!permission.get("user").equals("qa") && !permission.get("user").equals("rabbit_admin")) {
qaPermissionList.add(permission);
}
}
onlineDefinitions.put("permissions", qaPermissionList);
String QA_MQ_AUTH = "Basic cWE6cWF0ZXN0";
String qaMqUrl = "http://" + targetHost + "/api/definitions";
Map<String, String> headers = new HashMap<>();
headers.put("Authorization", QA_MQ_AUTH);
headers.put("Content-Type", "application/json");
HttpClientUtils.doPostJson(qaMqUrl, headers, JSON.toJSONString(onlineDefinitions));
log.info("MQ同步成功:{}", targetHost);
return true;
} catch (Exception e) {
log.info("MQ同步失败:{}", targetHost);
e.printStackTrace();
return false;
}
}
/** /**
* 获取 sourceMapList 比 targetMapList 多出的元素 * 获取 sourceMapList 比 targetMapList 多出的元素
* *
......
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