import javax.ws.rs.core.UriInfo;
import org.apache.aries.blueprint.annotation.service.Reference;
import org.opendaylight.neutron.spi.INeutronBgpvpnCRUD;
+import org.opendaylight.neutron.spi.INeutronBgpvpnNetworkAssociationCRUD;
+import org.opendaylight.neutron.spi.INeutronBgpvpnRouterAssociationCRUD;
import org.opendaylight.neutron.spi.NeutronBgpvpn;
+import org.opendaylight.neutron.spi.NeutronBgpvpnNetworkAssociation;
+import org.opendaylight.neutron.spi.NeutronBgpvpnRouterAssociation;
+
/**
* Neutron Northbound REST APIs for Bgpvpn.
@Context
UriInfo uriInfo;
+
+ INeutronBgpvpnNetworkAssociationCRUD neutronBgpvpnNetworkAssociation;
+ INeutronBgpvpnRouterAssociationCRUD neutronBgpvpnRouterAssociation;
+
@Inject
- public NeutronBgpvpnsNorthbound(@Reference INeutronBgpvpnCRUD neutronCRUD) {
+ public NeutronBgpvpnsNorthbound(@Reference INeutronBgpvpnCRUD neutronCRUD,
+ INeutronBgpvpnNetworkAssociationCRUD neutronBgpvpnNetworkAssociation,
+ INeutronBgpvpnRouterAssociationCRUD neutronBgpvpnRouterAssociation) {
super(neutronCRUD);
+ this.neutronBgpvpnNetworkAssociation = neutronBgpvpnNetworkAssociation;
+ this.neutronBgpvpnRouterAssociation = neutronBgpvpnRouterAssociation;
+
}
@Override
@ResponseCode(code = HttpURLConnection.HTTP_NOT_FOUND, condition = "Not Found"),
@ResponseCode(code = HttpURLConnection.HTTP_UNAVAILABLE, condition = "No providers available") })
public Response deleteBgpvpn(@PathParam("bgpvpnUUID") String bgpvpnUUID) {
+ NeutronBgpvpnNetworkAssociationsNorthbound netAssoNorthBound =
+ new NeutronBgpvpnNetworkAssociationsNorthbound(neutronBgpvpnNetworkAssociation);
+ List<NeutronBgpvpnNetworkAssociation> allBgpvpnNetAssos = neutronBgpvpnNetworkAssociation.getAll();
+ for (NeutronBgpvpnNetworkAssociation bgpvpnNetAsso : allBgpvpnNetAssos) {
+ if (bgpvpnUUID != null && bgpvpnUUID.equals(bgpvpnNetAsso.getBgpvpnId())) {
+ netAssoNorthBound.delete(bgpvpnNetAsso.getID());
+ }
+ }
+
+ NeutronBgpvpnRouterAssociationsNorthbound routeAssoNorthBound =
+ new NeutronBgpvpnRouterAssociationsNorthbound(neutronBgpvpnRouterAssociation);
+ List<NeutronBgpvpnRouterAssociation> allBgpvpnRouteAssos = neutronBgpvpnRouterAssociation.getAll();
+ for (NeutronBgpvpnRouterAssociation bgpvpnRouteAsso : allBgpvpnRouteAssos) {
+ if (bgpvpnUUID != null && bgpvpnUUID.equals(bgpvpnRouteAsso.getBgpvpnId())) {
+ routeAssoNorthBound.delete(bgpvpnRouteAsso.getID());
+ }
+ }
return delete(bgpvpnUUID);
}
}