Revision: 34e360745c66
Author: Marc-Antoine Ruel <mar...@chromium.org>
Date: Fri Dec 16 08:27:08 2011
Log: Convert the old build_results member of PatchSet to TryJobResults
Patch contributed by rogerta@chromium
Review: http://codereview.appspot.com/5496050/
http://code.google.com/p/rietveld/source/detail?r=34e360745c66
Modified:
/codereview/urls.py
/codereview/views_chromium.py
/fix_issue.py
/mapreduce.yaml
=======================================
--- /codereview/urls.py Tue Dec 6 11:08:41 2011
+++ /codereview/urls.py Fri Dec 16 08:27:08 2011
@@ -102,7 +102,6 @@
urlpatterns += patterns(
'codereview.views_chromium',
(r'^(\d+)/edit_flags$', 'edit_flags'),
- (r'^(\d+)/upload_build_result/(\d+)$', 'upload_build_result'),
(r'^conversions$', 'conversions'),
(r'^lint/issue(\d+)_(\d+)', 'lint'),
(r'^lint_patch/issue(\d+)_(\d+)_(\d+)', 'lint_patch'),
=======================================
--- /codereview/views_chromium.py Tue Dec 6 13:50:20 2011
+++ /codereview/views_chromium.py Fri Dec 16 08:27:08 2011
@@ -347,46 +347,6 @@
return HttpResponse('OK', content_type='text/plain')
-@key_required
-@patchset_required
-def upload_build_result(request):
- """/<issue>/upload_build_result/<patchset> - Set build result for a patchset.
-
- Used to upload results from a build made with the patchset on a given
- platform.
- """
- form = views.UploadBuildResult(request.POST, request.FILES)
- if not form.is_valid():
- return HttpResponse('ERROR: Upload build result errors:\n%s' %
- repr(form.errors), content_type='text/plain')
- # Do we already have build results for this patchset on this platform?
- platform_id = strip_tags(form.cleaned_data['platform_id'])
- patchset = request.patchset
- existing = False
- index = None
- for index, build_result in enumerate(patchset.build_results):
- if (build_result.split(views.UploadBuildResult.SEPARATOR, 2)[0] ==
- platform_id):
- existing = True
- break
- if existing:
- if form.cleaned_data['status']:
- patchset.build_results[index] = str(form)
- message = 'Updated existing result.'
- else:
- # An empty status means remove this build result.
- patchset.build_results.pop(index)
- message = 'Removed existing result.'
- elif form.cleaned_data['status']:
- patchset.build_results.append(str(form))
- message = 'Adding new status result.'
- else:
- message = 'Not adding empty status result.'
-
- patchset.put()
- return HttpResponse(message, content_type='text/plain')
-
-
@login_required
@xsrf_required
def conversions(request):
=======================================
--- /fix_issue.py Tue Dec 6 10:44:22 2011
+++ /fix_issue.py Fri Dec 16 08:27:08 2011
@@ -1,7 +1,7 @@
import datetime
import logging
from google.appengine.ext.mapreduce import operation as op
-from codereview.models import Account, Issue
+from codereview.models import Account, Issue, TryJobResult
def FixIssue(issue):
@@ -33,3 +33,49 @@
return
logging.warn('Deleting %s' % email)
yield op.db.Delete(account)
+
+
+def UpgradeBuildResults(patchset):
+ """Convert the old build_results member of PatchSet to TryJobResults.
+
+ For each entry in the build_results field in patchset, create an instance
+ of TryJobResult with the corresponding information. The build_results field
+ is then removed from the patchset.
+
+ Args:
+ patchset: An entity of the model PatchSet.
+ """
+ SEPARATOR = '|'
+ objects_to_save = []
+
+ if patchset.build_results:
+ for build_result in patchset.build_results:
+ try:
+ (platform_id, status, details_url) = build_result.split(SEPARATOR, 2)
+ if status == 'success':
+ result = TryJobResult.SUCCESS
+ elif status == 'failure':
+ result = TryJobResult.FAILURE
+ else:
+ result = -1
+ job = TryJobResult(parent=patchset,
+ url=details_url,
+ result=result,
+ builder=platform_id,
+ timestamp=patchset.modified)
+ objects_to_save.append(job)
+ except ValueError:
+ logging.warn('Invalid build_result %s for patchset %d/%d',
+ build_result,
+ patchset.issue.key().id(),
+ patchset.key().id())
+
+ patchset.build_results = []
+ objects_to_save.append(patchset)
+
+ class Put(op.base.Operation):
+ def __call__(self, context):
+ for obj in objects_to_save:
+ context.mutation_pool.put(obj)
+
+ yield Put()
=======================================
--- /mapreduce.yaml Tue Dec 6 10:53:34 2011
+++ /mapreduce.yaml Fri Dec 16 08:27:08 2011
@@ -13,3 +13,10 @@
params:
- name: entity_kind
default: codereview.models.Account
+- name: Convert the old build_results member of PatchSet to TryJobResults
+ mapper:
+ input_reader: google.appengine.ext.mapreduce.input_readers.DatastoreInputReader
+ handler: fix_issue.UpgradeBuildResults
+ params:
+ - name: entity_kind
+ default: codereview.models.PatchSet
--
You received this message because you are subscribed to the Google Groups "codereview-list" group.
To post to this group, send an email to codereview-list@googlegroups.com.
To unsubscribe from this group, send email to codereview-list+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/codereview-list?hl=en-GB.