)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd0674a929e1e647fc6236450997616a5b80502e","unresolved":false,"context_lines":[{"line_number":27,"context_line":"interface and cannot be backported, so that change needs to be"},{"line_number":28,"context_line":"made separately."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"While in here, the image_cache_manager_interval configuration"},{"line_number":31,"context_line":"option help is updated to (1) fix formatting on possible values,"},{"line_number":32,"context_line":"(2) describe the \"large number of instances\" scenarios to watch"},{"line_number":33,"context_line":"out for, (3) add related options and (4) clarify the \"0\" default"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9fdfeff1_29906543","line":30,"updated":"2019-01-24 17:34:57.000000000","message":"Arguably this could be split out into a separate change.","commit_id":"62d2ff1c0260fdab0320451af02d7043f7b89648"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b500e00f7888f3439ab9b605b80e832b40c72453","unresolved":false,"context_lines":[{"line_number":27,"context_line":"interface and cannot be backported, so that change needs to be"},{"line_number":28,"context_line":"made separately."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"While in here, the image_cache_manager_interval configuration"},{"line_number":31,"context_line":"option help is updated to (1) fix formatting on possible values,"},{"line_number":32,"context_line":"(2) describe the \"large number of instances\" scenarios to watch"},{"line_number":33,"context_line":"out for, (3) add related options and (4) clarify the \"0\" default"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7faddb67_70bc12db","line":30,"updated":"2019-08-27 18:46:02.000000000","message":"I should split this out since this change isn\u0027t going anywhere fast but cleaning up the config option help docs might.","commit_id":"547a9c140007d6aec631d3df64c5521154af3cf4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6db486abc40294793d7e5f3a0a49065bfc9cff9c","unresolved":false,"context_lines":[{"line_number":27,"context_line":"interface and cannot be backported, so that change needs to be"},{"line_number":28,"context_line":"made separately."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"While in here, the image_cache_manager_interval configuration"},{"line_number":31,"context_line":"option help is updated to (1) fix formatting on possible values,"},{"line_number":32,"context_line":"(2) describe the \"large number of instances\" scenarios to watch"},{"line_number":33,"context_line":"out for, (3) add related options and (4) clarify the \"0\" default"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7faddb67_56730eb5","line":30,"in_reply_to":"7faddb67_70bc12db","updated":"2019-08-27 20:08:13.000000000","message":"Done: https://review.opendev.org/#/c/678954/","commit_id":"547a9c140007d6aec631d3df64c5521154af3cf4"}],"nova/tests/unit/virt/test_imagecache.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd0674a929e1e647fc6236450997616a5b80502e","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                         running[\u0027instance_names\u0027])"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    @mock.patch.object(objects.BlockDeviceMappingList, \u0027bdms_by_instance_uuid\u0027,"},{"line_number":169,"context_line":"                       return_value\u003dobjects.BlockDeviceMappingList())"},{"line_number":170,"context_line":"    def test_list_running_instances_chunked_bdm_query(self, mock_bdms_by_uuid):"},{"line_number":171,"context_line":"        \"\"\"Makes sure that a large number of instances are chunked when"},{"line_number":172,"context_line":"        querying BDMs from the database."}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_89a87177","line":169,"range":{"start_line":169,"start_character":36,"end_line":169,"end_character":68},"updated":"2019-01-24 17:34:57.000000000","message":"This should be a dict.","commit_id":"62d2ff1c0260fdab0320451af02d7043f7b89648"}],"nova/virt/imagecache.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fe0f67763504583e8c82bdc1041e70a9eb40ec25","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        used_images \u003d {}"},{"line_number":51,"context_line":"        instance_names \u003d set()"},{"line_number":52,"context_line":"        used_swap_images \u003d set()"},{"line_number":53,"context_line":"        # We could have a large number of instances if we are on shared storage"},{"line_number":54,"context_line":"        # or managing a lot of instances (e.g. vcenter) which could timeout the"},{"line_number":55,"context_line":"        # RPC call to conductor. To avoid that, perform this query in chunks of"},{"line_number":56,"context_line":"        # 50."}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_490a898a","line":53,"updated":"2019-01-24 17:38:46.000000000","message":"I could split this logic out into a _get_bdms_for_instances method and then unit test just that (and make the code more manageable).","commit_id":"547a9c140007d6aec631d3df64c5521154af3cf4"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"8bbfeacb296dee1c27ea3443c14270ff2a801d62","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        instance_bdms \u003d {}"},{"line_number":58,"context_line":"        instance_uuids \u003d [instance.uuid for instance in all_instances]"},{"line_number":59,"context_line":"        index \u003d 0"},{"line_number":60,"context_line":"        while index \u003c len(instance_uuids):"},{"line_number":61,"context_line":"            # TODO(mriedem): This could be further optimized by only querying"},{"line_number":62,"context_line":"            # for swap BDMs (source_type\u003dblank, destination_type\u003dlocal,"},{"line_number":63,"context_line":"            # guest_format\u003dswap)."}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_d88633dc","line":60,"updated":"2019-01-25 11:08:25.000000000","message":"or:\n\nfor index in range(0, len(instance_uuids), 50):...\n\nreplaces lines 59, 60, 67.","commit_id":"547a9c140007d6aec631d3df64c5521154af3cf4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6d9666f0611456a520088674c4418c51312f9aaf","unresolved":false,"context_lines":[{"line_number":62,"context_line":"            # for swap BDMs (source_type\u003dblank, destination_type\u003dlocal,"},{"line_number":63,"context_line":"            # guest_format\u003dswap)."},{"line_number":64,"context_line":"            instance_bdms.update("},{"line_number":65,"context_line":"                objects.BlockDeviceMappingList.bdms_by_instance_uuid("},{"line_number":66,"context_line":"                    context, instance_uuids[index:index + 50]))"},{"line_number":67,"context_line":"            index +\u003d 50  # We could make this chunk size configurable if needed"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_e9149d50","line":65,"range":{"start_line":65,"start_character":47,"end_line":65,"end_character":68},"updated":"2019-01-24 18:00:30.000000000","message":"We could also arguably do the chunking within the query method itself by passing a chunk_size kwarg or something so that we can make this a more generic solution for other callers of this method, but that could be a future improvement as well since it wouldn\u0027t be backportable.","commit_id":"547a9c140007d6aec631d3df64c5521154af3cf4"}]}
