Commit 7c4e4c6f authored by 黎博's avatar 黎博

update

parent ae3c79e7
......@@ -9,12 +9,17 @@ import cn.qg.holmes.service.k8s.*;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.tencentcloudapi.tcr.v20190924.models.RepoInfo;
import com.tencentcloudapi.tcr.v20190924.models.TagInfo;
import com.tencentcloudapi.tcr.v20190924.models.TagInfoResp;
import io.fabric8.kubernetes.api.model.apps.Deployment;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* k8及容器操作相关接口
......@@ -78,7 +83,7 @@ public class K8sController {
*/
@GetMapping("/image/list")
public JsonResult getImageListByServiceName(@RequestParam String repoName) {
return JsonResult.buildSuccessResult(imageService.getImageListByService(repoName));
return JsonResult.buildSuccessResult(JSON.toJSONString(imageService.getImageListByService(repoName)));
}
/**
......@@ -460,4 +465,62 @@ public class K8sController {
resultList.sort(String::compareTo);
return String.join("\n", resultList);
}
/**
* 按照类型获取所有的服务
* @return
*/
@GetMapping("/repo/getAll")
public JsonResult getAllRepos() {
List<Map<String, Object>> resultMapList = new ArrayList<>();
List<RepoInfo> repoInfoList = imageService.getRepoInfoList("qa-base");
Map<String, Object> base = new HashMap<>();
List<Map<String, String>> baseList = new ArrayList<>();
for (RepoInfo repoInfo: repoInfoList) {
String serviceName = repoInfo.getRepoName().split("/")[1];
TagInfo[] tagInfos = imageService.getImageListByService(repoInfo.getRepoName()).getTagInfo();
for (TagInfo tagInfo: tagInfos) {
Map<String, String> map = new HashMap<>();
map.put("appname", serviceName + ":" + tagInfo.getTagName());
map.put("type", serviceName);
map.put("label", "base");
map.put("tag", "qa-base/" + serviceName + ":" + tagInfo.getTagName());
map.put("domain", serviceName + tagInfo.getTagName());
baseList.add(map);
}
}
base.put("type", "base");
base.put("repos", baseList);
resultMapList.add(base);
QueryWrapper<DockerProject> queryWrapper = new QueryWrapper<>();
queryWrapper.groupBy("project_type").select("project_type");
List<DockerProject> projectList = dockerProjectService.list(queryWrapper);
queryWrapper.clear();
for (DockerProject dp: projectList) {
String type = dp.getProjectType();
Map<String, Object> serviceMap = new HashMap<>();
List<Map<String, String>> serviceMapList = new ArrayList<>();
queryWrapper
.eq("project_type", type)
.eq("is_active", 1);
List<DockerProject> dockerProjectList = dockerProjectService.list(queryWrapper);
for (DockerProject dockerProject: dockerProjectList) {
Map<String, String> map = new HashMap<>();
map.put("type", type);
map.put("label", type);
map.put("appname", dockerProject.getProjectName());
map.put("domain", dockerProject.getHostName().split("\\.")[0]);
map.put("tag", "qa-test/" + dockerProject.getProjectName() + ":latest");
serviceMapList.add(map);
}
serviceMap.put("type", type);
serviceMap.put("repos", serviceMapList);
resultMapList.add(serviceMap);
queryWrapper.clear();
}
return JsonResult.buildSuccessResult(resultMapList);
}
}
......@@ -45,12 +45,13 @@ public class ImageService {
* @param repoName 服务名
* @return
*/
public Map<String, Object> getImageListByService(String repoName) {
public TagInfoResp getImageListByService(String repoName) {
try {
DescribeImagePersonalRequest request = new DescribeImagePersonalRequest();
request.setRepoName(repoName);
DescribeImagePersonalResponse response = tcrClient.DescribeImagePersonal(request);
return JSON.parseObject(DescribeImagePersonalResponse.toJsonString(response.getData()), Map.class);
// return JSON.parseObject(DescribeImagePersonalResponse.toJsonString(response.getData()), Map.class);
return response.getData();
} catch (Exception e) {
e.printStackTrace();
return null;
......@@ -97,7 +98,8 @@ public class ImageService {
public static void main(String[] args) {
ImageService imageService = new ImageService();
System.out.println(JSON.toJSONString(imageService.getRepoInfoList("qa-test")));
// System.out.println(JSON.toJSONString(imageService.getRepoInfoList("qa-base")));
System.out.println(JSON.toJSONString(imageService.getImageListByService("qa-base/mongodb")));
}
}
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