Supports netdev data path type in OpenstackNode.
Change-Id: I716276a98bd141e87bf20dd5314e52128cf7e495
diff --git a/apps/openstacknode/app/src/test/java/org/onosproject/openstacknode/codec/OpenstackNodeCodecTest.java b/apps/openstacknode/app/src/test/java/org/onosproject/openstacknode/codec/OpenstackNodeCodecTest.java
index 77759c3..3d45238 100644
--- a/apps/openstacknode/app/src/test/java/org/onosproject/openstacknode/codec/OpenstackNodeCodecTest.java
+++ b/apps/openstacknode/app/src/test/java/org/onosproject/openstacknode/codec/OpenstackNodeCodecTest.java
@@ -149,6 +149,7 @@
assertThat(node.controllers().size(), is(2));
assertThat(node.sshAuthInfo().id(), is("sdn"));
assertThat(node.sshAuthInfo().password(), is("sdn"));
+ assertThat(node.datapathType(), is(OpenstackNode.DatapathType.NORMAL));
node.phyIntfs().forEach(intf -> {
if (intf.network().equals("mgmtnetwork")) {
@@ -167,6 +168,10 @@
assertThat(ctrl.port(), is(6663));
}
});
+
+ OpenstackNode dpdkNode = getOpenstackNode("OpenstackDpdkComputeNode.json");
+
+ assertThat(dpdkNode.datapathType(), is(OpenstackNode.DatapathType.NETDEV));
}
/**
diff --git a/apps/openstacknode/app/src/test/java/org/onosproject/openstacknode/codec/OpenstackNodeJsonMatcher.java b/apps/openstacknode/app/src/test/java/org/onosproject/openstacknode/codec/OpenstackNodeJsonMatcher.java
index e8b6d07..3614f5f 100644
--- a/apps/openstacknode/app/src/test/java/org/onosproject/openstacknode/codec/OpenstackNodeJsonMatcher.java
+++ b/apps/openstacknode/app/src/test/java/org/onosproject/openstacknode/codec/OpenstackNodeJsonMatcher.java
@@ -42,6 +42,7 @@
private static final String AUTHENTICATION = "authentication";
private static final String END_POINT = "endPoint";
private static final String SSH_AUTH = "sshAuth";
+ private static final String DATA_PATH_TYPE = "datapathType";
private OpenstackNodeJsonMatcher(OpenstackNode node) {
this.node = node;
@@ -143,6 +144,16 @@
}
}
+ // check datapath type
+ JsonNode jsonDatapathType = jsonNode.get(DATA_PATH_TYPE);
+ if (jsonDatapathType != null) {
+ OpenstackNode.DatapathType datapathType = node.datapathType();
+ if (!OpenstackNode.DatapathType.valueOf(jsonDatapathType.asText()).equals(datapathType)) {
+ description.appendText("datapathType was " + jsonDatapathType);
+ return false;
+ }
+ }
+
// check physical interfaces
JsonNode jsonPhyIntfs = jsonNode.get(PHYSICAL_INTERFACES);
if (jsonPhyIntfs != null) {
diff --git a/apps/openstacknode/app/src/test/java/org/onosproject/openstacknode/impl/DefaultOpenstackNodeHandlerTest.java b/apps/openstacknode/app/src/test/java/org/onosproject/openstacknode/impl/DefaultOpenstackNodeHandlerTest.java
index ee5e478..e24b4e4 100644
--- a/apps/openstacknode/app/src/test/java/org/onosproject/openstacknode/impl/DefaultOpenstackNodeHandlerTest.java
+++ b/apps/openstacknode/app/src/test/java/org/onosproject/openstacknode/impl/DefaultOpenstackNodeHandlerTest.java
@@ -423,7 +423,8 @@
intgBridge.id(),
ipAddr,
ipAddr,
- null, null, state, phyIntfs, controllers, null, null, null);
+ null, null, state, phyIntfs, controllers,
+ null, null, null, OpenstackNode.DatapathType.NORMAL);
}
private static OpenstackNode createGatewayNode(String hostname,
@@ -438,8 +439,8 @@
intgBridge.id(),
ipAddr,
ipAddr,
- null, uplinkPort, state,
- null, null, null, null, null);
+ null, uplinkPort, state, null, null, null, null, null,
+ OpenstackNode.DatapathType.NORMAL);
}
private static final class TestDevice extends DefaultDevice {
@@ -501,7 +502,8 @@
Set<ControllerInfo> controllers,
OpenstackAuth auth,
String endPoint,
- OpenstackSshAuth sshAuth) {
+ OpenstackSshAuth sshAuth,
+ DatapathType datapathType) {
super(hostname,
type,
intgBridge,
@@ -514,7 +516,8 @@
controllers,
auth,
endPoint,
- sshAuth);
+ sshAuth,
+ datapathType);
}
@Override
diff --git a/apps/openstacknode/app/src/test/resources/org/onosproject/openstacknode/codec/OpenstackDpdkComputeNode.json b/apps/openstacknode/app/src/test/resources/org/onosproject/openstacknode/codec/OpenstackDpdkComputeNode.json
new file mode 100644
index 0000000..2313047
--- /dev/null
+++ b/apps/openstacknode/app/src/test/resources/org/onosproject/openstacknode/codec/OpenstackDpdkComputeNode.json
@@ -0,0 +1,33 @@
+{
+ "hostname": "compute-01",
+ "type": "COMPUTE",
+ "managementIp": "172.16.130.4",
+ "dataIp": "172.16.130.4",
+ "vlanPort": "eth2",
+ "integrationBridge": "of:00000000000000a1",
+ "datapathType" : "netdev",
+ "phyIntfs": [
+ {
+ "network": "mgmtnetwork",
+ "intf": "eth3"
+ },
+ {
+ "network": "oamnetwork",
+ "intf": "eth4"
+ }
+ ],
+ "sshAuth": {
+ "id": "sdn",
+ "password": "sdn"
+ },
+ "controllers": [
+ {
+ "ip": "10.10.10.2",
+ "port": 6653
+ },
+ {
+ "ip": "10.10.10.3",
+ "port": 6663
+ }
+ ]
+}
\ No newline at end of file