Best Python code snippet using lisa_python
nic.py
Source:nic.py
...253 ).is_not_empty()254 def _initialize(self, *args: Any, **kwargs: Any) -> None:255 self._node.log.debug("loading nic information...")256 self.nic_names = self._get_nic_names()257 self._get_node_nic_info()258 self._get_default_nic()259 self.load_interface_info()260 self._get_nic_uuids()261 for nic in self.get_upper_nics():262 self.get_nic_driver(nic)263 def _get_nic_names(self) -> List[str]:264 # identify all of the nics on the device, excluding tunnels and loopbacks etc.265 all_nics = self._node.execute(266 "ls /sys/class/net/",267 shell=True,268 sudo=True,269 ).stdout.split()270 virtual_nics = self._node.execute(271 "ls /sys/devices/virtual/net",272 shell=True,273 sudo=True,274 ).stdout.split()275 # remove virtual nics from the list276 non_virtual_nics = [x for x in all_nics if x not in virtual_nics]277 # verify if the nics names are not empty278 for item in non_virtual_nics:279 assert_that(item).described_as(280 "nic name could not be found"281 ).is_not_equal_to("")282 return non_virtual_nics283 def _get_nic_device(self, nic_name: str) -> str:284 slot_info_result = self._node.execute(285 f"readlink /sys/class/net/{nic_name}/device"286 )287 slot_info_result.assert_exit_code()288 base_device_result = self._node.execute(f"basename {slot_info_result.stdout}")289 base_device_result.assert_exit_code()290 # todo check addr matches expectation291 return base_device_result.stdout292 def _get_nic_uuid(self, nic_name: str) -> str:293 full_dev_path = self._node.execute(294 f"readlink /sys/class/net/{nic_name}/device",295 expected_exit_code_failure_message=(296 f"could not get sysfs device info for {nic_name}"297 ),298 )299 uuid = os.path.basename(full_dev_path.stdout.strip())300 self._node.log.debug(f"{nic_name} UUID:{uuid}")301 return uuid302 def _get_nic_uuids(self) -> None:303 for nic in self.get_upper_nics():304 self.nics[nic].dev_uuid = self._get_nic_uuid(nic)305 def _get_nic_numa_node(self, name: str) -> int:306 result = self._node.execute(307 f"cat /sys/class/net/{name}/device/numa_node",308 sudo=True,309 shell=True,310 expected_exit_code=0,311 expected_exit_code_failure_message=(312 f"Could not get numa information for nic {name}"313 ),314 )315 numa = int(result.stdout.strip())316 if numa == -1:317 numa = 0318 return numa319 def _get_node_nic_info(self) -> None:320 # Identify which nics are slaved to master devices.321 # This should be really simple with /usr/bin/ip but experience shows322 # the tool isn't super consistent across distros in this regard323 # use sysfs to gather upper/lower nic pairings and pci slot info324 nic_info_fetch_cmd = "ls -la /sys/class/net/*/lower*/device"325 self._node.log.debug(f"Gathering NIC information on {self._node.name}.")326 result = self._node.execute(327 nic_info_fetch_cmd,328 shell=True,329 )330 if result.exit_code != 0:331 nic_info_fetch_cmd = "ls -la /sys/class/net/*/device"332 result = self._node.execute(333 nic_info_fetch_cmd,...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!