diff options
author | Ming Liu <liu.ming50@gmail.com> | 2019-02-12 16:20:01 +0100 |
---|---|---|
committer | Ming Liu <liu.ming50@gmail.com> | 2019-02-12 17:19:15 +0100 |
commit | 27ee48ec353caa5223b7a83c715dbe9757adb1bf (patch) | |
tree | 6b04f46757d069d99157921ddc0525510e32cbad /scripts | |
parent | 29c3476c8286649210ab8d731bfa063c76907f3b (diff) | |
download | meta-updater-27ee48ec353caa5223b7a83c715dbe9757adb1bf.tar.gz |
wic:plugins:otaimage.py: fix a potential issue
do_image_wic task is a standalone task that depending on
do_image_ota_ext4, so it's possible that do_image_wic runs
(taskhash contaminated) but do_image_ota_ext4 does not (taskhash not
contaminated), in which case, the otaimage would be in DEPLOY_DIR_IMAGE
instead of in IMGDEPLOYDIR, so we need check both of them.
Also, the logger.error is not supposed to raise a error, it just
prints out a error message, so we should use WicError.
And another typo is it checks IMGDEPLOYDIR but reports DEPLOY_DIR_IMAGE
not exist, also fix that.
Signed-off-by: Ming Liu <liu.ming50@gmail.com>
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/lib/wic/plugins/source/otaimage.py | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/scripts/lib/wic/plugins/source/otaimage.py b/scripts/lib/wic/plugins/source/otaimage.py index 4b30776..1f82af7 100644 --- a/scripts/lib/wic/plugins/source/otaimage.py +++ b/scripts/lib/wic/plugins/source/otaimage.py | |||
@@ -19,6 +19,7 @@ import logging | |||
19 | import os | 19 | import os |
20 | import sys | 20 | import sys |
21 | 21 | ||
22 | from wic import WicError | ||
22 | from wic.plugins.source.rawcopy import RawCopyPlugin | 23 | from wic.plugins.source.rawcopy import RawCopyPlugin |
23 | from wic.misc import get_bitbake_var | 24 | from wic.misc import get_bitbake_var |
24 | 25 | ||
@@ -32,6 +33,18 @@ class OTAImagePlugin(RawCopyPlugin): | |||
32 | name = 'otaimage' | 33 | name = 'otaimage' |
33 | 34 | ||
34 | @classmethod | 35 | @classmethod |
36 | def _get_src_file(cls, image_dir_var): | ||
37 | """ | ||
38 | Get OTA image file from image directory variable. | ||
39 | """ | ||
40 | image_dir = get_bitbake_var(image_dir_var) | ||
41 | if not image_dir: | ||
42 | raise WicError("Couldn't find %s, exiting" % image_dir_var) | ||
43 | |||
44 | image_file = image_dir + "/" + get_bitbake_var("IMAGE_LINK_NAME") + ".ota-ext4" | ||
45 | return image_file if os.path.exists(image_file) else "" | ||
46 | |||
47 | @classmethod | ||
35 | def do_prepare_partition(cls, part, source_params, cr, cr_workdir, | 48 | def do_prepare_partition(cls, part, source_params, cr, cr_workdir, |
36 | oe_builddir, bootimg_dir, kernel_dir, | 49 | oe_builddir, bootimg_dir, kernel_dir, |
37 | rootfs_dir, native_sysroot): | 50 | rootfs_dir, native_sysroot): |
@@ -39,13 +52,12 @@ class OTAImagePlugin(RawCopyPlugin): | |||
39 | Called to do the actual content population for a partition i.e. it | 52 | Called to do the actual content population for a partition i.e. it |
40 | 'prepares' the partition to be incorporated into the image. | 53 | 'prepares' the partition to be incorporated into the image. |
41 | """ | 54 | """ |
42 | bootimg_dir = get_bitbake_var("IMGDEPLOYDIR") | ||
43 | if not bootimg_dir: | ||
44 | logger.error("Couldn't find DEPLOY_DIR_IMAGE, exiting\n") | ||
45 | |||
46 | logger.debug('Bootimg dir: %s' % bootimg_dir) | ||
47 | 55 | ||
48 | src = bootimg_dir + "/" + get_bitbake_var("IMAGE_LINK_NAME") + ".ota-ext4" | 56 | src = cls._get_src_file("IMGDEPLOYDIR") |
57 | if not src: | ||
58 | src = cls._get_src_file("DEPLOY_DIR_IMAGE") | ||
59 | if not src: | ||
60 | raise WicError("Couldn't find ota image in IMGDEPLOYDIR or DEPLOY_DIR_IMAGE, exiting") | ||
49 | 61 | ||
50 | logger.debug('Preparing partition using image %s' % (src)) | 62 | logger.debug('Preparing partition using image %s' % (src)) |
51 | source_params['file'] = src | 63 | source_params['file'] = src |