add domain fast modification

This commit is contained in:
Mengyi Zhou 2016-08-19 14:03:02 +08:00
parent 6fc8400602
commit 6a30599160
2 changed files with 50 additions and 1 deletions

View file

@ -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})

View file

@ -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());