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;h=8f20269603b1ed1802fc04812974125016c1811b;hp=224fcb5f01ceaaaa662d2c9bbe0655892da463a2;hb=05861a85bc830af3fce638c301949da23c803ee4;hpb=04112a9b9591ef8d2e68694fe7ed3a771efd2960 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 224fcb5f01..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 @@ -1,5 +1,5 @@ /* - * Copyright IBM Corporation, 2013. All rights reserved. + * Copyright IBM Corporation and others, 2013. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, @@ -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 */ @@ -87,13 +93,15 @@ public class NeutronSubnetsNorthbound { @QueryParam("gateway_ip") String queryGatewayIP, @QueryParam("enable_dhcp") String queryEnableDHCP, @QueryParam("tenant_id") String queryTenantID, - // pagination - @QueryParam("limit") String limit, + @QueryParam("ipv6_address_mode") String queryIpV6AddressMode, + @QueryParam("ipv6_ra_mode") String queryIpV6RaMode, + // 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()); @@ -110,7 +118,9 @@ public class NeutronSubnetsNorthbound { (queryCIDR == null || queryCIDR.equals(oSS.getCidr())) && (queryGatewayIP == null || queryGatewayIP.equals(oSS.getGatewayIP())) && (queryEnableDHCP == null || queryEnableDHCP.equals(oSS.getEnableDHCP())) && - (queryTenantID == null || queryTenantID.equals(oSS.getTenantID()))) { + (queryTenantID == null || queryTenantID.equals(oSS.getTenantID())) && + (queryIpV6AddressMode == null || queryIpV6AddressMode.equals(oSS.getIpV6AddressMode())) && + (queryIpV6RaMode == null || queryIpV6RaMode.equals(oSS.getIpV6RaMode()))){ if (fields.size() > 0) { ans.add(extractFields(oSS,fields)); } else { @@ -118,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(); }