def test_getpdu_xcvr_info(self): sub_id = 1000 * 1 # sub id for Ethernet100 expected_mib = { 2: (ValueType.OCTET_STRING, "QSFP+ for Ethernet0"), 5: (ValueType.INTEGER, PhysicalClass.PORT), 7: (ValueType.OCTET_STRING, ""), # skip 8: (ValueType.OCTET_STRING, "A1"), 9: (ValueType.OCTET_STRING, ""), # skip 10: (ValueType.OCTET_STRING, ""), # skip 11: (ValueType.OCTET_STRING, "SERIAL_NUM"), 12: (ValueType.OCTET_STRING, "VENDOR_NAME"), 13: (ValueType.OCTET_STRING, "MODEL_NAME") } oids = [ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, field_sub_id, sub_id)) for field_sub_id in expected_mib] get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=oids ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) for mib_key, value in zip(expected_mib, response.values): expected_oid = ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, mib_key, sub_id)) expected_type, expected_value = expected_mib[mib_key] self.assertEqual(str(value.name), str(expected_oid)) self.assertEqual(value.type_, expected_type) self.assertEqual(str(value.data), str(expected_value))
def test_getpdu_xcvr_info(self): sub_id = 1000 * 1 # sub id for Ethernet100 expected_mib = { 2: (ValueType.OCTET_STRING, "QSFP+ for etp1"), 5: (ValueType.INTEGER, PhysicalClass.PORT), 7: (ValueType.OCTET_STRING, ""), # skip 8: (ValueType.OCTET_STRING, "A1"), 9: (ValueType.OCTET_STRING, ""), # skip 10: (ValueType.OCTET_STRING, ""), # skip 11: (ValueType.OCTET_STRING, "SERIAL_NUM"), 12: (ValueType.OCTET_STRING, "VENDOR_NAME"), 13: (ValueType.OCTET_STRING, "MODEL_NAME") } oids = [ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, field_sub_id, sub_id)) for field_sub_id in expected_mib] get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=oids ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) for mib_key, value in zip(expected_mib, response.values): expected_oid = ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, mib_key, sub_id)) expected_type, expected_value = expected_mib[mib_key] self.assertEqual(str(value.name), str(expected_oid)) self.assertEqual(value.type_, expected_type) self.assertEqual(str(value.data), str(expected_value))
def test_getnextpdu_lag(self): get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=(ObjectIdentifier( 20, 0, 0, 0, (1, 3, 6, 1, 2, 1, 17, 7, 1, 2, 2, 1, 2, 101)), )) response = get_pdu.make_response(self.lut) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.INTEGER) self.assertEqual(value0.data, BaseIdx.portchannel_base_idx + 101)
def test_subtype_lldp_loc_man_addr_table(self): oid = ObjectIdentifier(13, 0, 1, 0, (1, 0, 8802, 1, 1, 2, 1, 3, 8, 1, 3, 1, 4)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) response = get_pdu.make_response(self.lut) value0 = response.values[0] self.assertEqual(str(value0.name), str(ObjectIdentifier(13, 0, 1, 0, (1, 0, 8802, 1, 1, 2, 1, 3, 8, 1, 3, 1, 4, 10, 224, 25, 26)))) self.assertEqual(value0.type_, ValueType.INTEGER) self.assertEqual(value0.data, 5)
def test_getnextpdu_lldpRemSysCapEnabled(self): oid = ObjectIdentifier(12, 0, 1, 0, (1, 0, 8802, 1, 1, 2, 1, 4, 1, 1, 12, 1, 1)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.OCTET_STRING) self.assertEqual(str(value0.name), str(ObjectIdentifier(12, 0, 1, 0, (1, 0, 8802, 1, 1, 2, 1, 4, 1, 1, 12, 1, 1)))) self.assertEqual(str(value0.data), "\x28\x00")
def test_getnextpdu_empty(self): get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=(ObjectIdentifier(12, 0, 0, 0, (1, 3, 6, 1, 2, 1, 4, 24, 4, 1, 1, 255)), )) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) n = len(response.values) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.END_OF_MIB_VIEW)
def test_getnextpdu_local_port_identification(self): # oid.include = 1 oid = ObjectIdentifier(11, 0, 1, 0, (1, 0, 8802, 1, 1, 2, 1, 3, 7, 1, 3)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.OCTET_STRING) self.assertEqual(str(value0.data), "etp1")
def test_getnextpdu_local_port_identification(self): # oid.include = 1 oid = ObjectIdentifier(11, 0, 1, 0, (1, 0, 8802, 1, 1, 2, 1, 3, 7, 1, 3)) get_pdu = GetNextPDU(header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid]) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.OCTET_STRING) self.assertEqual(str(value0.data), "etp1")
def test_getPfcSubtree(self): # Subtree for port oid = ObjectIdentifier(32, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 813, 1, 1)) expected_oid = ObjectIdentifier(32, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 813, 1, 1, 1, 1, 1)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET_NEXT, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut_port) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.COUNTER_64) self.assertEqual(str(value0.name), str(expected_oid)) self.assertEqual(value0.data, 4) # Subtree for Priority oid = ObjectIdentifier(33, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 813, 1, 2)) expected_oid = ObjectIdentifier(33, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 813, 1, 2, 1, 2, 1, 0)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET_NEXT, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut_prio) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.COUNTER_64) self.assertEqual(str(value0.name), str(expected_oid)) self.assertEqual(value0.data, 209347219842134092490 % pow(2, 64)) # Test integer truncation
def test_getnextpdu_noeth(self): # oid.include = 1 oid = ObjectIdentifier(12, 0, 1, 0, (1, 0, 8802, 1, 1, 2, 1, 4, 1, 1, 7, 18545, 126, 1)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) print("GetNextPDU sr=", get_pdu.sr) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.END_OF_MIB_VIEW)
def test_getnextpdu(self): get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=(ObjectIdentifier( 20, 0, 0, 0, (1, 3, 6, 1, 2, 1, 17, 7, 1, 2, 2, 1, 2, 999)), )) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) n = len(response.values) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.INTEGER) self.assertEqual(value0.data, 113)
def test_getnextpdu_noeth(self): # oid.include = 1 oid = ObjectIdentifier( 12, 0, 1, 0, (1, 0, 8802, 1, 1, 2, 1, 4, 1, 1, 7, 18545, 126, 1)) get_pdu = GetNextPDU(header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid]) print("GetNextPDU sr=", get_pdu.sr) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.END_OF_MIB_VIEW)
def test_getnextpdu(self): get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=(ObjectIdentifier( 20, 0, 0, 0, (1, 3, 6, 1, 2, 1, 4, 22, 1, 2, 37, 10, 0, 0, 19)), )) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) n = len(response.values) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.OCTET_STRING) self.assertEqual(value0.data.string, b'\x52\x54\x00\xd0\xa0\x8c')
def test_getnextpdu_chassis_serial_number(self): oid = ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, 11)) expected_oid = ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, 11, 1)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET_NEXT, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) value0 = response.values[0] self.assertEqual(str(value0.name), str(expected_oid)) self.assertEqual(value0.type_, ValueType.OCTET_STRING) self.assertEqual(str(value0.data), "SAMPLETESTSN")
def test_getNextPsu3(self): oid = ObjectIdentifier(2, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 117, 1, 1, 2, 1, 2, 3)) expected_oid = None get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET_NEXT, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.END_OF_MIB_VIEW) self.assertEqual(str(value0.name), str(oid)) self.assertEqual(value0.data, None)
def test_getNextPsu3(self): oid = ObjectIdentifier(2, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 117, 1, 1, 2, 1, 2, 3)) expected_oid = None get_pdu = GetNextPDU(header=PDUHeader(1, PduTypes.GET_NEXT, 16, 0, 42, 0, 0, 0), oids=[oid]) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.END_OF_MIB_VIEW) self.assertEqual(str(value0.name), str(oid)) self.assertEqual(value0.data, None)
def test_getnextpdu(self): get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=(ObjectIdentifier(21, 0, 0, 0, (1, 3, 6, 1, 2, 1, 4, 24, 4, 1, 1, 0)), )) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) n = len(response.values) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.IP_ADDRESS) self.assertEqual(str(value0.data), ipaddress.ip_address("0.0.0.0").packed.decode())
def test_getnextpdu_empty(self): get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=( ObjectIdentifier(20, 0, 0, 0, (1, 3, 6, 1, 2, 1, 17, 7, 1, 2, 2, 1, 3)), ) ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) n = len(response.values) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.END_OF_MIB_VIEW)
def test_getnextpdu_firstifalias(self): oid = ObjectIdentifier(10, 0, 1, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 18)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.OCTET_STRING) self.assertEqual(str(value0.name), str(ObjectIdentifier(11, 0, 1, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 18, 1)))) self.assertEqual(str(value0.data), 'snowflake')
def test_getpdu_xcvr_dom(self): expected_mib = { 1000 * 1 + 1: "DOM Temperature Sensor for etp1", 1000 * 1 + 2: "DOM Voltage Sensor for etp1", 1000 * 1 + 11: "DOM RX Power Sensor for etp1/1", 1000 * 1 + 21: "DOM RX Power Sensor for etp1/2", 1000 * 1 + 31: "DOM RX Power Sensor for etp1/3", 1000 * 1 + 41: "DOM RX Power Sensor for etp1/4", 1000 * 1 + 12: "DOM TX Bias Sensor for etp1/1", 1000 * 1 + 22: "DOM TX Bias Sensor for etp1/2", 1000 * 1 + 32: "DOM TX Bias Sensor for etp1/3", 1000 * 1 + 42: "DOM TX Bias Sensor for etp1/4", 1000 * 1 + 13: "DOM TX Power Sensor for etp1/1", 1000 * 1 + 23: "DOM TX Power Sensor for etp1/2", 1000 * 1 + 33: "DOM TX Power Sensor for etp1/3", 1000 * 1 + 43: "DOM TX Power Sensor for etp1/4", } phyDescr, phyClass = 2, 5 # check physical class value oids = [ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, field_id, sub_id)) for field_id in (phyDescr, phyClass) for sub_id in expected_mib] get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=oids ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) for mib_key, value in zip(expected_mib, response.values): if phyClass == value.name.subids[-2]: sub_id = (phyClass, mib_key) expected_type, expected_value = ValueType.INTEGER, PhysicalClass.SENSOR elif phyDescr == value.name.subids[-2]: sub_id = (phyDescr, mib_key) expected_type, expected_value = ValueType.OCTET_STRING, expected_mib[mib_key] else: # received unexpected self.assertTrue(False) expected_oid = ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, *sub_id)) self.assertEqual(str(value.name), str(expected_oid)) self.assertEqual(value.type_, expected_type) self.assertEqual(str(value.data), str(expected_value))
def test_getpdu_xcvr_dom(self): expected_mib = { 1000 * 1 + 1: "DOM Temperature Sensor for Ethernet0", 1000 * 1 + 2: "DOM Voltage Sensor for Ethernet0", 1000 * 1 + 11: "DOM RX Power Sensor for Ethernet0/1", 1000 * 1 + 21: "DOM RX Power Sensor for Ethernet0/2", 1000 * 1 + 31: "DOM RX Power Sensor for Ethernet0/3", 1000 * 1 + 41: "DOM RX Power Sensor for Ethernet0/4", 1000 * 1 + 12: "DOM TX Bias Sensor for Ethernet0/1", 1000 * 1 + 22: "DOM TX Bias Sensor for Ethernet0/2", 1000 * 1 + 32: "DOM TX Bias Sensor for Ethernet0/3", 1000 * 1 + 42: "DOM TX Bias Sensor for Ethernet0/4", 1000 * 1 + 13: "DOM TX Power Sensor for Ethernet0/1", 1000 * 1 + 23: "DOM TX Power Sensor for Ethernet0/2", 1000 * 1 + 33: "DOM TX Power Sensor for Ethernet0/3", 1000 * 1 + 43: "DOM TX Power Sensor for Ethernet0/4", } phyDescr, phyClass = 2, 5 # check physical class value oids = [ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, field_id, sub_id)) for field_id in (phyDescr, phyClass) for sub_id in expected_mib] get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=oids ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) for mib_key, value in zip(expected_mib, response.values): if phyClass == value.name.subids[-2]: sub_id = (phyClass, mib_key) expected_type, expected_value = ValueType.INTEGER, PhysicalClass.SENSOR elif phyDescr == value.name.subids[-2]: sub_id = (phyDescr, mib_key) expected_type, expected_value = ValueType.OCTET_STRING, expected_mib[mib_key] else: # received unexpected self.assertTrue(False) expected_oid = ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, *sub_id)) self.assertEqual(str(value.name), str(expected_oid)) self.assertEqual(value.type_, expected_type) self.assertEqual(str(value.data), str(expected_value))
def test_getnextpdu_first_default_status(self): oid = ObjectIdentifier(10, 0, 1, 0, (1, 3, 6, 1, 2, 1, 4, 24, 4, 1, 16)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) n = len(response.values) # self.assertEqual(n, 7) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.INTEGER) self.assertEqual(str(value0.name), '.1.3.6.1.2.1.4.24.4.1.16.0.0.0.0.0.0.0.0.0.10.0.0.1') self.assertEqual(value0.data, 1)
def test_getnextpdu(self): get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=( ObjectIdentifier(10, 0, 0, 0, (1, 3, 6, 1, 2, 1, 4, 21, 1, 7)), ) ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) n = len(response.values) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.IP_ADDRESS) self.assertEqual(str(value0.data), ipaddress.ip_address("10.0.0.1").packed.decode())
def test_getnextpdu_eth1(self): oid = ObjectIdentifier(12, 0, 1, 0, (1, 0, 8802, 1, 1, 2, 1, 4, 1, 1, 7, 1, 1)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) print("GetNextPDU sr=", get_pdu.sr) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.OCTET_STRING) print("test_getnextpdu_exactmatch: ", str(oid)) self.assertEqual(str(value0.name), str(ObjectIdentifier(11, 0, 1, 0, (1, 0, 8802, 1, 1, 2, 1, 4, 1, 1, 7, 1, 1)))) self.assertEqual(str(value0.data), "Ethernet1")
def test_getnextpdu(self): get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=( ObjectIdentifier(20, 0, 0, 0, (1, 3, 6, 1, 2, 1, 4, 22, 1, 2, 37, 10, 0, 0, 19)), ) ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) n = len(response.values) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.OCTET_STRING) self.assertEqual(value0.data.string, b'\x52\x54\x00\xd0\xa0\x8c')
def test_getnextpdu_exactmatch(self): oid = ObjectIdentifier(24, 0, 1, 0, (1, 3, 6, 1, 2, 1, 4, 24, 4, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 17)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) n = len(response.values) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.IP_ADDRESS) print("test_getnextpdu_exactmatch: ", str(oid)) self.assertEqual(str(value0.name), str(oid)) self.assertEqual(str(value0.data), ipaddress.ip_address("0.0.0.0").packed.decode())
def test_getnextpdu_exactmatch(self): oid = ObjectIdentifier(14, 0, 1, 0, (1, 3, 6, 1, 2, 1, 4, 21, 1, 7, 0, 0, 0, 0)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) n = len(response.values) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.IP_ADDRESS) print("test_getnextpdu_exactmatch: ", str(oid)) self.assertEqual(str(value0.name), str(oid)) self.assertEqual(str(value0.data), ipaddress.ip_address("10.0.0.1").packed.decode())
def test_getnextpdu_secondifindex(self): oid = ObjectIdentifier(11, 0, 0, 0, (1, 3, 6, 1, 2, 1, 2, 2, 1, 1, 1)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) n = len(response.values) # self.assertEqual(n, 7) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.INTEGER) self.assertEqual(str(value0.name), str(ObjectIdentifier(11, 0, 1, 0, (1, 3, 6, 1, 2, 1, 2, 2, 1, 1, 5)))) self.assertEqual(value0.data, 4)
def test_getSubtreeForQueueCounters(self): oid = ObjectIdentifier(8, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 580, 1, 5, 5)) expected_oid = ObjectIdentifier( 8, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 580, 1, 5, 5, 1, 4, 1, 2, 1, 1)) get_pdu = GetNextPDU(header=PDUHeader(1, PduTypes.GET_NEXT, 16, 0, 42, 0, 0, 0), oids=[oid]) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.COUNTER_64) self.assertEqual(str(value0.name), str(expected_oid)) self.assertEqual(value0.data, 1)
def test_low_speed(self): """ For an interface with a speed inside the 32 bit counter returns the speed of the interface in bps """ oid = ObjectIdentifier(11, 0, 0, 0, (1, 3, 6, 1, 2, 1, 2, 2, 1, 5, 113)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.GAUGE_32) self.assertEqual(str(value0.name), str(ObjectIdentifier(11, 0, 1, 0, (1, 3, 6, 1, 2, 1, 2, 2, 1, 5, 117)))) self.assertEqual(value0.data, 1000000000)
def test_no_speed(self): """ For a port with no speed in the db the result should be 40000 """ oid = ObjectIdentifier(12, 0, 0, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 15, 117)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.GAUGE_32) self.assertEqual(str(value0.name), str(ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 15, 121)))) self.assertEqual(value0.data, 40000)
def test_high_speed(self): """ should return the speed of the interface """ oid = ObjectIdentifier(12, 0, 0, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 15, 1)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.GAUGE_32) self.assertEqual(str(value0.name), str(ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 15, 5)))) self.assertEqual(value0.data, 100000)
def test_getNextPduindicationForPort(self): oid = ObjectIdentifier(32, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 813, 1, 1, 1, 2, 1)) expected_oid = ObjectIdentifier(32, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 813, 1, 1, 1, 2, 5)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut_port) print(response) n = len(response.values) print('values = ' + str(n)) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.COUNTER_64) self.assertEqual(str(value0.name), str(expected_oid)) self.assertEqual(value0.data, 4)
def test_getnextpdu_chassis_class(self): """ Test chassis physical class """ oid = ObjectIdentifier(12, 0, 0, 0, (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, 5)) expected_oid = ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, 5, 1)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET_NEXT, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) value0 = response.values[0] self.assertEqual(str(value0.name), str(expected_oid)) self.assertEqual(value0.type_, ValueType.INTEGER) self.assertEqual(value0.data, PhysicalClass.CHASSIS)
def test_getnextpdu_first_default(self): # oid.include = 1 oid = ObjectIdentifier(10, 0, 1, 0, (1, 3, 6, 1, 2, 1, 4, 24, 4, 1)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) n = len(response.values) # self.assertEqual(n, 7) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.IP_ADDRESS) self.assertEqual(str(value0.name), '.1.3.6.1.2.1.4.24.4.1.1.0.0.0.0.0.0.0.0.0.10.0.0.1') self.assertEqual(str(value0.data), ipaddress.ip_address("0.0.0.0").packed.decode())
def test_mgmt_iface(self): """ Test that mgmt port is present in the MIB """ oid = ObjectIdentifier(11, 0, 0, 0, (1, 3, 6, 1, 2, 1, 2, 2, 1, 1, 10000)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.INTEGER) self.assertEqual(str(value0.name), str(ObjectIdentifier(11, 0, 1, 0, (1, 3, 6, 1, 2, 1, 2, 2, 1, 1, 10001)))) self.assertEqual(value0.data, 10000)
def test_high_speed(self): """ For a speed higher than 4,294,967,295 the retrun should be 4294967295 """ oid = ObjectIdentifier(11, 0, 0, 0, (1, 3, 6, 1, 2, 1, 2, 2, 1, 5, 1)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.GAUGE_32) self.assertEqual(str(value0.name), str(ObjectIdentifier(11, 0, 1, 0, (1, 3, 6, 1, 2, 1, 2, 2, 1, 5, 5)))) self.assertEqual(value0.data, 4294967295)
def test_no_description(self): """ For a port with no description in the db the result should be ian empty string """ oid = ObjectIdentifier(12, 0, 0, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 18, 113)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.OCTET_STRING) self.assertEqual(str(value0.name), str(ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 18, 117)))) self.assertEqual(str(value0.data), '')
def test_if_type_portchannel(self): """ For portchannel the type shpuld be 161 """ oid = ObjectIdentifier(11, 0, 0, 0, (1, 3, 6, 1, 2, 1, 2, 2, 1, 3, 1002)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.INTEGER) self.assertEqual(str(value0.name), str(ObjectIdentifier(11, 0, 1, 0, (1, 3, 6, 1, 2, 1, 2, 2, 1, 3, 1003)))) self.assertEqual(value0.data, 161)
def test_getnextpdu_first_default_status(self): oid = ObjectIdentifier(10, 0, 1, 0, (1, 3, 6, 1, 2, 1, 4, 24, 4, 1, 16)) get_pdu = GetNextPDU(header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid]) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) n = len(response.values) # self.assertEqual(n, 7) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.INTEGER) self.assertEqual( str(value0.name), '.1.3.6.1.2.1.4.24.4.1.16.0.0.0.0.0.0.0.0.0.10.0.0.1') self.assertEqual(value0.data, 1)
def test_getnextpdu_firstifalias(self): # oid.include = 1 oid = ObjectIdentifier(10, 0, 1, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 18)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) n = len(response.values) # self.assertEqual(n, 7) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.OCTET_STRING) self.assertEqual(str(value0.name), str(ObjectIdentifier(11, 0, 1, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 18, 1)))) self.assertEqual(str(value0.data), 'Ethernet0')
def test_getnextpdu_exactmatch_asic0(self): # oid.include = 1 oid = ObjectIdentifier(20, 0, 1, 0, (1, 3, 6, 1, 2, 1, 17, 7, 1, 2, 2, 1, 2, 1000, 124, 254, 144, 128, 159, 6)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) n = len(response.values) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.INTEGER) print("test_getnextpdu_exactmatch: ", str(oid)) self.assertEqual(str(value0.name), str(oid)) self.assertEqual(value0.data, 9000)
def test_getnextpdu_exactmatch(self): # oid.include = 1 oid = ObjectIdentifier( 20, 0, 1, 0, (1, 3, 6, 1, 2, 1, 4, 22, 1, 2, 37, 10, 0, 0, 19)) get_pdu = GetNextPDU(header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid]) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) n = len(response.values) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.OCTET_STRING) print("test_getnextpdu_exactmatch: ", str(oid)) self.assertEqual(str(value0.name), str(oid)) self.assertEqual(value0.data.string, b'\x52\x54\x00\x04\x52\x5d')
def test_low_speed(self): """ For an interface with a speed inside the 32 bit counter returns the speed of the interface in Mbps """ oid = ObjectIdentifier(12, 0, 0, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 15, 113)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.GAUGE_32) self.assertEqual(str(value0.name), str(ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 15, 117)))) self.assertEqual(value0.data, 1000)
def test_no_speed(self): """ For a port with no speed in the db the result should be 0 """ oid = ObjectIdentifier(11, 0, 0, 0, (1, 3, 6, 1, 2, 1, 2, 2, 1, 5, 117)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.GAUGE_32) self.assertEqual(str(value0.name), str(ObjectIdentifier(11, 0, 1, 0, (1, 3, 6, 1, 2, 1, 2, 2, 1, 5, 121)))) self.assertEqual(value0.data, 0)
def test_getnextpdu_exactmatch(self): # oid.include = 1 oid = ObjectIdentifier(20, 0, 1, 0, (1, 3, 6, 1, 2, 1, 4, 22, 1, 2, 37, 10, 0, 0, 19)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) n = len(response.values) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.OCTET_STRING) print("test_getnextpdu_exactmatch: ", str(oid)) self.assertEqual(str(value0.name), str(oid)) self.assertEqual(value0.data.string, b'\x52\x54\x00\x04\x52\x5d')
def test_getNextPduiAsic1indicationForPriority(self): oid = ObjectIdentifier(8, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 813, 1, 2, 1, 3, 9, 2)) expected_oid = ObjectIdentifier(8, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 813, 1, 2, 1, 3, 9, 3)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut_prio) print(response) n = len(response.values) print('values = ' + str(n)) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.COUNTER_64) self.assertEqual(str(value0.name), str(expected_oid)) self.assertEqual(value0.data, 4)
def test_getnextpdu_exactmatch(self): # oid.include = 1 oid = ObjectIdentifier(20, 0, 1, 0, (1, 3, 6, 1, 2, 1, 17, 7, 1, 2, 2, 1, 2, 1000, 124, 254, 144, 128, 159, 4)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) print(response) n = len(response.values) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.INTEGER) print("test_getnextpdu_exactmatch: ", str(oid)) self.assertEqual(str(value0.name), str(oid)) self.assertEqual(value0.data, 113)
def test_lastPduRequestForPort(self): oid = ObjectIdentifier(32, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 813, 1, 1, 1, 1, 9024)) expected_oid = ObjectIdentifier(32, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 813, 1, 1, 1, 1, 9028)) get_pdu = GetNextPDU( header=PDUHeader(1, PduTypes.GET_NEXT, 16, 0, 42, 0, 0, 0), oids=[oid] ) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut_port) print(response) n = len(response.values) print('values = ' + str(n)) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.COUNTER_64) self.assertEqual(str(value0.name), str(expected_oid)) self.assertEqual(value0.data, 4)