Support control plane recovery from failure for kubevirt networking

Change-Id: I8ac901cde85321f20b95f0d144a21d1a69d8026b
diff --git a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtIpPool.java b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtIpPool.java
index fb2906e..9cc3066 100644
--- a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtIpPool.java
+++ b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtIpPool.java
@@ -117,6 +117,27 @@
     }
 
     /**
+     * Reserves the given IP address.
+     *
+     * @param ip IP address to be reserved
+     * @return result for IP address reservation
+     */
+    public synchronized boolean reserveIp(IpAddress ip) {
+        if (availableIps.size() <= 0) {
+            return false;
+        }
+
+        if (allocatedIps.contains(ip) || !availableIps.contains(ip)) {
+            return false;
+        }
+
+        availableIps.remove(ip);
+        allocatedIps.add(ip);
+
+        return true;
+    }
+
+    /**
      * Releases the given IP address.
      *
      * @param ip IP address to be released