package org.openstack.atlas.api.mgmt.resources; import org.openstack.atlas.docs.loadbalancers.api.management.v1.*; import org.openstack.atlas.docs.loadbalancers.api.v1.AllowedDomain; import org.openstack.atlas.api.mgmt.resources.providers.ManagementDependencyProvider; import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import org.openstack.atlas.api.helpers.ResponseFactory; import org.openstack.atlas.util.ca.zeus.ZeusCrtFile; import org.openstack.atlas.util.ca.zeus.ZeusUtils; // TODO: Undocumented Resource public class BounceResource extends ManagementDependencyProvider { private static final ZeusUtils zeusUtils; static { zeusUtils = new ZeusUtils(); } @POST @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) @Path("ratelimit") public Response echoRateLimit(RateLimit lb) { return Response.status(200).entity(lb).build(); } @POST @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) @Path("host") public Response echoHost(Host host) { return Response.status(200).entity(host).build(); } @POST @Path("virtualipblocks") @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) public Response echoVirtualIpBlocks(VirtualIpBlocks virtualIpBlocks) { return Response.status(200).entity(virtualIpBlocks).build(); } @POST @Path("subnetmappings") @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) public Response echoSubnetMapptings(Hostssubnet hostssubnet) { Response resp = Response.status(200).entity(hostssubnet).build(); return resp; } @POST @Path("byidorname") @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) public Response echoByIdOrName(ByIdOrName byIdOrName) { Response resp = Response.status(200).entity(byIdOrName).build(); return resp; } @POST @Path("virtualip") @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) public Response echoVirtualIp(VirtualIp virtualIp) { Response resp = Response.status(200).entity(virtualIp).build(); return resp; } @POST @Path("alloweddomain") @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) public Response echoAllowedDomain(AllowedDomain ad) { Response resp = Response.status(200).entity(ad).build(); return resp; } @POST @Path("loadbalancers") @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) public Response echoLoadBalancer(LoadBalancers lbs) { Response resp = Response.status(200).entity(lbs).build(); return resp; } @POST @Path("ssltermination") public Response echoSslTermination(org.openstack.atlas.docs.loadbalancers.api.v1.SslTermination sslTerm) { String key = sslTerm.getPrivatekey(); String crt = sslTerm.getCertificate(); String chain = sslTerm.getIntermediateCertificate(); Response resp; ZeusCrtFile zcf = zeusUtils.buildZeusCrtFileLbassValidation(key, crt, chain); if (zcf.hasFatalErrors()) { resp = getValidationFaultResponse(zcf.getFatalErrorList()); } else { resp = Response.status(200).entity(sslTerm).build(); } return resp; } }