Post fail: handle landing in dracut shell, upload rdsosreport
If a test fails to the dracut shell, we currently don't do anything useful. This should recognize when that happens, and upload rdsosreport.txt. Signed-off-by: Adam Williamson <awilliam@redhat.com>
This commit is contained in:
parent
e718f76c19
commit
536f699013
@ -25,10 +25,21 @@ sub post_fail_hook {
|
|||||||
|
|
||||||
save_screenshot;
|
save_screenshot;
|
||||||
$self->root_console();
|
$self->root_console();
|
||||||
|
# if we're in dracut, do things different
|
||||||
|
my $dracut = 0;
|
||||||
|
if (check_screen "root_console_dracut", 0) {
|
||||||
|
$dracut = 1;
|
||||||
|
script_run "dhclient";
|
||||||
|
}
|
||||||
# if we don't have tar or a network connection, we'll try and at
|
# if we don't have tar or a network connection, we'll try and at
|
||||||
# least send out *some* kinda info via the serial line
|
# least send out *some* kinda info via the serial line
|
||||||
my $hostip = testapi::host_ip();
|
my $hostip = testapi::host_ip();
|
||||||
if (script_run "ping -c 2 ${hostip}") {
|
if (script_run "ping -c 2 ${hostip}") {
|
||||||
|
if ($dracut) {
|
||||||
|
script_run 'printf "\n** RDSOSREPORT **\n" > /dev/' . $serialdev;
|
||||||
|
script_run "cat /run/initramfs/rdsosreport.txt > /dev/${serialdev}";
|
||||||
|
return;
|
||||||
|
}
|
||||||
script_run 'printf "\n** X.LOG **\n" > /dev/' . $serialdev;
|
script_run 'printf "\n** X.LOG **\n" > /dev/' . $serialdev;
|
||||||
script_run "cat /tmp/X.log > /dev/${serialdev}";
|
script_run "cat /tmp/X.log > /dev/${serialdev}";
|
||||||
script_run 'printf "\n** ANACONDA.LOG **\n" > /dev/' . $serialdev;
|
script_run 'printf "\n** ANACONDA.LOG **\n" > /dev/' . $serialdev;
|
||||||
@ -52,6 +63,12 @@ sub post_fail_hook {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($dracut) {
|
||||||
|
upload_logs "/run/initramfs/rdsosreport.txt", failok=>1;
|
||||||
|
# that's all that's really useful, so...
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
upload_logs "/tmp/X.log", failok=>1;
|
upload_logs "/tmp/X.log", failok=>1;
|
||||||
upload_logs "/tmp/anaconda.log", failok=>1;
|
upload_logs "/tmp/anaconda.log", failok=>1;
|
||||||
upload_logs "/tmp/packaging.log", failok=>1;
|
upload_logs "/tmp/packaging.log", failok=>1;
|
||||||
|
@ -37,6 +37,13 @@ sub post_fail_hook {
|
|||||||
console_loadkeys_us;
|
console_loadkeys_us;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# if we're in dracut, do things different
|
||||||
|
my $dracut = 0;
|
||||||
|
if (check_screen "root_console_dracut", 0) {
|
||||||
|
$dracut = 1;
|
||||||
|
script_run "dhclient";
|
||||||
|
}
|
||||||
|
|
||||||
# We can't rely on tar being in minimal installs, but we also can't
|
# We can't rely on tar being in minimal installs, but we also can't
|
||||||
# rely on dnf always working (it fails in emergency mode, not sure
|
# rely on dnf always working (it fails in emergency mode, not sure
|
||||||
# why), so try it, then check if we have tar
|
# why), so try it, then check if we have tar
|
||||||
@ -46,6 +53,11 @@ sub post_fail_hook {
|
|||||||
# least send out *some* kinda info via the serial line
|
# least send out *some* kinda info via the serial line
|
||||||
my $hostip = testapi::host_ip();
|
my $hostip = testapi::host_ip();
|
||||||
if ((script_run "rpm -q tar") || (script_run "ping -c 2 ${hostip}")) {
|
if ((script_run "rpm -q tar") || (script_run "ping -c 2 ${hostip}")) {
|
||||||
|
if ($dracut) {
|
||||||
|
script_run 'printf "\n** RDSOSREPORT **\n" > /dev/' . $serialdev;
|
||||||
|
script_run "cat /run/initramfs/rdsosreport.txt > /dev/${serialdev}";
|
||||||
|
return;
|
||||||
|
}
|
||||||
script_run 'printf "\n** IP ADDR **\n" > /dev/' . $serialdev;
|
script_run 'printf "\n** IP ADDR **\n" > /dev/' . $serialdev;
|
||||||
script_run "ip addr > /dev/${serialdev} 2>&1";
|
script_run "ip addr > /dev/${serialdev} 2>&1";
|
||||||
script_run 'printf "\n** IP ROUTE **\n" > /dev/' . $serialdev;
|
script_run 'printf "\n** IP ROUTE **\n" > /dev/' . $serialdev;
|
||||||
@ -57,6 +69,12 @@ sub post_fail_hook {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($dracut) {
|
||||||
|
upload_logs "/run/initramfs/rdsosreport.txt", failok=>1;
|
||||||
|
# that's all that's really useful, so...
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
# Note: script_run returns the exit code, so the logic looks weird.
|
# Note: script_run returns the exit code, so the logic looks weird.
|
||||||
# We're testing that the directory exists and contains something.
|
# We're testing that the directory exists and contains something.
|
||||||
unless (script_run 'test -n "$(ls -A /var/tmp/abrt)" && cd /var/tmp/abrt && tar czvf tmpabrt.tar.gz *') {
|
unless (script_run 'test -n "$(ls -A /var/tmp/abrt)" && cd /var/tmp/abrt && tar czvf tmpabrt.tar.gz *') {
|
||||||
|
18
needles/console/root_logged_in-dracut-20190116.json
Normal file
18
needles/console/root_logged_in-dracut-20190116.json
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"type": "match",
|
||||||
|
"xpos": 1,
|
||||||
|
"height": 14,
|
||||||
|
"width": 72,
|
||||||
|
"ypos": 753
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"root_logged_in",
|
||||||
|
"root_console",
|
||||||
|
"root_console_dracut",
|
||||||
|
"ENV-DISTRI-fedora"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/console/root_logged_in-dracut-20190116.png
Normal file
BIN
needles/console/root_logged_in-dracut-20190116.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.8 KiB |
Loading…
Reference in New Issue
Block a user