Add the logic of generating ovs bridges on bootstrap kubevirt node

Change-Id: Id691738ee31b509a143143103152111dfb47a606
diff --git a/apps/kubevirt-node/app/src/test/java/org/onosproject/kubevirtnode/codec/KubevirtNodeCodecTest.java b/apps/kubevirt-node/app/src/test/java/org/onosproject/kubevirtnode/codec/KubevirtNodeCodecTest.java
index f8761bc..93d53af 100644
--- a/apps/kubevirt-node/app/src/test/java/org/onosproject/kubevirtnode/codec/KubevirtNodeCodecTest.java
+++ b/apps/kubevirt-node/app/src/test/java/org/onosproject/kubevirtnode/codec/KubevirtNodeCodecTest.java
@@ -96,6 +96,7 @@
                 .state(KubevirtNodeState.INIT)
                 .managementIp(IpAddress.valueOf("10.10.10.1"))
                 .intgBridge(DeviceId.deviceId("br-int"))
+                .tunBridge(DeviceId.deviceId("br-tun"))
                 .dataIp(IpAddress.valueOf("20.20.20.2"))
                 .phyIntfs(ImmutableList.of(phyIntf1, phyIntf2))
                 .build();
@@ -118,6 +119,7 @@
         assertThat(node.managementIp().toString(), is("172.16.130.4"));
         assertThat(node.dataIp().toString(), is("172.16.130.4"));
         assertThat(node.intgBridge().toString(), is("of:00000000000000a1"));
+        assertThat(node.tunBridge().toString(), is("of:00000000000000a2"));
         assertThat(node.phyIntfs().size(), is(2));
 
         node.phyIntfs().forEach(intf -> {
diff --git a/apps/kubevirt-node/app/src/test/java/org/onosproject/kubevirtnode/codec/KubevirtNodeJsonMatcher.java b/apps/kubevirt-node/app/src/test/java/org/onosproject/kubevirtnode/codec/KubevirtNodeJsonMatcher.java
index 92af688..5d5dd42 100644
--- a/apps/kubevirt-node/app/src/test/java/org/onosproject/kubevirtnode/codec/KubevirtNodeJsonMatcher.java
+++ b/apps/kubevirt-node/app/src/test/java/org/onosproject/kubevirtnode/codec/KubevirtNodeJsonMatcher.java
@@ -29,6 +29,7 @@
 
     private final KubevirtNode node;
     private static final String INTEGRATION_BRIDGE = "integrationBridge";
+    private static final String TUNNEL_BRIDGE = "tunnelBridge";
     private static final String STATE = "state";
     private static final String PHYSICAL_INTERFACES = "phyIntfs";
 
@@ -72,6 +73,16 @@
             }
         }
 
+        // check tunnel bridge
+        JsonNode jsonTunBridge = jsonNode.get(TUNNEL_BRIDGE);
+        if (jsonTunBridge != null) {
+            String tunBridge = node.tunBridge().toString();
+            if (!jsonTunBridge.asText().equals(tunBridge)) {
+                description.appendText("tunnel bridge was " + jsonTunBridge);
+                return false;
+            }
+        }
+
         // check state
         String jsonState = jsonNode.get(STATE).asText();
         String state = node.state().name();
diff --git a/apps/kubevirt-node/app/src/test/java/org/onosproject/kubevirtnode/web/KubevirtNodeWebResourceTest.java b/apps/kubevirt-node/app/src/test/java/org/onosproject/kubevirtnode/web/KubevirtNodeWebResourceTest.java
index cf52f00..504de49 100644
--- a/apps/kubevirt-node/app/src/test/java/org/onosproject/kubevirtnode/web/KubevirtNodeWebResourceTest.java
+++ b/apps/kubevirt-node/app/src/test/java/org/onosproject/kubevirtnode/web/KubevirtNodeWebResourceTest.java
@@ -83,6 +83,7 @@
                 .dataIp(IpAddress.valueOf("10.134.34.222"))
                 .managementIp(IpAddress.valueOf("10.134.231.30"))
                 .intgBridge(DeviceId.deviceId("of:00000000000000a1"))
+                .tunBridge(DeviceId.deviceId("of:00000000000000a2"))
                 .state(KubevirtNodeState.INIT)
                 .build();
     }
diff --git a/apps/kubevirt-node/app/src/test/resources/org/onosproject/kubevirtnode/codec/KubevirtWorkerNode.json b/apps/kubevirt-node/app/src/test/resources/org/onosproject/kubevirtnode/codec/KubevirtWorkerNode.json
index 70b449d..78a8687 100644
--- a/apps/kubevirt-node/app/src/test/resources/org/onosproject/kubevirtnode/codec/KubevirtWorkerNode.json
+++ b/apps/kubevirt-node/app/src/test/resources/org/onosproject/kubevirtnode/codec/KubevirtWorkerNode.json
@@ -4,6 +4,7 @@
   "managementIp": "172.16.130.4",
   "dataIp": "172.16.130.4",
   "integrationBridge": "of:00000000000000a1",
+  "tunnelBridge": "of:00000000000000a2",
   "phyIntfs": [
     {
       "network": "mgmtnetwork",
diff --git a/apps/kubevirt-node/app/src/test/resources/org/onosproject/kubevirtnode/web/kubevirt-worker-node.json b/apps/kubevirt-node/app/src/test/resources/org/onosproject/kubevirtnode/web/kubevirt-worker-node.json
index ddda185..5046d86 100644
--- a/apps/kubevirt-node/app/src/test/resources/org/onosproject/kubevirtnode/web/kubevirt-worker-node.json
+++ b/apps/kubevirt-node/app/src/test/resources/org/onosproject/kubevirtnode/web/kubevirt-worker-node.json
@@ -6,7 +6,8 @@
       "managementIp" : "10.134.231.32",
       "dataIp" : "10.134.34.224",
       "nodeIp" : "30.30.30.3",
-      "integrationBridge" : "of:00000000000000a2"
+      "integrationBridge" : "of:00000000000000a1",
+      "tunnelBridge" : "of:00000000000000a2"
     }
   ]
 }
\ No newline at end of file