summaryrefslogtreecommitdiffstats
path: root/yum-presto/shared/prestoLog.py
diff options
context:
space:
mode:
Diffstat (limited to 'yum-presto/shared/prestoLog.py')
-rw-r--r--yum-presto/shared/prestoLog.py113
1 files changed, 67 insertions, 46 deletions
diff --git a/yum-presto/shared/prestoLog.py b/yum-presto/shared/prestoLog.py
index 3c0c1e6..1323346 100644
--- a/yum-presto/shared/prestoLog.py
+++ b/yum-presto/shared/prestoLog.py
@@ -15,57 +15,78 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# Copyright 2005 Duke University
-def log(conduit, LOG_FILE, rpm_size, drpm_size):
- # Open log file for reading
- try:
- log_file = open(LOG_FILE, "r")
- log_exists = True
- except:
- conduit.info(5, "Info: %s doesn't exist. Will create." % LOG_FILE)
- log_exists = False
-
- # Log file doesn't exist, create
- if not log_exists:
+class PrestoLog:
+ def __init__(self, conduit, log_filename):
+ # Open log file for reading
try:
- log_file = open(LOG_FILE, "w")
- log_file.write("Download Size (without DRPM),Download Size (with DRPM),Percentage Savings,Total Percentage Savings\n")
- log_file.close()
+ log_file = open(log_filename, "r")
log_exists = True
except:
- conduit.info(2, "Warning: Unable to write to %s" % LOG_FILE)
+ conduit.info(7, "Info: %s doesn't exist. Will create." % log_filename)
+ log_exists = False
+
+ # Log file doesn't exist, create
+ if not log_exists:
+ try:
+ log_file = open(log_filename, "w")
+ log_file.close()
+ log_exists = True
+ except:
+ conduit.info(2, "Warning: Unable to write to %s" % log_filename)
+ if log_exists:
+ try:
+ log_file = open(log_filename, "r")
+ except:
+ conduit.info(2, "Warning: Unable to open %s for reading." % log_filename)
+ log_exists = False
+
+ # Cycle through items already in log so we can come up with total savings
if log_exists:
+ self.total_rpm_size = 0
+ self.total_drpm_size = 0
+
+ # Get rid of header line
+ log_file.readline()
+
+ data = log_file.readline()
+ while data != "":
+ fc = data.rfind("-")
+ sc = data.rfind("-", 0, fc-1)
+ tc = data.rfind("-", 0, sc-1)
+ lc = data.rfind("-", 0, tc-1)
+ if lc != -1 and tc != -1 and sc != -1 and fc != -1:
+ self.total_rpm_size += int(data[lc+1:tc])
+ self.total_drpm_size += int(data[tc+1:sc])
+ data = log_file.readline()
+ log_file.close()
+
try:
- log_file = open(LOG_FILE, "r")
+ log_file = open(log_filename, "a")
except:
- conduit.info(2, "Warning: Unable to open %s for reading." % LOG_FILE)
- log_exists = False
+ conduit.info(2, "Warning: Unable to open %s for writing." % log_filename)
+ self.log_file = None
+ else:
+ self.log_file = log_filename
+ log_file.close()
+
+ def log(self, oldrpm_name, newrpm_name, rpm_size, drpm_size):
+ # Write data to log
+ self.total_rpm_size += rpm_size
+ self.total_drpm_size += drpm_size
+ if self.log_file != None:
+ try:
+ log_file = open(self.log_file, "a")
+ except:
+ pass
+ else:
+ log_file.write("%s => %s - %i - %i - %i - %i\n" % (oldrpm_name, newrpm_name, rpm_size, drpm_size, 100 - ((drpm_size * 100) / rpm_size), 100 - ((self.total_drpm_size * 100) / self.total_rpm_size)))
+ log_file.close()
+
- # Cycle through items already in log so we can come up with total savings
- if log_exists:
- total_rpm_size = 0
- total_drpm_size = 0
-
- # Get rid of header line
- log_file.readline()
-
- data = log_file.readline()
- while data != "":
- fc = data.find(",")
- sc = data.find(",", fc + 1)
- total_rpm_size += int(data[:fc])
- total_drpm_size += int(data[fc + 1:sc])
- data = log_file.readline()
- log_file.close()
- total_rpm_size += rpm_size
- total_drpm_size += drpm_size
+ def close(self):
+ if self.log_file != None:
+ try:
+ self.log_file.close()
+ except:
+ pass
- try:
- log_file = open(LOG_FILE, "a")
- except:
- conduit.info(2, "Warning: Unable to open %s for writing." % LOG_FILE)
- log_exists = False
-
- # Write data to log
- if log_exists:
- log_file.write("%i,%i,%i,%i\n" % (rpm_size, drpm_size, 100 - ((drpm_size * 100) / rpm_size), 100 - ((total_drpm_size * 100) / total_rpm_size)))
- log_file.close()