WebKit Bugzilla
Attachment 360484 Details for
Bug 193973
: [ews-app] Handle incoming results data
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Proposed patch
ews-app-results-endpoint.patch (text/plain), 3.54 KB, created by
Aakash Jain
on 2019-01-29 12:11:08 PST
(
hide
)
Description:
Proposed patch
Filename:
MIME Type:
Creator:
Aakash Jain
Created:
2019-01-29 12:11:08 PST
Size:
3.54 KB
patch
obsolete
>Index: Tools/ChangeLog >=================================================================== >--- Tools/ChangeLog (revision 240668) >+++ Tools/ChangeLog (working copy) >@@ -1,3 +1,12 @@ >+2019-01-29 Aakash Jain <aakash_jain@apple.com> >+ >+ [ews-app] Handle incoming results data >+ https://bugs.webkit.org/show_bug.cgi?id=193973 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * BuildSlaveSupport/ews-app/ews/views/results.py: >+ > 2019-01-29 Keith Rollin <krollin@apple.com> > > Add .xcfilelists to Run Script build phases >Index: Tools/BuildSlaveSupport/ews-app/ews/views/results.py >=================================================================== >--- Tools/BuildSlaveSupport/ews-app/ews/views/results.py (revision 240668) >+++ Tools/BuildSlaveSupport/ews-app/ews/views/results.py (working copy) >@@ -22,11 +22,65 @@ > > from __future__ import unicode_literals > >+import json >+import logging >+ > from django.http import HttpResponse > from django.shortcuts import render > from django.views import View >+from django.views.decorators.csrf import csrf_exempt >+from django.utils.decorators import method_decorator >+ >+from ews.models.build import Build >+from ews.models.step import Step > >+_log = logging.getLogger(__name__) > >+ >+@method_decorator(csrf_exempt, name='dispatch') > class Results(View): >- def post(self, request, patch_id): >- return HttpResponse("Placeholder to handle post request for result for patch: {}.".format(patch_id)) >+ def post(self, request): >+ data = json.loads(request.body) >+ >+ if data.get('type') == u'ews-build': >+ return self.build_event(data) >+ >+ if data.get('type') == u'ews-step': >+ return self.step_event(data) >+ >+ _log.error('Unexpected data type received: {}'.format(data.get('type'))) >+ return HttpResponse('Unexpected data type received: {}'.format(data.get('type'))) >+ >+ def build_event(self, data): >+ if not self.is_valid_result(data): >+ return HttpResponse("Incomplete data.") >+ >+ patch_id = data['patch_id'] >+ if not patch_id or patch_id < 1: >+ return HttpResponse("Invalid patch id: {}.".format(patch_id)) >+ >+ Build.save_build(patch_id=int(patch_id), build_id=data['build_id'], builder_id=data['builder_id'], number=data['number'], result=data['result'], >+ state_string=data['state_string'], started_at=data['started_at'], complete_at=data['complete_at']) >+ return HttpResponse("Saved data for patch: {}.\n".format(patch_id)) >+ >+ def step_event(self, data): >+ if not self.is_valid_result(data): >+ return HttpResponse("Incomplete data.") >+ >+ Step.save_step(step_id=data['step_id'], build_id=data['build_id'], result=data['result'], >+ state_string=data['state_string'], started_at=data['started_at'], complete_at=data['complete_at']) >+ return HttpResponse("Saved data for step: {}.\n".format(data['step_id'])) >+ >+ def is_valid_result(self, data): >+ if data['type'] not in [u'ews-build', u'ews-step']: >+ _log.error("Invalid data type: {}".format(data['type'])) >+ return False >+ >+ required_keys = {u'ews-build': ['patch_id', 'build_id', 'builder_id', 'number', 'result', 'state_string', 'started_at', 'complete_at'], >+ u'ews-step': ['step_id', 'build_id', 'result', 'state_string', 'started_at', 'complete_at']} >+ >+ for key in required_keys.get(data.get('type')): >+ if key not in data: >+ _log.warn('Data is missing {}'.format(key)) >+ return False >+ return True
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 193973
: 360484