Also stop OperationDetail execution timer when setting status to N/A (#790842)
PATCH SET SUMMARY: Libparted exception messages are reported into the operation details at the end of each separate operation. For operations which involve multiple steps of partition manipulation there is no way to identify which exceptions occurred with which steps. Example resize/move operation in which multiple libparted exceptions were raised: Move /dev/sdb to the right and shrink it from 1.15 GiB to ...(ERROR) * calibrate /dev/sdb3 (SUCCESS) * check file system on /dev/sdb3 for errors and (if possib...(SUCCESS) * e2fsck -f -y -v -C 0 '/dev/sdb3' (SUCCESS) * shrink file system (SUCCESS) * resize2fs -p 'dev/sdb3' 1048576K (SUCCESS) * shrink partition from 1.14 GiB to 1.00 GiB (SUCCESS) * check file system on /dev/sdb3 for errors and (if possib...(SUCCESS) * e2fsck -f -y -v -C 0 '/dev/sdb3' (SUCCESS) * grow partition from 1.00 GiB to 1.12 GiB (SUCCESS) * move file system to the right (SUCCESS) * e2image -ra -p -O 134217728 '/dev/sdb3' (SUCCESS) * shrink partition from 1.12 GiB to 1.00 GiB (ERROR) * libparted messages (INFO) * DEBUG: GParted generated synthetic libparted exception... * Error informing the kernel about modifications to part... * Error informing the kernel about modifications to part... * DEBUG: GParted generated synthetic libparted exception... * DEBUG: GParted generated synthetic libparted exception... But there is no way to know which of the libparted steps: 1 calibrate or 3 partition resize steps encountered which exceptions. Fix this by reporting the libparted messages into the operation details at the point at which they occur. Then the above example would become: Move /dev/sdb to the right and shrink it from 1.15 GiB to ...(ERROR) * calibrate /dev/sdb3 (SUCCESS) * check file system on /dev/sdb3 for errors and (if possib...(SUCCESS) * e2fsck -f -y -v -C 0 '/dev/sdb3' (SUCCESS) * shrink file system (SUCCESS) * resize2fs -p 'dev/sdb3' 1048576K (SUCCESS) * shrink partition from 1.14 GiB to 1.00 GiB (SUCCESS) * libparted messages (INFO) * DEBUG: GParted generated synthetic libparted excepti... * check file system on /dev/sdb3 for errors and (if possib...(SUCCESS) * e2fsck -f -y -v -C 0 '/dev/sdb3' (SUCCESS) * grow partition from 1.00 GiB to 1.12 GiB (SUCCESS) * libparted messages (INFO) * Error informing the kernel about modifications to pa... * Error informing the kernel about modifications to pa... * DEBUG: GParted generated synthetic libparted excepti... * move file system to the right (SUCCESS) * e2image -ra -p -O 134217728 '/dev/sdb3' (SUCCESS) * shrink partition from 1.12 GiB to 1.00 GiB (ERROR) * libparted messages (ERROR) * DEBUG: GParted generated synthetic libparted excepti... THIS PATCH: Small change so that setting the status of an OperationDetail to N/A, warning, also stops the execution timer if it was running. Matching what happens when the status is set to either success or error. This is to avoid having to set status twice, first time just to stop the timer, and second time to set it to the desired status when reporting a warning. Bug 790842 - Report libparted messages into operation details at the point at which they occur
This commit is contained in:
parent
572037d3fe
commit
3c1fdd14f4
|
@ -245,7 +245,6 @@ void FileSystem::rm_temp_dir( const Glib::ustring dir_name, OperationDetail & op
|
|||
//Don't mark operation as errored just because rmdir
|
||||
// failed. Set to Warning (N/A) instead.
|
||||
int e = errno ;
|
||||
operationdetail .get_last_child() .set_status( STATUS_SUCCES ) ; //Stop timer
|
||||
operationdetail .get_last_child() .set_status( STATUS_N_A ) ;
|
||||
operationdetail .get_last_child() .add_child( OperationDetail(
|
||||
String::ucompose( "rmdir(%1): ", dir_name ) + Glib::strerror( e ), STATUS_NONE ) ) ;
|
||||
|
|
|
@ -90,6 +90,7 @@ void OperationDetail::set_status( OperationDetailStatus status )
|
|||
time_start = std::time( NULL ) ;
|
||||
break ;
|
||||
case STATUS_ERROR:
|
||||
case STATUS_N_A:
|
||||
case STATUS_SUCCES:
|
||||
if( time_start != -1 )
|
||||
time_elapsed = std::time( NULL ) - time_start ;
|
||||
|
|
Loading…
Reference in New Issue