)]}'
{"nova/compute/multi_cell_list.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2dae066e78e1d6828c1041abecb377fbf4f4dd59","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import itertools"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from nova import context"},{"line_number":19,"context_line":"import six"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class RecordSortContext(object):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_5ff11901","line":19,"updated":"2017-11-30 21:53:39.000000000","message":"nit: should move this into it\u0027s own group:\n\nimport abc\nimport copy\nimport heapq\nimport itertools\n\nimport six\n\nfrom nova import context","commit_id":"c244382db09d74c59f3039c4d1991cb282389bec"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"3b2cb0fa65b28b235421878f12ed57c09c3f5313","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    We use heapq.merge() below to do the merge sort of things from the"},{"line_number":46,"context_line":"    cell databases. That routine assumes it can use regular python"},{"line_number":47,"context_line":"    operators (\u003e and \u003c) on the contents. Since that won\u0027t work with"},{"line_number":48,"context_line":"    instances from the database (and depends on the sort keys/dirs),"},{"line_number":49,"context_line":"    we need this wrapper class to provide that."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    Implementing __lt__ is enough for heapq.merge() to do its work."}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_cd8d7c2b","line":48,"range":{"start_line":48,"start_character":4,"end_line":48,"end_character":13},"updated":"2017-12-01 02:56:12.000000000","message":"nit: s/instance/record/\n\nNow multi cell list is common thing, so I think we can also change these notes in a follow up. : )","commit_id":"c244382db09d74c59f3039c4d1991cb282389bec"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"3b2cb0fa65b28b235421878f12ed57c09c3f5313","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        For instances (and many other types) this is \u0027uuid\u0027, but could also"},{"line_number":83,"context_line":"        be things like \u0027id\u0027 or anything else used as the marker identifier"},{"line_number":84,"context_line":"        when fetching a page of results"},{"line_number":85,"context_line":"        \"\"\""},{"line_number":86,"context_line":"        pass"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_cdba5ce0","line":84,"range":{"start_line":84,"start_character":32,"end_line":84,"end_character":39},"updated":"2017-12-01 02:56:12.000000000","message":"tiny nit: need \u0027.\u0027 at end","commit_id":"c244382db09d74c59f3039c4d1991cb282389bec"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"3b2cb0fa65b28b235421878f12ed57c09c3f5313","unresolved":false,"context_lines":[{"line_number":220,"context_line":"                            # excluded it, then we\u0027ll get an empty set"},{"line_number":221,"context_line":"                            # here and not include it in the output as"},{"line_number":222,"context_line":"                            # expected."},{"line_number":223,"context_line":"                            local_marker_filters[marker_id] \u003d [local_marker]"},{"line_number":224,"context_line":"                        local_marker_prefix \u003d self.get_by_filters("},{"line_number":225,"context_line":"                            ctx, local_marker_filters, limit\u003d1, marker\u003dNone,"},{"line_number":226,"context_line":"                            **kwargs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_4dadece8","line":223,"range":{"start_line":223,"start_character":28,"end_line":223,"end_character":76},"updated":"2017-12-01 02:56:12.000000000","message":"Just a little curious, why is the list type filter? \n\nI noticed that https://github.com/openstack/nova/blob/master/nova/db/sqlalchemy/api.py#L2500\nthe list type case is handled in here. and I think \u0027local_marker_filters[marker_id] \u003d local_marker \u0027 is okay, see here:\nhttps://github.com/openstack/nova/blob/master/nova/db/sqlalchemy/api.py#L2503\n\n\nI\u0027m curious that because I hit this when I do some stuff on migration list:\nhttps://review.openstack.org/#/c/517273/21/nova/db/sqlalchemy/api.py@4917\nso I just change [x] to x\nhttps://review.openstack.org/#/c/517273/21/nova/compute/migration_list.py@144\n\nOf course, I can also add list type filter support on migration db API, but I just want to sure: Does [x] have something other considerations?","commit_id":"c244382db09d74c59f3039c4d1991cb282389bec"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"dd3b2cc56be778494f4d975896fb45be2430b8e9","unresolved":false,"context_lines":[{"line_number":220,"context_line":"                            # excluded it, then we\u0027ll get an empty set"},{"line_number":221,"context_line":"                            # here and not include it in the output as"},{"line_number":222,"context_line":"                            # expected."},{"line_number":223,"context_line":"                            local_marker_filters[marker_id] \u003d [local_marker]"},{"line_number":224,"context_line":"                        local_marker_prefix \u003d self.get_by_filters("},{"line_number":225,"context_line":"                            ctx, local_marker_filters, limit\u003d1, marker\u003dNone,"},{"line_number":226,"context_line":"                            **kwargs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_19e94419","line":223,"range":{"start_line":223,"start_character":28,"end_line":223,"end_character":76},"in_reply_to":"df87a7cf_f147e61c","updated":"2017-12-05 01:12:04.000000000","message":"Well, got it. Thanks for your reply.","commit_id":"c244382db09d74c59f3039c4d1991cb282389bec"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"ebd187631d3902f5d01c2a0b0aeaf1a536b70dc2","unresolved":false,"context_lines":[{"line_number":220,"context_line":"                            # excluded it, then we\u0027ll get an empty set"},{"line_number":221,"context_line":"                            # here and not include it in the output as"},{"line_number":222,"context_line":"                            # expected."},{"line_number":223,"context_line":"                            local_marker_filters[marker_id] \u003d [local_marker]"},{"line_number":224,"context_line":"                        local_marker_prefix \u003d self.get_by_filters("},{"line_number":225,"context_line":"                            ctx, local_marker_filters, limit\u003d1, marker\u003dNone,"},{"line_number":226,"context_line":"                            **kwargs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_cbd00457","line":223,"range":{"start_line":223,"start_character":28,"end_line":223,"end_character":76},"in_reply_to":"ff82abbf_4dadece8","updated":"2017-12-01 03:54:20.000000000","message":"Sorry for wrong link:\nL2500Link[1]:https://github.com/openstack/nova/blob/c8daf8b1d893ea4bfa8d44b030b7a07926e0c3ba/nova/db/sqlalchemy/api.py#L2469\n\nL2503Link[2]:https://github.com/openstack/nova/blob/c8daf8b1d893ea4bfa8d44b030b7a07926e0c3ba/nova/db/sqlalchemy/api.py#L2472","commit_id":"c244382db09d74c59f3039c4d1991cb282389bec"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"08ec0f828c7ccdbc9a5d5e728fdc931f0b7e847a","unresolved":false,"context_lines":[{"line_number":220,"context_line":"                            # excluded it, then we\u0027ll get an empty set"},{"line_number":221,"context_line":"                            # here and not include it in the output as"},{"line_number":222,"context_line":"                            # expected."},{"line_number":223,"context_line":"                            local_marker_filters[marker_id] \u003d [local_marker]"},{"line_number":224,"context_line":"                        local_marker_prefix \u003d self.get_by_filters("},{"line_number":225,"context_line":"                            ctx, local_marker_filters, limit\u003d1, marker\u003dNone,"},{"line_number":226,"context_line":"                            **kwargs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_f147e61c","line":223,"range":{"start_line":223,"start_character":28,"end_line":223,"end_character":76},"in_reply_to":"ff82abbf_cbd00457","updated":"2017-12-04 15:53:10.000000000","message":"Because this is just the generic uuid filter, which lets you ask for multiple rows by providing multiple uuids. If you\u0027re looking up four instances, you put those four uuids in the [\u0027uuid\u0027] filter. We could abstract this behavior out, but it would be a lot easier if you just implemented your filters to behave the same way the existing ones do.\n\nAlso this comment really belongs on the patch below this, as this patch is just moving things around.","commit_id":"c244382db09d74c59f3039c4d1991cb282389bec"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"b38cd0726e9fea648bf456858d7e5aef88fb14c4","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import itertools"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from nova import context"},{"line_number":19,"context_line":"import six"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class RecordSortContext(object):"}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_bc458f45","line":19,"updated":"2017-12-05 17:48:46.000000000","message":"Third-party lib should go in its own section.","commit_id":"1ad788a4e54d84a4e19500eac461718169e87f98"}],"nova/tests/unit/compute/test_multi_cell_list.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2dae066e78e1d6828c1041abecb377fbf4f4dd59","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        self.assertFalse(iw2 \u003e iw1)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"class TestInstanceList(test.NoDBTestCase):"},{"line_number":106,"context_line":"    def setUp(self):"},{"line_number":107,"context_line":"        super(TestInstanceList, self).setUp()"},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_bfd5c545","line":105,"updated":"2017-11-30 21:53:39.000000000","message":"nit: this stuff should probably be in nova/tests/unit/compute/test_instance_list.py now, but we can do that in a follow up.","commit_id":"c244382db09d74c59f3039c4d1991cb282389bec"}]}
