コード例 #1
0
 def _work_items_for_queue(self, queue_name):
     if queue_name not in queues:
         self.response.set_status(500)
         return
     work_items = WorkItems.all().filter("queue_name =", queue_name).get()
     if not work_items:
         work_items = WorkItems()
         work_items.queue_name = queue_name
     return work_items
コード例 #2
0
 def _work_items_for_queue(self, queue_name):
     if queue_name not in queues:
         self.response.out.write('"%s" is not in queues %s' % (queue_name, queues))
         return None
     work_items = WorkItems.all().filter("queue_name =", queue_name).get()
     if not work_items:
         work_items = WorkItems()
         work_items.queue_name = queue_name
     return work_items
コード例 #3
0
 def _work_items_for_queue(self, queue_name):
     if queue_name not in queues:
         self.response.set_status(500)
         return
     work_items = WorkItems.all().filter("queue_name =", queue_name).get()
     if not work_items:
         work_items = WorkItems()
         work_items.queue_name = queue_name
     return work_items
コード例 #4
0
 def _work_items_for_queue(self, queue_name):
     if queue_name not in queues:
         self.response.out.write("\"%s\" is not in queues %s" %
                                 (queue_name, queues))
         return None
     work_items = WorkItems.all().filter("queue_name =", queue_name).get()
     if not work_items:
         work_items = WorkItems()
         work_items.queue_name = queue_name
     return work_items
コード例 #5
0
    def get(self, queue_name):
        work_items = WorkItems.all().filter("queue_name =", queue_name).get()
        statuses = queuestatus.QueueStatus.all().filter("queue_name =", queue_name).order("-date").fetch(15)

        status_groups_by_patch_id = {}
        status_groups = []
        synthetic_patch_id_counter = 0

        for status in statuses:
            if status.active_patch_id:
                patch_id = status.active_patch_id
            else:
                patch_id = 'synthetic-%d' % synthetic_patch_id_counter
                synthetic_patch_id_counter += 1

            if patch_id not in status_groups_by_patch_id:
                new_status_group = []
                status_groups_by_patch_id[patch_id] = new_status_group
                status_groups.append(new_status_group)
            status_groups_by_patch_id[patch_id].append(status)

        template_values = {
            "display_queue_name": display_name_for_queue(queue_name),
            "work_item_rows": self._rows_for_work_items(work_items),
            "status_groups": status_groups,
        }
        self.response.out.write(template.render("templates/queuestatus.html", template_values))
コード例 #6
0
    def get(self, queue_name):
        work_items = WorkItems.all().filter("queue_name =", queue_name).get()
        statuses = queuestatus.QueueStatus.all().filter(
            "queue_name =", queue_name).order("-date").fetch(15)

        status_groups_by_patch_id = {}
        status_groups = []
        synthetic_patch_id_counter = 0

        for status in statuses:
            if status.active_patch_id:
                patch_id = status.active_patch_id
            else:
                patch_id = 'synthetic-%d' % synthetic_patch_id_counter
                synthetic_patch_id_counter += 1

            if patch_id not in status_groups_by_patch_id:
                new_status_group = []
                status_groups_by_patch_id[patch_id] = new_status_group
                status_groups.append(new_status_group)
            status_groups_by_patch_id[patch_id].append(status)

        template_values = {
            "display_queue_name": display_name_for_queue(queue_name),
            "work_item_rows": self._rows_for_work_items(work_items),
            "status_groups": status_groups,
        }
        self.response.out.write(
            template.render("templates/queuestatus.html", template_values))
コード例 #7
0
    def get(self, queue_name):
        queued_items = WorkItems.all().filter("queue_name =", queue_name).get()
        active_items = ActiveWorkItems.all().filter("queue_name =", queue_name).get()
        statuses = queuestatus.QueueStatus.all().filter("queue_name =", queue_name).order("-date").fetch(15)

        status_groups = []
        last_patch_id = None
        synthetic_patch_id_counter = 0

        for status in statuses:
            patch_id = status.active_patch_id
            if not patch_id or last_patch_id != patch_id:
                status_group = []
                status_groups.append(status_group)
            else:
                status_group = status_groups[-1]
            status_group.append(status)
            last_patch_id = patch_id

        template_values = {
            "display_queue_name": display_name_for_queue(queue_name),
            "work_item_rows": self._rows_for_work_items(queued_items, active_items),
            "status_groups": status_groups,
        }
        self.response.out.write(template.render("templates/queuestatus.html", template_values))
コード例 #8
0
ファイル: attachment.py プロジェクト: yuhun-alibaba/js_engine
 def _calculate_queue_positions(self):
     # We don't know how many rows there are in the table (as there can be stale rows
     # from queues that we no longer have), but it's certainly fewer that 1000.
     all_work_items = WorkItems.all().fetch(limit=1000)
     return dict([(items.queue.name(),
                   items.display_position_for_attachment(self.id))
                  for items in all_work_items if items.queue])
コード例 #9
0
 def _calculate_queue_positions(self):
     queue_positions = {}
     for work_items in WorkItems.all().fetch(limit=len(queues)):
         queue_name = str(work_items.queue_name)
         try:
             position = work_items.item_ids.index(self.id)
             # Display 1-based indecies to the user.
             queue_positions[queue_name] = position + 1
         except ValueError, e:
             queue_positions[queue_name] = None
コード例 #10
0
 def _calculate_queue_positions(self):
     queue_positions = {}
     for work_items in WorkItems.all().fetch(limit=len(queues)):
         queue_name = str(work_items.queue_name)
         try:
             position = work_items.item_ids.index(self.id)
             # Display 1-based indecies to the user.
             queue_positions[queue_name] = position + 1
         except ValueError, e:
             queue_positions[queue_name] = None
コード例 #11
0
ファイル: attachment.py プロジェクト: cheekiatng/webkit
 def _calculate_queue_positions(self):
     # We don't know how many rows there are in the table (as there can be stale rows
     # from queues that we no longer have), but it's certainly fewer that 1000.
     all_work_items = WorkItems.all().fetch(limit=1000)
     return dict(
         [
             (items.queue.name(), items.display_position_for_attachment(self.id))
             for items in all_work_items
             if items.queue
         ]
     )
コード例 #12
0
 def test_remove_work_item(self):
     items = WorkItems()
     items.item_ids = [0, 1, 2]
     items.remove_work_item(0)
     self.assertEqual(items.item_ids, [1, 2])
     items.remove_work_item(4)  # Should not throw
     self.assertEqual(items.item_ids, [1, 2])
コード例 #13
0
ファイル: attachment.py プロジェクト: Happy-Ferret/webkit.js
 def _calculate_queue_positions(self):
     all_work_items = WorkItems.all().fetch(limit=len(Queue.all()))
     return dict([(items.queue.name(), items.display_position_for_attachment(self.id)) for items in all_work_items if items.queue])
コード例 #14
0
 def _get_patches_waiting(cls, queue_name):
     work_items = WorkItems.lookup_by_queue(queue_name)
     active_work_items = ActiveWorkItems.lookup_by_queue(queue_name)
     return len(set(work_items.item_ids) - set(active_work_items.item_ids))
コード例 #15
0
 def test_display_position_for_attachment(self):
     items = WorkItems()
     items.item_ids = [0, 1, 2]
     self.assertEquals(items.display_position_for_attachment(0), 1)
     self.assertEquals(items.display_position_for_attachment(1), 2)
     self.assertEquals(items.display_position_for_attachment(3), None)
コード例 #16
0
ファイル: workitems_unittest.py プロジェクト: GhostQ/GitSB
 def test_display_position_for_attachment(self):
     items = WorkItems()
     items.item_ids = [0, 1, 2]
     self.assertEqual(items.display_position_for_attachment(0), 1)
     self.assertEqual(items.display_position_for_attachment(1), 2)
     self.assertEqual(items.display_position_for_attachment(3), None)
コード例 #17
0
 def _get_next_patch_id(self, queue_name):
     work_items = WorkItems.all().filter("queue_name =", queue_name).get()
     if not work_items:
         return None
     active_work_items = ActiveWorkItems.get_or_insert(key_name=queue_name, queue_name=queue_name)
     return db.run_in_transaction(self._assign_patch, active_work_items.key(), work_items.item_ids)
コード例 #18
0
ファイル: queuelog.py プロジェクト: GhostQ/GitSB
 def _get_patches_waiting(cls, queue_name):
     work_items = WorkItems.lookup_by_queue(queue_name)
     active_work_items = ActiveWorkItems.lookup_by_queue(queue_name)
     return len(set(work_items.item_ids) - set(active_work_items.item_ids))
コード例 #19
0
 def work_items(self):
     return WorkItems.lookup_by_queue(self._name)
コード例 #20
0
 def __init__(self, queue_name):
     self._queue_name = queue_name
     self._work_items = WorkItems.all().filter("queue_name =", queue_name).get()
     self._last_status = QueueStatus.all().filter("queue_name =", queue_name).order("-date").get()
コード例 #21
0
 def work_items(self):
     key_name = "work-items-%s" % (self._name)
     return WorkItems.get_or_insert(key_name=key_name,
                                    queue_name=self._name)
コード例 #22
0
 def _calculate_queue_positions(self):
     all_work_items = WorkItems.all().fetch(limit=len(Queue.all()))
     return dict([(items.queue.name(), items.display_position_for_attachment(self.id)) for items in all_work_items if items.queue])
コード例 #23
0
 def work_items(self):
     key_name = "work-items-%s" % (self._name)
     return WorkItems.get_or_insert(key_name=key_name, queue_name=self._name)