[buildinfo.debian.net] 04/07: Load data from S3 if we don't have it locally.
Chris Lamb
chris at chris-lamb.co.uk
Sat Jan 28 21:58:58 UTC 2017
This is an automated email from the git hooks/post-receive script.
lamby pushed a commit to branch master
in repository buildinfo.debian.net.
commit 75bc50bbfc0dc4bfe0b043fc726ab882bc68040e
Author: Chris Lamb <lamby at debian.org>
Date: Sun Jan 29 10:26:08 2017 +1300
Load data from S3 if we don't have it locally.
Signed-off-by: Chris Lamb <lamby at debian.org>
---
bidb/buildinfo/buildinfo_submissions/models.py | 8 ++++++++
bidb/buildinfo/buildinfo_submissions/views.py | 8 +++++++-
bidb/buildinfo/models.py | 8 ++++++++
bidb/buildinfo/views.py | 8 +++++++-
4 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/bidb/buildinfo/buildinfo_submissions/models.py b/bidb/buildinfo/buildinfo_submissions/models.py
index dc3231a..22d7103 100644
--- a/bidb/buildinfo/buildinfo_submissions/models.py
+++ b/bidb/buildinfo/buildinfo_submissions/models.py
@@ -21,6 +21,7 @@ class Submission(models.Model):
key = models.ForeignKey('keys.Key', related_name='submissions')
+ # Deprecated
raw_text = models.TextField()
created = models.DateTimeField(default=datetime.datetime.utcnow)
@@ -42,3 +43,10 @@ class Submission(models.Model):
self.buildinfo.get_filename(),
self.slug,
)
+
+ def get_storage_name(self):
+ return 'buildinfo_submissions.Submission/{}/{}/{}'.format(
+ self.slug[:2],
+ self.slug[2:4],
+ self.slug,
+ )
diff --git a/bidb/buildinfo/buildinfo_submissions/views.py b/bidb/buildinfo/buildinfo_submissions/views.py
index 104c78a..222f8ec 100644
--- a/bidb/buildinfo/buildinfo_submissions/views.py
+++ b/bidb/buildinfo/buildinfo_submissions/views.py
@@ -1,5 +1,6 @@
from django.http import HttpResponse
from django.shortcuts import redirect, get_object_or_404
+from django.core.files.storage import default_storage
from .models import Submission
@@ -14,4 +15,9 @@ def view(request, sha1, filename, slug):
if submission.buildinfo.get_filename() != filename:
return redirect(submission)
- return HttpResponse(submission.raw_text, content_type='text/plain')
+ # Legacy
+ if submission.raw_text:
+ return HttpResponse(submission.raw_text, content_type='text/plain')
+
+ with default_storage.open(submission.get_storage_name()) as f:
+ return HttpResponse(f, content_type='text/plain')
diff --git a/bidb/buildinfo/models.py b/bidb/buildinfo/models.py
index 6914a51..31f0fde 100644
--- a/bidb/buildinfo/models.py
+++ b/bidb/buildinfo/models.py
@@ -27,6 +27,7 @@ class Buildinfo(models.Model):
environment = models.TextField()
+ # Deprecated
raw_text = models.TextField()
created = models.DateTimeField(default=datetime.datetime.utcnow)
@@ -52,6 +53,13 @@ class Buildinfo(models.Model):
self.architecture.name,
)
+ def get_storage_name(self):
+ return 'buildinfo.Buildinfo/{}/{}/{}'.format(
+ self.sha1[:2],
+ self.sha1[2:4],
+ self.sha1,
+ )
+
class Binary(models.Model):
buildinfo = models.ForeignKey(
Buildinfo,
diff --git a/bidb/buildinfo/views.py b/bidb/buildinfo/views.py
index 05f115c..c4fbff7 100644
--- a/bidb/buildinfo/views.py
+++ b/bidb/buildinfo/views.py
@@ -1,5 +1,6 @@
from django.http import HttpResponse
from django.shortcuts import render, get_object_or_404, redirect
+from django.core.files.storage import default_storage
from .models import Buildinfo
@@ -22,4 +23,9 @@ def view(request, sha1, filename=None):
def raw_text(request, sha1, filename=None):
buildinfo = get_object_or_404(Buildinfo, sha1=sha1)
- return HttpResponse(buildinfo.raw_text, content_type='text/plain')
+ # Legacy
+ if buildinfo.raw_text:
+ return HttpResponse(buildinfo.raw_text, content_type='text/plain')
+
+ with default_storage.open(buildinfo.get_storage_name()) as f:
+ return HttpResponse(f, content_type='text/plain')
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/buildinfo.debian.net.git
More information about the Reproducible-commits
mailing list