]> code.ossystems Code Review - openembedded-core.git/commitdiff
buildstats: check IMAGE_ROOTFS exists before checking its size
authorMikko Ylinen <mikko.ylinen@intel.com>
Wed, 19 Oct 2016 06:34:00 +0000 (09:34 +0300)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 25 Oct 2016 16:47:15 +0000 (17:47 +0100)
After 0d6b7276003f1afabc6de683f663540327d52bdc, the exceptions are
correctly checked if the rootfs size check fails. In case of a
failure a build error is triggered.

However, there are cases where this is known to fail (e.g.,
with meta-swupd the rootfs for swupd images is other than IMAGE_ROOTFS).

Because of that, check IMAGE_ROOTFS exists before trying to get the
size of it. Also, in case of any error catched as err, simply print
out a warning.

Signed-off-by: Mikko Ylinen <mikko.ylinen@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/buildstats.bbclass

index 8c2b7b39449b0028cbe2714eb1bf74ddeed1def9..599a21998461b0a0813ee7e416e035ec2fd3d20c 100644 (file)
@@ -163,12 +163,13 @@ python run_buildstats () {
             bs = os.path.join(bsdir, "build_stats")
             with open(bs, "a") as f:
                 rootfs = d.getVar('IMAGE_ROOTFS', True)
-                try:
-                    rootfs_size = subprocess.check_output(["du", "-sh", rootfs],
-                            stderr=subprocess.STDOUT).decode('utf-8')
-                except subprocess.CalledProcessError as e:
-                    bb.error("Failed to get rootfs size: %s" % e.output)
-                f.write("Uncompressed Rootfs size: %s" % rootfs_size)
+                if os.path.isdir(rootfs):
+                    try:
+                        rootfs_size = subprocess.check_output(["du", "-sh", rootfs],
+                                stderr=subprocess.STDOUT).decode('utf-8')
+                        f.write("Uncompressed Rootfs size: %s" % rootfs_size)
+                    except subprocess.CalledProcessError as err:
+                        bb.warn("Failed to get rootfs size: %s" % err.output.decode('utf-8'))
 
     elif isinstance(e, bb.build.TaskFailed):
         # Can have a failure before TaskStarted so need to mkdir here too