# HG changeset patch # User Bernhard Herzog # Date 1173465553 -3600 # Node ID 7c55f3879c4d18ccf7b92e76c2fb70cdf8ae615c # Parent 667ae96b50f72a26810e7c46572ec7ed007f4268 Use the new status class and report start/stop time too diff -r 667ae96b50f7 -r 7c55f3879c4d reportstatus.py --- a/reportstatus.py Fri Mar 09 19:38:46 2007 +0100 +++ b/reportstatus.py Fri Mar 09 19:39:13 2007 +0100 @@ -30,6 +30,8 @@ **treepkg_opts) for line in group.get_package_lines(): for revision in line.get_revisions(): - print line.name, revision.revision, revision.status.get() + print line.name, revision.revision, revision.status.status + print " start:", revision.status.start + print " stop:", revision.status.stop main() diff -r 667ae96b50f7 -r 7c55f3879c4d treepkg/packager.py --- a/treepkg/packager.py Fri Mar 09 19:38:46 2007 +0100 +++ b/treepkg/packager.py Fri Mar 09 19:39:13 2007 +0100 @@ -13,10 +13,12 @@ import logging import shutil import traceback +import datetime import util import subversion import run +import status def _filenameproperty(relative_dir): @@ -152,9 +154,9 @@ """ util.ensure_directory(self.work_dir) try: - self.status.set("creating_source_package") + self.status.status = "creating_source_package" self.do_package() - self.status.set("source_package_created") + self.status.status = "source_package_created" finally: logging.info("Removing workdir %r", self.work_dir) shutil.rmtree(self.work_dir) @@ -180,13 +182,13 @@ self.logfile = logfile def package(self): - self.status.set("creating_binary_package") + self.status.status = "creating_binary_package" util.ensure_directory(self.binary_dir) logging.info("Building binary package; loging to %r", self.logfile) cmd = ["/usr/sbin/pbuilder", "build", "--logfile", self.logfile, "--buildresult", self.binary_dir, self.dsc_file] run.call(self.pkg_line.root_cmd + cmd, suppress_output=True) - self.status.set("binary_package_created") + self.status.status = "binary_package_created" class RevisionPackager(object): @@ -198,7 +200,7 @@ self.pkg_line = pkg_line self.revision = revision self.base_dir = self.pkg_line.pkg_dir_for_revision(self.revision, 1) - self.status = util.StatusFile(os.path.join(self.base_dir, "status")) + self.status = status.Status(os.path.join(self.base_dir, "status")) work_dir = _filenameproperty("work") binary_dir = _filenameproperty("binary") @@ -212,6 +214,8 @@ def package(self): try: + util.ensure_directory(self.work_dir) + self.status.start = datetime.datetime.utcnow() src_packager = self.source_packager_cls(self.pkg_line, self.status, self.work_dir, self.src_dir, self.revision) @@ -226,8 +230,10 @@ os.path.join(self.base_dir, "build.log")) bin_packager.package() + self.status.stop = datetime.datetime.utcnow() except: - self.status.set("failed", traceback.format_exc()) + self.status.status = "error" + self.status.stop = datetime.datetime.utcnow() raise def remove_package_dir(self):