commit | 7a581b182fd13b7bdfae07db0524011d2392aa10 | [log] [tgz] |
---|---|---|
author | Jian Li <pyguni@gmail.com> | Thu Feb 18 14:24:32 2021 +0900 |
committer | Jian Li <pyguni@gmail.com> | Thu Feb 18 14:24:32 2021 +0900 |
tree | da9c1c37993bd2f6b143d7bfab6c7f1446785c7c | |
parent | 4c35a26d90c329ab96133b6bba73f09d512519d7 [diff] [blame] |
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