X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=northbound-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fneutron%2Fnorthbound%2Fapi%2FNeutronLoadBalancerListenerNorthbound.java;h=34288681fcfdf39ad6316b68ed5b4015cdf44e3f;hb=refs%2Fchanges%2F32%2F46432%2F4;hp=0b55d394650446d7b6b73551a819e76f143cc595;hpb=62dd300a738ff93516c7fd0e630b3cc685d5b809;p=neutron.git diff --git a/northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronLoadBalancerListenerNorthbound.java b/northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronLoadBalancerListenerNorthbound.java index 0b55d3946..34288681f 100644 --- a/northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronLoadBalancerListenerNorthbound.java +++ b/northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronLoadBalancerListenerNorthbound.java @@ -9,11 +9,9 @@ package org.opendaylight.neutron.northbound.api; import java.net.HttpURLConnection; - import java.util.ArrayList; import java.util.Iterator; import java.util.List; - import javax.ws.rs.Consumes; import javax.ws.rs.DELETE; import javax.ws.rs.GET; @@ -25,12 +23,9 @@ import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; - import org.codehaus.enunciate.jaxrs.ResponseCode; import org.codehaus.enunciate.jaxrs.StatusCodes; -import org.opendaylight.neutron.spi.INeutronLoadBalancerListenerAware; import org.opendaylight.neutron.spi.INeutronLoadBalancerListenerCRUD; -import org.opendaylight.neutron.spi.NeutronCRUDInterfaces; import org.opendaylight.neutron.spi.NeutronLoadBalancerListener; /** @@ -51,28 +46,21 @@ import org.opendaylight.neutron.spi.NeutronLoadBalancerListener; * */ @Path("/lbaas/listeners") -public class NeutronLoadBalancerListenerNorthbound extends AbstractNeutronNorthbound { +public final class NeutronLoadBalancerListenerNorthbound extends AbstractNeutronNorthbound { private static final String RESOURCE_NAME = "LoadBalancerListener"; - private NeutronLoadBalancerListener extractFields(NeutronLoadBalancerListener o, List fields) { - return o.extractFields(fields); - } - - private NeutronCRUDInterfaces getNeutronInterfaces() { - NeutronCRUDInterfaces answer = new NeutronCRUDInterfaces().fetchINeutronLoadBalancerListenerCRUD(this); - if (answer.getLoadBalancerListenerInterface() == null) { - throw new ServiceUnavailableException(serviceUnavailable(RESOURCE_NAME)); - } - return answer; + @Override + protected String getResourceName() { + return RESOURCE_NAME; } /** * Returns a list of all LoadBalancerListener */ @GET @Produces({ MediaType.APPLICATION_JSON }) - @StatusCodes({ - @ResponseCode(code = HttpURLConnection.HTTP_OK, condition = "Operation successful"), + @StatusCodes({ @ResponseCode(code = HttpURLConnection.HTTP_OK, condition = "Operation successful"), @ResponseCode(code = HttpURLConnection.HTTP_UNAUTHORIZED, condition = "Unauthorized"), @ResponseCode(code = HttpURLConnection.HTTP_NOT_IMPLEMENTED, condition = "Not Implemented"), @ResponseCode(code = HttpURLConnection.HTTP_UNAVAILABLE, condition = "No providers available") }) @@ -85,47 +73,42 @@ public class NeutronLoadBalancerListenerNorthbound extends AbstractNeutronNorthb @QueryParam("default_pool_id") String queryLoadBalancerListenerDefaultPoolID, @QueryParam("tenant_id") String queryLoadBalancerListenerTenantID, @QueryParam("name") String queryLoadBalancerListenerName, - @QueryParam("description") String queryLoadBalancerListenerDescription, @QueryParam("protocol") String queryLoadBalancerListenerProtocol, @QueryParam("protocol_port") String queryLoadBalancerListenerProtocolPort, - @QueryParam("admin_state_up") String queryLoadBalancerListenerAdminIsUp, + @QueryParam("admin_state_up") Boolean queryLoadBalancerListenerAdminIsUp, // pagination @QueryParam("limit") String limit, @QueryParam("marker") String marker, @QueryParam("page_reverse") String pageReverse - // sorting not supported + // sorting not supported ) { - INeutronLoadBalancerListenerCRUD loadBalancerListenerInterface = getNeutronInterfaces().getLoadBalancerListenerInterface(); - List allLoadBalancerListeners = loadBalancerListenerInterface.getAllNeutronLoadBalancerListeners(); - List ans = new ArrayList(); + INeutronLoadBalancerListenerCRUD loadBalancerListenerInterface = getNeutronCRUD(); + List allLoadBalancerListeners = loadBalancerListenerInterface.getAll(); + List ans = new ArrayList<>(); Iterator i = allLoadBalancerListeners.iterator(); while (i.hasNext()) { NeutronLoadBalancerListener nsg = i.next(); - if ((queryLoadBalancerListenerID == null || - queryLoadBalancerListenerID.equals(nsg.getID())) && - (queryLoadBalancerListenerDefaultPoolID == null || - queryLoadBalancerListenerDefaultPoolID.equals(nsg.getNeutronLoadBalancerListenerDefaultPoolID())) && - (queryLoadBalancerListenerTenantID == null || - queryLoadBalancerListenerTenantID.equals(nsg.getTenantID())) && - (queryLoadBalancerListenerName == null || - queryLoadBalancerListenerName.equals(nsg.getLoadBalancerListenerName())) && - (queryLoadBalancerListenerDescription == null || - queryLoadBalancerListenerDescription.equals(nsg.getLoadBalancerListenerDescription())) && - (queryLoadBalancerListenerProtocol == null || - queryLoadBalancerListenerProtocol.equals(nsg.getNeutronLoadBalancerListenerProtocol())) && - (queryLoadBalancerListenerProtocolPort == null || - queryLoadBalancerListenerProtocolPort.equals(nsg.getNeutronLoadBalancerListenerProtocolPort())) && - (queryLoadBalancerListenerAdminIsUp == null || - queryLoadBalancerListenerAdminIsUp.equals(nsg.getLoadBalancerListenerAdminStateIsUp()))) { + if ((queryLoadBalancerListenerID == null || queryLoadBalancerListenerID.equals(nsg.getID())) + && (queryLoadBalancerListenerDefaultPoolID == null || queryLoadBalancerListenerDefaultPoolID + .equals(nsg.getNeutronLoadBalancerListenerDefaultPoolID())) + && (queryLoadBalancerListenerTenantID == null + || queryLoadBalancerListenerTenantID.equals(nsg.getTenantID())) + && (queryLoadBalancerListenerName == null + || queryLoadBalancerListenerName.equals(nsg.getName())) + && (queryLoadBalancerListenerProtocol == null + || queryLoadBalancerListenerProtocol.equals(nsg.getNeutronLoadBalancerListenerProtocol())) + && (queryLoadBalancerListenerProtocolPort == null || queryLoadBalancerListenerProtocolPort + .equals(nsg.getNeutronLoadBalancerListenerProtocolPort())) + && (queryLoadBalancerListenerAdminIsUp == null || queryLoadBalancerListenerAdminIsUp + .equals(nsg.getLoadBalancerListenerAdminStateIsUp()))) { if (fields.size() > 0) { - ans.add(extractFields(nsg,fields)); + ans.add(nsg.extractFields(fields)); } else { ans.add(nsg); } } } - return Response.status(HttpURLConnection.HTTP_OK).entity( - new NeutronLoadBalancerListenerRequest(ans)).build(); + return Response.status(HttpURLConnection.HTTP_OK).entity(new NeutronLoadBalancerListenerRequest(ans)).build(); } /** @@ -134,8 +117,7 @@ public class NeutronLoadBalancerListenerNorthbound extends AbstractNeutronNorthb @Path("{loadBalancerListenerID}") @GET @Produces({ MediaType.APPLICATION_JSON }) - @StatusCodes({ - @ResponseCode(code = HttpURLConnection.HTTP_OK, condition = "Operation successful"), + @StatusCodes({ @ResponseCode(code = HttpURLConnection.HTTP_OK, condition = "Operation successful"), @ResponseCode(code = HttpURLConnection.HTTP_UNAUTHORIZED, condition = "Unauthorized"), @ResponseCode(code = HttpURLConnection.HTTP_NOT_FOUND, condition = "Not Found"), @ResponseCode(code = HttpURLConnection.HTTP_NOT_IMPLEMENTED, condition = "Not Implemented"), @@ -143,17 +125,7 @@ public class NeutronLoadBalancerListenerNorthbound extends AbstractNeutronNorthb public Response showLoadBalancerListener(@PathParam("loadBalancerListenerID") String loadBalancerListenerID, // return fields @QueryParam("fields") List fields) { - INeutronLoadBalancerListenerCRUD loadBalancerListenerInterface = getNeutronInterfaces().getLoadBalancerListenerInterface(); - if (!loadBalancerListenerInterface.neutronLoadBalancerListenerExists(loadBalancerListenerID)) { - throw new ResourceNotFoundException(uuidNoExist(RESOURCE_NAME)); - } - if (fields.size() > 0) { - NeutronLoadBalancerListener ans = loadBalancerListenerInterface.getNeutronLoadBalancerListener(loadBalancerListenerID); - return Response.status(HttpURLConnection.HTTP_OK).entity( - new NeutronLoadBalancerListenerRequest(extractFields(ans, fields))).build(); - } else { - return Response.status(HttpURLConnection.HTTP_OK).entity(new NeutronLoadBalancerListenerRequest(loadBalancerListenerInterface.getNeutronLoadBalancerListener(loadBalancerListenerID))).build(); - } + return show(loadBalancerListenerID, fields); } /** @@ -162,70 +134,10 @@ public class NeutronLoadBalancerListenerNorthbound extends AbstractNeutronNorthb @POST @Produces({ MediaType.APPLICATION_JSON }) @Consumes({ MediaType.APPLICATION_JSON }) - @StatusCodes({ - @ResponseCode(code = HttpURLConnection.HTTP_CREATED, condition = "Created"), + @StatusCodes({ @ResponseCode(code = HttpURLConnection.HTTP_CREATED, condition = "Created"), @ResponseCode(code = HttpURLConnection.HTTP_UNAVAILABLE, condition = "No providers available") }) public Response createLoadBalancerListeners(final NeutronLoadBalancerListenerRequest input) { - INeutronLoadBalancerListenerCRUD loadBalancerListenerInterface = getNeutronInterfaces().getLoadBalancerListenerInterface(); - if (input.isSingleton()) { - NeutronLoadBalancerListener singleton = input.getSingleton(); - - Object[] instances = NeutronUtil.getInstances(INeutronLoadBalancerListenerAware.class, this); - if (instances != null) { - if (instances.length > 0) { - for (Object instance : instances) { - INeutronLoadBalancerListenerAware service = (INeutronLoadBalancerListenerAware) instance; - int status = service.canCreateNeutronLoadBalancerListener(singleton); - if (status < HTTP_OK_BOTTOM || status > HTTP_OK_TOP) { - return Response.status(status).build(); - } - } - } else { - throw new ServiceUnavailableException(NO_PROVIDERS); - } - } else { - throw new ServiceUnavailableException(NO_PROVIDER_LIST); - } - loadBalancerListenerInterface.addNeutronLoadBalancerListener(singleton); - if (instances != null) { - for (Object instance : instances) { - INeutronLoadBalancerListenerAware service = (INeutronLoadBalancerListenerAware) instance; - service.neutronLoadBalancerListenerCreated(singleton); - } - } - } else { - Object[] instances = NeutronUtil.getInstances(INeutronLoadBalancerListenerAware.class, this); - for (NeutronLoadBalancerListener test : input.getBulk()) { - if (instances != null) { - if (instances.length > 0) { - for (Object instance : instances) { - INeutronLoadBalancerListenerAware service = (INeutronLoadBalancerListenerAware) instance; - int status = service.canCreateNeutronLoadBalancerListener(test); - if (status < HTTP_OK_BOTTOM || status > HTTP_OK_TOP) { - return Response.status(status).build(); - } - } - } else { - throw new ServiceUnavailableException(NO_PROVIDERS); - } - } else { - throw new ServiceUnavailableException(NO_PROVIDER_LIST); - } - } - /* - * now, each element of the bulk request can be added to the cache - */ - for (NeutronLoadBalancerListener test : input.getBulk()) { - loadBalancerListenerInterface.addNeutronLoadBalancerListener(test); - if (instances != null) { - for (Object instance : instances) { - INeutronLoadBalancerListenerAware service = (INeutronLoadBalancerListenerAware) instance; - service.neutronLoadBalancerListenerCreated(test); - } - } - } - } - return Response.status(HttpURLConnection.HTTP_CREATED).entity(input).build(); + return create(input); } /** @@ -235,45 +147,12 @@ public class NeutronLoadBalancerListenerNorthbound extends AbstractNeutronNorthb @PUT @Produces({ MediaType.APPLICATION_JSON }) @Consumes({ MediaType.APPLICATION_JSON }) - @StatusCodes({ - @ResponseCode(code = HttpURLConnection.HTTP_OK, condition = "Operation successful"), + @StatusCodes({ @ResponseCode(code = HttpURLConnection.HTTP_OK, condition = "Operation successful"), + @ResponseCode(code = HttpURLConnection.HTTP_NOT_FOUND, condition = "Not Found"), @ResponseCode(code = HttpURLConnection.HTTP_UNAVAILABLE, condition = "No providers available") }) - public Response updateLoadBalancerListener( - @PathParam("loadBalancerListenerID") String loadBalancerListenerID, final NeutronLoadBalancerListenerRequest input) { - INeutronLoadBalancerListenerCRUD loadBalancerListenerInterface = getNeutronInterfaces().getLoadBalancerListenerInterface(); - - NeutronLoadBalancerListener delta = input.getSingleton(); - NeutronLoadBalancerListener original = loadBalancerListenerInterface.getNeutronLoadBalancerListener(loadBalancerListenerID); - - Object[] instances = NeutronUtil.getInstances(INeutronLoadBalancerListenerAware.class, this); - if (instances != null) { - if (instances.length > 0) { - for (Object instance : instances) { - INeutronLoadBalancerListenerAware service = (INeutronLoadBalancerListenerAware) instance; - int status = service.canUpdateNeutronLoadBalancerListener(delta, original); - if (status < HTTP_OK_BOTTOM || status > HTTP_OK_TOP) { - return Response.status(status).build(); - } - } - } else { - throw new ServiceUnavailableException(NO_PROVIDERS); - } - } else { - throw new ServiceUnavailableException(NO_PROVIDER_LIST); - } - - /* - * update the object and return it - */ - loadBalancerListenerInterface.updateNeutronLoadBalancerListener(loadBalancerListenerID, delta); - NeutronLoadBalancerListener updatedLoadBalancerListener = loadBalancerListenerInterface.getNeutronLoadBalancerListener(loadBalancerListenerID); - if (instances != null) { - for (Object instance : instances) { - INeutronLoadBalancerListenerAware service = (INeutronLoadBalancerListenerAware) instance; - service.neutronLoadBalancerListenerUpdated(updatedLoadBalancerListener); - } - } - return Response.status(HttpURLConnection.HTTP_OK).entity(new NeutronLoadBalancerListenerRequest(loadBalancerListenerInterface.getNeutronLoadBalancerListener(loadBalancerListenerID))).build(); + public Response updateLoadBalancerListener(@PathParam("loadBalancerListenerID") String loadBalancerListenerID, + final NeutronLoadBalancerListenerRequest input) { + return update(loadBalancerListenerID, input); } /** @@ -281,43 +160,10 @@ public class NeutronLoadBalancerListenerNorthbound extends AbstractNeutronNorthb @Path("{loadBalancerListenerID}") @DELETE - @StatusCodes({ - @ResponseCode(code = HttpURLConnection.HTTP_NO_CONTENT, condition = "No Content"), + @StatusCodes({ @ResponseCode(code = HttpURLConnection.HTTP_NO_CONTENT, condition = "No Content"), + @ResponseCode(code = HttpURLConnection.HTTP_NOT_FOUND, condition = "Not Found"), @ResponseCode(code = HttpURLConnection.HTTP_UNAVAILABLE, condition = "No providers available") }) - public Response deleteLoadBalancerListener( - @PathParam("loadBalancerListenerID") String loadBalancerListenerID) { - final INeutronLoadBalancerListenerCRUD loadBalancerListenerInterface = getNeutronInterfaces().getLoadBalancerListenerInterface(); - - NeutronLoadBalancerListener singleton = loadBalancerListenerInterface.getNeutronLoadBalancerListener(loadBalancerListenerID); - Object[] instances = NeutronUtil.getInstances(INeutronLoadBalancerListenerAware.class, this); - if (instances != null) { - if (instances.length > 0) { - for (Object instance : instances) { - INeutronLoadBalancerListenerAware service = (INeutronLoadBalancerListenerAware) instance; - int status = service.canDeleteNeutronLoadBalancerListener(singleton); - if (status < HTTP_OK_BOTTOM || status > HTTP_OK_TOP) { - return Response.status(status).build(); - } - } - } else { - throw new ServiceUnavailableException(NO_PROVIDERS); - } - } else { - throw new ServiceUnavailableException(NO_PROVIDER_LIST); - } - - deleteUuid(RESOURCE_NAME, loadBalancerListenerID, - new Remover() { - public boolean remove(String uuid) { - return loadBalancerListenerInterface.removeNeutronLoadBalancerListener(uuid); - } - }); - if (instances != null) { - for (Object instance : instances) { - INeutronLoadBalancerListenerAware service = (INeutronLoadBalancerListenerAware) instance; - service.neutronLoadBalancerListenerDeleted(singleton); - } - } - return Response.status(HttpURLConnection.HTTP_NO_CONTENT).build(); + public Response deleteLoadBalancerListener(@PathParam("loadBalancerListenerID") String loadBalancerListenerID) { + return delete(loadBalancerListenerID); } }