Add mac address field into virtual router
Change-Id: I387507756d88732f9e1733b9d1037f8d0861f848
diff --git a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/codec/KubevirtRouterCodec.java b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/codec/KubevirtRouterCodec.java
index d1239de..5ca4ab6 100644
--- a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/codec/KubevirtRouterCodec.java
+++ b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/codec/KubevirtRouterCodec.java
@@ -62,7 +62,8 @@
ObjectNode result = context.mapper().createObjectNode()
.put(NAME, router.name())
- .put(ENABLE_SNAT, router.enableSnat());
+ .put(ENABLE_SNAT, router.enableSnat())
+ .put(MAC_ADDRESS, router.mac().toString());
if (router.description() != null) {
result.put(DESCRIPTION, router.description());
@@ -113,8 +114,12 @@
String name = nullIsIllegal(json.get(NAME).asText(),
NAME + MISSING_MESSAGE);
+ String vrouterMac = nullIsIllegal(json.get(MAC_ADDRESS).asText(),
+ MAC_ADDRESS + MISSING_MESSAGE);
+
KubevirtRouter.Builder builder = DefaultKubevirtRouter.builder()
- .name(name);
+ .name(name)
+ .mac(MacAddress.valueOf(vrouterMac));
JsonNode descriptionJson = json.get(DESCRIPTION);
if (descriptionJson != null) {
diff --git a/apps/kubevirt-networking/app/src/main/resources/definitions/KubevirtRouters.json b/apps/kubevirt-networking/app/src/main/resources/definitions/KubevirtRouters.json
index 3546dff..835dfea 100644
--- a/apps/kubevirt-networking/app/src/main/resources/definitions/KubevirtRouters.json
+++ b/apps/kubevirt-networking/app/src/main/resources/definitions/KubevirtRouters.json
@@ -17,6 +17,7 @@
"required": [
"name",
"enableSnat",
+ "mac",
"internal",
"external",
"peerRouter"
@@ -32,6 +33,11 @@
"example": "true",
"description": "Enable SNAT flag."
},
+ "mac": {
+ "type": "string",
+ "example": "11:22:33:44:55:66",
+ "description": "The MAC address of virtual router."
+ },
"internal": {
"type": "array",
"xml": {
@@ -77,7 +83,7 @@
"example": "10.10.10.1",
"description": "IP address of the peer router"
},
- "macaddress": {
+ "mac": {
"type": "string",
"example": "11:22:33:44:55:66",
"description": "MAC address of the peer router"
diff --git a/apps/kubevirt-networking/app/src/test/java/org/onosproject/kubevirtnetworking/codec/KubevirtRouterCodecTest.java b/apps/kubevirt-networking/app/src/test/java/org/onosproject/kubevirtnetworking/codec/KubevirtRouterCodecTest.java
index 3af305c..1ff8951 100644
--- a/apps/kubevirt-networking/app/src/test/java/org/onosproject/kubevirtnetworking/codec/KubevirtRouterCodecTest.java
+++ b/apps/kubevirt-networking/app/src/test/java/org/onosproject/kubevirtnetworking/codec/KubevirtRouterCodecTest.java
@@ -79,6 +79,7 @@
KubevirtRouter router = DefaultKubevirtRouter.builder()
.name("router-1")
.enableSnat(true)
+ .mac(MacAddress.valueOf("11:22:33:44:55:66"))
.description("router-1")
.internal(ImmutableSet.of("vlan-1"))
.external(ImmutableMap.of("10.10.10.20", "flat-1"))
@@ -97,6 +98,7 @@
assertEquals("router-1", router.name());
assertEquals("Example Virtual Router", router.description());
assertTrue(router.enableSnat());
+ assertEquals("11:22:33:44:55:66", router.mac().toString());
assertEquals("192.168.10.5",
router.external().keySet().stream().findAny().orElse(null));
assertEquals("external-network", router.external().get("192.168.10.5"));
diff --git a/apps/kubevirt-networking/app/src/test/java/org/onosproject/kubevirtnetworking/codec/KubevirtRouterJsonMatcher.java b/apps/kubevirt-networking/app/src/test/java/org/onosproject/kubevirtnetworking/codec/KubevirtRouterJsonMatcher.java
index 1b394e7..a855f42 100644
--- a/apps/kubevirt-networking/app/src/test/java/org/onosproject/kubevirtnetworking/codec/KubevirtRouterJsonMatcher.java
+++ b/apps/kubevirt-networking/app/src/test/java/org/onosproject/kubevirtnetworking/codec/KubevirtRouterJsonMatcher.java
@@ -73,6 +73,14 @@
}
}
+ // check vrouter MAC
+ String jsonMac = jsonNode.get(MAC_ADDRESS).asText();
+ String mac = router.mac().toString();
+ if (!jsonMac.equals(mac)) {
+ description.appendText("MAC was " + jsonMac);
+ return false;
+ }
+
// check internal
JsonNode jsonInternal = jsonNode.get(INTERNAL);
if (jsonInternal != null) {
@@ -134,10 +142,10 @@
}
}
- JsonNode jsonMac = jsonPeerRouter.get(MAC_ADDRESS);
+ JsonNode jsonProuterMac = jsonPeerRouter.get(MAC_ADDRESS);
- if (jsonMac != null) {
- if (!jsonMac.asText().equals(router.peerRouter().macAddress().toString())) {
+ if (jsonProuterMac != null) {
+ if (!jsonProuterMac.asText().equals(router.peerRouter().macAddress().toString())) {
description.appendText("Peer router MAC was " + jsonMac);
return false;
}
diff --git a/apps/kubevirt-networking/app/src/test/resources/org/onosproject/kubevirtnetworking/codec/KubevirtRouter.json b/apps/kubevirt-networking/app/src/test/resources/org/onosproject/kubevirtnetworking/codec/KubevirtRouter.json
index 14e60ec..5d9d53c 100644
--- a/apps/kubevirt-networking/app/src/test/resources/org/onosproject/kubevirtnetworking/codec/KubevirtRouter.json
+++ b/apps/kubevirt-networking/app/src/test/resources/org/onosproject/kubevirtnetworking/codec/KubevirtRouter.json
@@ -2,6 +2,7 @@
"name": "router-1",
"description": "Example Virtual Router",
"enableSnat": true,
+ "mac": "11:22:33:44:55:66",
"external": {
"ip": "192.168.10.5",
"network": "external-network"