Authored by mlge

Docker配置功能

package com.monitor.model.request;
import com.monitor.model.page.PageRequest;
import lombok.Data;
/**
* Created by yoho on 2016/6/14.
*/
@Data
public class DockerInfoReq extends PageRequest {
private int id;
private String projectName;//项目名称
private String dockerProjectName;//docker项目名称
private String projectJobType;//项目job类型
}
... ...
... ... @@ -2,6 +2,7 @@ package com.monitor.mysql.mapper;
import com.model.DockerProjectModel;
import com.monitor.model.domain.PageBean;
import com.monitor.model.request.DockerInfoReq;
import org.apache.ibatis.annotations.Param;
import java.util.List;
... ... @@ -19,4 +20,13 @@ public interface DockerProjectMapper {
List<DockerProjectModel> selectByIdList(@Param("idList") List<Integer> idList);
List<DockerProjectModel> selectByProjectJobType(@Param("projectJobType") String projectJobType);
int selectCountByCodition(PageBean req);
List<DockerProjectModel> selectDockerInfosByCodition(PageBean page);
int updateById(DockerProjectModel docker);
int insertInfo(DockerProjectModel dockerInfo);
void deleteById(Integer id);
}
... ...
... ... @@ -81,4 +81,69 @@
</choose>
</select>
<select id="selectCountByCodition" resultType="java.lang.Integer">
select
count(1)
from docker_project
where 1=1
<if test="params.projectName != null &amp;&amp; params.projectName != ''" >
and projectname like concat('%',#{params.projectName},'%')
</if>
<if test="params.dockerProjectName != null &amp;&amp; params.dockerProjectName != ''" >
and dockerProjectName like concat('%',#{params.dockerProjectName},'%')
</if>
<if test="params.projectJobType != null &amp;&amp; params.projectJobType != ''" >
and projectjobtype like concat('%',#{params.projectJobType},'%')
</if>
</select>
<select id="selectDockerInfosByCodition" resultMap="BaseResultMap">
select * from docker_project
where 1=1
<if test="params.projectName != null &amp;&amp; params.projectName != ''" >
and projectname like concat('%',#{params.projectName},'%')
</if>
<if test="params.dockerProjectName != null &amp;&amp; params.dockerProjectName != ''" >
and dockerprojectname like concat('%',#{params.dockerProjectName},'%')
</if>
<if test="params.projectJobType != null &amp;&amp; params.projectJobType != ''" >
and projectjobtype like concat('%',#{params.projectJobType},'%')
</if>
order by id desc
limit #{startIndex},#{pageSize}
</select>
<insert id="insertInfo" parameterType="com.model.DockerProjectModel" >
insert into docker_project
(projectname,projectgitgroup,projectjobtype,dockerprojectname,dockergrayclusterid,dockergraynamespace,
dockergrayimagestore,dockeronlineclusterid,dockeronlinenamespace,dockeronlineimagestore,port)
values (#{projectName,jdbcType=VARCHAR}, #{projectGitGroup,jdbcType=VARCHAR}, #{projectJobType,jdbcType=VARCHAR},
#{dockerProjectName,jdbcType=VARCHAR}, #{dockerGrayClusterId,jdbcType=VARCHAR}, #{dockerGrayNameSpace,jdbcType=VARCHAR},
#{dockerGrayImageStore,jdbcType=VARCHAR},#{dockerOnlineClusterId,jdbcType=VARCHAR},#{dockerOnlineNameSpace,jdbcType=VARCHAR},
#{dockerOnlineImageStore,jdbcType=VARCHAR},#{port,jdbcType=INTEGER})
</insert>
<update id="updateById" parameterType="com.model.DockerProjectModel" >
update docker_project
set
projectname = #{projectName,jdbcType=VARCHAR},
projectgitgroup = #{projectGitGroup,jdbcType=VARCHAR},
projectjobtype = #{projectJobType,jdbcType=VARCHAR},
dockerprojectname = #{dockerProjectName,jdbcType=VARCHAR},
dockergrayclusterid = #{dockerGrayClusterId,jdbcType=VARCHAR},
dockergraynamespace = #{dockerGrayNameSpace,jdbcType=VARCHAR},
dockergrayimagestore = #{dockerGrayImageStore,jdbcType=VARCHAR},
dockeronlineclusterid = #{dockerOnlineClusterId,jdbcType=VARCHAR},
dockeronlinenamespace = #{dockerOnlineNameSpace,jdbcType=VARCHAR},
dockeronlineimagestore = #{dockerOnlineImageStore,jdbcType=VARCHAR},
port = #{port,jdbcType=INTEGER}
where id = #{id,jdbcType=INTEGER}
</update>
<delete id="deleteById" parameterType="java.lang.Integer">
delete from docker_project where id = #{id,jdbcType=INTEGER}
</delete>
</mapper>
\ No newline at end of file
... ...
... ... @@ -3,15 +3,21 @@ package com.monitor.other.worksystem.ctrl;
import com.alibaba.fastjson.JSONArray;
import com.model.DockerJenkinsRecord;
import com.model.DockerProjectModel;
import com.monitor.model.request.DockerInfoReq;
import com.monitor.model.request.DockerJenkinsReq;
import com.monitor.model.response.BaseResponse;
import com.monitor.model.response.PageResponse;
import com.monitor.other.worksystem.dock.qq.DockerServerDeployService;
import com.monitor.other.worksystem.service.DockerProjectService;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.ArrayList;
... ... @@ -27,6 +33,8 @@ public class DockerProjectCtrl {
@Autowired
private DockerServerDeployService dockerServerDeployService;
public static final Logger logger = LoggerFactory.getLogger(DockerProjectCtrl.class);
/**
* 查询docker项目
... ... @@ -165,4 +173,67 @@ public class DockerProjectCtrl {
rtn.setData(status);
return rtn;
}
/**
* 获取docker项目列表
*/
@RequestMapping("/getDockerInfoList")
@ResponseBody
public BaseResponse<PageResponse<DockerProjectModel>> getDockerInfoList(@RequestBody DockerInfoReq req) {
PageResponse<DockerProjectModel> resp = dockerProjectService.queryDockerInfoList(req);
if (resp == null || CollectionUtils.isEmpty(resp.getRows())) {
return new BaseResponse<>();
}
PageResponse<DockerProjectModel> response = new PageResponse<>();
response.setCurrentPage(resp.getCurrentPage());
response.setRows(resp.getRows());
response.setPageSize(resp.getPageSize());
response.setTotal(resp.getTotal());
return new BaseResponse<>(response);
}
@RequestMapping("/addOrUpdateDockerInfo")
@ResponseBody
public BaseResponse<Integer> addOrUpdateDockerInfo(@RequestBody DockerProjectModel dockerInfo) {
try{
dockerProjectService.addOrUpdateDockerInfo(dockerInfo);
return new BaseResponse<>();
}catch (Exception e){
return new BaseResponse<>("系统错误,保存失败!");
}
}
@RequestMapping("/getDockerInfoById")
@ResponseBody
public BaseResponse<DockerProjectModel> getDockerInfoById(int id) {
try {
DockerProjectModel dockerInfo = dockerProjectService.selectById(id);
return new BaseResponse<>(dockerInfo);
}catch (Exception e){
logger.error("getDockerInfoById error,id is {}",id,e);
return new BaseResponse<>("系统异常,查询失败");
}
}
@RequestMapping("/delDockerInfoById")
@ResponseBody
public BaseResponse<Integer> delDockerInfoById(@RequestParam(value = "id", required = true) Integer id ) {
try{
logger.info("delDockerInfoById with param is {}", id);
dockerProjectService.delDockerInfoById(id);
return new BaseResponse<>();
}catch(Exception e){
logger.error("delDockerInfoById error,id is {}",id , e );
return new BaseResponse<>("系统错误,稍后再试!");
}
}
}
... ...
... ... @@ -3,8 +3,10 @@ package com.monitor.other.worksystem.service;
import com.model.DockerJenkinsRecord;
import com.model.DockerProjectModel;
import com.model.PendingJob;
import com.monitor.model.request.DockerInfoReq;
import com.monitor.model.request.DockerJenkinsReq;
import com.monitor.model.request.WorkSystemReq;
import com.monitor.model.response.BaseResponse;
import com.monitor.model.response.PageResponse;
import java.util.List;
... ... @@ -22,4 +24,11 @@ public interface DockerProjectService {
void jenkinsStatusUpdate(String ticketID,String jobID,String status);
DockerJenkinsRecord queryJenkinsById(String id);
PageResponse<DockerProjectModel> queryDockerInfoList(DockerInfoReq req);
void addOrUpdateDockerInfo(DockerProjectModel dockerInfo);
DockerProjectModel selectById(int id);
void delDockerInfoById(Integer id);
}
... ...
... ... @@ -3,7 +3,11 @@ package com.monitor.other.worksystem.service.impl;
import com.model.*;
import com.monitor.common.service.MailService;
import com.monitor.model.domain.Mail;
import com.monitor.model.domain.PageBean;
import com.monitor.model.request.DockerInfoReq;
import com.monitor.model.request.DockerJenkinsReq;
import com.monitor.model.response.BaseResponse;
import com.monitor.model.response.PageResponse;
import com.monitor.mysql.mapper.*;
import com.monitor.other.worksystem.contants.HandleType;
import com.monitor.other.worksystem.contants.HandlerRole;
... ... @@ -17,6 +21,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.*;
... ... @@ -90,4 +95,67 @@ public class DockerProjectServiceImpl implements DockerProjectService {
return record;
}
/***
* 列表
*/
@Override
public PageResponse<DockerProjectModel> queryDockerInfoList(DockerInfoReq req) {
try{
// 组装分页对象
PageBean page = PageBean.initPageInfo(req.getCurrentPage(), req.getPageSize(), req);
// 先查询符合条件的总数量
int total = dockerProjectMapper.selectCountByCodition(page);
// 数量为0 直接返回
if (total == 0) {
// 返回初始page对象
return null;
}
// 获取列表
List<DockerProjectModel> dockekInfos = dockerProjectMapper.selectDockerInfosByCodition(page);
if (CollectionUtils.isEmpty(dockekInfos)) {
return null;
}
PageResponse<DockerProjectModel> response = new PageResponse<>();
response.setCurrentPage(req.getCurrentPage());
response.setPageSize(req.getPageSize());
response.setTotal(total);
response.setRows(dockekInfos);
return response;
}catch (Exception e){
logger.error("queryDockerInfoList error, DockerInfoReq is{}", req ,e);
return null;
}
}
/**
* 新增 或者 修改 docker信息
* @param dockerInfo
*/
@Override
public void addOrUpdateDockerInfo(DockerProjectModel dockerInfo) {
if (dockerInfo.getId() > 0) {
dockerProjectMapper.updateById(dockerInfo);
} else {
dockerProjectMapper.insertInfo(dockerInfo);
}
}
@Override
public DockerProjectModel selectById(int id) {
return dockerProjectMapper.selectById(id);
}
@Override
public void delDockerInfoById(Integer id) {
dockerProjectMapper.deleteById(id);
}
}
... ...