)]}'
{"nova/compute/api.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"407b9008c339eb50ebbabbe2603b0f36beb89802","unresolved":false,"context_lines":[{"line_number":824,"context_line":"                            bdm.get(\u0027source_type\u0027) \u003d\u003d \u0027image\u0027)"},{"line_number":825,"context_line":""},{"line_number":826,"context_line":"            block_device_mapping \u003d list("},{"line_number":827,"context_line":"                filter(not_image_and_root_bdm, block_device_mapping))"},{"line_number":828,"context_line":""},{"line_number":829,"context_line":"        block_device_mapping \u003d self._merge_bdms_lists("},{"line_number":830,"context_line":"            image_defined_bdms, block_device_mapping)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_d4f7f0d0","line":827,"updated":"2015-11-19 19:15:54.000000000","message":"Hmmm…there was a syntax error on this line (extraneous \u0027(\u0027); any idea where that came from?","commit_id":"3238a5c2c6b1de7958ba0e43e467d6dd4d6beac1"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"f08e7e26708c3abd167c5ddc92b34e3c32166b27","unresolved":false,"context_lines":[{"line_number":677,"context_line":"                image_defined_bdms, None, root_device_name)"},{"line_number":678,"context_line":"        else:"},{"line_number":679,"context_line":"            image_defined_bdms \u003d list(map(block_device.BlockDeviceDict,"},{"line_number":680,"context_line":"                                          image_defined_bdms))"},{"line_number":681,"context_line":""},{"line_number":682,"context_line":"        if image_mapping:"},{"line_number":683,"context_line":"            image_mapping \u003d self._prepare_image_mapping(instance_type,"}],"source_content_type":"text/x-python","patch_set":13,"id":"9a68dd71_152e25a5","line":680,"updated":"2016-01-22 19:17:18.000000000","message":"Actually, could this be replaced by a list comprehension?  i.e.:\n\n    image_defined_bdms \u003d [block_device.BlockDeviceDict(x)\n                          for x in image_defined_bdms]","commit_id":"3373966127e7b68ccc9a2d457736a7bebaf5f318"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"2371592253fa5bff2bdb9fe759c423e097af8b9e","unresolved":false,"context_lines":[{"line_number":677,"context_line":"                image_defined_bdms, None, root_device_name)"},{"line_number":678,"context_line":"        else:"},{"line_number":679,"context_line":"            image_defined_bdms \u003d list(map(block_device.BlockDeviceDict,"},{"line_number":680,"context_line":"                                          image_defined_bdms))"},{"line_number":681,"context_line":""},{"line_number":682,"context_line":"        if image_mapping:"},{"line_number":683,"context_line":"            image_mapping \u003d self._prepare_image_mapping(instance_type,"}],"source_content_type":"text/x-python","patch_set":13,"id":"7a5de9d1_310fa089","line":680,"in_reply_to":"9a68dd71_152e25a5","updated":"2016-01-31 10:55:26.000000000","message":"+1","commit_id":"3373966127e7b68ccc9a2d457736a7bebaf5f318"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"f08e7e26708c3abd167c5ddc92b34e3c32166b27","unresolved":false,"context_lines":[{"line_number":7609,"context_line":"        bdms \u003d block_device_obj.BlockDeviceMappingList.get_by_instance_uuid("},{"line_number":7610,"context_line":"            self.context, instance_uuid)"},{"line_number":7611,"context_line":""},{"line_number":7612,"context_line":"        ephemeral \u003d list(filter(block_device.new_format_is_ephemeral, bdms))"},{"line_number":7613,"context_line":"        self.assertEqual(1, len(ephemeral))"},{"line_number":7614,"context_line":"        swap \u003d list(filter(block_device.new_format_is_swap, bdms))"},{"line_number":7615,"context_line":"        self.assertEqual(1, len(swap))"}],"source_content_type":"text/x-python","patch_set":13,"id":"9a68dd71_e82db895","line":7612,"updated":"2016-01-22 19:17:18.000000000","message":"These could also become comprehensions:\n\n    ephemeral \u003d [x for x in bdms\n                 if block_device.new_format_is_ephemeral(x)]","commit_id":"3373966127e7b68ccc9a2d457736a7bebaf5f318"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"2371592253fa5bff2bdb9fe759c423e097af8b9e","unresolved":false,"context_lines":[{"line_number":7609,"context_line":"        bdms \u003d block_device_obj.BlockDeviceMappingList.get_by_instance_uuid("},{"line_number":7610,"context_line":"            self.context, instance_uuid)"},{"line_number":7611,"context_line":""},{"line_number":7612,"context_line":"        ephemeral \u003d list(filter(block_device.new_format_is_ephemeral, bdms))"},{"line_number":7613,"context_line":"        self.assertEqual(1, len(ephemeral))"},{"line_number":7614,"context_line":"        swap \u003d list(filter(block_device.new_format_is_swap, bdms))"},{"line_number":7615,"context_line":"        self.assertEqual(1, len(swap))"}],"source_content_type":"text/x-python","patch_set":13,"id":"7a5de9d1_f1258808","line":7612,"in_reply_to":"9a68dd71_e82db895","updated":"2016-01-31 10:55:26.000000000","message":"+1","commit_id":"3373966127e7b68ccc9a2d457736a7bebaf5f318"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"3ba6974e521ad503f766d9813889597c62d17b84","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        get_rt.side_effect \u003d _get_rt_side_effect"},{"line_number":198,"context_line":"        self.compute.update_available_resource(ctxt)"},{"line_number":199,"context_line":"        get_db_nodes.assert_called_once_with(ctxt, use_slave\u003dTrue)"},{"line_number":200,"context_line":"        self.assertEqual([mock.call(node) for node in avail_nodes],"},{"line_number":201,"context_line":"                         get_rt.call_args_list)"},{"line_number":202,"context_line":"        for rt in rts:"},{"line_number":203,"context_line":"            rt.update_available_resource.assert_called_once_with(ctxt)"},{"line_number":204,"context_line":"        self.assertEqual(expected_rt_dict,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a740942_c58b351d","line":201,"range":{"start_line":200,"start_character":8,"end_line":201,"end_character":47},"updated":"2015-12-11 00:24:37.000000000","message":"Looks like we have a problem here where the lists aren\u0027t always having the nodes in the same order and the equality check fails intermittently. Probably need sorted() calls on each list for the comparison","commit_id":"f616e8e8be38153b879ec5d682ba00a665d13700"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"c26d4fcd1074d0a80c293821b972cf9634043d4e","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        get_rt.side_effect \u003d _get_rt_side_effect"},{"line_number":198,"context_line":"        self.compute.update_available_resource(ctxt)"},{"line_number":199,"context_line":"        get_db_nodes.assert_called_once_with(ctxt, use_slave\u003dTrue)"},{"line_number":200,"context_line":"        self.assertEqual([mock.call(node) for node in avail_nodes],"},{"line_number":201,"context_line":"                         get_rt.call_args_list)"},{"line_number":202,"context_line":"        for rt in rts:"},{"line_number":203,"context_line":"            rt.update_available_resource.assert_called_once_with(ctxt)"},{"line_number":204,"context_line":"        self.assertEqual(expected_rt_dict,"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a7e1126_7f91d098","line":201,"range":{"start_line":200,"start_character":8,"end_line":201,"end_character":47},"in_reply_to":"7a740942_c58b351d","updated":"2015-12-17 15:49:38.000000000","message":"agreed.","commit_id":"f616e8e8be38153b879ec5d682ba00a665d13700"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"8bbc8111ac738e0ac14c25d27100075faf8d9e13","unresolved":false,"context_lines":[{"line_number":198,"context_line":"        self.compute.update_available_resource(ctxt)"},{"line_number":199,"context_line":"        get_db_nodes.assert_called_once_with(ctxt, use_slave\u003dTrue)"},{"line_number":200,"context_line":"        self.assertEqual(sorted([mock.call(node) for node in avail_nodes]),"},{"line_number":201,"context_line":"                         sorted(get_rt.call_args_list))"},{"line_number":202,"context_line":"        for rt in rts:"},{"line_number":203,"context_line":"            rt.update_available_resource.assert_called_once_with(ctxt)"},{"line_number":204,"context_line":"        self.assertEqual(expected_rt_dict,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a7e1126_fdb61edb","line":201,"updated":"2015-12-17 18:56:46.000000000","message":"Sorry, I didn\u0027t mean you needed to change it here, it was FYI -- it\u0027s unrelated to your patch. Looks like my \"recheck\" didn\u0027t work because I had written an inline comment along with it","commit_id":"ba1ef324cfd58d80b4088d6f8ea4a618516e8691"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"075ef49149a4a3252648ad58ffc805a16c41ae6a","unresolved":false,"context_lines":[{"line_number":198,"context_line":"        get_rt.side_effect \u003d _get_rt_side_effect"},{"line_number":199,"context_line":"        self.compute.update_available_resource(ctxt)"},{"line_number":200,"context_line":"        get_db_nodes.assert_called_once_with(ctxt, use_slave\u003dTrue)"},{"line_number":201,"context_line":"        self.assertEqual(sorted([mock.call(node) for node in avail_nodes]),"},{"line_number":202,"context_line":"                         sorted(get_rt.call_args_list))"},{"line_number":203,"context_line":"        for rt in rts:"},{"line_number":204,"context_line":"            rt.update_available_resource.assert_called_once_with(ctxt)"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa69d971_5013720d","line":201,"range":{"start_line":201,"start_character":32,"end_line":201,"end_character":73},"updated":"2016-01-04 17:11:21.000000000","message":"I believe you could remove the list comprehension here, making it into a generator comprehension.  (femtonit)","commit_id":"c51711ab225b73a657d45c78e9a13fef5f1d3797"}]}
