diff --git a/ControlPlatform/driver-layer/drivers/huawei/src/main/java/com/cmcc/cmhi/huawei/impl/HuaweiNetconfSpeaker.java b/ControlPlatform/driver-layer/drivers/huawei/src/main/java/com/cmcc/cmhi/huawei/impl/HuaweiNetconfSpeaker.java index 726f6608d..9ef31f32b 100644 --- a/ControlPlatform/driver-layer/drivers/huawei/src/main/java/com/cmcc/cmhi/huawei/impl/HuaweiNetconfSpeaker.java +++ b/ControlPlatform/driver-layer/drivers/huawei/src/main/java/com/cmcc/cmhi/huawei/impl/HuaweiNetconfSpeaker.java @@ -24,8 +24,10 @@ import org.opendaylight.yang.gen.v1.http.www.huawei.com.netconf.vrp.huawei.devm. import org.opendaylight.yang.gen.v1.http.www.huawei.com.netconf.vrp.huawei.devm.rev181123.devm.memoryinfos.MemoryInfo; import org.opendaylight.yang.gen.v1.http.www.huawei.com.netconf.vrp.huawei.ifm.rev181123.Ifm; import org.opendaylight.yang.gen.v1.http.www.huawei.com.netconf.vrp.huawei.ifm.rev181123.IfmcommAdminStaType; -//import org.opendaylight.yang.gen.v1.http.www.huawei.com.netconf.vrp.huawei.ifm.rev181123.ifm.Interfaces; -//import org.opendaylight.yang.gen.v1.http.www.huawei.com.netconf.vrp.huawei.ifm.rev181123.ifm.interfaces.Interface; +import org.opendaylight.yang.gen.v1.http.www.huawei.com.netconf.vrp.huawei.ifm.rev181123.ifm.Interfaces; +import org.opendaylight.yang.gen.v1.http.www.huawei.com.netconf.vrp.huawei.ifm.rev181123.ifm.interfaces.Interface; +//import org.opendaylight.yang.gen.v1.http.www.huawei.com.netconf.vrp.huawei.ifm.rev181123.ifm.interfaces._interface.ipv4config.am4cfgaddrs.Am4CfgAddr; +//import org.opendaylight.yang.gen.v1.http.www.huawei.com.netconf.vrp.huawei.ifm.rev181123.ifm.interfaces._interface.ipv6config.am6cfgaddrs.Am6CfgAddr; import org.opendaylight.yang.gen.v1.http.www.huawei.com.netconf.vrp.huawei.ifm.rev181123.ifm.interfaces._interface.ipv4config.am4cfgaddrs.Am4CfgAddr; import org.opendaylight.yang.gen.v1.http.www.huawei.com.netconf.vrp.huawei.ifm.rev181123.ifm.interfaces._interface.ipv6config.am6cfgaddrs.Am6CfgAddr; import org.opendaylight.yang.gen.v1.urn.cmcc.cmhi.adaptation.layer.device.status.rev190809.NodeCpu; @@ -46,8 +48,6 @@ import org.opendaylight.yang.gen.v1.urn.cmcc.cmhi.huawei.connector.rev190809.Con import org.opendaylight.yang.gen.v1.urn.cmcc.cmhi.huawei.connector.rev190809.ConnectorInfo; import org.opendaylight.yang.gen.v1.urn.cmcc.cmhi.huawei.connector.rev190809.connector.info.RemoteDevices; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.*; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.Interfaces; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.Credentials; @@ -132,6 +132,7 @@ public class HuaweiNetconfSpeaker implements DataTreeChangeListener hwNodeOptional = mountService.getMountPoint(NETCONF_TOPO_IID .child(Node.class, new NodeKey(new NodeId(nodeId)))); + LOG.info("开始向华为设备获取cpu信息2!"); Preconditions.checkArgument(hwNodeOptional.isPresent(), "Unable to locate mountpoint: %s, not mounted yet or not configured", nodeId); @@ -332,9 +334,9 @@ public class HuaweiNetconfSpeaker implements DataTreeChangeListener cpuInfoList = cupInfos.get().getCpuInfo(); for (CpuInfo cpuInfo : cpuInfoList) { LOG.info("Show cpu with serial {},cpu usage is {} ", - cpuInfo.getPosition(), cpuInfo.getSystemCpuUsage()); + cpuInfo.getKey().getPosition(), cpuInfo.getSystemCpuUsage()); org.opendaylight.yang.gen.v1.urn.cmcc.cmhi.adaptation.layer.device.status.rev190809.cpu.status.cpu.infos.CpuInfo temp = - new org.opendaylight.yang.gen.v1.urn.cmcc.cmhi.adaptation.layer.device.status.rev190809.cpu.status.cpu.infos.CpuInfoBuilder().setPosition(cpuInfo.getPosition()) + new org.opendaylight.yang.gen.v1.urn.cmcc.cmhi.adaptation.layer.device.status.rev190809.cpu.status.cpu.infos.CpuInfoBuilder().setPosition(cpuInfo.getKey().getPosition()) .setUsageRate(cpuInfo.getSystemCpuUsage().shortValue()).build(); ifcList.add(temp); } @@ -386,11 +388,11 @@ public class HuaweiNetconfSpeaker implements DataTreeChangeListener memoryInfoList = memoryInfosOptional.get().getMemoryInfo(); for (MemoryInfo memoryInfo : memoryInfoList) { LOG.info("Show memory with serial {},memory usage is {} ", - memoryInfo.getPosition(), memoryInfo.getDoMemoryUsage()); + memoryInfo.getKey().getPosition(), memoryInfo.getDoMemoryUsage()); LOG.info("Huawei Device {} OsMemoryTotal is: {}", nodeId, memoryInfo.getOsMemoryTotal()); org.opendaylight.yang.gen.v1.urn.cmcc.cmhi.adaptation.layer.device.status.rev190809.mem.status.memory.infos.MemoryInfo temp = new org.opendaylight.yang.gen.v1.urn.cmcc.cmhi.adaptation.layer.device.status.rev190809.mem.status.memory.infos.MemoryInfoBuilder() - .setPosition(memoryInfo.getPosition()) + .setPosition(memoryInfo.getKey().getPosition()) .setMemoryTotal(memoryInfo.getOsMemoryTotal()) .setUsageRate(memoryInfo.getDoMemoryUsage().shortValue()) .build(); @@ -444,7 +446,7 @@ public class HuaweiNetconfSpeaker implements DataTreeChangeListener interfaceList = interfacesOptional.get().getInterface(); // for (Interface intf : interfaceList) { // LOG.info("Show memory with serial {},ipv4 config is {} ", -// intf.getIfName(), intf.getIpv4Config()); +// intf.getKey().getIfName(), intf.getIpv4Config()); // TpInfosBuilder tpInfosBuilder = new TpInfosBuilder(); // List ipsOnIntf = getiplist(intf); // tpInfosBuilder.setIpAddress(ipsOnIntf); @@ -487,7 +489,7 @@ public class HuaweiNetconfSpeaker implements DataTreeChangeListener interfacesIID = - InstanceIdentifier.create(Interfaces.class); + InstanceIdentifier.create(Ifm.class).child(Interfaces.class); Optional interfacesOptional; try { @@ -501,13 +503,18 @@ public class HuaweiNetconfSpeaker implements DataTreeChangeListener interfaceList = interfacesOptional.get().getInterface(); for (Interface intf : interfaceList) { - LOG.info("Show node:{} interface:{},type is {} ", - nodeId, intf.getName(), intf.getType().getSimpleName()); + LOG.info("Show NodeId {}, IfName is {},IfIndex is {} ", + nodeId, intf.getIfName().getValue(), intf.getIfIndex()); TpInfosBuilder tpInfosBuilder = new TpInfosBuilder(); - tpInfosBuilder.setTpName(intf.getName()); - tpInfosBuilder.setDescription(intf.getDescription()); - tpInfosBuilder.setEnabled(intf.isEnabled()); - tpInfosBuilder.setTpPhyType(intf.getType().getSimpleName()); + List ipsOnIntf = getiplist(intf); + tpInfosBuilder.setIpAddress(ipsOnIntf); + if (Objects.nonNull(intf.getIfMtu())) { + tpInfosBuilder.setMtu(intf.getIfMtu().shortValue()); + } + tpInfosBuilder.setTpName(intf.getIfName().getValue()); + tpInfosBuilder.setTpNumber(intf.getIfNumber()); + tpInfosBuilder.setTpAdminStatus(buildTpAdmin(intf.getIfAdminStatus())); + tpInfosBuilder.setTpPhyType(intf.getIfPhyType().getName()); tpInfosList.add(tpInfosBuilder.build()); } } else { @@ -526,8 +533,8 @@ public class HuaweiNetconfSpeaker implements DataTreeChangeListener() { @@ -544,34 +551,47 @@ public class HuaweiNetconfSpeaker implements DataTreeChangeListener getiplist(Interface intf) { -// List list = intf.getIpv4Config().getAm4CfgAddrs().getAm4CfgAddr(); -// List am6CfgAddrList = intf.getIpv6Config().getAm6CfgAddrs().getAm6CfgAddr(); -// List addressList = new ArrayList<>(); -// for (Am4CfgAddr cfg : list) { -// IpAddressBuilder builder = new IpAddressBuilder(); -// org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress ip = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress(Ipv4Address.getDefaultInstance(cfg.getIfIpAddr().getValue())); -// builder.setIp(ip); -// IpAddress tmpAddress = builder.build(); -// addressList.add(tmpAddress); -// } -// -// for (Am6CfgAddr am6CfgAddr : am6CfgAddrList) { -// IpAddressBuilder builder = new IpAddressBuilder(); -// org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress ip = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress(Ipv6Address.getDefaultInstance(am6CfgAddr.getIfIp6Addr().getValue())); -// builder.setIp(ip); -// IpAddress tmpAddress = builder.build(); -// addressList.add(tmpAddress); -// } -// return addressList; -// } + private List getiplist(Interface intf) { + List addressList = new ArrayList<>(); + List list = null; + List am6CfgAddrList = null; + try { + list = intf.getIpv4Config().getAm4CfgAddrs().getAm4CfgAddr(); + } catch (NullPointerException e) { + LOG.debug("端口:{}无ipv4配置.", intf.getIfName()); + } + if(Objects.nonNull(list)) { + for (Am4CfgAddr cfg : list) { + IpAddressBuilder builder = new IpAddressBuilder(); + org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress ip = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress(Ipv4Address.getDefaultInstance(cfg.getIfIpAddr().getValue())); + builder.setIp(ip); + IpAddress tmpAddress = builder.build(); + addressList.add(tmpAddress); + } + } + try { + am6CfgAddrList = intf.getIpv6Config().getAm6CfgAddrs().getAm6CfgAddr(); + } catch (NullPointerException e) { + LOG.debug("端口:{}无ipv6配置.", intf.getIfName()); + } + if(Objects.nonNull(am6CfgAddrList)) { + for (Am6CfgAddr am6CfgAddr : am6CfgAddrList) { + IpAddressBuilder builder = new IpAddressBuilder(); + org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress ip = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress(Ipv6Address.getDefaultInstance(am6CfgAddr.getIfIp6Addr().getValue())); + builder.setIp(ip); + IpAddress tmpAddress = builder.build(); + addressList.add(tmpAddress); + } + } + return addressList; + } }