)]}'
{"nova/virt/hardware.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c33f8949b570b8737afc4842e0f72444b6c024d0","unresolved":false,"context_lines":[{"line_number":1329,"context_line":"                    break"},{"line_number":1330,"context_line":"                cells.append(got_cell)"},{"line_number":1331,"context_line":""},{"line_number":1332,"context_line":"            if len(cells) !\u003d len(host_cell_perm):"},{"line_number":1333,"context_line":"                continue"},{"line_number":1334,"context_line":""},{"line_number":1335,"context_line":"            if not pci_requests:"},{"line_number":1336,"context_line":"                return objects.InstanceNUMATopology(cells\u003dcells)"}],"source_content_type":"text/x-python","patch_set":13,"id":"5a74a57a_24512063","line":1333,"range":{"start_line":1332,"start_character":12,"end_line":1333,"end_character":24},"updated":"2016-11-24 17:13:59.000000000","message":"Nit: I am not a fan of continue in the middle of loops, it hides the flow for me.","commit_id":"fd75827c3571b54f3c9bae45c845c44abc9c6928"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c33f8949b570b8737afc4842e0f72444b6c024d0","unresolved":false,"context_lines":[{"line_number":1355,"context_line":"    bucket \u003d {}"},{"line_number":1356,"context_line":""},{"line_number":1357,"context_line":"    if not CONF.reserved_huge_pages:"},{"line_number":1358,"context_line":"        return bucket"},{"line_number":1359,"context_line":""},{"line_number":1360,"context_line":"    try:"},{"line_number":1361,"context_line":"        bucket \u003d collections.defaultdict(dict)"}],"source_content_type":"text/x-python","patch_set":13,"id":"5a74a57a_046fc42b","line":1358,"updated":"2016-11-24 17:13:59.000000000","message":"Nit: I think you are better just doing \"return {}\" here, and pulling bucket below outside the try/catch.","commit_id":"fd75827c3571b54f3c9bae45c845c44abc9c6928"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c9e83336015c05e8892db17422e0025f06a9b709","unresolved":false,"context_lines":[{"line_number":1355,"context_line":"    bucket \u003d {}"},{"line_number":1356,"context_line":""},{"line_number":1357,"context_line":"    if not CONF.reserved_huge_pages:"},{"line_number":1358,"context_line":"        return bucket"},{"line_number":1359,"context_line":""},{"line_number":1360,"context_line":"    try:"},{"line_number":1361,"context_line":"        bucket \u003d collections.defaultdict(dict)"}],"source_content_type":"text/x-python","patch_set":13,"id":"5a74a57a_178b2bc4","line":1358,"in_reply_to":"5a74a57a_046fc42b","updated":"2016-11-28 09:44:17.000000000","message":"Done","commit_id":"fd75827c3571b54f3c9bae45c845c44abc9c6928"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c33f8949b570b8737afc4842e0f72444b6c024d0","unresolved":false,"context_lines":[{"line_number":1433,"context_line":"                    newcell.mempages \u003d _numa_pagesize_usage_from_cell("},{"line_number":1434,"context_line":"                        hostcell, instancecell, sign)"},{"line_number":1435,"context_line":""},{"line_number":1436,"context_line":"                if not instance.cpu_pinning_requested:"},{"line_number":1437,"context_line":"                    continue"},{"line_number":1438,"context_line":""},{"line_number":1439,"context_line":"                pinned_cpus \u003d set(instancecell.cpu_pinning.values())"},{"line_number":1440,"context_line":"                if free:"}],"source_content_type":"text/x-python","patch_set":13,"id":"5a74a57a_04fa6475","line":1437,"range":{"start_line":1436,"start_character":0,"end_line":1437,"end_character":28},"updated":"2016-11-24 17:13:59.000000000","message":"Nit: I don\u0027t really like this one. I feel it makes the loop more complicated to read.","commit_id":"fd75827c3571b54f3c9bae45c845c44abc9c6928"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c9e83336015c05e8892db17422e0025f06a9b709","unresolved":false,"context_lines":[{"line_number":1433,"context_line":"                    newcell.mempages \u003d _numa_pagesize_usage_from_cell("},{"line_number":1434,"context_line":"                        hostcell, instancecell, sign)"},{"line_number":1435,"context_line":""},{"line_number":1436,"context_line":"                if not instance.cpu_pinning_requested:"},{"line_number":1437,"context_line":"                    continue"},{"line_number":1438,"context_line":""},{"line_number":1439,"context_line":"                pinned_cpus \u003d set(instancecell.cpu_pinning.values())"},{"line_number":1440,"context_line":"                if free:"}],"source_content_type":"text/x-python","patch_set":13,"id":"5a74a57a_77153e3e","line":1437,"range":{"start_line":1436,"start_character":0,"end_line":1437,"end_character":28},"in_reply_to":"5a74a57a_04fa6475","updated":"2016-11-28 09:44:17.000000000","message":"Yeah, that\u0027s not ideal. Reverted this hunk","commit_id":"fd75827c3571b54f3c9bae45c845c44abc9c6928"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3c34db0e0f43fef6965cd9f71b98c7bb8a40fe9b","unresolved":false,"context_lines":[{"line_number":1631,"context_line":"                                fields.CPUThreadAllocationPolicy.ISOLATE):"},{"line_number":1632,"context_line":"                            newcell.pin_cpus_with_siblings(pinned_cpus)"},{"line_number":1633,"context_line":"                        else:"},{"line_number":1634,"context_line":"                            newcell.pin_cpus(pinned_cpus)"},{"line_number":1635,"context_line":""},{"line_number":1636,"context_line":"        newcell.cpu_usage \u003d max(0, cpu_usage)"},{"line_number":1637,"context_line":"        newcell.memory_usage \u003d max(0, memory_usage)"}],"source_content_type":"text/x-python","patch_set":17,"id":"dfeb2761_d664d4e7","line":1634,"updated":"2017-04-03 11:20:40.000000000","message":"This chunk (1600-1634) looks like it could be a good candidate for extract method. Then you could:\n\n    if instancecell.id \u003d\u003d hostcell.id:\n         do_some_stuff(\u003cthe args\u003e)\n\nand not need a continue and have a more granular piece to test.","commit_id":"ca89bbfa8c9a338041a1399e7b458efe9e37b99a"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"7b9252c9b358d36a3640a85143d32834383e6e31","unresolved":false,"context_lines":[{"line_number":1628,"context_line":"                    newcell.mempages \u003d _numa_pagesize_usage_from_cell("},{"line_number":1629,"context_line":"                        hostcell, instancecell, sign)"},{"line_number":1630,"context_line":""},{"line_number":1631,"context_line":"                if instance.cpu_pinning_requested:"},{"line_number":1632,"context_line":"                    pinned_cpus \u003d set(instancecell.cpu_pinning.values())"},{"line_number":1633,"context_line":"                    if free:"},{"line_number":1634,"context_line":"                        if (instancecell.cpu_thread_policy \u003d\u003d"},{"line_number":1635,"context_line":"                                fields.CPUThreadAllocationPolicy.ISOLATE):"}],"source_content_type":"text/x-python","patch_set":18,"id":"7f287b81_8d0d4492","line":1632,"range":{"start_line":1631,"start_character":16,"end_line":1632,"end_character":72},"updated":"2017-08-23 06:37:51.000000000","message":"The lack of handling instancecell.cpuset_reserved is causing Jenkins failures with sequent patches.","commit_id":"ab4b2b44eb50e0872fc3226949113fe56487a841"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"083c5c103274fa19577e03e5063c6d4dfb909c38","unresolved":false,"context_lines":[{"line_number":1596,"context_line":"        for instance in instances:"},{"line_number":1597,"context_line":"            for cellid, instancecell in enumerate(instance.cells):"},{"line_number":1598,"context_line":"                if instancecell.id !\u003d hostcell.id:"},{"line_number":1599,"context_line":"                    continue"},{"line_number":1600,"context_line":""},{"line_number":1601,"context_line":"                memory_usage \u003d memory_usage + sign * instancecell.memory"},{"line_number":1602,"context_line":"                cpu_usage_diff \u003d len(instancecell.cpuset)"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf8cb3f7_d7c14282","line":1599,"updated":"2017-12-27 11:34:53.000000000","message":"I more with the faction suggesting pulling out small util functions instead of reversing the logic with continue to remove nesting. Anyhow removing some nesting is good regardless.","commit_id":"a1264deddd34cf460911126a450b52e2ebeabf69"}]}
