def test_getpdu_disappeared(self): oid = ObjectIdentifier( 20, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 187, 1, 2, 5, 1, 3, 2, 16, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10)) get_pdu = GetPDU(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.NO_SUCH_INSTANCE)
def test_getPsu2Status(self): oid = ObjectIdentifier(2, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 117, 1, 1, 2, 1, 2, 2)) get_pdu = GetPDU(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.INTEGER) self.assertEqual(str(value0.name), str(oid)) self.assertEqual(value0.data, 2)
def test_getpdu_noinstance_eth0_docker0(self): oid = ObjectIdentifier( 20, 0, 1, 0, (1, 3, 6, 1, 2, 1, 4, 22, 1, 2, 9, 240, 127, 1, 1)) get_pdu = GetPDU(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.NO_SUCH_INSTANCE)
def test_getpdu_internal_noinstance(self): get_pdu = GetPDU(header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=(ObjectIdentifier( 20, 0, 0, 0, (1, 3, 6, 1, 2, 1, 4, 24, 4, 1, 1, 0, 0, 0, 0, 0, 10, 10, 0, 5)), )) 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.NO_SUCH_INSTANCE)
def test_getpdu(self): oid = ObjectIdentifier( 20, 0, 0, 0, (1, 3, 6, 1, 2, 1, 4, 22, 1, 2, 37, 10, 0, 0, 19)) get_pdu = GetPDU(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(oid)) self.assertEqual(value0.data.string, b'\x52\x54\x00\x04\x52\x5d')
def test_getPsu2Status(self): oid = ObjectIdentifier(2, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 117, 1, 1, 2, 1, 2, 2)) get_pdu = GetPDU( 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.INTEGER) self.assertEqual(str(value0.name), str(oid)) self.assertEqual(value0.data, 2)
def test_getPduIndicationForPort(self): oid = ObjectIdentifier(32, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 813, 1, 1, 1, 2, 1)) get_pdu = GetPDU(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) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.COUNTER_64) self.assertEqual(str(value0.name), str(oid)) self.assertEqual(value0.data, 4)
def test_getpdu(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, 15)) get_pdu = GetPDU( 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.IP_ADDRESS) self.assertEqual(str(value0.name), str(oid)) self.assertEqual(str(value0.data), ipaddress.ip_address("0.0.0.0").packed.decode())
def test_getpdu(self): oid = ObjectIdentifier(20, 0, 0, 0, (1, 3, 6, 1, 2, 1, 4, 22, 1, 2, 37, 10, 0, 0, 19)) get_pdu = GetPDU( 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(oid)) self.assertEqual(value0.data.string, b'\x52\x54\x00\x04\x52\x5d')
def test_getpdu_established_asic2(self): oid = ObjectIdentifier( 20, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 187, 1, 2, 5, 1, 3, 1, 4, 10, 10, 0, 5)) get_pdu = GetPDU(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(oid)) self.assertEqual(value0.data, 6)
def test_getpdu(self): oid = ObjectIdentifier(14, 0, 1, 0, (1, 3, 6, 1, 2, 1, 4, 21, 1, 7, 0, 0, 0, 0)) get_pdu = GetPDU( 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.IP_ADDRESS) self.assertEqual(str(value0.name), str(oid)) self.assertEqual(str(value0.data), ipaddress.ip_address("10.0.0.1").packed.decode())
def test_getMulticastQueueCounters(self): oid = ObjectIdentifier( 8, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 580, 1, 5, 5, 1, 4, 5, 2, 1, 9)) get_pdu = GetPDU(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.NO_SUCH_INSTANCE) self.assertEqual(str(value0.name), str(oid)) self.assertEqual(value0.data, None)
def test_getPduRequestForPriority(self): oid = ObjectIdentifier(8, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 813, 1, 2, 1, 2, 1, 0)) get_pdu = GetPDU( 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) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.COUNTER_64) self.assertEqual(str(value0.name), str(oid)) self.assertEqual(value0.data, 209347219842134092490 % pow(2, 64)) # Test integer truncation
def test_getPduIndicationForPort(self): oid = ObjectIdentifier(32, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 813, 1, 1, 1, 2, 1)) get_pdu = GetPDU( 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) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.COUNTER_64) self.assertEqual(str(value0.name), str(oid)) self.assertEqual(value0.data, 4)
def test_getPduRequestForPriority(self): oid = ObjectIdentifier(8, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 813, 1, 2, 1, 2, 9, 0)) get_pdu = GetPDU( 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) value0 = response.values[0] self.assertEqual(value0.type_, ValueType.COUNTER_64) self.assertEqual(str(value0.name), str(oid)) self.assertEqual(value0.data, 209347219842134092490 % pow(2, 64)) # Test integer truncation
def test_getpdu(self): oid = ObjectIdentifier(20, 0, 0, 0, (1, 3, 6, 1, 2, 1, 17, 7, 1, 2, 2, 1, 2, 1000, 124, 254, 144, 128, 159, 4)) get_pdu = GetPDU( 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(oid)) self.assertEqual(value0.data, 113)
def test_getpdu_noinstance(self): get_pdu = GetPDU( 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, 1000, 100001)), ) ) 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.NO_SUCH_INSTANCE)
def test_getpdu(self): oid = ObjectIdentifier(20, 0, 0, 0, (1, 3, 6, 1, 2, 1, 17, 7, 1, 2, 2, 1, 2, 1000, 124, 254, 144, 128, 159, 4)) get_pdu = GetPDU(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(oid)) self.assertEqual(value0.data, 113)
def test_roundtrip(self): get_pdu = GetPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=( ObjectIdentifier(4, 2, 0, 0, (1, 1, 1, 0)), ObjectIdentifier(4, 2, 0, 0, (2, 2, 2, 0)), ) ) encoded = get_pdu.encode() decoded = PDU.decode(encoded) self.assertEqual(decoded.header.type_, PduTypes.GET) self.assertIsInstance(get_pdu, GetPDU) self.assertEqual(get_pdu, decoded) print(get_pdu)
def test_getpdu_sysname(self): oid = ObjectIdentifier(9, 0, 0, 0, (1, 3, 6, 1, 2, 1, 1, 5, 0)) get_pdu = GetPDU(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) self.assertEqual( str(value0.name), str(ObjectIdentifier(9, 0, 0, 0, (1, 3, 6, 1, 2, 1, 1, 5, 0)))) self.assertEqual(str(value0.data), 'test_hostname')
def test_getpdu_established(self): print("hello") print(bgp4.CiscoBgp4MIB.bgpsession_updater.session_status_list) oid = ObjectIdentifier( 20, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 187, 1, 2, 5, 1, 3, 1, 4, 10, 10, 0, 0)) get_pdu = GetPDU(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(oid)) self.assertEqual(value0.data, 6)
def test_getnextpdu_exactmatch_asic0(self): # oid.include = 1 oid = ObjectIdentifier(20, 0, 1, 0, (1, 3, 6, 1, 2, 1, 4, 22, 1, 2, 1, 10, 0, 0, 0)) get_pdu = GetPDU(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\xa5\x70\x47')
def test_getQueueCounters(self): for counter_id in range(1, 8): 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 = GetPDU(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.COUNTER_64) self.assertEqual(str(value0.name), str(oid)) self.assertEqual(value0.data, 1)
def test_mgmt_iface_admin_status(self): """ Test mgmt port admin status """ oid = ObjectIdentifier(11, 0, 0, 0, (1, 3, 6, 1, 2, 1, 2, 2, 1, 7, 10001)) get_pdu = GetPDU( 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, 7, 10001)))) self.assertEqual(value0.data, 1)
def test_getpdu_loopback_status(self): loip_tuple = (10, 1, 0, 32) # ref: appl_db.json lomask_tuple = (255, 255, 255, 255) emptyip_tuple = (0, 0, 0, 0) oid = ObjectIdentifier( 24, 0, 1, 0, (1, 3, 6, 1, 2, 1, 4, 24, 4, 1, 16) + loip_tuple + lomask_tuple + (0, ) + emptyip_tuple) get_pdu = GetPDU(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.INTEGER) self.assertEqual(str(value0.name), str(oid)) self.assertEqual(value0.data, 1)
def test_mgmt_iface_description(self): """ Test mgmt port description (which is simply an alias) """ oid = ObjectIdentifier(11, 0, 0, 0, (1, 3, 6, 1, 2, 1, 2, 2, 1, 2, 10001)) get_pdu = GetPDU( 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, 2, 2, 1, 2, 10001)))) self.assertEqual(str(value0.data), 'mgmt1')
def test_mgmt_iface_alias(self): """ Test that mgmt port alias """ oid = ObjectIdentifier(11, 0, 0, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 1, 10001)) get_pdu = GetPDU( 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, 1, 10001)))) self.assertEqual(str(value0.data), 'mgmt1')
def test_getpdu_loopback_status(self): loip_tuple = (10, 1, 0, 32) # ref: appl_db.json lomask_tuple = (255, 255, 255, 255) emptyip_tuple = (0, 0, 0, 0) oid = ObjectIdentifier(24, 0, 1, 0 , (1, 3, 6, 1, 2, 1, 4, 24, 4, 1, 16) + loip_tuple + lomask_tuple + (0,) + emptyip_tuple ) get_pdu = GetPDU( 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.INTEGER) self.assertEqual(str(value0.name), str(oid)) self.assertEqual(value0.data, 1)
def test_vlan_iface_description_ifMIB(self): """ Test vlan interface description (which is simply the name) in the ifMIB OID path of the MIB """ oid = ObjectIdentifier(12, 0, 0, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 18, 3000)) get_pdu = GetPDU(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, 3000)))) self.assertEqual(str(value0.data), 'Vlan1000')
def _test_getpdu_xcvr_sensor(self, sub_id, expected_values): """ Test case for correctness of transceiver sensor MIB values :param sub_id: sub OID of the sensor :expected values: iterable of expected values TYPE, SCALE, PRECISION, VALUE """ # generate OIDs for TYPE(.1), SCALE(.2), PRECISION(.3), VALUE(.4) # for given sub OID oids = self.generate_oids_for_physical_sensor_mib(sub_id) get_pdu = GetPDU(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 index, value in enumerate(response.values): self.assertEqual(str(value.name), str(oids[index])) self.assertEqual(value.type_, ValueType.INTEGER) self.assertEqual(value.data, expected_values[index])
def test_mgmt_iface_speed(self): """ Test that mgmt port speed is 1000 """ oid = ObjectIdentifier(11, 0, 0, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 15, 10000)) get_pdu = GetPDU(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, 31, 1, 1, 1, 15, 10000)))) self.assertEqual(value0.data, 1000)
def test_mgmt_iface_name(self): """ Test that mgmt port is present in the MIB """ oid = ObjectIdentifier(11, 0, 0, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 1, 10000)) get_pdu = GetPDU(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, 1, 10000)))) self.assertEqual(str(value0.data), 'eth0')
def _test_getpdu_xcvr_sensor(self, sub_id, expected_values): """ Test case for correctness of transceiver sensor MIB values :param sub_id: sub OID of the sensor :expected values: iterable of expected values TYPE, SCALE, PRECISION, VALUE """ # generate OIDs for TYPE(.1), SCALE(.2), PRECISION(.3), VALUE(.4) # for given sub OID oids = self.generate_oids_for_physical_sensor_mib(sub_id) get_pdu = GetPDU( 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 index, value in enumerate(response.values): self.assertEqual(str(value.name), str(oids[index])) self.assertEqual(value.type_, ValueType.INTEGER) self.assertEqual(value.data, expected_values[index])