Changeset 70117 in webkit
- Timestamp:
- Oct 19, 2010 6:26:21 PM (14 years ago)
- Location:
- trunk/WebKitTools
- Files:
-
- 1 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebKitTools/ChangeLog
r70103 r70117 1 2010-10-19 Eric Seidel <eric@webkit.org> 2 3 Reviewed by Adam Barth. 4 5 Teach feeder-queue how to feed the EWS bots 6 https://bugs.webkit.org/show_bug.cgi?id=47943 7 8 queues.webkit.org already knew how to accept EWS submissions 9 via /submit-to-ews. This teaches the feeder queue how to post 10 to that page with any new r? patches it sees. 11 12 * QueueStatusServer/model/activeworkitems_unitest.py: Added. 13 - More unit testing is always a good thing. 14 * Scripts/webkitpy/common/net/bugzilla.py: 15 * Scripts/webkitpy/common/net/statusserver.py: 16 * Scripts/webkitpy/tool/bot/feeders.py: 17 * Scripts/webkitpy/tool/commands/queues.py: 18 * Scripts/webkitpy/tool/commands/queues_unittest.py: 19 * Scripts/webkitpy/tool/mocktool.py: 20 1 21 2010-10-19 Eric Seidel <eric@webkit.org> 2 22 -
trunk/WebKitTools/Scripts/webkitpy/common/net/bugzilla.py
r68496 r70117 302 302 return self._fetch_bug_ids_advanced_query(review_queue_url) 303 303 304 # This method will make several requests to bugzilla. 304 305 def fetch_patches_from_review_queue(self, limit=None): 305 306 # [:None] returns the whole array. … … 307 308 for bug_id in self._fetch_bug_ids_from_review_queue()[:limit]], []) 308 309 309 # FIXME: Why do we have both fetch_patches_from_review_queue and 310 # fetch_attachment_ids_from_review_queue?? 311 # NOTE: This is also the only client of _fetch_attachment_ids_request_query 312 310 # NOTE: This is the only client of _fetch_attachment_ids_request_query 311 # This method only makes one request to bugzilla. 313 312 def fetch_attachment_ids_from_review_queue(self): 314 313 review_queue_url = "request.cgi?action=queue&type=review&group=type" -
trunk/WebKitTools/Scripts/webkitpy/common/net/statusserver.py
r70096 r70117 103 103 return self._browser.submit().read() 104 104 105 def _post_work_item_to_ews(self, attachment_id): 106 submit_to_ews_url = "%s/submit-to-ews" % self.url 107 self._browser.open(submit_to_ews_url) 108 self._browser.select_form(name="submit_to_ews") 109 self._browser["attachment_id"] = unicode(attachment_id) 110 self._browser.submit() 111 112 def submit_to_ews(self, attachment_id): 113 _log.info("Submitting attachment %s to EWS queues" % attachment_id) 114 return NetworkTransaction().run(lambda: self._post_work_item_to_ews(attachment_id)) 115 105 116 def next_work_item(self, queue_name): 106 117 _log.debug("Fetching next work item for %s" % queue_name) -
trunk/WebKitTools/Scripts/webkitpy/tool/bot/feeders.py
r67913 r70117 29 29 from webkitpy.common.system.deprecated_logging import log 30 30 from webkitpy.common.net.bugzilla import CommitterValidator 31 from webkitpy.tool.grammar import pluralize 31 32 32 33 … … 35 36 self._tool = tool 36 37 37 def feed(tool): 38 raise NotImplementedError, "subclasses must implement" 39 40 def update_work_items(self, item_ids): 41 self._tool.status_server.update_work_items(self.queue_name, item_ids) 42 log("Feeding %s items %s" % (self.queue_name, item_ids)) 38 def feed(self): 39 raise NotImplementedError("subclasses must implement") 43 40 44 41 … … 50 47 self.committer_validator = CommitterValidator(self._tool.bugs) 51 48 49 def _update_work_items(self, item_ids): 50 self._tool.status_server.update_work_items(self.queue_name, item_ids) 51 log("Feeding %s items %s" % (self.queue_name, item_ids)) 52 52 53 def feed(self): 53 54 patches = self._validate_patches() 54 55 patches = sorted(patches, self._patch_cmp) 55 56 patch_ids = [patch.id() for patch in patches] 56 self. update_work_items(patch_ids)57 self._update_work_items(patch_ids) 57 58 58 59 def _patches_for_bug(self, bug_id): … … 72 73 return rollout_cmp 73 74 return cmp(a.attach_date(), b.attach_date()) 75 76 77 class EWSFeeder(AbstractFeeder): 78 def __init__(self, tool): 79 self._ids_sent_to_server = set() 80 AbstractFeeder.__init__(self, tool) 81 82 def feed(self): 83 ids_needing_review = set(self._tool.bugs.queries.fetch_attachment_ids_from_review_queue()) 84 new_ids = ids_needing_review.difference(self._ids_sent_to_server) 85 log("Feeding EWS (%s, %s new)" % (pluralize("r? patch", len(ids_needing_review)), len(new_ids))) 86 for attachment_id in new_ids: # Order doesn't really matter for the EWS. 87 self._tool.status_server.submit_to_ews(attachment_id) 88 self._ids_sent_to_server.add(attachment_id) -
trunk/WebKitTools/Scripts/webkitpy/tool/commands/queues.py
r70088 r70117 46 46 from webkitpy.tool.commands.stepsequence import StepSequenceErrorHandler 47 47 from webkitpy.tool.bot.commitqueuetask import CommitQueueTask, CommitQueueTaskDelegate 48 from webkitpy.tool.bot.feeders import CommitQueueFeeder 48 from webkitpy.tool.bot.feeders import CommitQueueFeeder, EWSFeeder 49 49 from webkitpy.tool.bot.patchcollection import PersistentPatchCollection, PersistentPatchCollectionDelegate 50 50 from webkitpy.tool.bot.queueengine import QueueEngine, QueueEngineDelegate … … 168 168 self.feeders = [ 169 169 CommitQueueFeeder(self._tool), 170 EWSFeeder(self._tool), 170 171 ] 171 172 … … 373 374 374 375 class AbstractReviewQueue(AbstractPatchQueue, PersistentPatchCollectionDelegate, StepSequenceErrorHandler): 376 """This is the base-class for the EWS queues and the style-queue.""" 375 377 def __init__(self, options=None): 376 378 AbstractPatchQueue.__init__(self, options) -
trunk/WebKitTools/Scripts/webkitpy/tool/commands/queues_unittest.py
r70088 r70117 136 136 MOCK: update_work_items: commit-queue [106, 197] 137 137 Feeding commit-queue items [106, 197] 138 Feeding EWS (1 r? patch, 1 new) 139 MOCK: submit_to_ews: 103 138 140 """, 139 141 "handle_unexpected_error": "Mock error message\n", -
trunk/WebKitTools/Scripts/webkitpy/tool/mocktool.py
r70088 r70117 555 555 log("MOCK: update_work_items: %s %s" % (queue_name, work_items)) 556 556 557 def submit_to_ews(self, patch_id): 558 log("MOCK: submit_to_ews: %s" % (patch_id)) 559 557 560 def update_status(self, queue_name, status, patch=None, results_file=None): 558 561 log("MOCK: update_status: %s %s" % (queue_name, status))
Note: See TracChangeset
for help on using the changeset viewer.