// convert CPU status private CPUStatus convertCPUStatus(Result result) { CPUStatus cpuStatus = new CPUStatus(); int[] loads = new int[result.getListResults().size()]; int i = 0; for (Map<String, Object> properties : result.getListResults()) { int load = Integer.parseInt(String.valueOf(properties.get("cpuLoad"))); loads[i++] = load; // log().info(" cpu load " + load); // 加入到历史信息集合,便于后面存入DB m_hostEntityList.add(converHostHistory(properties, SnmpDeviceConstants.CPU)); } cpuStatus.setLoads(loads); return cpuStatus; }
// convert network status private NetworkStatus convertNetworkStatus(Result result) { NetworkStatus networkStatus = new NetworkStatus(); int size = result.getListResults().size(); InterfaceStatus[] interfaceStatus = new InterfaceStatus[size]; int i = 0; for (Map<String, Object> properties : result.getListResults()) { InterfaceStatus bean = new InterfaceStatus(); populate(bean, properties); // log().info(bean.toString()); interfaceStatus[i++] = bean; // 加入到历史信息集合,便于后面存入DB m_hostEntityList.add(converHostHistory(properties, SnmpDeviceConstants.NETWORK)); } networkStatus.setInterfaceStatus(interfaceStatus); return networkStatus; }
// convert hardDisk status private HardDiskStatus convertHardDiskStatus(Result result) { HardDiskStatus hardDiskStatus = new HardDiskStatus(); List<PartitionStatus> partitionStatus = new ArrayList<PartitionStatus>(); long used = 0; long size = 0; for (Map<String, Object> properties : result.getListResults()) { // 根据硬盘盘符类型OID判断 获取各盘符信息 if (String.valueOf(properties.get("type")).equals(".1.3.6.1.2.1.25.2.1.4")) { PartitionStatus bean = new PartitionStatus(); populate(bean, properties); // log().info(bean.toString()); // 加入到历史信息集合,便于后面存入DB m_hostEntityList.add(converHostHistory(properties, SnmpDeviceConstants.HARDDISK)); used += bean.getUsed(); size += bean.getSize(); System.out.println(bean.getLabel()); partitionStatus.add(bean); } } hardDiskStatus.setSize(size); hardDiskStatus.setUsed(used); hardDiskStatus.setPartitionStatus(partitionStatus); return hardDiskStatus; }
public SnmpDeviceHistoryBaseStatus process(Results results) { SnmpDeviceHistoryBaseStatus baseStatus = null; // 保存状态和入库信息 HostDeviceStatus hostDeviceStatus = new HostDeviceStatus(); // 状态信息,供前台调用 if (results != null && results.getResultList() != null) { for (Result result : results.getResultList()) { String deviceName = result.getTrackerName(); if ("ifTable".equals(deviceName)) { // 网络设备状态 NetworkStatus networkStatus = convertNetworkStatus(result); hostDeviceStatus.setNetworkStatus(networkStatus); continue; } if ("hrStorageTable".equals(deviceName)) { // 内存状态 hostDeviceStatus.setMemoryStatus(convertMemoryStatus(result)); // 硬盘状态 hostDeviceStatus.setHardDiskStatus(convertHardDiskStatus(result)); continue; } if ("hrProcessorTable".equals(deviceName)) { // CPU状态 hostDeviceStatus.setCpuStatus(convertCPUStatus(result)); continue; } if ("hrSWRunTable".equals(deviceName)) { // 进程状态 hostDeviceStatus.setProcessesStatus(convertProcessesStatus(result)); continue; } } } // 入库设置 if (!m_hostEntityList.isEmpty()) { baseStatus = new SnmpDeviceHistoryBaseStatus(); copyProperties(results.getNodeid(), results.getIpAddr(), results.getBrand()); baseStatus.setSnmpDeviceHistoryBaseEntity(m_baseEntity); hostDeviceStatus.setActive(true); hostDeviceStatus.setNodeid(results.getNodeid()); hostDeviceStatus.setIpAddr(results.getIpAddr()); hostDeviceStatus.setDomain(SnmpDeviceLocator.getDomainId(results.getNodeid())); baseStatus.setHostDeviceStatus(hostDeviceStatus); } return baseStatus; }
// convert memory status private MemoryStatus convertMemoryStatus(Result result) { MemoryStatus memoryStatus = new MemoryStatus(); for (Map<String, Object> properties : result.getListResults()) { // log().info(properties.toString()); if (Integer.parseInt(String.valueOf(properties.get("index"))) == 8) { populate(memoryStatus, properties); // log().info(memoryStatus.toString()); // 加入到历史信息集合,便于后面存入DB m_hostEntityList.add(converHostHistory(properties, SnmpDeviceConstants.MEMORY)); break; } } return memoryStatus; }
// convert process status private ProcessesStatus convertProcessesStatus(Result result) { ProcessesStatus processesStatus = new ProcessesStatus(); List<ProcessStatus> processStatuses = new ArrayList<ProcessStatus>(); for (Map<String, Object> properties : result.getListResults()) { ProcessStatus bean = new ProcessStatus(); populate(bean, properties); // log().info(bean.toString()); processStatuses.add(bean); // 加入到历史信息集合,便于后面存入DB // m_hostHistoryEntity.add(converHostHistory(properties, // SnmpDeviceConstants.PROCESS_HOST_RESOURCE)); } processesStatus.setProcessStatus(processStatuses); log().info(processesStatus.toString()); return processesStatus; }