How to use config_resource_disk_dump_path method in lisa

Best Python code snippet using lisa_python

kdumpcrash.py

Source:kdumpcrash.py Github

copy

Full Screen

...245 total_memory = free.get_total_memory()246 if "T" in total_memory and float(total_memory.strip("T")) > 1:247 # System memory is more than 1T, need to change the dump path248 # and set crashkernel=2G249 kdump.config_resource_disk_dump_path(250 self._get_resource_disk_dump_path(node)251 )252 self.crash_kernel = "2G"253 self.timeout_of_dump_crash = 1200254 if float(total_memory.strip("T")) > 6:255 self.timeout_of_dump_crash = 2000256 kdump.config_crashkernel_memory(self.crash_kernel)257 kdump.enable_kdump_service()258 # Cleaning up any previous crash dump files259 node.execute(260 f"mkdir -p {kdump.dump_path} && rm -rf {kdump.dump_path}/*",261 shell=True,262 sudo=True,263 )...

Full Screen

Full Screen

kdump.py

Source:kdump.py Github

copy

Full Screen

...257 # Update grub258 update_cmd = self._get_crashkernel_update_cmd(crashkernel)259 result = self.node.execute(update_cmd, sudo=True, shell=True)260 result.assert_exit_code(message="Failed to update grub")261 def config_resource_disk_dump_path(self, dump_path: str) -> None:262 """263 If the system memory size is bigger than 1T, the default size of /var/crash264 may not be enough to store the dump file, need to configure the dump path.265 The distro which may not have enough space, need override this method.266 """267 return268 def enable_kdump_service(self) -> None:269 """270 This method enables the kdump service.271 """272 service = self.node.tools[Service]273 service.enable_service(self._get_kdump_service_name())274 def restart_kdump_service(self) -> None:275 """276 This method restarts the kdump service.277 """278 service = self.node.tools[Service]279 service.restart_service(self._get_kdump_service_name())280 def set_unknown_nmi_panic(self) -> None:281 """282 /proc/sys/kernel/unknown_nmi_panic:283 The value in this file affects behavior of handling NMI. When the value is284 non-zero, unknown NMI is trapped and then panic occurs. If need to dump the285 crash, the value should be set 1. Some architectures don't provide architected286 NMIs,such as ARM64, the system doesn't have this file, we don't need to set287 either.288 """289 nmi_panic_file = PurePath("/proc/sys/kernel/unknown_nmi_panic")290 if self.node.shell.exists(nmi_panic_file):291 sysctl = self.node.tools[Sysctl]292 sysctl.write("kernel.unknown_nmi_panic", "1")293 @retry(exceptions=LisaException, tries=60, delay=1)294 def _check_kexec_crash_loaded(self) -> None:295 """296 Sometimes it costs a while to load the value, so define this method as @retry297 """298 # If the dump_path is not "/var/crash", for example it is "/mnt/crash",299 # the kdump service may start before the /mnt is mounted. That will cause300 # "Dump path /mnt/crash does not exist" error. We need to restart it.301 if self.dump_path != "/var/crash":302 self.restart_kdump_service()303 cat = self.node.tools[Cat]304 result = cat.run(self.kexec_crash, force_run=True)305 if "1" != result.stdout:306 raise LisaException(f"{self.kexec_crash} file's value is not 1.")307 def _check_crashkernel_in_cmdline(self, crashkernel_memory: str) -> None:308 cat = self.node.tools[Cat]309 result = cat.run("/proc/cmdline", force_run=True)310 if f"crashkernel={crashkernel_memory}" not in result.stdout:311 raise LisaException(312 f"crashkernel={crashkernel_memory} boot parameter is not present in"313 "kernel cmdline"314 )315 def _check_crashkernel_memory_reserved(self) -> None:316 cat = self.node.tools[Cat]317 result = cat.run(self.iomem, force_run=True)318 if "Crash kernel" not in result.stdout:319 raise LisaException(320 f"No find 'Crash kernel' in {self.iomem}. Memory isn't reserved for"321 "crash kernel"322 )323 def check_crashkernel_loaded(self, crashkernel_memory: str) -> None:324 # Check crashkernel parameter in cmdline325 self._check_crashkernel_in_cmdline(crashkernel_memory)326 # Check crash kernel loaded327 if not self.node.shell.exists(PurePosixPath(self.kexec_crash)):328 raise LisaException(329 f"{self.kexec_crash} file doesn't exist. Kexec crash is not loaded."330 )331 self._check_kexec_crash_loaded()332 # Check if memory is reserved for crash kernel333 self._check_crashkernel_memory_reserved()334class KdumpRedhat(KdumpBase):335 @property336 def command(self) -> str:337 return "kdumpctl"338 def _install(self) -> bool:339 assert isinstance(self.node.os, Redhat)340 self.node.os.install_packages("kexec-tools")341 return self._check_exists()342 def _get_crashkernel_cfg_file(self) -> str:343 if self.node.os.information.version >= "8.0.0-0" and not isinstance(344 self.node.os, Oracle345 ):346 # For Redhat 8 and later version, we can use grubby command to config347 # crashkernel. No need to get the crashkernel cfg file348 return ""349 else:350 return "/etc/default/grub"351 def _get_crashkernel_update_cmd(self, crashkernel: str) -> str:352 if self.node.os.information.version >= "8.0.0-0" and not isinstance(353 self.node.os, Oracle354 ):355 return (356 "grubby --update-kernel=/boot/vmlinuz-$(uname -r)"357 f' --args="crashkernel={crashkernel}"'358 )359 else:360 if self.node.shell.exists(PurePosixPath("/sys/firmware/efi")):361 # System with UEFI firmware362 grub_file_path = self.node.execute(363 "find /boot/efi/EFI/* -name grub.cfg", shell=True, sudo=True364 )365 return f"grub2-mkconfig -o {grub_file_path}"366 else:367 # System with BIOS firmware368 return "grub2-mkconfig -o /boot/grub2/grub.cfg"369 def config_resource_disk_dump_path(self, dump_path: str) -> None:370 """371 If the system memory size is bigger than 1T, the default size of /var/crash372 may not be enough to store the dump file, need to change the dump path373 """374 kdump_conf = "/etc/kdump.conf"375 self.dump_path = dump_path376 # Change dump path in kdump conf377 sed = self.node.tools[Sed]378 sed.substitute(379 match_lines="^path",380 regexp="path",381 replacement="#path",382 file=kdump_conf,383 sudo=True,...

Full Screen

Full Screen

Automation Testing Tutorials

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.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run lisa automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful