Support to allocate/release IP address for multiple networks
Change-Id: Ibd9a73fc8675559ed2a1aff47e39759745fad400
(cherry picked from commit 3831f0c81151377330610cb85eb9ac5da7996d7e)
diff --git a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/util/KubevirtNetworkingUtil.java b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/util/KubevirtNetworkingUtil.java
index 8a9ee6c..e1a26d7 100644
--- a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/util/KubevirtNetworkingUtil.java
+++ b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/util/KubevirtNetworkingUtil.java
@@ -17,6 +17,7 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.base.Strings;
+import com.google.common.collect.ImmutableSet;
import io.fabric8.kubernetes.api.model.Pod;
import io.fabric8.kubernetes.client.ConfigBuilder;
import io.fabric8.kubernetes.client.DefaultKubernetesClient;
@@ -319,26 +320,27 @@
*
* @param networks set of existing kubevirt networks
* @param pod kubevirt POD
- * @return kubevirt port
+ * @return kubevirt ports attached to the POD
*/
- public static KubevirtPort getPort(Set<KubevirtNetwork> networks, Pod pod) {
+ public static Set<KubevirtPort> getPorts(Set<KubevirtNetwork> networks, Pod pod) {
try {
Map<String, String> annots = pod.getMetadata().getAnnotations();
if (annots == null) {
- return null;
+ return ImmutableSet.of();
}
if (!annots.containsKey(NETWORK_STATUS_KEY)) {
- return null;
+ return ImmutableSet.of();
}
String networkStatusStr = annots.get(NETWORK_STATUS_KEY);
if (networkStatusStr == null) {
- return null;
+ return ImmutableSet.of();
}
JSONArray networkStatus = new JSONArray(networkStatusStr);
+ Set<KubevirtPort> ports = new HashSet<>();
for (int i = 0; i < networkStatus.length(); i++) {
JSONObject object = networkStatus.getJSONObject(i);
@@ -359,15 +361,17 @@
builder.ipAddress(IpAddress.valueOf(ip));
}
- return builder.build();
+ ports.add(builder.build());
}
}
+ return ports;
+
} catch (JSONException e) {
log.error("Failed to parse network status object", e);
}
- return null;
+ return ImmutableSet.of();
}
/**