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.ws.rs.*;
|
||||
import javax.ws.rs.core.*;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* Created by zhoumy on 2015/8/5.
|
||||
|
@ -183,6 +186,46 @@ public class VirtualServerResource {
|
|||
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
|
||||
@Path("/vs/delete")
|
||||
@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.");
|
||||
}
|
||||
|
||||
Set<String> domains = new HashSet<>();
|
||||
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<>();
|
||||
for (IdVersion idVersion : virtualServerCriteriaQuery.queryBySlbId(virtualServer.getSlbId())) {
|
||||
retained.add(idVersion.getId());
|
||||
|
|
Loading…
Reference in a new issue