aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElliot Smith <elliot.smith@intel.com>2016-02-02 10:25:03 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-02-04 23:35:04 +0000
commit4899041d59f3537c46eb79ba3471ca2b72caad89 (patch)
tree781f1ac7d1ac51e501415dfdeea945ffb848f695
parent9c597ef05cec12178d886f83a4cf7070f032ab2f (diff)
downloadopenembedded-core-4899041d59f3537c46eb79ba3471ca2b72caad89.tar.gz
toaster.bbclass: reinstate scan for artifacts in the sdk directory
During refactoring of the SDK/artifact scan code in toaster.bbclass, the code to find other non-image artifacts in the images/ directory was incorrectly removed. Reinstate that code and clean it up so it's clearer what's happening and so that non-image artifacts are correctly reported. [YOCTO #8956] Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/toaster.bbclass38
1 files changed, 24 insertions, 14 deletions
diff --git a/meta/classes/toaster.bbclass b/meta/classes/toaster.bbclass
index e307014a6a..51a4c74e5b 100644
--- a/meta/classes/toaster.bbclass
+++ b/meta/classes/toaster.bbclass
@@ -143,23 +143,33 @@ python toaster_image_dumpdata() {
image_types.bbclass will spell out IMAGE_CMD_xxx variables that actually
have hardcoded ways to create image file names in them.
So we look for files starting with the set name.
+
+ We also look for other files in the images/ directory which don't
+ match IMAGE_NAME, such as the kernel bzImage, modules tarball etc.
"""
- deploy_dir_image = d.getVar('DEPLOY_DIR_IMAGE', True);
+ dir_to_walk = d.getVar('DEPLOY_DIR_IMAGE', True);
image_name = d.getVar('IMAGE_NAME', True);
image_info_data = {}
+ artifact_info_data = {}
- # collect all images
- for dirpath, dirnames, filenames in os.walk(deploy_dir_image):
- for fn in filenames:
+ # collect all images and artifacts in the images directory
+ for dirpath, dirnames, filenames in os.walk(dir_to_walk):
+ for filename in filenames:
+ full_path = os.path.join(dirpath, filename)
try:
- if fn.startswith(image_name):
- image_output = os.path.join(dirpath, fn)
- image_info_data[image_output] = os.stat(image_output).st_size
+ if filename.startswith(image_name):
+ # image
+ image_info_data[full_path] = os.stat(full_path).st_size
+ else:
+ # other non-image artifact
+ if not os.path.islink(full_path):
+ artifact_info_data[full_path] = os.stat(full_path).st_size
except OSError as e:
bb.event.fire(bb.event.MetadataEvent("OSErrorException", e), d)
bb.event.fire(bb.event.MetadataEvent("ImageFileSize", image_info_data), d)
+ bb.event.fire(bb.event.MetadataEvent("ArtifactFileSize", artifact_info_data), d)
}
python toaster_artifact_dumpdata() {
@@ -167,16 +177,16 @@ python toaster_artifact_dumpdata() {
Dump data about artifacts in the SDK_DEPLOY directory
"""
- artifact_dir = d.getVar("SDK_DEPLOY", True)
+ dir_to_walk = d.getVar("SDK_DEPLOY", True)
artifact_info_data = {}
- # collect all artifacts
- for dirpath, dirnames, filenames in os.walk(artifact_dir):
- for fn in filenames:
+ # collect all artifacts in the sdk directory
+ for dirpath, dirnames, filenames in os.walk(dir_to_walk):
+ for filename in filenames:
+ full_path = os.path.join(dirpath, filename)
try:
- artifact_path = os.path.join(dirpath, fn)
- if not os.path.islink(artifact_path):
- artifact_info_data[artifact_path] = os.stat(artifact_path).st_size
+ if not os.path.islink(full_path):
+ artifact_info_data[full_path] = os.stat(full_path).st_size
except OSError as e:
bb.event.fire(bb.event.MetadataEvent("OSErrorException", e), d)