wic: make sure that partition size is always an integer in internal processing

The size field of Partition class is expected to be an integer and ought
to be set inside prepare_*() method. Make sure that this is always the
case.

(From OE-Core rev: a37838f995ae642b0b8bdd47a605a264fb3bf200)

Signed-off-by: Maciej Borzecki <maciej.borzecki@rndity.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Maciej Borzecki 2016-11-10 13:18:32 +01:00 committed by Richard Purdie
parent 81afedc905
commit f0181e79ed
3 changed files with 12 additions and 6 deletions

View File

@ -146,6 +146,12 @@ class Partition():
oe_builddir,
bootimg_dir, kernel_dir, rootfs_dir,
native_sysroot)
# further processing required Partition.size to be an integer, make
# sure that it is one
if type(self.size) is not int:
msger.error("Partition %s internal size is not an integer. " \
"This a bug in source plugin %s and needs to be fixed." \
% (self.mountpoint, self.source))
def prepare_rootfs_from_fs_image(self, cr_workdir, oe_builddir,
rootfs_dir):
@ -157,7 +163,7 @@ class Partition():
out = exec_cmd(du_cmd)
rootfs_size = out.split()[0]
self.size = rootfs_size
self.size = int(rootfs_size)
self.source_file = rootfs
def prepare_rootfs(self, cr_workdir, oe_builddir, rootfs_dir,
@ -194,7 +200,7 @@ class Partition():
# get the rootfs size in the right units for kickstart (kB)
du_cmd = "du -Lbks %s" % rootfs
out = exec_cmd(du_cmd)
self.size = out.split()[0]
self.size = int(out.split()[0])
break
@ -379,7 +385,7 @@ class Partition():
out = exec_cmd(du_cmd)
fs_size = out.split()[0]
self.size = fs_size
self.size = int(fs_size)
def prepare_swap_partition(self, cr_workdir, oe_builddir, native_sysroot):
"""

View File

@ -234,5 +234,5 @@ class BootimgEFIPlugin(SourcePlugin):
out = exec_cmd(du_cmd)
bootimg_size = out.split()[0]
part.size = bootimg_size
part.size = int(bootimg_size)
part.source_file = bootimg

View File

@ -78,9 +78,9 @@ class RawCopyPlugin(SourcePlugin):
# get the size in the right units for kickstart (kB)
du_cmd = "du -Lbks %s" % dst
out = exec_cmd(du_cmd)
filesize = out.split()[0]
filesize = int(out.split()[0])
if int(filesize) > int(part.size):
if filesize > part.size:
part.size = filesize
part.source_file = dst