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.