mirror of
https://github.com/ctripcorp/zeus.git
synced 2024-09-20 15:46:01 +08:00
add domain fast modification
This commit is contained in:
parent
6fc8400602
commit
6a30599160
|
@ -32,6 +32,9 @@ import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.ws.rs.*;
|
import javax.ws.rs.*;
|
||||||
import javax.ws.rs.core.*;
|
import javax.ws.rs.core.*;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by zhoumy on 2015/8/5.
|
* Created by zhoumy on 2015/8/5.
|
||||||
|
@ -183,6 +186,46 @@ public class VirtualServerResource {
|
||||||
return responseHandler.handle(virtualServer, hh.getMediaType());
|
return responseHandler.handle(virtualServer, hh.getMediaType());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GET
|
||||||
|
@Path("/vs/addDomain")
|
||||||
|
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||||
|
@Authorize(name = "updateVs")
|
||||||
|
public Response addDomain(@Context HttpHeaders hh,
|
||||||
|
@Context HttpServletRequest request,
|
||||||
|
@QueryParam("vsId") Long vsId,
|
||||||
|
@TrimmedQueryParam("domain") String domain) throws Exception {
|
||||||
|
VirtualServer vs = virtualServerRepository.getById(vsId);
|
||||||
|
for (String d : domain.split(",")) {
|
||||||
|
vs.addDomain(new Domain().setName(d));
|
||||||
|
}
|
||||||
|
vs = virtualServerRepository.update(vs);
|
||||||
|
return responseHandler.handle(vs, hh.getMediaType());
|
||||||
|
}
|
||||||
|
|
||||||
|
@GET
|
||||||
|
@Path("vs/removeDomain")
|
||||||
|
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||||
|
@Authorize(name = "updateVs")
|
||||||
|
public Response removeDomain(@Context HttpHeaders hh,
|
||||||
|
@Context HttpServletRequest request,
|
||||||
|
@QueryParam("vsId") Long vsId,
|
||||||
|
@TrimmedQueryParam("domain") String domain) throws Exception {
|
||||||
|
VirtualServer vs = virtualServerRepository.getById(vsId);
|
||||||
|
Set<String> domains = new HashSet<>();
|
||||||
|
for (String d : domain.split(",")) {
|
||||||
|
domains.add(d);
|
||||||
|
}
|
||||||
|
Iterator<Domain> iter = vs.getDomains().iterator();
|
||||||
|
while (iter.hasNext()) {
|
||||||
|
Domain d = iter.next();
|
||||||
|
if (domains.contains(d.getName())) {
|
||||||
|
iter.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
vs = virtualServerRepository.update(vs);
|
||||||
|
return responseHandler.handle(vs, hh.getMediaType());
|
||||||
|
}
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Path("/vs/delete")
|
@Path("/vs/delete")
|
||||||
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||||
|
|
|
@ -111,9 +111,15 @@ public class VirtualServerRepositoryImpl implements VirtualServerRepository {
|
||||||
throw new ValidationException("Slb with id " + virtualServer.getSlbId() + "does not exits.");
|
throw new ValidationException("Slb with id " + virtualServer.getSlbId() + "does not exits.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Set<String> domains = new HashSet<>();
|
||||||
for (Domain domain : virtualServer.getDomains()) {
|
for (Domain domain : virtualServer.getDomains()) {
|
||||||
domain.setName(domain.getName().toLowerCase());
|
domains.add(domain.getName().toLowerCase());
|
||||||
}
|
}
|
||||||
|
virtualServer.getDomains().clear();
|
||||||
|
for (String d : domains) {
|
||||||
|
virtualServer.getDomains().add(new Domain().setName(d));
|
||||||
|
}
|
||||||
|
|
||||||
Set<Long> retained = new HashSet<>();
|
Set<Long> retained = new HashSet<>();
|
||||||
for (IdVersion idVersion : virtualServerCriteriaQuery.queryBySlbId(virtualServer.getSlbId())) {
|
for (IdVersion idVersion : virtualServerCriteriaQuery.queryBySlbId(virtualServer.getSlbId())) {
|
||||||
retained.add(idVersion.getId());
|
retained.add(idVersion.getId());
|
||||||
|
|
Loading…
Reference in a new issue