InternalDnsCtrl.java
6.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
package com.ui.ctrl;
import com.alibaba.fastjson.JSON;
import com.ui.common.TagTypeEnum;
import com.ui.contants.HttpUriContants;
import com.ui.http.HttpRestClient;
import com.ui.model.BaseResponse;
import com.ui.model.domain.InternalDomain;
import com.ui.model.domain.InternalDomainHistory;
import com.ui.model.req.TagReq;
import com.ui.model.req.User;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.List;
/**
* Created by zhengyouwei on 2016/12/16.
*/
@Controller
@RequestMapping("/internalDns")
public class InternalDnsCtrl {
Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private HttpRestClient httpRestClient;
@RequestMapping("/toInternalDns")
public ModelAndView toInternalDns(Model model) {
ModelAndView mv = new ModelAndView("project/internal_domain");
TagReq req = new TagReq();
BaseResponse response=httpRestClient.defaultPost(HttpUriContants.HOST_ALL_GROUPS, req, BaseResponse.class);
mv.addObject("tags",response.getData());//获取标签列表
mv.addObject("tagTypeMapJson", JSON.toJSONString(TagTypeEnum.getAllTypeMap()));//获取标签map 层级结构的
return mv;
}
@RequestMapping("save")
@ResponseBody
public BaseResponse insert(InternalDomain internalDomain,HttpSession httpSession){
addUser(internalDomain,httpSession);
if (StringUtils.equals(internalDomain.getType(),"cname") && !StringUtils.endsWith(internalDomain.getValue(),".")){
internalDomain.setValue(internalDomain.getValue().trim() + ".");
}
if (internalDomain.getId() == 0){
return httpRestClient.defaultPost(HttpUriContants.INTERNAL_DOMAIN_INSERT, internalDomain, BaseResponse.class);
}else {
return httpRestClient.defaultPost(HttpUriContants.INTERNAL_DOMAIN_UPDATE, internalDomain, BaseResponse.class);
}
}
/**
* 搜索dns配置:
* 即再name前面添加冒号,则不生效
* @param ids
* @param httpSession
* @return
*/
@RequestMapping("/updateNameForSearch")
@ResponseBody
public BaseResponse updateNameForSearch(String ids,HttpSession httpSession){
for(String id:ids.split(",")){
if(StringUtils.isNotBlank(id)){
InternalDomain paramInternalDomain=new InternalDomain();
paramInternalDomain.setId(Integer.parseInt(id));
BaseResponse<InternalDomain> queryResponse = httpRestClient.exchangeForpost(HttpUriContants.INTERNAL_DOMAIN_SELECTBYID ,
new ParameterizedTypeReference<BaseResponse<InternalDomain>>() {}, paramInternalDomain);
InternalDomain updateInternalDomain=queryResponse.getData();
if(updateInternalDomain!=null){
if(updateInternalDomain.getName().startsWith(";")){
updateInternalDomain.setName(updateInternalDomain.getName().substring(1));
}else{
updateInternalDomain.setName(";"+updateInternalDomain.getName());
}
}
addUser(updateInternalDomain,httpSession);
httpRestClient.defaultPost(HttpUriContants.INTERNAL_DOMAIN_UPDATE, updateInternalDomain, BaseResponse.class);
}
}
return new BaseResponse();
}
@RequestMapping("selectAll")
@ResponseBody
public BaseResponse selectAll(InternalDomain internalDomain,HttpSession httpSession){
if (StringUtils.isBlank(internalDomain.getDomain()) || StringUtils.isBlank(internalDomain.getEnvironment()) ){
return null;
}
addUser(internalDomain,httpSession);
return httpRestClient.defaultPost(HttpUriContants.INTERNAL_DOMAIN_SELECTALL, internalDomain, BaseResponse.class);
}
@RequestMapping("deleteById")
@ResponseBody
public BaseResponse deleteById(InternalDomain internalDomain,HttpSession httpSession){
addUser(internalDomain,httpSession);
return httpRestClient.defaultPost(HttpUriContants.INTERNAL_DOMAIN_DELBYID, internalDomain, BaseResponse.class);
}
@RequestMapping("selectById")
@ResponseBody
public BaseResponse selectById(InternalDomain internalDomain,HttpSession httpSession){
addUser(internalDomain, httpSession);
return httpRestClient.defaultPost(HttpUriContants.INTERNAL_DOMAIN_SELECTBYID, internalDomain, BaseResponse.class);
}
@RequestMapping("refresh")
@ResponseBody
public BaseResponse refresh(InternalDomain internalDomain,HttpSession httpSession){
addUser(internalDomain,httpSession);
return httpRestClient.defaultPost(HttpUriContants.INTERNAL_DOMAIN_REFRESH, internalDomain, BaseResponse.class);
}
public void addUser(InternalDomain internalDomain,HttpSession httpSession){
User user = (User) httpSession.getAttribute("user");
internalDomain.setUser(user.getName());
}
@RequestMapping("/toHistory")
public ModelAndView toHistory(Model model) {
List<String> environments = new ArrayList<>();
environments.add("aws");
environments.add("qcloud");
environments.add("aws_media");
model.addAttribute("environments", environments);
List<String> domains = new ArrayList<>();
domains.add("yohoops.org.");
domains.add("yohobuy.com.");
model.addAttribute("domains", domains);
return new ModelAndView("project/internal_dns_history");
}
@RequestMapping("/getHistory")
@ResponseBody
public BaseResponse getHistory(InternalDomainHistory req) throws Exception {
BaseResponse response = httpRestClient.defaultPost(HttpUriContants.INTERNAL_DOMAIN_HISTORY, req, BaseResponse.class);
return response;
}
}