[ONOS-6244]port statistics defect fix
Change-Id: Ib4dda6da1fc3c345fe69fb565abde55ec731cd32
diff --git a/drivers/huawei/driver/src/main/java/org/onosproject/drivers/huawei/DriverUtil.java b/drivers/huawei/driver/src/main/java/org/onosproject/drivers/huawei/DriverUtil.java
index af997c4..cc5dc70 100644
--- a/drivers/huawei/driver/src/main/java/org/onosproject/drivers/huawei/DriverUtil.java
+++ b/drivers/huawei/driver/src/main/java/org/onosproject/drivers/huawei/DriverUtil.java
@@ -114,9 +114,10 @@
/**
* RPC interfaces message.
*/
- static final String RPC_IFS =
- "<interfaces><interface><ifPhyType>Ethernet</ifPhyType" +
- "></interface></interfaces>";
+ static final String RPC_IFS = "<interfaces><interface><ifPhyType>Ethernet" +
+ "</ifPhyType><ifName></ifName><ifNumber></ifNumber>" +
+ "<ifDynamicInfo></ifDynamicInfo><ifStatistics></ifStatistics>" +
+ "</interface></interfaces>";
/**
* RPC ifm message.
diff --git a/drivers/huawei/driver/src/main/java/org/onosproject/drivers/huawei/HuaweiDeviceDescription.java b/drivers/huawei/driver/src/main/java/org/onosproject/drivers/huawei/HuaweiDeviceDescription.java
index bcb7f4c..7c0a478 100644
--- a/drivers/huawei/driver/src/main/java/org/onosproject/drivers/huawei/HuaweiDeviceDescription.java
+++ b/drivers/huawei/driver/src/main/java/org/onosproject/drivers/huawei/HuaweiDeviceDescription.java
@@ -17,6 +17,7 @@
package org.onosproject.drivers.huawei;
import com.google.common.collect.ImmutableList;
+import org.apache.commons.lang.StringUtils;
import org.onosproject.net.Device;
import org.onosproject.net.DeviceId;
import org.onosproject.net.device.DefaultDeviceDescription;
@@ -37,7 +38,6 @@
import static com.google.common.base.Preconditions.checkNotNull;
import static org.onosproject.drivers.huawei.DriverUtil.DEV_INFO_FAILURE;
-import static org.onosproject.drivers.huawei.DriverUtil.INT_INFO_FAILURE;
import static org.onosproject.drivers.huawei.DriverUtil.RPC_CLOSE;
import static org.onosproject.drivers.huawei.DriverUtil.RPC_CLOSE_FILTER;
import static org.onosproject.drivers.huawei.DriverUtil.RPC_CLOSE_GET;
@@ -177,17 +177,21 @@
@Override
public Collection<PortStatistics> discoverPortStatistics() {
- return ImmutableList.copyOf(getPortStatistics(getInterfaces()));
+ String interfaces = getInterfaces();
+ if (StringUtils.isNotBlank(interfaces)) {
+ Collection<PortStatistics> portStats = getPortStatistics(interfaces);
+ return ImmutableList.copyOf(portStats);
+ }
+ return null;
}
private String getInterfaces() {
NetconfSession session = getNetconfSession();
- String interfaces;
+ String interfaces = null;
try {
interfaces = session.get(getInterfacesReq());
} catch (IOException e) {
- throw new IllegalArgumentException(
- new NetconfException(INT_INFO_FAILURE, e.getCause()));
+ log.info("Failed to retrive interface {} ", e.getMessage());
}
return interfaces;
}
diff --git a/drivers/huawei/driver/src/main/java/org/onosproject/drivers/huawei/HuaweiXmlParser.java b/drivers/huawei/driver/src/main/java/org/onosproject/drivers/huawei/HuaweiXmlParser.java
index 5d56ddc..236fbf7 100644
--- a/drivers/huawei/driver/src/main/java/org/onosproject/drivers/huawei/HuaweiXmlParser.java
+++ b/drivers/huawei/driver/src/main/java/org/onosproject/drivers/huawei/HuaweiXmlParser.java
@@ -238,8 +238,6 @@
DefaultPortStatistics.Builder builder = DefaultPortStatistics.builder();
if (INTERFACES.contains(ifType)) {
- Element info = ifElement.element(DYN_INFO);
-
int port = Integer.parseInt(getPortNum(ifElement.element(IF_NUM)
.getText()));
Element statInfo = ifElement.element(IF_STATS);