add a delete vBNG feature
Change-Id: I21ce31d645be31320d06c36795e6b044f11924ab
diff --git a/apps/virtualbng/src/main/java/org/onosproject/virtualbng/VbngResource.java b/apps/virtualbng/src/main/java/org/onosproject/virtualbng/VbngResource.java
index 9436981..2b0cd98 100644
--- a/apps/virtualbng/src/main/java/org/onosproject/virtualbng/VbngResource.java
+++ b/apps/virtualbng/src/main/java/org/onosproject/virtualbng/VbngResource.java
@@ -17,6 +17,7 @@
import static org.slf4j.LoggerFactory.getLogger;
+import javax.ws.rs.DELETE;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
@@ -35,13 +36,13 @@
@POST
@Path("{privateip}")
- public String privateIpNotification(@PathParam("privateip")
+ public String privateIpAddNotification(@PathParam("privateip")
String privateIp) {
if (privateIp == null) {
- log.info("Private IP address is null");
+ log.info("Private IP address to add is null");
return "0";
}
- log.info("Received a private IP address : {}", privateIp);
+ log.info("Received a private IP address : {} to add", privateIp);
IpAddress privateIpAddress = IpAddress.valueOf(privateIp);
VbngService vbngService = get(VbngService.class);
@@ -56,4 +57,28 @@
return "0";
}
}
+
+ @DELETE
+ @Path("{privateip}")
+ public String privateIpDeleteNotification(@PathParam("privateip")
+ String privateIp) {
+ if (privateIp == null) {
+ log.info("Private IP address to delete is null");
+ return "0";
+ }
+ log.info("Received a private IP address : {} to delete", privateIp);
+ IpAddress privateIpAddress = IpAddress.valueOf(privateIp);
+
+ VbngService vbngService = get(VbngService.class);
+
+ IpAddress assignedPublicIpAddress = null;
+ // Delete a virtual BNG
+ assignedPublicIpAddress = vbngService.deleteVbng(privateIpAddress);
+
+ if (assignedPublicIpAddress != null) {
+ return assignedPublicIpAddress.toString();
+ } else {
+ return "0";
+ }
+ }
}
\ No newline at end of file