summaryrefslogtreecommitdiffstats
path: root/meta/classes/toaster.bbclass
diff options
context:
space:
mode:
authorElliot Smith <elliot.smith@intel.com>2016-01-13 08:55:36 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-01-18 11:47:07 +0000
commite246905bfc271d271c9dbfb3dd78db53b36b849a (patch)
tree07b9bf37cb6c2dc8c9abc29dc85afafb521aa57b /meta/classes/toaster.bbclass
parent4f481bcfaab6cd3aebed94579e59b184333f7609 (diff)
downloadpoky-e246905bfc271d271c9dbfb3dd78db53b36b849a.tar.gz
toaster.bbclass: Separate artifact dump from image file dump
SDK artifacts were being dumped alongside the image file dump. However, the dump was not being triggered correctly, as it should be attached as a postfunc to do_populate_sdk, rather than do_rootfs, as do_rootfs doesn't always fire when populating the SDK directory. By adding a postfunc to do_populate_sdk, the postfunc is fired in the correct situations. Also fixes the directory which is scanned for SDK artifacts, as this is different from the image file directory. [YOCTO #7603] (From OE-Core rev: cd2eb45ce1f9be15e133d6fe940c1cff2199099b) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/toaster.bbclass')
-rw-r--r--meta/classes/toaster.bbclass38
1 files changed, 27 insertions, 11 deletions
diff --git a/meta/classes/toaster.bbclass b/meta/classes/toaster.bbclass
index bbda2f8433..fba9067f0a 100644
--- a/meta/classes/toaster.bbclass
+++ b/meta/classes/toaster.bbclass
@@ -147,31 +147,43 @@ python toaster_image_dumpdata() {
147 147
148 deploy_dir_image = d.getVar('DEPLOY_DIR_IMAGE', True); 148 deploy_dir_image = d.getVar('DEPLOY_DIR_IMAGE', True);
149 image_name = d.getVar('IMAGE_NAME', True); 149 image_name = d.getVar('IMAGE_NAME', True);
150
151 image_info_data = {} 150 image_info_data = {}
152 artifact_info_data = {}
153 151
154 # collect all artifacts 152 # collect all images
155 for dirpath, dirnames, filenames in os.walk(deploy_dir_image): 153 for dirpath, dirnames, filenames in os.walk(deploy_dir_image):
156 for fn in filenames: 154 for fn in filenames:
157 try: 155 try:
158 if fn.startswith(image_name): 156 if fn.startswith(image_name):
159 image_output = os.path.join(dirpath, fn) 157 image_output = os.path.join(dirpath, fn)
160 image_info_data[image_output] = os.stat(image_output).st_size 158 image_info_data[image_output] = os.stat(image_output).st_size
161 else:
162 import stat
163 artifact_path = os.path.join(dirpath, fn)
164 filestat = os.stat(artifact_path)
165 if not os.path.islink(artifact_path):
166 artifact_info_data[artifact_path] = filestat.st_size
167 except OSError as e: 159 except OSError as e:
168 bb.event.fire(bb.event.MetadataEvent("OSErrorException", e), d) 160 bb.event.fire(bb.event.MetadataEvent("OSErrorException", e), d)
169 161
170 bb.event.fire(bb.event.MetadataEvent("ImageFileSize",image_info_data), d) 162 bb.event.fire(bb.event.MetadataEvent("ImageFileSize",image_info_data), d)
171 bb.event.fire(bb.event.MetadataEvent("ArtifactFileSize",artifact_info_data), d)
172} 163}
173 164
165python toaster_artifact_dumpdata() {
166 """
167 Dump data about artifacts in the SDK_DEPLOY directory
168 """
169
170 artifact_dir = d.getVar("SDK_DEPLOY", True)
171 artifact_info_data = {}
172
173 # collect all artifacts
174 for dirpath, dirnames, filenames in os.walk(artifact_dir):
175 for fn in filenames:
176 try:
177 artifact_path = os.path.join(dirpath, fn)
178 filestat = os.stat(artifact_path)
179 if not os.path.islink(artifact_path):
180 artifact_info_data[artifact_path] = filestat.st_size
181 except OSError as e:
182 import sys
183 bb.event.fire(bb.event.MetadataEvent("OSErrorException", e), d)
174 184
185 bb.event.fire(bb.event.MetadataEvent("ArtifactFileSize",artifact_info_data), d)
186}
175 187
176# collect list of buildstats files based on fired events; when the build completes, collect all stats and fire an event with collected data 188# collect list of buildstats files based on fired events; when the build completes, collect all stats and fire an event with collected data
177 189
@@ -341,9 +353,13 @@ toaster_collect_task_stats[eventmask] = "bb.event.BuildCompleted bb.build.TaskSu
341 353
342addhandler toaster_buildhistory_dump 354addhandler toaster_buildhistory_dump
343toaster_buildhistory_dump[eventmask] = "bb.event.BuildCompleted" 355toaster_buildhistory_dump[eventmask] = "bb.event.BuildCompleted"
356
344do_package[postfuncs] += "toaster_package_dumpdata " 357do_package[postfuncs] += "toaster_package_dumpdata "
345do_package[vardepsexclude] += "toaster_package_dumpdata " 358do_package[vardepsexclude] += "toaster_package_dumpdata "
346 359
347do_rootfs[postfuncs] += "toaster_image_dumpdata " 360do_rootfs[postfuncs] += "toaster_image_dumpdata "
348do_rootfs[postfuncs] += "toaster_licensemanifest_dump " 361do_rootfs[postfuncs] += "toaster_licensemanifest_dump "
349do_rootfs[vardepsexclude] += "toaster_image_dumpdata toaster_licensemanifest_dump" 362do_rootfs[vardepsexclude] += "toaster_image_dumpdata toaster_licensemanifest_dump "
363
364do_populate_sdk[postfuncs] += "toaster_artifact_dumpdata "
365do_populate_sdk[vardepsexclude] += "toaster_artifact_dumpdata "