)]}'
{"nova/compute/api.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"124a46b9dc9ad6fb1ef7f4ad8cd652a63224eb7f","unresolved":false,"context_lines":[{"line_number":4615,"context_line":""},{"line_number":4616,"context_line":"                # If we have a marker and it\u0027s a uuid, see if the compute node"},{"line_number":4617,"context_line":"                # is in this cell."},{"line_number":4618,"context_line":"                if marker and uuid_marker:"},{"line_number":4619,"context_line":"                    try:"},{"line_number":4620,"context_line":"                        compute_marker \u003d objects.ComputeNode.get_by_uuid("},{"line_number":4621,"context_line":"                            cctxt, marker)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_54ed5789","line":4618,"range":{"start_line":4618,"start_character":19,"end_line":4618,"end_character":25},"updated":"2017-06-22 21:02:36.000000000","message":"Don\u0027t we already know this is set from L4610? uuid_marker is only True if marker and uuid-like. So it seems like this could just be \"if uuid_marker.\" Or you could remove \"uuid_marker\" and move the is_uuid_like() call here.","commit_id":"f8d952138d025453b50f7e760a6c7deb6271a106"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"28b5d57e3061dde57879934bd353dda21ca91563","unresolved":false,"context_lines":[{"line_number":4615,"context_line":""},{"line_number":4616,"context_line":"                # If we have a marker and it\u0027s a uuid, see if the compute node"},{"line_number":4617,"context_line":"                # is in this cell."},{"line_number":4618,"context_line":"                if marker and uuid_marker:"},{"line_number":4619,"context_line":"                    try:"},{"line_number":4620,"context_line":"                        compute_marker \u003d objects.ComputeNode.get_by_uuid("},{"line_number":4621,"context_line":"                            cctxt, marker)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_f76d8598","line":4618,"range":{"start_line":4618,"start_character":19,"end_line":4618,"end_character":25},"in_reply_to":"5f201791_54ed5789","updated":"2017-06-22 21:19:04.000000000","message":"Though that would be repetitive to call is_uuid_like() for each cell, so nevermind on that suggestion.","commit_id":"f8d952138d025453b50f7e760a6c7deb6271a106"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1d6b7b0ac2f0227382834cbcf33ffd8ba5db7d13","unresolved":false,"context_lines":[{"line_number":4615,"context_line":""},{"line_number":4616,"context_line":"                # If we have a marker and it\u0027s a uuid, see if the compute node"},{"line_number":4617,"context_line":"                # is in this cell."},{"line_number":4618,"context_line":"                if marker and uuid_marker:"},{"line_number":4619,"context_line":"                    try:"},{"line_number":4620,"context_line":"                        compute_marker \u003d objects.ComputeNode.get_by_uuid("},{"line_number":4621,"context_line":"                            cctxt, marker)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_6d352246","line":4618,"range":{"start_line":4618,"start_character":19,"end_line":4618,"end_character":25},"in_reply_to":"5f201791_f76d8598","updated":"2017-06-22 23:00:45.000000000","message":"You also have to check if the marker is set because uuid_marker is only True while marker is not None really, because once we find the marker in a cell we null it out but could continue looping to other cells.","commit_id":"f8d952138d025453b50f7e760a6c7deb6271a106"}],"nova/tests/functional/compute/test_host_api.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a9095502c6b4281020d250aeb14bdc95d10c4081","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        compute_nodes \u003d self.host_api.compute_node_get_all("},{"line_number":94,"context_line":"            self.ctxt, limit\u003d2, marker\u003dmarker)"},{"line_number":95,"context_line":"        # assert that we got the last compute node from cell1 and the first"},{"line_number":96,"context_line":"        # compute node from cell2"},{"line_number":97,"context_line":"        self.assertEqual(2, len(compute_nodes))"},{"line_number":98,"context_line":"        host_mapping \u003d objects.HostMapping.get_by_host("},{"line_number":99,"context_line":"            self.ctxt, compute_nodes[0].host)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_b1a60253","line":96,"updated":"2017-06-22 17:33:40.000000000","message":"Hmm, if our marker was the last one on the first page, shouldn\u0027t our first returned one be from the next page? What you have here always has an overlap of one result, meaning you need to not hit the first result from each page because it\u0027s the same as the last page, if you\u0027re iterating over the results.\n\nAm I just completely missing that our other pagination stuff works that way? I thought you provide the marker, but get back the next page starting at the one after the marker?","commit_id":"f8d952138d025453b50f7e760a6c7deb6271a106"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"70e9e58fa95330b3c36a2c23f7e9cd1da4d69469","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        compute_nodes \u003d self.host_api.compute_node_get_all("},{"line_number":94,"context_line":"            self.ctxt, limit\u003d2, marker\u003dmarker)"},{"line_number":95,"context_line":"        # assert that we got the last compute node from cell1 and the first"},{"line_number":96,"context_line":"        # compute node from cell2"},{"line_number":97,"context_line":"        self.assertEqual(2, len(compute_nodes))"},{"line_number":98,"context_line":"        host_mapping \u003d objects.HostMapping.get_by_host("},{"line_number":99,"context_line":"            self.ctxt, compute_nodes[0].host)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_c9b9afe9","line":96,"in_reply_to":"5f201791_5e5af74e","updated":"2017-06-23 17:21:50.000000000","message":"When you pass a marker, it returns the id after that marker:\n\nhttps://github.com/openstack/nova/blob/23e5036/nova/db/sqlalchemy/api.py#L645","commit_id":"f8d952138d025453b50f7e760a6c7deb6271a106"},{"author":{"_account_id":23882,"name":"Dan Peschman","email":"dpeschman@godaddy.com","username":"dtp"},"change_message_id":"4d0af0e6246108c43fd34c36cb3a3e762bbeaf9c","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        compute_nodes \u003d self.host_api.compute_node_get_all("},{"line_number":94,"context_line":"            self.ctxt, limit\u003d2, marker\u003dmarker)"},{"line_number":95,"context_line":"        # assert that we got the last compute node from cell1 and the first"},{"line_number":96,"context_line":"        # compute node from cell2"},{"line_number":97,"context_line":"        self.assertEqual(2, len(compute_nodes))"},{"line_number":98,"context_line":"        host_mapping \u003d objects.HostMapping.get_by_host("},{"line_number":99,"context_line":"            self.ctxt, compute_nodes[0].host)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_5e5af74e","line":96,"in_reply_to":"5f201791_777055a6","updated":"2017-06-23 17:00:38.000000000","message":"I\u0027m also confused by this.  If your marker is the last uuid from your first result set, wouldn\u0027t the first item in your next query be that same item?","commit_id":"f8d952138d025453b50f7e760a6c7deb6271a106"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"541f9bd06fc00ed8aff087b6d67ce27c94ccfcbc","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        compute_nodes \u003d self.host_api.compute_node_get_all("},{"line_number":94,"context_line":"            self.ctxt, limit\u003d2, marker\u003dmarker)"},{"line_number":95,"context_line":"        # assert that we got the last compute node from cell1 and the first"},{"line_number":96,"context_line":"        # compute node from cell2"},{"line_number":97,"context_line":"        self.assertEqual(2, len(compute_nodes))"},{"line_number":98,"context_line":"        host_mapping \u003d objects.HostMapping.get_by_host("},{"line_number":99,"context_line":"            self.ctxt, compute_nodes[0].host)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_ff88c1c6","line":96,"in_reply_to":"5f201791_b1a60253","updated":"2017-06-22 18:47:16.000000000","message":"Are you confusing pages with cells?\n\nIf we have two cells with computes like:\n\ncell1: [cn0, cn1, cn2]\ncell2: [cn3, cn4, cn5]\n\nThe pages are like this:\n\n[cn0, cn1] (cell1 only)\n[cn2, cn3] (cell overlap)\n[cn4, cn5] (cell2 only)","commit_id":"f8d952138d025453b50f7e760a6c7deb6271a106"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"3ada4c034cc0b0dd09764dfb67c11cb4aa9a73bc","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        compute_nodes \u003d self.host_api.compute_node_get_all("},{"line_number":94,"context_line":"            self.ctxt, limit\u003d2, marker\u003dmarker)"},{"line_number":95,"context_line":"        # assert that we got the last compute node from cell1 and the first"},{"line_number":96,"context_line":"        # compute node from cell2"},{"line_number":97,"context_line":"        self.assertEqual(2, len(compute_nodes))"},{"line_number":98,"context_line":"        host_mapping \u003d objects.HostMapping.get_by_host("},{"line_number":99,"context_line":"            self.ctxt, compute_nodes[0].host)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_777055a6","line":96,"in_reply_to":"5f201791_ff0d613e","updated":"2017-06-22 21:13:46.000000000","message":"I got confused the same way. Had to remind myself each cell has 3 compute nodes, not 2.","commit_id":"f8d952138d025453b50f7e760a6c7deb6271a106"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"48253c3795871d969eed987061f384df718210ff","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        compute_nodes \u003d self.host_api.compute_node_get_all("},{"line_number":94,"context_line":"            self.ctxt, limit\u003d2, marker\u003dmarker)"},{"line_number":95,"context_line":"        # assert that we got the last compute node from cell1 and the first"},{"line_number":96,"context_line":"        # compute node from cell2"},{"line_number":97,"context_line":"        self.assertEqual(2, len(compute_nodes))"},{"line_number":98,"context_line":"        host_mapping \u003d objects.HostMapping.get_by_host("},{"line_number":99,"context_line":"            self.ctxt, compute_nodes[0].host)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_ff0d613e","line":96,"in_reply_to":"5f201791_ff88c1c6","updated":"2017-06-22 18:52:32.000000000","message":"No, not confusing those two things. I was thinking that your pages overlapped (unrelated to cells). Meaning like:\n\n [cn0, cn1]\n [cn1, cn2]\n\nHowever, looking back at it now, I\u0027m not sure why I was confused about that. Potentially the reuse of compute_nodes left my brain out of sync, but I just wrote it out and I think I\u0027m good now.","commit_id":"f8d952138d025453b50f7e760a6c7deb6271a106"}]}
