X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fnorthbound%2Fnetworkconfiguration%2Fneutron%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetworkconfig%2Fneutron%2Fnorthbound%2FNeutronSubnetsNorthbound.java;fp=opendaylight%2Fnorthbound%2Fnetworkconfiguration%2Fneutron%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetworkconfig%2Fneutron%2Fnorthbound%2FNeutronSubnetsNorthbound.java;h=8f20269603b1ed1802fc04812974125016c1811b;hp=f397eb3a97b0630002b3fc1b70901a1a25cf0609;hb=6ad21cade82f6c488dff28fe298b3b5f552a7ba6;hpb=072c6fde952d5a86ccdb01521eccd09b4b4c9f67 diff --git a/opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronSubnetsNorthbound.java b/opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronSubnetsNorthbound.java index f397eb3a97..8f20269603 100644 --- a/opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronSubnetsNorthbound.java +++ b/opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronSubnetsNorthbound.java @@ -13,8 +13,10 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; + import javax.ws.rs.Consumes; import javax.ws.rs.DELETE; +import javax.ws.rs.DefaultValue; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.PUT; @@ -22,8 +24,10 @@ import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; +import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +import javax.ws.rs.core.UriInfo; import org.codehaus.enunciate.jaxrs.ResponseCode; import org.codehaus.enunciate.jaxrs.StatusCodes; @@ -65,6 +69,8 @@ public class NeutronSubnetsNorthbound { return o.extractFields(fields); } + @Context + UriInfo uriInfo; /** * Returns a list of all Subnets */ @@ -89,13 +95,13 @@ public class NeutronSubnetsNorthbound { @QueryParam("tenant_id") String queryTenantID, @QueryParam("ipv6_address_mode") String queryIpV6AddressMode, @QueryParam("ipv6_ra_mode") String queryIpV6RaMode, - // pagination - @QueryParam("limit") String limit, + // linkTitle + @QueryParam("limit") Integer limit, @QueryParam("marker") String marker, - @QueryParam("page_reverse") String pageReverse + @DefaultValue("false") @QueryParam("page_reverse") Boolean pageReverse // sorting not supported ) { - INeutronSubnetCRUD subnetInterface = NeutronCRUDInterfaces.getINeutronSubnetCRUD( this); + INeutronSubnetCRUD subnetInterface = NeutronCRUDInterfaces.getINeutronSubnetCRUD(this); if (subnetInterface == null) { throw new ServiceUnavailableException("Subnet CRUD Interface " + RestMessages.SERVICEUNAVAILABLE.toString()); @@ -122,7 +128,14 @@ public class NeutronSubnetsNorthbound { } } } - //TODO: apply pagination to results + + if (limit != null && ans.size() > 1) { + // Return a paginated request + NeutronSubnetRequest request = (NeutronSubnetRequest) PaginatedRequestFactory.createRequest(limit, + marker, pageReverse, uriInfo, ans, NeutronSubnet.class); + return Response.status(200).entity(request).build(); + } + return Response.status(200).entity( new NeutronSubnetRequest(ans)).build(); }