mirror of
https://github.com/ctripcorp/zeus.git
synced 2024-09-22 00:26:05 +08:00
add auto fill service
This commit is contained in:
parent
80a5c1adeb
commit
6828d2e058
55
src/main/java/com/ctrip/zeus/service/model/AutoFiller.java
Normal file
55
src/main/java/com/ctrip/zeus/service/model/AutoFiller.java
Normal file
|
@ -0,0 +1,55 @@
|
|||
package com.ctrip.zeus.service.model;
|
||||
|
||||
import com.ctrip.zeus.model.entity.*;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* Created by zhoumy on 2015/10/29.
|
||||
*/
|
||||
@Service("autoFiller")
|
||||
public class AutoFiller {
|
||||
@Resource
|
||||
private VirtualServerRepository virtualServerRepository;
|
||||
|
||||
public void autofill(Group group) throws Exception {
|
||||
for (GroupVirtualServer gvs : group.getGroupVirtualServers()) {
|
||||
VirtualServer tvs = gvs.getVirtualServer();
|
||||
VirtualServer vs = virtualServerRepository.getById(gvs.getVirtualServer().getId());
|
||||
tvs.setName(vs.getName()).setSlbId(vs.getSlbId()).setPort(vs.getPort()).setSsl(vs.getSsl());
|
||||
tvs.getDomains().clear();
|
||||
for (Domain domain : vs.getDomains()) {
|
||||
tvs.getDomains().add(domain);
|
||||
}
|
||||
gvs.setPriority(gvs.getPriority() == null ? 1000 : gvs.getPriority());
|
||||
}
|
||||
HealthCheck hc = group.getHealthCheck();
|
||||
if (hc != null) {
|
||||
hc.setIntervals(hc.getIntervals() == null ? 5000 : hc.getIntervals())
|
||||
.setFails(hc.getFails() == null ? 5 : hc.getFails())
|
||||
.setPasses(hc.getPasses() == null ? 1 : hc.getPasses());
|
||||
}
|
||||
LoadBalancingMethod lbm = group.getLoadBalancingMethod();
|
||||
if (lbm == null)
|
||||
lbm = new LoadBalancingMethod();
|
||||
lbm.setType("roundrobin").setValue(lbm.getValue() == null ? "Default" : lbm.getValue());
|
||||
for (GroupServer groupServer : group.getGroupServers()) {
|
||||
groupServer.setWeight(groupServer.getWeight() == null ? 5 : groupServer.getWeight())
|
||||
.setFailTimeout(groupServer.getFailTimeout() == null ? 30 : groupServer.getFailTimeout())
|
||||
.setFailTimeout(groupServer.getMaxFails() == null ? 0 : groupServer.getMaxFails());
|
||||
}
|
||||
}
|
||||
|
||||
public void autofill(Slb slb) throws Exception {
|
||||
slb.setNginxBin("/opt/app/nginx/sbin").setNginxConf("/opt/app/nginx/conf").setNginxWorkerProcesses(9)
|
||||
.setStatus(slb.getStatus() == null ? "Default" : slb.getStatus());
|
||||
for (VirtualServer virtualServer : slb.getVirtualServers()) {
|
||||
autofill(virtualServer);
|
||||
}
|
||||
}
|
||||
|
||||
public void autofill(VirtualServer virtualServer) {
|
||||
virtualServer.setSsl(virtualServer.getSsl() == null ? false : virtualServer.getSsl());
|
||||
}
|
||||
}
|
|
@ -23,8 +23,6 @@ public interface GroupRepository extends Repository {
|
|||
|
||||
int delete(Long groupId) throws Exception;
|
||||
|
||||
void autofill(Group group) throws Exception;
|
||||
|
||||
@Deprecated
|
||||
List<Group> listGroupsByGroupServer(String groupServerIp) throws Exception;
|
||||
|
||||
|
|
|
@ -23,8 +23,6 @@ public interface SlbRepository extends Repository {
|
|||
|
||||
Slb updateVersion(Long slbId) throws Exception;
|
||||
|
||||
void autofill(Slb slb) throws Exception;
|
||||
|
||||
@Deprecated
|
||||
List<Long> portSlbRel() throws Exception;
|
||||
|
||||
|
|
|
@ -19,8 +19,6 @@ public interface VirtualServerRepository {
|
|||
|
||||
void deleteVirtualServer(Long virtualServerId) throws Exception;
|
||||
|
||||
void autofill(VirtualServer virtualServer);
|
||||
|
||||
@Deprecated
|
||||
List<Long> portVirtualServerRel() throws Exception;
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ public class GroupRepositoryImpl implements GroupRepository {
|
|||
@Resource
|
||||
private GroupCriteriaQuery groupCriteriaQuery;
|
||||
@Resource
|
||||
private VirtualServerRepository virtualServerRepository;
|
||||
private AutoFiller autoFiller;
|
||||
@Resource
|
||||
private ArchiveService archiveService;
|
||||
@Resource
|
||||
|
@ -55,7 +55,7 @@ public class GroupRepositoryImpl implements GroupRepository {
|
|||
@Override
|
||||
public Group add(Group group) throws Exception {
|
||||
groupModelValidator.validate(group);
|
||||
autofill(group);
|
||||
autoFiller.autofill(group);
|
||||
groupEntityManager.add(group);
|
||||
return group;
|
||||
}
|
||||
|
@ -65,7 +65,7 @@ public class GroupRepositoryImpl implements GroupRepository {
|
|||
if (!groupModelValidator.exists(group.getId()))
|
||||
throw new ValidationException("Group with id " + group.getId() + "does not exist.");
|
||||
groupModelValidator.validate(group);
|
||||
autofill(group);
|
||||
autoFiller.autofill(group);
|
||||
groupEntityManager.update(group);
|
||||
return group;
|
||||
}
|
||||
|
@ -76,7 +76,7 @@ public class GroupRepositoryImpl implements GroupRepository {
|
|||
List<Group> result = new ArrayList<>();
|
||||
for (Long groupId : groupIds) {
|
||||
Group g = getById(groupId);
|
||||
autofill(g);
|
||||
autoFiller.autofill(g);
|
||||
groupEntityManager.update(g);
|
||||
result.add(g);
|
||||
}
|
||||
|
@ -89,34 +89,6 @@ public class GroupRepositoryImpl implements GroupRepository {
|
|||
return groupEntityManager.delete(groupId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void autofill(Group group) throws Exception {
|
||||
for (GroupVirtualServer gvs : group.getGroupVirtualServers()) {
|
||||
VirtualServer tvs = gvs.getVirtualServer();
|
||||
VirtualServer vs = virtualServerRepository.getById(gvs.getVirtualServer().getId());
|
||||
tvs.setName(vs.getName()).setSlbId(vs.getSlbId()).setPort(vs.getPort()).setSsl(vs.getSsl());
|
||||
tvs.getDomains().clear();
|
||||
for (Domain domain : vs.getDomains()) {
|
||||
tvs.getDomains().add(domain);
|
||||
}
|
||||
}
|
||||
HealthCheck hc = group.getHealthCheck();
|
||||
if (hc != null) {
|
||||
hc.setIntervals(hc.getIntervals() == null ? 5000 : hc.getIntervals())
|
||||
.setFails(hc.getFails() == null ? 5 : hc.getFails())
|
||||
.setPasses(hc.getPasses() == null ? 1 : hc.getPasses());
|
||||
}
|
||||
LoadBalancingMethod lbm = group.getLoadBalancingMethod();
|
||||
if (lbm == null)
|
||||
lbm = new LoadBalancingMethod();
|
||||
lbm.setType("roundrobin").setValue(lbm.getValue() == null ? "Default" : lbm.getValue());
|
||||
for (GroupServer groupServer : group.getGroupServers()) {
|
||||
groupServer.setWeight(groupServer.getWeight() == null ? 5 : groupServer.getWeight())
|
||||
.setFailTimeout(groupServer.getFailTimeout() == null ? 30 : groupServer.getFailTimeout())
|
||||
.setFailTimeout(groupServer.getMaxFails() == null ? 0 : groupServer.getMaxFails());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Group> listGroupsByGroupServer(String groupServerIp) throws Exception {
|
||||
Set<Long> groupIds = groupCriteriaQuery.queryByGroupServerIp(groupServerIp);
|
||||
|
|
|
@ -5,10 +5,7 @@ import com.ctrip.zeus.exceptions.ValidationException;
|
|||
import com.ctrip.zeus.model.entity.Slb;
|
||||
import com.ctrip.zeus.model.entity.SlbServer;
|
||||
import com.ctrip.zeus.model.entity.VirtualServer;
|
||||
import com.ctrip.zeus.service.model.ArchiveService;
|
||||
import com.ctrip.zeus.service.model.GroupMemberRepository;
|
||||
import com.ctrip.zeus.service.model.VirtualServerRepository;
|
||||
import com.ctrip.zeus.service.model.SlbRepository;
|
||||
import com.ctrip.zeus.service.model.*;
|
||||
import com.ctrip.zeus.service.model.handler.SlbQuery;
|
||||
import com.ctrip.zeus.service.model.handler.SlbSync;
|
||||
import com.ctrip.zeus.service.model.handler.SlbValidator;
|
||||
|
@ -46,6 +43,8 @@ public class SlbRepositoryImpl implements SlbRepository {
|
|||
private SlbValidator slbModelValidator;
|
||||
@Resource
|
||||
private VirtualServerValidator virtualServerModelValidator;
|
||||
@Resource
|
||||
private AutoFiller autoFiller;
|
||||
|
||||
@Override
|
||||
public List<Slb> list() throws Exception {
|
||||
|
@ -100,7 +99,7 @@ public class SlbRepositoryImpl implements SlbRepository {
|
|||
public Slb add(Slb slb) throws Exception {
|
||||
slbModelValidator.validate(slb);
|
||||
virtualServerModelValidator.validateVirtualServers(slb.getVirtualServers());
|
||||
autofill(slb);
|
||||
autoFiller.autofill(slb);
|
||||
slbEntityManager.add(slb);
|
||||
|
||||
for (SlbServer slbServer : slb.getSlbServers()) {
|
||||
|
@ -116,7 +115,7 @@ public class SlbRepositoryImpl implements SlbRepository {
|
|||
@Override
|
||||
public Slb update(Slb slb) throws Exception {
|
||||
slbModelValidator.validate(slb);
|
||||
autofill(slb);
|
||||
autoFiller.autofill(slb);
|
||||
freshVirtualServers(slb);
|
||||
slbEntityManager.update(slb);
|
||||
|
||||
|
@ -143,15 +142,6 @@ public class SlbRepositoryImpl implements SlbRepository {
|
|||
return slb;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void autofill(Slb slb) throws Exception {
|
||||
slb.setNginxBin("/opt/app/nginx/sbin").setNginxConf("/opt/app/nginx/conf").setNginxWorkerProcesses(9)
|
||||
.setStatus(slb.getStatus() == null ? "Default" : slb.getStatus());
|
||||
for (VirtualServer virtualServer : slb.getVirtualServers()) {
|
||||
virtualServerRepository.autofill(virtualServer);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Long> portSlbRel() throws Exception {
|
||||
Set<Long> slbIds = slbCriteriaQuery.queryAll();
|
||||
|
@ -167,7 +157,7 @@ public class SlbRepositoryImpl implements SlbRepository {
|
|||
|
||||
private Slb fresh(Long slbId) throws Exception {
|
||||
Slb slb = getById(slbId);
|
||||
autofill(slb);
|
||||
autoFiller.autofill(slb);
|
||||
freshVirtualServers(slb);
|
||||
return slb;
|
||||
}
|
||||
|
|
|
@ -93,11 +93,6 @@ public class VirtualServerRepositoryImpl implements VirtualServerRepository {
|
|||
virtualServerEntityManager.deleteVirtualServer(virtualServerId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void autofill(VirtualServer virtualServer) {
|
||||
virtualServer.setSsl(virtualServer.getSsl() == null ? false : virtualServer.getSsl());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Long> portVirtualServerRel() throws Exception {
|
||||
List<SlbVirtualServerDo> l = slbVirtualServerDao.findAll(SlbVirtualServerEntity.READSET_FULL);
|
||||
|
|
Loading…
Reference in a new issue