Title: [250572] trunk/Tools
Revision
250572
Author
aakash_j...@apple.com
Date
2019-10-01 12:06:30 -0700 (Tue, 01 Oct 2019)

Log Message

[ews] Add method to retry a build using Buildbot API
https://bugs.webkit.org/show_bug.cgi?id=202408

Reviewed by Jonathan Bedard.

* BuildSlaveSupport/ews-app/ews/common/buildbot.py:
(Buildbot.retry_build): Method to retry given build using Buildbot API.

Modified Paths

Diff

Modified: trunk/Tools/BuildSlaveSupport/ews-app/ews/common/buildbot.py (250571 => 250572)


--- trunk/Tools/BuildSlaveSupport/ews-app/ews/common/buildbot.py	2019-10-01 19:01:10 UTC (rev 250571)
+++ trunk/Tools/BuildSlaveSupport/ews-app/ews/common/buildbot.py	2019-10-01 19:06:30 UTC (rev 250572)
@@ -25,6 +25,7 @@
 import logging
 import os
 import re
+import requests
 import subprocess
 
 import ews.common.util as util
@@ -98,3 +99,27 @@
             Buildbot.icons_for_queues_mapping[shortname] = builder.get('icon')
 
         return Buildbot.icons_for_queues_mapping
+
+    @classmethod
+    def retry_build(cls, builder_id, build_number):
+        if not (util.is_valid_id(builder_id) and util.is_valid_id(build_number)):
+            return False
+
+        build_url = 'https://{}/api/v2/builders/{}/builds/{}'.format(config.BUILDBOT_SERVER_HOST, builder_id, build_number)
+        username = os.getenv('EWS_ADMIN_USERNAME')
+        password = os.getenv('EWS_ADMIN_PASSWORD1')
+        session = requests.Session()
+        response = session.head('https://{}/auth/login'.format(config.BUILDBOT_SERVER_HOST), auth=(username, password))
+        if (not response) or response.status_code not in (200, 302):
+            _log.error('Authentication to {} failed. Please check username/password.'.format(config.BUILDBOT_SERVER_HOST))
+            return False
+
+        json_data = {'method': 'rebuild', 'id': 1, 'jsonrpc': '2.0', 'params': {'reason': 'retried-by-user'}}
+        response = session.post(build_url, json=json_data)
+
+        if response and response.status_code == 200:
+            _log.info('Successfuly submitted retry request for build: {}'.format(build_url))
+            return True
+
+        _log.error('Failed to retry build: {}, http response code: {}'.format(build_url, response.status_code))
+        return False

Modified: trunk/Tools/ChangeLog (250571 => 250572)


--- trunk/Tools/ChangeLog	2019-10-01 19:01:10 UTC (rev 250571)
+++ trunk/Tools/ChangeLog	2019-10-01 19:06:30 UTC (rev 250572)
@@ -1,3 +1,13 @@
+2019-10-01  Aakash Jain  <aakash_j...@apple.com>
+
+        [ews] Add method to retry a build using Buildbot API
+        https://bugs.webkit.org/show_bug.cgi?id=202408
+
+        Reviewed by Jonathan Bedard.
+
+        * BuildSlaveSupport/ews-app/ews/common/buildbot.py:
+        (Buildbot.retry_build): Method to retry given build using Buildbot API.
+
 2019-10-01  David Kilzer  <ddkil...@apple.com>
 
         clang-tidy: Fix unnecessary copying/ref churn of for loop variables in Tools
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to