summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElliot Smith <elliot.smith@intel.com>2015-10-06 20:05:22 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-10-11 05:28:22 +0100
commit805fb2a9388c728600596e9b845a5c7eeaebd99c (patch)
tree2c1b5406c060822bb482f48c36259aea51667543
parent0dd0ac25d54c73f13812db04826b57b3d16ea43f (diff)
downloadbitbake-805fb2a9388c728600596e9b845a5c7eeaebd99c.tar.gz
toaster: Rationalise mimetype guessing to fix artifact downloads
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@intel.com> Signed-off-by: brian avery <avery.brian@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/toaster/bldcontrol/models.py34
-rwxr-xr-xlib/toaster/toastergui/views.py2
2 files changed, 1 insertions, 35 deletions
diff --git a/lib/toaster/bldcontrol/models.py b/lib/toaster/bldcontrol/models.py
index f2493a842..ab4110530 100644
--- a/lib/toaster/bldcontrol/models.py
+++ b/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/lib/toaster/toastergui/views.py b/lib/toaster/toastergui/views.py
index 6e5815595..839ee78f9 100755
--- a/lib/toaster/toastergui/views.py
+++ b/lib/toaster/toastergui/views.py
@@ -2981,7 +2981,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