Mod aaa-12 解决冲突

RCA:
SOL:
修改人:dongxiancun
检视人:dongxiancun
This commit is contained in:
dongxiancun 2019-09-04 16:01:24 +08:00
parent dea73514aa
commit 41e2348a74
1 changed files with 65 additions and 45 deletions

View File

@ -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<ConnectorInf
final NodeId nodeId;
nodeId = new NodeId(connectDevice.getId());
final Node node = new NodeBuilder()
.setKey(new NodeKey(nodeId))
.setNodeId(nodeId)
.addAugmentation(NetconfNode.class, netconfNode)
.build();
@ -298,6 +299,7 @@ public class HuaweiNetconfSpeaker implements DataTreeChangeListener<ConnectorInf
LOG.info("开始向华为设备获取cpu信息");
final Optional<MountPoint> 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<ConnectorInf
List<CpuInfo> 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<ConnectorInf
List<MemoryInfo> 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<ConnectorInf
// List<Interface> 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<IpAddress> ipsOnIntf = getiplist(intf);
// tpInfosBuilder.setIpAddress(ipsOnIntf);
@ -487,7 +489,7 @@ public class HuaweiNetconfSpeaker implements DataTreeChangeListener<ConnectorInf
// });
InstanceIdentifier<Interfaces> interfacesIID =
InstanceIdentifier.create(Interfaces.class);
InstanceIdentifier.create(Ifm.class).child(Interfaces.class);
Optional<Interfaces> interfacesOptional;
try {
@ -501,13 +503,18 @@ public class HuaweiNetconfSpeaker implements DataTreeChangeListener<ConnectorInf
if (interfacesOptional.isPresent()) {
List<Interface> 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<IpAddress> 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<ConnectorInf
writeTransaction3.put(LogicalDatastoreType.OPERATIONAL, tpinfosIID,
new TpExtBuilder()
.setTpInfos(tpInfosList.get(i))
.build()
,true
.build(),
true
);
}
Futures.addCallback(writeTransaction3.submit(), new FutureCallback<Void>() {
@ -544,34 +551,47 @@ public class HuaweiNetconfSpeaker implements DataTreeChangeListener<ConnectorInf
}
// private TpAdminStatus buildTpAdmin(IfmcommAdminStaType ifAdminStatus) {
// TpAdminStatusBuilder builder = new TpAdminStatusBuilder();
// TpAdminStatus.AdminStatus adminstatus = TpAdminStatus.AdminStatus.forValue(ifAdminStatus.getIntValue());
// builder.setAdminStatus(adminstatus);
// return builder.build();
// }
private TpAdminStatus buildTpAdmin(IfmcommAdminStaType ifAdminStatus) {
TpAdminStatusBuilder builder = new TpAdminStatusBuilder();
TpAdminStatus.AdminStatus adminstatus = TpAdminStatus.AdminStatus.forValue(ifAdminStatus.getIntValue());
builder.setAdminStatus(adminstatus);
return builder.build();
}
// private List<IpAddress> getiplist(Interface intf) {
// List<Am4CfgAddr> list = intf.getIpv4Config().getAm4CfgAddrs().getAm4CfgAddr();
// List<Am6CfgAddr> am6CfgAddrList = intf.getIpv6Config().getAm6CfgAddrs().getAm6CfgAddr();
// List<IpAddress> 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<IpAddress> getiplist(Interface intf) {
List<IpAddress> addressList = new ArrayList<>();
List<Am4CfgAddr> list = null;
List<Am6CfgAddr> 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;
}
}