Title: [242719] trunk/Tools
Revision
242719
Author
aakash_j...@apple.com
Date
2019-03-11 11:22:02 -0700 (Mon, 11 Mar 2019)

Log Message

[ews-app] Add support for submit-to-ews url
https://bugs.webkit.org/show_bug.cgi?id=195477

Reviewed by Lucas Forschler.

* BuildSlaveSupport/ews-app/ews/fetcher.py:
* BuildSlaveSupport/ews-app/ews/templates/statusbubble.html:
* BuildSlaveSupport/ews-app/ews/templates/submittoews.html: Copied from QueueStatusServer/templates/submittoews.html.
* BuildSlaveSupport/ews-app/ews/urls.py:
* BuildSlaveSupport/ews-app/ews/views/submittoews.py: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/Tools/BuildSlaveSupport/ews-app/ews/fetcher.py (242718 => 242719)


--- trunk/Tools/BuildSlaveSupport/ews-app/ews/fetcher.py	2019-03-11 17:54:59 UTC (rev 242718)
+++ trunk/Tools/BuildSlaveSupport/ews-app/ews/fetcher.py	2019-03-11 18:22:02 UTC (rev 242719)
@@ -48,8 +48,13 @@
 
 
 class BugzillaPatchFetcher():
-    def fetch(self):
-        patch_ids = Bugzilla.get_list_of_patches_needing_reviews()
+    def fetch(self, patch_ids=None):
+        if patch_ids and type(patch_ids) != list:
+            _log.error('Error: patch_ids should be a list, found: {}'.format(type(patch_ids)))
+            return -1
+
+        if not patch_ids:
+            patch_ids = Bugzilla.get_list_of_patches_needing_reviews()
         patch_ids = BugzillaPatchFetcher.filter_valid_patches(patch_ids)
         _log.debug('r? patches: {}'.format(patch_ids))
         Patch.save_patches(patch_ids)

Modified: trunk/Tools/BuildSlaveSupport/ews-app/ews/templates/statusbubble.html (242718 => 242719)


--- trunk/Tools/BuildSlaveSupport/ews-app/ews/templates/statusbubble.html	2019-03-11 17:54:59 UTC (rev 242718)
+++ trunk/Tools/BuildSlaveSupport/ews-app/ews/templates/statusbubble.html	2019-03-11 18:22:02 UTC (rev 242719)
@@ -91,7 +91,7 @@
   {% endif %}
 
 {% if show_submit_to_ews %}
-  <form name="submit_to_ews" method="POST" action=""
+  <form name="submit_to_ews" method="POST" action="" csrf_token %}
     <input type="hidden" name="patch_id" value="{{ patch_id }}">
     <input type="hidden" name="next_action" value="return_to_bubbles">
     <input class="status" type="submit" value="Submit for EWS analysis">

Added: trunk/Tools/BuildSlaveSupport/ews-app/ews/templates/submittoews.html (0 => 242719)


--- trunk/Tools/BuildSlaveSupport/ews-app/ews/templates/submittoews.html	                        (rev 0)
+++ trunk/Tools/BuildSlaveSupport/ews-app/ews/templates/submittoews.html	2019-03-11 18:22:02 UTC (rev 242719)
@@ -0,0 +1,3 @@
+<form name="submit_to_ews" method="POST">{% csrf_token %}
+Attachment id of patch to submit: <input name="patch_id"><input type="submit" value="Submit for EWS Processing">
+</form>

Modified: trunk/Tools/BuildSlaveSupport/ews-app/ews/urls.py (242718 => 242719)


--- trunk/Tools/BuildSlaveSupport/ews-app/ews/urls.py	2019-03-11 17:54:59 UTC (rev 242718)
+++ trunk/Tools/BuildSlaveSupport/ews-app/ews/urls.py	2019-03-11 18:22:02 UTC (rev 242719)
@@ -26,6 +26,7 @@
 from ews.views.patch import Patch
 from ews.views.results import Results
 from ews.views.statusbubble import StatusBubble
+from ews.views.submittoews import SubmitToEWS
 
 app_name = 'ews'
 urlpatterns = [
@@ -37,4 +38,6 @@
     url(r'^results/$', Results.as_view(), name='results'),
     # ex: /status-bubble/5
     url(r'^status-bubble/(?P<patch_id>[0-9]+)/$', StatusBubble.as_view(), name='statusbubble'),
+    # ex: /submit-to-ews/
+    url(r'^submit-to-ews/$', SubmitToEWS.as_view(), name='submittoews'),
 ]

Added: trunk/Tools/BuildSlaveSupport/ews-app/ews/views/submittoews.py (0 => 242719)


--- trunk/Tools/BuildSlaveSupport/ews-app/ews/views/submittoews.py	                        (rev 0)
+++ trunk/Tools/BuildSlaveSupport/ews-app/ews/views/submittoews.py	2019-03-11 18:22:02 UTC (rev 242719)
@@ -0,0 +1,60 @@
+# Copyright (C) 2019 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1.  Redistributions of source code must retain the above copyright
+#     notice, this list of conditions and the following disclaimer.
+# 2.  Redistributions in binary form must reproduce the above copyright
+#     notice, this list of conditions and the following disclaimer in the
+#     documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+from __future__ import unicode_literals
+
+import json
+import logging
+
+from django.http import HttpResponse
+from django.shortcuts import redirect, render
+from django.views import View
+
+from ews.fetcher import BugzillaPatchFetcher
+from ews.models.patch import Patch
+
+_log = logging.getLogger(__name__)
+
+
+class SubmitToEWS(View):
+    def get(self, request):
+        return render(request, 'submittoews.html', {})
+
+    def post(self, request):
+        try:
+            patch_id = request.POST.get('patch_id')
+            patch_id = int(patch_id)
+        except:
+            return HttpResponse("Invalid patch id {}".format(request.POST.get('patch_id')))
+
+        _log.debug('SubmitToEWS::patch: {}'.format(patch_id))
+        if Patch.is_patch_sent_to_buildbot(patch_id):
+            _log.info('SubmitToEWS::patch {} already submitted'.format(patch_id))
+            if request.POST.get('next_action') == 'return_to_bubbles':
+                return redirect('/status-bubble/{}'.format(patch_id))
+            return HttpResponse("Patch {} already submitted. Please wait for status-bubbles.".format(patch_id))
+
+        BugzillaPatchFetcher().fetch([patch_id])
+
+        if request.POST.get('next_action') == 'return_to_bubbles':
+            return redirect('/status-bubble/{}'.format(patch_id))
+        return HttpResponse("Submitted patch {} to EWS.".format(patch_id))

Modified: trunk/Tools/ChangeLog (242718 => 242719)


--- trunk/Tools/ChangeLog	2019-03-11 17:54:59 UTC (rev 242718)
+++ trunk/Tools/ChangeLog	2019-03-11 18:22:02 UTC (rev 242719)
@@ -1,3 +1,16 @@
+2019-03-11  Aakash Jain  <aakash_j...@apple.com>
+
+        [ews-app] Add support for submit-to-ews url
+        https://bugs.webkit.org/show_bug.cgi?id=195477
+
+        Reviewed by Lucas Forschler.
+
+        * BuildSlaveSupport/ews-app/ews/fetcher.py:
+        * BuildSlaveSupport/ews-app/ews/templates/statusbubble.html:
+        * BuildSlaveSupport/ews-app/ews/templates/submittoews.html: Copied from QueueStatusServer/templates/submittoews.html.
+        * BuildSlaveSupport/ews-app/ews/urls.py:
+        * BuildSlaveSupport/ews-app/ews/views/submittoews.py: Added.
+
 2019-03-11  Ryan Haddad  <ryanhad...@apple.com>
 
         Unreviewed, rolling out r242688, r242643, r242624.
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to