Best Python code snippet using autotest_python
netconsole.py
Source:netconsole.py
...51 stdout = stderr = open(os.devnull, "w")52 self.__logger = subprocess.Popen(cmd, stdin=stdin, stdout=stdout,53 stderr=stderr)54 os.close(w)55 self.__unload_netconsole_module()56 self.__load_netconsole_module()57 def stop_loggers(self):58 super(NetconsoleHost, self).stop_loggers()59 if self.__logger:60 utils.nuke_subprocess(self.__logger)61 self.__logger = None62 if self.job:63 self.job.warning_loggers.discard(self.__warning_stream)64 self.__warning_stream.close()65 def reboot_setup(self, *args, **dargs):66 super(NetconsoleHost, self).reboot_setup(*args, **dargs)67 if self.__netconsole_params is not None:68 label = dargs.get("label", None)69 if not label:70 label = self.bootloader.get_default_title()71 args = "debug " + self.__netconsole_params72 self.bootloader.add_args(label, args)73 self.__unload_netconsole_module()74 def reboot_followup(self, *args, **dargs):75 super(NetconsoleHost, self).reboot_followup(*args, **dargs)76 self.__load_netconsole_module()77 def __determine_netconsole_params(self):78 """79 Connect to the remote machine and determine the values to use for the80 required netconsole parameters.81 """82 # determine the IP addresses of the local and remote machine83 # PROBLEM: on machines with multiple IPs this may not make any sense84 # It also doesn't work with IPv685 remote_ip = socket.gethostbyname(self.hostname)86 local_ip = socket.gethostbyname(socket.gethostname())87 # Get the gateway of the remote machine88 try:89 traceroute = self.run('traceroute -n %s' % local_ip)90 except error.AutoservRunError:91 return92 first_node = traceroute.stdout.split("\n")[0]93 match = re.search(r'\s+((\d+\.){3}\d+)\s+', first_node)94 if match:95 router_ip = match.group(1)96 else:97 return98 # Look up the MAC address of the gateway99 try:100 self.run('ping -c 1 %s' % router_ip)101 arp = self.run('arp -n -a %s' % router_ip)102 except error.AutoservRunError:103 return104 match = re.search(r'\s+(([0-9A-F]{2}:){5}[0-9A-F]{2})\s+', arp.stdout)105 if match:106 gateway_mac = match.group(1)107 else:108 return None109 return 'netconsole=@%s/,%s@%s/%s' % (remote_ip, self.__port, local_ip,110 gateway_mac)111 def __load_netconsole_module(self):112 """113 Make a best effort to load the netconsole module.114 Note that loading the module can fail even when the remote machine is115 working correctly if netconsole is already compiled into the kernel116 and started.117 """118 if self.__netconsole_params is None:119 return120 try:121 self.run('dmesg -n 8')122 self.run('modprobe netconsole %s' % self.__netconsole_params)123 except error.AutoservRunError, e:124 # if it fails there isn't much we can do, just keep going125 print "ERROR occurred while loading netconsole: %s" % e126 def __unload_netconsole_module(self):127 try:128 self.run('modprobe -r netconsole')129 except error.AutoservRunError:...
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!!