private String getPhysAddr() { final SnmpValue value = getValue(IF_PHYS_ADDR); String hexString = value == null ? null : value.toHexString(); String displayString = value == null ? null : value.toDisplayString(); // See ifTableEntry: NMS-4902 (revision cee964fe979e6465aeb4e2efd4772e50ebc54831) try { if (hexString != null && hexString.length() == 12) { // If the hex string is 12 characters long, than the agent is kinda weird and // is returning the value as a raw binary value that is 6 bytes in length. // But that's OK, as long as we can convert it into a string, that's fine. return hexString; } else { // This is the normal case that most agents conform to: the value is an ASCII // string representing the colon-separated MAC address. We just need to reformat // it to remove the colons and convert it into a 12-character string. return displayString == null || displayString.trim().isEmpty() ? null : InetAddressUtils.normalizeMacAddress(displayString); } } catch (IllegalArgumentException e) { LOG.warn(e.getMessage(), e); return displayString; } }
@Test public void testAgent() throws Exception { SnmpValue snmpValue = SnmpUtils.get(snmpAgentConfig, SnmpObjId.get(".1.3.6.1.2.1.1.1.0")); Assert.assertEquals("Mock Juniper TCA Device", snmpValue.toDisplayString()); }
private String getIfDescr() { final SnmpValue value = getValue(IF_DESCR); return value == null ? null : value.toDisplayString(); }
private String getIfAlias() { final SnmpValue value = getValue(IF_ALIAS); return value == null ? null : value.toDisplayString(); }
private String getIfName() { final SnmpValue value = getValue(IF_NAME); return value == null ? null : value.toDisplayString(); }