[elbe-devel] [PATCH v2 20/28] Nuke ASCIIDocLog from finetuning

dion at linutronix.de dion at linutronix.de
Fri Jun 21 19:40:12 CEST 2019


From: Olivier Dion <dion at linutronix.de>

Signed-off-by: Olivier Dion <dion at linutronix.de>
---
 elbepack/dump.py        |   2 +-
 elbepack/elbeproject.py |   1 -
 elbepack/finetuning.py  | 265 +++++++++++++++++++++++-------------------------
 3 files changed, 127 insertions(+), 141 deletions(-)

diff --git a/elbepack/dump.py b/elbepack/dump.py
index d73b3789..20b0bf4b 100644
--- a/elbepack/dump.py
+++ b/elbepack/dump.py
@@ -217,7 +217,7 @@ def elbe_report(xml, buildenv, cache, reportname, errorname, targetfs):
     outf.verbatim_start()
 
     if xml.has("target/finetuning"):
-        do_finetuning(xml, outf, buildenv, targetfs)
+        do_finetuning(xml, buildenv, targetfs)
         mt_index_post_fine = targetfs.mtime_snap()
     else:
         mt_index_post_fine = mt_index_postarch
diff --git a/elbepack/elbeproject.py b/elbepack/elbeproject.py
index 046bcbf5..0269a638 100644
--- a/elbepack/elbeproject.py
+++ b/elbepack/elbeproject.py
@@ -651,7 +651,6 @@ class ElbeProject (object):
                 allow_fail=True)
 
         do_prj_finetuning(self.xml,
-                          self.log,
                           self.buildenv,
                           self.targetfs,
                           self.builddir)
diff --git a/elbepack/finetuning.py b/elbepack/finetuning.py
index 5da50b1f..d1ddf5fe 100644
--- a/elbepack/finetuning.py
+++ b/elbepack/finetuning.py
@@ -11,6 +11,7 @@ from __future__ import print_function
 import os
 import errno
 import base64
+import logging
 
 from shutil import rmtree
 from gpg import core
@@ -23,6 +24,7 @@ from elbepack.shellhelper import CommandError
 from elbepack.filesystem import ImgMountFilesystem
 from elbepack.packers import default_packer, packers
 from elbepack.egpg import unlock_key
+from elbepack.shellhelper import chroot, do, get_command_out
 
 
 class FinetuningException(Exception):
@@ -44,11 +46,11 @@ class FinetuningAction(object):
     def __init__(self, node):
         self.node = node
 
-    def execute(self, _log, _buildenv, _target):
+    def execute(self, _buildenv, _target):
         raise NotImplementedError('execute() not implemented')
 
-    def execute_prj(self, log, buildenv, target, _builddir):
-        self.execute(log, buildenv, target)
+    def execute_prj(self, buildenv, target, _builddir):
+        self.execute(buildenv, target)
 
 
 class ImageFinetuningAction(FinetuningAction):
@@ -58,11 +60,11 @@ class ImageFinetuningAction(FinetuningAction):
     def __init__(self, node):
         FinetuningAction.__init__(self, node)
 
-    def execute(self, _log, _buildenv, _target):
+    def execute(self, _buildenv, _target):
         raise NotImplementedError("<%s> may only be "
                                   "used in <image-finetuning>" % self.tag)
 
-    def execute_img(self, _log, _buildenv, _target, _builddir, _loop_dev):
+    def execute_img(self, _buildenv, _target, _builddir, _loop_dev):
         raise NotImplementedError('execute_img() not implemented')
 
 
@@ -73,7 +75,7 @@ class RmAction(FinetuningAction):
     def __init__(self, node):
         FinetuningAction.__init__(self, node)
 
-    def execute(self, log, _buildenv, target):
+    def execute(self, _buildenv, target):
         files = target.glob(self.node.et.text)
 
         if 'exclude' in self.node.et.attrib:
@@ -85,7 +87,7 @@ class RmAction(FinetuningAction):
             if os.path.basename(f) in exclude:
                 continue
 
-            log.do("rm -rvf '%s'" % f)
+            do("rm -rvf '%s'" % f)
 
 
 FinetuningAction.register(RmAction)
@@ -98,8 +100,8 @@ class MkdirAction(FinetuningAction):
     def __init__(self, node):
         FinetuningAction.__init__(self, node)
 
-    def execute(self, log, _buildenv, target):
-        log.do("mkdir -p " + target.fname(self.node.et.text))
+    def execute(self, _buildenv, target):
+        do("mkdir -p %s" % target.fname(self.node.et.text))
 
 
 FinetuningAction.register(MkdirAction)
@@ -112,13 +114,10 @@ class MknodAction(FinetuningAction):
     def __init__(self, node):
         FinetuningAction.__init__(self, node)
 
-    def execute(self, log, _buildenv, target):
-        log.do(
-            "mknod " +
-            target.fname(
-                self.node.et.text) +
-            " " +
-            self.node.et.attrib['opts'])
+    def execute(self, _buildenv, target):
+        cmd = "mknod %s %s" % (target.fname(self.node.et.text),
+                               self.node.et.attrib['opts'])
+        do(cmd)
 
 
 FinetuningAction.register(MknodAction)
@@ -131,8 +130,8 @@ class BuildenvMkdirAction(FinetuningAction):
     def __init__(self, node):
         FinetuningAction.__init__(self, node)
 
-    def execute(self, log, buildenv, _target):
-        log.do("mkdir -p " + buildenv.rfs.fname(self.node.et.text))
+    def execute(self, buildenv, _target):
+        do("mkdir -p %s" % buildenv.rfs.fname(self.node.et.text))
 
 
 FinetuningAction.register(BuildenvMkdirAction)
@@ -145,10 +144,11 @@ class CpAction(FinetuningAction):
     def __init__(self, node):
         FinetuningAction.__init__(self, node)
 
-    def execute(self, log, _buildenv, target):
+    def execute(self, _buildenv, target):
         src = target.glob(self.node.et.attrib['path'])
         for f in src:
-            log.do("cp -av " + f + " " + target.fname(self.node.et.text))
+            cmd = "cp -av %s %s" % (f, target.fname(self.node.et.text))
+            do(cmd)
 
 
 FinetuningAction.register(CpAction)
@@ -161,10 +161,14 @@ class BuildenvCpAction(FinetuningAction):
     def __init__(self, node):
         FinetuningAction.__init__(self, node)
 
-    def execute(self, log, buildenv, _target):
+    def execute(self, buildenv, _target):
         src = buildenv.glob(self.node.et.attrib['path'])
         for f in src:
-            log.do("cp -av " + f + " " + buildenv.rfs.fname(self.node.et.text))
+            # Does buildenv.rfs.fname(self.node.et.text) change in the
+            # loop?  If not we can format the cmd outside of the loop
+            # outside and make a smaller format in the loop.
+            cmd = "cp -av %s %s" % (f, buildenv.rfs.fname(self.node.et.text))
+            do(cmd)
 
 
 FinetuningAction.register(BuildenvCpAction)
@@ -177,10 +181,11 @@ class B2TCpAction(FinetuningAction):
     def __init__(self, node):
         FinetuningAction.__init__(self, node)
 
-    def execute(self, log, buildenv, target):
+    def execute(self, buildenv, target):
         src = buildenv.rfs.glob(self.node.et.attrib['path'])
         for f in src:
-            log.do("cp -av " + f + " " + target.fname(self.node.et.text))
+            cmd = "cp -av %s %s" % (f, target.fname(self.node.et.text))
+            do(cmd)
 
 
 FinetuningAction.register(B2TCpAction)
@@ -193,10 +198,11 @@ class T2BCpAction(FinetuningAction):
     def __init__(self, node):
         FinetuningAction.__init__(self, node)
 
-    def execute(self, log, buildenv, target):
+    def execute(self, buildenv, target):
         src = target.glob(self.node.et.attrib['path'])
         for f in src:
-            log.do("cp -av " + f + " " + buildenv.rfs.fname(self.node.et.text))
+            cmd = "cp -av %s %s" % (f, buildenv.rfs.fname(self.node.et.text))
+            do(cmd)
 
 
 FinetuningAction.register(T2BCpAction)
@@ -209,7 +215,7 @@ class T2PMvAction(FinetuningAction):
     def __init__(self, node):
         FinetuningAction.__init__(self, node)
 
-    def execute(self, log, _buildenv, target):
+    def execute(self, _buildenv, target):
         if self.node.et.text[0] == '/':
             dest = self.node.et.text[1:]
         else:
@@ -217,8 +223,9 @@ class T2PMvAction(FinetuningAction):
         dest = os.path.join('..', dest)
 
         src = target.glob(self.node.et.attrib['path'])
+        cmd = "mv -v %s {}".format(dest)
         for f in src:
-            log.do("mv -v " + f + " " + dest)
+            do(cmd % f)
 
 
 FinetuningAction.register(T2PMvAction)
@@ -231,10 +238,11 @@ class MvAction(FinetuningAction):
     def __init__(self, node):
         FinetuningAction.__init__(self, node)
 
-    def execute(self, log, _buildenv, target):
+    def execute(self, _buildenv, target):
         src = target.glob(self.node.et.attrib['path'])
         for f in src:
-            log.do("mv -v " + f + " " + target.fname(self.node.et.text))
+            cmd = "mv -v %s %s" % (f, target.fname(self.node.et.text))
+            do(cmd)
 
 
 FinetuningAction.register(MvAction)
@@ -247,12 +255,11 @@ class LnAction(FinetuningAction):
     def __init__(self, node):
         FinetuningAction.__init__(self, node)
 
-    def execute(self, log, _buildenv, target):
+    def execute(self, _buildenv, target):
         with target:
-            log.chroot(
-                target.path, """/bin/sh -c 'ln -s %s "%s"' """ %
-                (self.node.et.attrib['path'], self.node.et.text))
-
+            cmd = """/bin/sh -c 'ln -s %s "%s"' """ % (self.node.et.attrib['path'],
+                                                       self.node.et.text)
+            chroot(target.path, cmd)
 
 FinetuningAction.register(LnAction)
 
@@ -264,11 +271,11 @@ class BuildenvMvAction(FinetuningAction):
     def __init__(self, node):
         FinetuningAction.__init__(self, node)
 
-    def execute(self, log, buildenv, _target):
+    def execute(self, buildenv, _target):
         src = buildenv.rfs.glob(self.node.et.attrib['path'])
+        cmd = "mv -v %s %s"
         for f in src:
-            log.do("mv -v " + f + " " + buildenv.rfs.fname(self.node.et.text))
-
+            do(cmd % (f, buildenv.rfs.fname(self.node.et.text)))
 
 FinetuningAction.register(BuildenvMvAction)
 
@@ -280,7 +287,7 @@ class AddUserAction(FinetuningAction):
     def __init__(self, node):
         FinetuningAction.__init__(self, node)
 
-    def execute(self, log, _buildenv, target):
+    def execute(self, _buildenv, target):
         with target:
             att = self.node.et.attrib
             options = ""
@@ -305,18 +312,14 @@ class AddUserAction(FinetuningAction):
             else:
                 options += '-U '
 
-            log.chroot(
-                target.path,
-                '/usr/sbin/useradd %s "%s"' %
-                (options,
-                 self.node.et.text))
+            cmd =  '/usr/sbin/useradd %s "%s"' % (options,
+                                                  self.node.et.text)
+            chroot(target.path, cmd)
 
             if 'passwd' in att:
-                log.chroot(target.path,
-                           """/bin/sh -c 'echo "%s\\n%s\\n" | passwd %s'""" % (
-                               att['passwd'],
-                               att['passwd'],
-                               self.node.et.text))
+                cmd = "passwd %s" % self.node.et.text
+                stdin = "%s\n%s\n" % (att["passwd"], att["passwd"])
+                chroot(target.path, cmd, stdin=stdin)
 
 
 FinetuningAction.register(AddUserAction)
@@ -329,7 +332,7 @@ class AddGroupAction(FinetuningAction):
     def __init__(self, node):
         FinetuningAction.__init__(self, node)
 
-    def execute(self, log, _buildenv, target):
+    def execute(self, _buildenv, target):
         with target:
             att = self.node.et.attrib
             # we use -f always
@@ -338,9 +341,9 @@ class AddGroupAction(FinetuningAction):
                 options += '-g "%s" ' % att['gid']
             if 'system' in att and att['system'] == 'True':
                 options += '-r'
-            log.chroot(target.path, '/usr/sbin/groupadd %s "%s"' % (
-                options,
-                self.node.et.text))
+            cmd = '/usr/sbin/groupadd %s "%s"' % (options,
+                                                  self.node.et.text)
+            chroot(target.path, cmd)
 
 
 FinetuningAction.register(AddGroupAction)
@@ -365,7 +368,7 @@ class AddFileAction(FinetuningAction):
             raise FinetuningException("Invalid encoding %s" % encoding)
         return msg
 
-    def execute(self, log, _buildenv, target):
+    def execute(self, _buildenv, target):
 
         att = self.node.et.attrib
         dst = att["dst"]
@@ -398,13 +401,13 @@ class AddFileAction(FinetuningAction):
             target.write_file(dst, None, content)
 
         if owner is not None:
-            log.chroot(target.path, 'chown "%s" "%s"' % (owner, dst))
+            chroot(target.path, "chown %s %s" % (owner, dst))
 
         if group is not None:
-            log.chroot(target.path, 'chgrp "%s" "%s"' % (group, dst))
+            chroot(target.path, "chgrp %s %s" % (group, dst))
 
         if mode is not None:
-            log.chroot(target.path, 'chmod "%s" "%s"' % (mode, dst))
+            chroot(target.path, "chmod %s %s" % (mode, dst))
 
 FinetuningAction.register(AddFileAction)
 
@@ -416,9 +419,9 @@ class RawCmdAction(FinetuningAction):
     def __init__(self, node):
         FinetuningAction.__init__(self, node)
 
-    def execute(self, log, _buildenv, target):
+    def execute(self, _buildenv, target):
         with target:
-            log.chroot(target.path, self.node.et.text)
+            chroot(target.path, self.node.et.text)
 
 
 FinetuningAction.register(RawCmdAction)
@@ -431,9 +434,9 @@ class CmdAction(FinetuningAction):
     def __init__(self, node):
         FinetuningAction.__init__(self, node)
 
-    def execute(self, log, _buildenv, target):
+    def execute(self, _buildenv, target):
         with target:
-            log.chroot(target.path, "/bin/sh", stdin=self.node.et.text)
+            chroot(target.path, "/bin/sh", stdin=self.node.et.text)
 
 
 FinetuningAction.register(CmdAction)
@@ -446,9 +449,9 @@ class BuildenvCmdAction(FinetuningAction):
     def __init__(self, node):
         FinetuningAction.__init__(self, node)
 
-    def execute(self, log, buildenv, _target):
+    def execute(self, buildenv, _target):
         with buildenv:
-            log.chroot(buildenv.path, "/bin/sh", stdin=self.node.et.text)
+            chroot(buildenv.path, "/bin/sh", stdin=self.node.et.text)
 
 
 FinetuningAction.register(BuildenvCmdAction)
@@ -461,9 +464,9 @@ class PurgeAction(FinetuningAction):
     def __init__(self, node):
         FinetuningAction.__init__(self, node)
 
-    def execute(self, log, _buildenv, target):
+    def execute(self, _buildenv, target):
         with target:
-            log.chroot(target.path, "dpkg --purge " + self.node.et.text)
+            chroot(target.path, "dpkg --purge %s" % (self.node.et.text))
 
 
 FinetuningAction.register(PurgeAction)
@@ -476,13 +479,14 @@ class UpdatedAction(FinetuningAction):
     def __init__(self, node):
         FinetuningAction.__init__(self, node)
 
-    def execute(self, log, buildenv, target):
+    def execute(self, buildenv, target):
 
         # pylint: disable=too-many-locals
 
         if self.node.et.text:
             fp = self.node.et.text
-            log.printo("transfer gpg key to target: " + fp)
+
+            logging.info("transfert gpg key to target: %s" % fp)
 
             gpgdata = core.Data()
             ctx = core.Context()
@@ -495,22 +499,23 @@ class UpdatedAction(FinetuningAction):
             gpgdata.seek(0, os.SEEK_SET)
             key = gpgdata.read()
 
-            log.printo(str(key))
+            logging.info(str(key))
             with open((target.path + '/pub.key'), 'wb') as tkey:
                 tkey.write(key)
 
             target.mkdir_p("/var/cache/elbe/gnupg", mode=0o700)
             with target:
                 env_add = {'GNUPGHOME': target.path + "/var/cache/elbe/gnupg"}
-                log.do("gpg --import " + target.path + "/pub.key",
-                       env_add=env_add)
+                cmd = "gpg --import %s%s" % (target.path, "/pub.key")
+                do(cmd, env_add=env_add)
+
+        logging.info("generate base repo")
 
-        log.printo("generate base repo")
         arch = target.xml.text("project/arch", key="arch")
 
         buildenv.rfs.mkdir_p('/tmp/pkgs')
         with buildenv:
-            cache = get_rpcaptcache(buildenv.rfs, "updated-repo.log", arch)
+            cache = get_rpcaptcache(buildenv.rfs, arch)
 
             pkglist = cache.get_installed_pkgs()
             for pkg in pkglist:
@@ -518,26 +523,14 @@ class UpdatedAction(FinetuningAction):
                     cache.download_binary(
                         pkg.name, '/tmp/pkgs', pkg.installed_version)
                 except ValueError:
-                    log.printo(
-                        "No Package " +
-                        pkg.name +
-                        "-" +
-                        pkg.installed_version)
+                    logging.exception("No package %s-%s" % (pkg.name,
+                                                            pkg.installed_version))
                 except FetchError:
-                    log.printo(
-                        "Package " +
-                        pkg.name +
-                        "-" +
-                        pkg.installed_version +
-                        " could not be downloaded")
+                    logging.exception("Package %s-%s could not be downloaded" % (pkg.name,
+                                                                         pkg.installed_version))
                 except TypeError:
-                    log.printo(
-                        "Package " +
-                        pkg.name +
-                        "-" +
-                        pkg.installed_version +
-                        " missing name or version")
-
+                    logging.exception("Package %s-%s missing name or version" % (pkg.name,
+                                                                                 pkg.installed_version))
         r = UpdateRepo(target.xml,
                        target.path + '/var/cache/elbe/repos/base')
 
@@ -569,10 +562,10 @@ class ArtifactAction(FinetuningAction):
     def __init__(self, node):
         FinetuningAction.__init__(self, node)
 
-    def execute(self, _log, _buildenv, target):
+    def execute(self, _buildenv, target):
         target.images.append('target' + self.node.et.text)
 
-    def execute_prj(self, _log, _buildenv, target, _builddir):
+    def execute_prj(self, _buildenv, target, _builddir):
         target.images.append(self.node.et.text)
 
 
@@ -586,11 +579,11 @@ class RmArtifactAction(FinetuningAction):
     def __init__(self, node):
         FinetuningAction.__init__(self, node)
 
-    def execute(self, _log, _buildenv, _target):
+    def execute(self, _buildenv, _target):
         raise NotImplementedError("<rm_artifact> may only be "
                                   "used in <project-finetuning>")
 
-    def execute_prj(self, _log, _buildenv, target, _builddir):
+    def execute_prj(self, _buildenv, target, _builddir):
         target.images.remove(self.node.et.text)
 
 
@@ -604,23 +597,23 @@ class LosetupAction(FinetuningAction):
     def __init__(self, node):
         FinetuningAction.__init__(self, node)
 
-    def execute(self, _log, _buildenv, _target):
+    def execute(self, _buildenv, _target):
         raise NotImplementedError("<losetup> may only be "
                                   "used in <project-finetuning>")
 
-    def execute_prj(self, log, buildenv, target, builddir):
+    def execute_prj(self, buildenv, target, builddir):
         imgname = self.node.et.attrib['img']
         imgpath = os.path.join(builddir, imgname)
         cmd = 'losetup --find --show --partscan "%s"' % imgpath
 
-        loop_dev = log.get_command_out(cmd).strip()
+        loop_dev = get_command_out(cmd).strip()
         try:
             for i in self.node:
                 action = ImageFinetuningAction(i)
-                action.execute_img(log, buildenv, target, builddir, loop_dev)
+                action.execute_img(buildenv, target, builddir, loop_dev)
         finally:
             cmd = 'losetup --detach "%s"' % loop_dev
-            log.do(cmd)
+            do(cmd)
 
 
 FinetuningAction.register(LosetupAction)
@@ -633,20 +626,18 @@ class ImgConvertAction(FinetuningAction):
     def __init__(self, node):
         FinetuningAction.__init__(self, node)
 
-    def execute(self, _log, _buildenv, _target):
+    def execute(self, _buildenv, _target):
         raise NotImplementedError("<img_convert> may only be "
                                   "used in <project-finetuning>")
 
-    def execute_prj(self, log, _buildenv, target, builddir):
+    def execute_prj(self, _buildenv, target, builddir):
         src = self.node.et.text
         dst = self.node.et.attrib['dst']
         fmt = self.node.et.attrib['fmt']
 
         if src not in target.images:
-            log.printo("Error: Artifact '%s' does not exist." % src)
-            log.printo("Valid Artifacts are:")
-            for i in target.images:
-                log.printo(i)
+            logging.error("Error: Artifact '%s' does not exist.\n Valid Artifcact are: %s" % (
+                      src, ", ".join([str(i) for i in target.images])))
             raise FinetuningException("Artifact '%s' does not exist" % src)
 
         src_fname = os.path.join(builddir, src)
@@ -655,7 +646,7 @@ class ImgConvertAction(FinetuningAction):
         cmd = 'qemu-img convert -O "%s" "%s" "%s"' % (fmt,
                                                       src_fname,
                                                       dst_fname)
-        log.do(cmd)
+        do(cmd)
 
         target.images.append(dst)
         target.image_packers[dst] = default_packer
@@ -675,11 +666,11 @@ class SetPackerAction(FinetuningAction):
     def __init__(self, node):
         FinetuningAction.__init__(self, node)
 
-    def execute(self, _log, _buildenv, _target):
+    def execute(self, _buildenv, _target):
         raise NotImplementedError("<set_packer> may only be "
                                   "used in <project-finetuning>")
 
-    def execute_prj(self, _log, _buildenv, target, _builddir):
+    def execute_prj(self, _buildenv, target, _builddir):
         img = self.node.et.text
         packer = self.node.et.attrib['packer']
 
@@ -696,17 +687,17 @@ class ExtractPartitionAction(ImageFinetuningAction):
     def __init__(self, node):
         ImageFinetuningAction.__init__(self, node)
 
-    def execute(self, _log, _buildenv, _target):
+    def execute(self, _buildenv, _target):
         raise NotImplementedError("<extract_partition> may only be "
                                   "used in <mount_drive>")
 
-    def execute_img(self, log, _buildenv, target, builddir, loop_dev):
+    def execute_img(self, _buildenv, target, builddir, loop_dev):
         part_nr = self.node.et.attrib['part']
         imgname = os.path.join(builddir, self.node.et.text)
 
         cmd = 'dd if=%sp%s of="%s"' % (loop_dev, part_nr, imgname)
 
-        log.do(cmd)
+        do(cmd)
 
         target.images.append(self.node.et.text)
         target.image_packers[self.node.et.text] = default_packer
@@ -722,32 +713,30 @@ class CopyFromPartition(ImageFinetuningAction):
     def __init__(self, node):
         ImageFinetuningAction.__init__(self, node)
 
-    def execute(self, _log, _buildenv, _target):
+    def execute(self, _buildenv, _target):
         raise NotImplementedError("<copy_from_partition> may only be "
                                   "used in <mount_drive>")
 
-    def execute_img(self, log, _buildenv, target, builddir, loop_dev):
+    def execute_img(self, _buildenv, target, builddir, loop_dev):
         part_nr = self.node.et.attrib['part']
         aname = self.node.et.attrib['artifact']
 
         img_mnt = os.path.join(builddir, 'imagemnt')
         device = "%sp%s" % (loop_dev, part_nr)
 
-        with ImgMountFilesystem(img_mnt, device, log) as mnt_fs:
+        with ImgMountFilesystem(img_mnt, device) as mnt_fs:
             fname = mnt_fs.glob(self.node.et.text)
 
             if not fname:
-                log.printo('No file matching "%s" found' % self.node.et.text)
+                logging.error('No file matching "%s" found' % self.node.et.text)
                 raise FinetuningException('No File found')
 
             if len(fname) > 1:
-                log.printo('Pattern "%s" matches %d files' % (
-                    self.node.et.text,
-                    len(fname)))
+                logging.info('Pattern "%s" matches %d files' % (self.node.et.text, len(fname)))
                 raise FinetuningException('Patter matches too many files')
 
             cmd = 'cp "%s" "%s"' % (fname[0], os.path.join(builddir, aname))
-            log.do(cmd)
+            do(cmd)
 
             target.images.append(aname)
 
@@ -762,28 +751,27 @@ class CopyToPartition(ImageFinetuningAction):
     def __init__(self, node):
         ImageFinetuningAction.__init__(self, node)
 
-    def execute(self, _log, _buildenv, _target):
+    def execute(self, _buildenv, _target):
         raise NotImplementedError("<copy_to_partition> may only be "
                                   "used in <mount_drive>")
 
-    def execute_img(self, log, _buildenv, _target, builddir, loop_dev):
+    def execute_img(self, _buildenv, _target, builddir, loop_dev):
         part_nr = self.node.et.attrib['part']
         aname = self.node.et.attrib['artifact']
 
         img_mnt = os.path.join(builddir, 'imagemnt')
         device = "%sp%s" % (loop_dev, part_nr)
 
-        with ImgMountFilesystem(img_mnt, device, log) as mnt_fs:
+        with ImgMountFilesystem(img_mnt, device) as mnt_fs:
             fname = mnt_fs.fname(self.node.et.text)
-
             cmd = 'cp "%s" "%s"' % (os.path.join(builddir, aname), fname)
-            log.do(cmd)
+            do(cmd)
 
 
 FinetuningAction.register(CopyToPartition)
 
 
-def do_finetuning(xml, log, buildenv, target):
+def do_finetuning(xml, buildenv, target):
 
     if not xml.has('target/finetuning'):
         return
@@ -791,17 +779,16 @@ def do_finetuning(xml, log, buildenv, target):
     for i in xml.node('target/finetuning'):
         try:
             action = FinetuningAction(i)
-            action.execute(log, buildenv, target)
+            action.execute(buildenv, target)
         except KeyError:
-            print("Unimplemented finetuning action '%s'" % (i.et.tag))
+            logging.exception("Unimplemented finetuning action '%s'" % (i.et.tag))
         except CommandError:
-            log.printo("Finetuning Error, trying to continue anyways")
-        except FinetuningException as e:
-            log.printo("Finetuning Error: %s" % str(e))
-            log.printo("trying to continue anyways")
-
+            logging.exception("Finetuning Error, trying to continue anyways")
+        except FinetuningException:
+            logging.exception("Finetuning Error\n"
+                              "Trying to continue anyways")
 
-def do_prj_finetuning(xml, log, buildenv, target, builddir):
+def do_prj_finetuning(xml, buildenv, target, builddir):
 
     if not xml.has('target/project-finetuning'):
         return
@@ -809,11 +796,11 @@ def do_prj_finetuning(xml, log, buildenv, target, builddir):
     for i in xml.node('target/project-finetuning'):
         try:
             action = FinetuningAction(i)
-            action.execute_prj(log, buildenv, target, builddir)
+            action.execute_prj(buildenv, target, builddir)
         except KeyError:
-            print("Unimplemented project-finetuning action '%s'" % (i.et.tag))
+            logging.exception("Unimplemented project-finetuning action '%s'" % (i.et.tag))
         except CommandError:
-            log.printo("ProjectFinetuning Error, trying to continue anyways")
-        except FinetuningException as e:
-            log.printo("ProjectFinetuning Error: %s" % e.message)
-            log.printo("trying to continue anyways")
+            logging.exception("ProjectFinetuning Error, trying to continue anyways")
+        except FinetuningException:
+            logging.exception("Finetuning Error\n"
+                              "Trying to continue anyways")
-- 
2.11.0




More information about the elbe-devel mailing list