diff options
author | Elliot Smith <elliot.smith@intel.com> | 2015-12-18 11:55:25 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-12-18 13:52:00 +0000 |
commit | 6e3eefb997063971801bea933f319bb428b33fa5 (patch) | |
tree | 9d27aebef3a0d686c401e772024e18e431a1e4b3 /bitbake/lib/toaster/bldcontrol/models.py | |
parent | aff2257e0b1153814aefc96737e00bdb4cf634e0 (diff) | |
download | poky-6e3eefb997063971801bea933f319bb428b33fa5.tar.gz |
bitbake: toaster: Rework 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 prevents the download error
from occurring.
(Backport of dd957fe0f261db6481882fee0413f459425000c2 and
dd957fe0f261db6481882fee0413f459425000c2 from master to Yocto 1.8)
[YOCTO #8472]
(Bitbake rev: b09966906ef054834f0b465f0c5a2a937b4c4a4c)
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/toaster/bldcontrol/models.py')
-rw-r--r-- | bitbake/lib/toaster/bldcontrol/models.py | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/bitbake/lib/toaster/bldcontrol/models.py b/bitbake/lib/toaster/bldcontrol/models.py index 02cfaf7086..770ce40ae0 100644 --- a/bitbake/lib/toaster/bldcontrol/models.py +++ b/bitbake/lib/toaster/bldcontrol/models.py | |||
@@ -39,40 +39,6 @@ class BuildEnvironment(models.Model): | |||
39 | created = models.DateTimeField(auto_now_add = True) | 39 | created = models.DateTimeField(auto_now_add = True) |
40 | updated = models.DateTimeField(auto_now = True) | 40 | updated = models.DateTimeField(auto_now = True) |
41 | 41 | ||
42 | |||
43 | def get_artifact_type(self, path): | ||
44 | if self.betype == BuildEnvironment.TYPE_LOCAL: | ||
45 | try: | ||
46 | import magic | ||
47 | |||
48 | # fair warning: this is a mess; there are multiple competeing and incompatible | ||
49 | # magic modules floating around, so we try some of the most common combinations | ||
50 | |||
51 | try: # we try ubuntu's python-magic 5.4 | ||
52 | m = magic.open(magic.MAGIC_MIME_TYPE) | ||
53 | m.load() | ||
54 | return m.file(path) | ||
55 | except AttributeError: | ||
56 | pass | ||
57 | |||
58 | try: # we try python-magic 0.4.6 | ||
59 | m = magic.Magic(magic.MAGIC_MIME) | ||
60 | return m.from_file(path) | ||
61 | except AttributeError: | ||
62 | pass | ||
63 | |||
64 | try: # we try pip filemagic 1.6 | ||
65 | m = magic.Magic(flags=magic.MAGIC_MIME_TYPE) | ||
66 | return m.id_filename(path) | ||
67 | except AttributeError: | ||
68 | pass | ||
69 | |||
70 | return "binary/octet-stream" | ||
71 | except ImportError: | ||
72 | return "binary/octet-stream" | ||
73 | raise Exception("FIXME: artifact type not implemented for build environment type %s" % be.get_betype_display()) | ||
74 | |||
75 | |||
76 | def get_artifact(self, path): | 42 | def get_artifact(self, path): |
77 | if self.betype == BuildEnvironment.TYPE_LOCAL: | 43 | if self.betype == BuildEnvironment.TYPE_LOCAL: |
78 | return open(path, "r") | 44 | return open(path, "r") |