[Toaster] [review-request][PATCH] toaster: Rationalise mimetype guessing to fix artifact downloads
Ed Bartosh
ed.bartosh at linux.intel.com
Mon Sep 28 02:05:30 PDT 2015
Hi Elliot,
The patch looks great! Thanks you!
Acked-by: Ed Bartosh <ed.bartosh at linux.intel.com>
On Thu, Sep 24, 2015 at 02:14:21PM +0100, Elliot Smith wrote:
> Artifact download links were broken because the function to
> get the mimetype for the artifact was incorrectly using the
> underlying mimetype library. The function was also attached
> to the build environment controller, which was unnecessary, as
> we only support local controllers anyway.
>
> Remove the mimetype getter on the build environment and
> use the one in the view code instead. This works correctly
> and prevents the download error from occurring.
>
> [YOCTO #8369]
>
> Signed-off-by: Elliot Smith <elliot.smith at intel.com>
> ---
> bitbake/lib/toaster/bldcontrol/models.py | 34 --------------------------------
> bitbake/lib/toaster/toastergui/views.py | 2 +-
> 2 files changed, 1 insertion(+), 35 deletions(-)
>
> diff --git a/bitbake/lib/toaster/bldcontrol/models.py b/bitbake/lib/toaster/bldcontrol/models.py
> index b61de58..c577b10 100644
> --- a/bitbake/lib/toaster/bldcontrol/models.py
> +++ b/bitbake/lib/toaster/bldcontrol/models.py
> @@ -39,40 +39,6 @@ class BuildEnvironment(models.Model):
> created = models.DateTimeField(auto_now_add = True)
> updated = models.DateTimeField(auto_now = True)
>
> -
> - def get_artifact_type(self, path):
> - if self.betype == BuildEnvironment.TYPE_LOCAL:
> - try:
> - import magic
> -
> - # fair warning: this is a mess; there are multiple competeing and incompatible
> - # magic modules floating around, so we try some of the most common combinations
> -
> - try: # we try ubuntu's python-magic 5.4
> - m = magic.open(magic.MAGIC_MIME_TYPE)
> - m.load()
> - return m.file(path)
> - except AttributeError:
> - pass
> -
> - try: # we try python-magic 0.4.6
> - m = magic.Magic(magic.MAGIC_MIME)
> - return m.from_file(path)
> - except AttributeError:
> - pass
> -
> - try: # we try pip filemagic 1.6
> - m = magic.Magic(flags=magic.MAGIC_MIME_TYPE)
> - return m.id_filename(path)
> - except AttributeError:
> - pass
> -
> - return "binary/octet-stream"
> - except ImportError:
> - return "binary/octet-stream"
> - raise Exception("FIXME: artifact type not implemented for build environment type %s" % self.get_betype_display())
> -
> -
> def get_artifact(self, path):
> if self.betype == BuildEnvironment.TYPE_LOCAL:
> return open(path, "r")
> diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py
> index 8689a12..2ec0197 100755
> --- a/bitbake/lib/toaster/toastergui/views.py
> +++ b/bitbake/lib/toaster/toastergui/views.py
> @@ -2797,7 +2797,7 @@ if True:
> if file_name is None:
> raise Exception("Could not handle artifact %s id %s" % (artifact_type, artifact_id))
> else:
> - content_type = b.buildrequest.environment.get_artifact_type(file_name)
> + content_type = MimeTypeFinder.get_mimetype(file_name)
> fsock = b.buildrequest.environment.get_artifact(file_name)
> file_name = os.path.basename(file_name) # we assume that the build environment system has the same path conventions as host
>
> --
> Elliot Smith
> Software Engineer
> Intel OTC
>
> ---------------------------------------------------------------------
> Intel Corporation (UK) Limited
> Registered No. 1134945 (England)
> Registered Office: Pipers Way, Swindon SN3 1RJ
> VAT No: 860 2173 47
>
> This e-mail and any attachments may contain confidential material for
> the sole use of the intended recipient(s). Any review or distribution
> by others is strictly prohibited. If you are not the intended
> recipient, please contact the sender and delete all copies.
>
> --
> _______________________________________________
> toaster mailing list
> toaster at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/toaster
--
--
Regards,
Ed
More information about the toaster
mailing list