def test_snmpwalk_by_cl(self): oid = "BRIDGE-MIB::dot1dTpFdbPort" # the result of SNMPWALK is None utils.exec_command = Mock(return_value=(0, None, None)) result = utils.snmpwalk_by_cl(self.host, self.credentials, oid) self.assertEqual([], result) # Successfully execute SNMPWALK return_value = "xxx.0.12.41.112.143.193 = INTEGER: 47\n" "xxx.0.12.41.139.17.124 = INTEGER: 47\n" expected_result = [{"iid": "0.12.41.112.143.193", "value": "47"}, {"iid": "0.12.41.139.17.124", "value": "47"}] utils.exec_command = Mock(return_value=(0, return_value, None)) result = utils.snmpwalk_by_cl(self.host, self.credentials, oid) self.assertEqual(expected_result, result)
def scan(self): """ Implemnets the scan method in BasePlugin class. In this mac module, mac addesses were retrieved by snmpwalk commandline. """ results = utils.snmpwalk_by_cl(self.host, self.credential, self.oid) if not results: logging.info("[Huawei][mac] No results returned from SNMP walk!") return None mac_list = [] for entity in results: # The format of 'iid' is like '248.192.1.214.34.15.31.1.48' # The first 6 numbers will be the MAC address # The 7th number is its vlan ID numbers = entity['iid'].split('.') mac = self.get_mac_address(numbers[:6]) vlan = numbers[6] port = self.get_port(entity['value']) tmp = {} tmp['port'] = port tmp['mac'] = mac tmp['vlan'] = vlan mac_list.append(tmp) return mac_list
def scan(self): """Implemnets the scan method in BasePlugin class. .. note:: In this mac module, mac addesses were retrieved by snmpwalk commandline. """ results = utils.snmpwalk_by_cl(self.host, self.credential, self.oid) if not results: logging.info("[Huawei][mac] No results returned from SNMP walk!") return None mac_list = [] for entity in results: # The format of 'iid' is like '248.192.1.214.34.15.31.1.48' # The first 6 numbers will be the MAC address # The 7th number is its vlan ID numbers = entity['iid'].split('.') mac = self.get_mac_address(numbers[:6]) vlan = numbers[6] port = self.get_port(entity['value']) tmp = {} tmp['port'] = port tmp['mac'] = mac tmp['vlan'] = vlan mac_list.append(tmp) return mac_list
def test_snmpwalk_by_cl(self): oid = "BRIDGE-MIB::dot1dTpFdbPort" # the result of SNMPWALK is None utils.exec_command = Mock(return_value=(0, None, None)) result = utils.snmpwalk_by_cl(self.host, self.credentials, oid) self.assertEqual([], result) # Successfully execute SNMPWALK return_value = ("xxx.0.12.41.112.143.193 = INTEGER: 47\n" "xxx.0.12.41.139.17.124 = INTEGER: 47\n") expected_result = [{ "iid": "0.12.41.112.143.193", "value": "47" }, { "iid": "0.12.41.139.17.124", "value": "47" }] utils.exec_command = Mock(return_value=(0, return_value, None)) result = utils.snmpwalk_by_cl(self.host, self.credentials, oid) self.assertEqual(expected_result, result)
def scan(self): results = None try: results = utils.snmpwalk_by_cl(self.host, self.credential, self.oid) except TimeoutError as e: logging.debug("PluginMac:scan snmpwalk_by_cl failed: %s", e.message) return None mac_list = [] for entity in results: ifIndex = entity['value'] if entity and int(ifIndex): tmp = {} mac_numbers = entity['iid'].split('.') tmp['mac'] = self.get_mac_address(mac_numbers) tmp['port'] = self.get_port(ifIndex) tmp['vlan'] = self.get_vlan_id(ifIndex) mac_list.append(tmp) return mac_list
def scan(self, **kwargs): """scan.""" results = None try: results = utils.snmpwalk_by_cl(self.host, self.credential, self.oid) except TimeoutError as error: logging.debug("PluginMac:scan snmpwalk_by_cl failed: %s", error.message) return None mac_list = [] for entity in results: if_index = entity['value'] if entity and int(if_index): tmp = {} mac_numbers = entity['iid'].split('.') tmp['mac'] = self.get_mac_address(mac_numbers) tmp['port'] = self.get_port(if_index) tmp['vlan'] = self.get_vlan_id(if_index) mac_list.append(tmp) return mac_list