[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
[PATCH] tweak save-exception-to-disk algorithm
- From: Bill Nottingham <notting redhat com>
- To: anaconda-devel-list redhat com
- Subject: [PATCH] tweak save-exception-to-disk algorithm
- Date: Fri, 7 Dec 2007 13:46:06 -0500
As it is now, the save-exception-to-disk code does:
if given device is a floppy:
format
mount as vfat, else punt
copy exception
The attached patch changes the logic to:
get given device filesystem type
try to mount as that
if it fails and fstype is (vfat|none)
format as vfat
try to mount as vfat
else
punt
copy exception
Comments?
Bill
diff --git a/exception.py b/exception.py
index d5f4bbc..22170d0 100644
--- a/exception.py
+++ b/exception.py
@@ -25,6 +25,7 @@ import traceback
import iutil
import types
import bdb
+import partedUtils
import rhpl
from string import joinfields
from cPickle import Pickler
@@ -254,10 +255,9 @@ def copyExceptionToRemote(intf, scpInfo):
return False
# Save the traceback to a removable storage device, such as a floppy disk
-# or a usb/firewire drive. In the event of a floppy disk, it is assumed to
-# be unformatted and safe for us to destroy. For all other devices, it is
-# assumed that they are already formatted and we will only attempt to write
-# the traceback file to the device. Returns success or not.
+# or a usb/firewire drive. If there's no filesystem on the disk/partition,
+# write a vfat one.
+# Returns success or not.
def copyExceptionToDisk(anaconda, device):
# in test mode have save to disk option just copy to new name
if not flags.setupFilesystems:
@@ -277,8 +277,14 @@ def copyExceptionToDisk(anaconda, device):
os.close(fd)
- # Only format floppy devices, not usb storage devices.
- if device in isys.floppyDriveDict().keys() and rhpl.getArch() != "ia64":
+ fstype = partedUtils.sniffFilesystemType(device)
+ if fstype == None:
+ fstype = 'vfat'
+ try:
+ isys.mount(device, "/tmp/crash", fstype)
+ except SystemError:
+ if fstype != 'vfat':
+ return False
cmd = "/usr/sbin/mkdosfs"
if os.access("/sbin/mkdosfs", os.X_OK):
@@ -287,10 +293,10 @@ def copyExceptionToDisk(anaconda, device):
iutil.execWithRedirect (cmd, [device], stdout = '/dev/tty5',
stderr = '/dev/tty5')
- try:
- isys.mount(device, "/tmp/crash", fstype = "vfat")
- except SystemError:
- return False
+ try:
+ isys.mount(device, "/tmp/crash", fstype)
+ except SystemError:
+ return False
# copy trace dump we wrote to local storage to disk
try:
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]