diff --git a/LTA/LTAIngest/LTAIngestServer/LTAIngestTransferServer/lib/ltacp.py b/LTA/LTAIngest/LTAIngestServer/LTAIngestTransferServer/lib/ltacp.py index d1c12d19c939b3df9d3329c4032b1468dd4f8e6c..c4aff5eb324ddffe78fcdaab4675bc598c6a7aed 100755 --- a/LTA/LTAIngest/LTAIngestServer/LTAIngestTransferServer/lib/ltacp.py +++ b/LTA/LTAIngest/LTAIngestServer/LTAIngestTransferServer/lib/ltacp.py @@ -392,36 +392,42 @@ class LtaCp: nextline = lines[-1].strip() if lines else '' if len(nextline) > 0: - logger.debug('ltacp %s: transfering... %s', self.logId, nextline) - total_bytes_transfered = int(nextline.split()[0].strip()) - percentage_done = (100.0*float(total_bytes_transfered))/float(estimated_tar_size) - elapsed_secs_since_start = totalSeconds(current_progress_time - transfer_start_time) - if percentage_done > 0 and elapsed_secs_since_start > 0 and elapsed_secs_since_prev > 0: - avg_speed = total_bytes_transfered / elapsed_secs_since_start - current_bytes_transfered = total_bytes_transfered - prev_bytes_transfered - current_speed = current_bytes_transfered / elapsed_secs_since_prev - if elapsed_secs_since_prev > 60 or current_bytes_transfered > 0.2*estimated_tar_size: - prev_progress_time = current_progress_time - prev_bytes_transfered = total_bytes_transfered - percentage_to_go = 100.0 - percentage_done - time_to_go = elapsed_secs_since_start * percentage_to_go / percentage_done - - try: - if self.progress_callback: - self.progress_callback(percentage_done=percentage_done, current_speed=current_speed, total_bytes_transfered=total_bytes_transfered) - except Exception as e: - logger.error(e) - - logger.info('ltacp %s: transfered %s %.1f%% in %s at avgSpeed=%s (%s) curSpeed=%s (%s) to_go=%s to %s' % (self.logId, - humanreadablesize(total_bytes_transfered), - percentage_done, - timedelta(seconds=int(round(elapsed_secs_since_start))), - humanreadablesize(avg_speed, 'Bps'), - humanreadablesize(avg_speed*8, 'bps'), - humanreadablesize(current_speed, 'Bps'), - humanreadablesize(current_speed*8, 'bps'), - timedelta(seconds=int(round(time_to_go))), - dst_turl)) + try: + logger.debug('ltacp %s: transfering... %s', self.logId, nextline) + total_bytes_transfered = int(nextline.split()[0].strip()) + percentage_done = (100.0*float(total_bytes_transfered))/float(estimated_tar_size) + elapsed_secs_since_start = totalSeconds(current_progress_time - transfer_start_time) + if percentage_done > 0 and elapsed_secs_since_start > 0 and elapsed_secs_since_prev > 0: + avg_speed = total_bytes_transfered / elapsed_secs_since_start + current_bytes_transfered = total_bytes_transfered - prev_bytes_transfered + current_speed = current_bytes_transfered / elapsed_secs_since_prev + if elapsed_secs_since_prev > 60 or current_bytes_transfered > 0.2*estimated_tar_size: + prev_progress_time = current_progress_time + prev_bytes_transfered = total_bytes_transfered + percentage_to_go = 100.0 - percentage_done + time_to_go = elapsed_secs_since_start * percentage_to_go / percentage_done + + try: + if self.progress_callback: + self.progress_callback(percentage_done=percentage_done, current_speed=current_speed, total_bytes_transfered=total_bytes_transfered) + except Exception as e: + logger.error(e) + + logger.info('ltacp %s: transfered %s %.1f%% in %s at avgSpeed=%s (%s) curSpeed=%s (%s) to_go=%s to %s' % (self.logId, + humanreadablesize(total_bytes_transfered), + percentage_done, + timedelta(seconds=int(round(elapsed_secs_since_start))), + humanreadablesize(avg_speed, 'Bps'), + humanreadablesize(avg_speed*8, 'bps'), + humanreadablesize(current_speed, 'Bps'), + humanreadablesize(current_speed*8, 'bps'), + timedelta(seconds=int(round(time_to_go))), + dst_turl)) + except Exception as e: + msg = 'ltacp %s: error while parsing md5a32bc loglines: %s' % (self.logId, e) + logger.error(msg) + self.cleanup() + raise LtacpException(msg) time.sleep(0.05) except KeyboardInterrupt: self.cleanup()