Create/remove tenant bridge per tenant network at kubevirt app
Change-Id: I43ccf21db561edb9c51c2d8017dc4f614c5f0a4d
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 db54054..48d9bc0 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
@@ -16,6 +16,7 @@
package org.onosproject.kubevirtnetworking.util;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.base.Strings;
import io.fabric8.kubernetes.api.model.Pod;
import io.fabric8.kubernetes.client.ConfigBuilder;
import io.fabric8.kubernetes.client.DefaultKubernetesClient;
@@ -55,6 +56,7 @@
private static final int PORT_NAME_MAX_LENGTH = 15;
private static final String COLON_SLASH = "://";
private static final String COLON = ":";
+ private static final String OF_PREFIX = "of:";
private static final String NETWORK_STATUS_KEY = "k8s.v1.cni.cncf.io/network-status";
private static final String NAME = "name";
@@ -117,6 +119,21 @@
}
/**
+ * Auto generates DPID from the given name.
+ *
+ * @param name name
+ * @return auto generated DPID
+ */
+ public static String genDpidFromName(String name) {
+ if (name != null) {
+ String hexString = Integer.toHexString(name.hashCode());
+ return OF_PREFIX + Strings.padStart(hexString, 16, '0');
+ }
+
+ return null;
+ }
+
+ /**
* Prints out the JSON string in pretty format.
*
* @param mapper Object mapper
@@ -249,6 +266,17 @@
}
/**
+ * Obtains the hex string of the given segment ID with fixed padding.
+ *
+ * @param segIdStr segment identifier string
+ * @return hex string with padding
+ */
+ public static String segmentIdHex(String segIdStr) {
+ int segId = Integer.parseInt(segIdStr);
+ return String.format("%06x", segId).toLowerCase();
+ }
+
+ /**
* Obtains the kubevirt port from kubevirt POD.
*
* @param networks set of existing kubevirt networks