)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e69db752a80f4f7f9cff20a8e733e066eac06c86","unresolved":false,"context_lines":[{"line_number":12,"context_line":"conductor then deletes the BuildRequest so a reschedule attempt will not"},{"line_number":13,"context_line":"find the BuildRequest object. This incorrectly stops the reschedule."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Instance.launched_on is set to the first host that a build is attempted"},{"line_number":16,"context_line":"on and then never touched again. So by checking if that field is set we"},{"line_number":17,"context_line":"know if a reschedule is being attempted. If that\u0027s the case then bypass"},{"line_number":18,"context_line":"the logic that checks for, and deletes, the BuildRequest object."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a98d1f4_bc3676b2","line":15,"range":{"start_line":15,"start_character":9,"end_line":15,"end_character":20},"updated":"2016-09-28 15:08:48.000000000","message":"This isn\u0027t what you\u0027re checking anymore.","commit_id":"cf26ce3bebc69bb40721d1088586b6e74097c877"}],"nova/conductor/manager.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"ded91a2d3e20ae97e7f3c5f8e311ae26614f29fc","unresolved":false,"context_lines":[{"line_number":526,"context_line":"                    context, instance.uuid)"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"            if (not instance.obj_attr_is_set(\u0027launched_on\u0027) or"},{"line_number":529,"context_line":"                    instance.launched_on is None):"},{"line_number":530,"context_line":"                # If launched_on is not set this is the first build attempt and"},{"line_number":531,"context_line":"                # the following needs to be done. If this is a reschedule the"},{"line_number":532,"context_line":"                # instance is already mapped to this cell and the BuildRequest"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a98d1f4_f6b3c008","line":529,"updated":"2016-09-28 14:01:52.000000000","message":"I\u0027d rather prefer to verify filter_props[\u0027retry\u0027][\u0027num_attempts\u0027]","commit_id":"3c6400963bb3e1ac3af14e8b232235aea626cd39"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e69db752a80f4f7f9cff20a8e733e066eac06c86","unresolved":false,"context_lines":[{"line_number":529,"context_line":"            num_attempts \u003d local_filter_props.get(\u0027retry\u0027,"},{"line_number":530,"context_line":"                                                  {}).get(\u0027num_attempts\u0027, 1)"},{"line_number":531,"context_line":"            if num_attempts \u003c\u003d 1:"},{"line_number":532,"context_line":"                # If launched_on is not set this is the first build attempt and"},{"line_number":533,"context_line":"                # the following needs to be done. If this is a reschedule the"},{"line_number":534,"context_line":"                # instance is already mapped to this cell and the BuildRequest"},{"line_number":535,"context_line":"                # is already deleted so ignore the logic below."}],"source_content_type":"text/x-python","patch_set":2,"id":"3a98d1f4_7ce78e40","line":532,"range":{"start_line":532,"start_character":21,"end_line":532,"end_character":32},"updated":"2016-09-28 15:08:48.000000000","message":"This comment needs to be updated.","commit_id":"cf26ce3bebc69bb40721d1088586b6e74097c877"}],"nova/tests/unit/conductor/test_conductor.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6b08e82fd48cd405e6d9cb984e4dd7146e39d731","unresolved":false,"context_lines":[{"line_number":934,"context_line":"                       \u0027select_destinations\u0027)"},{"line_number":935,"context_line":"    @mock.patch.object(conductor_manager.ComputeTaskManager,"},{"line_number":936,"context_line":"                       \u0027_set_vm_state_and_notify\u0027, new\u003dmock.MagicMock())"},{"line_number":937,"context_line":"    def test_build_instances_reschedule_ignores_build_request(self,"},{"line_number":938,"context_line":"            mock_select_dests, mock_build_req_get):"},{"line_number":939,"context_line":""},{"line_number":940,"context_line":"        mock_select_dests.return_value \u003d ["}],"source_content_type":"text/x-python","patch_set":2,"id":"3a98d1f4_3c26e616","line":937,"updated":"2016-09-28 15:14:17.000000000","message":"nit: this test seems to be doing quite a few things, it would be nice to have a docstring explaining what it\u0027s testing and how.","commit_id":"cf26ce3bebc69bb40721d1088586b6e74097c877"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"fed995185674fe29d56cec57ff2e7df4ad38289e","unresolved":false,"context_lines":[{"line_number":934,"context_line":"                       \u0027select_destinations\u0027)"},{"line_number":935,"context_line":"    @mock.patch.object(conductor_manager.ComputeTaskManager,"},{"line_number":936,"context_line":"                       \u0027_set_vm_state_and_notify\u0027, new\u003dmock.MagicMock())"},{"line_number":937,"context_line":"    def test_build_instances_reschedule_ignores_build_request(self,"},{"line_number":938,"context_line":"            mock_select_dests, mock_build_req_get):"},{"line_number":939,"context_line":""},{"line_number":940,"context_line":"        mock_select_dests.return_value \u003d ["}],"source_content_type":"text/x-python","patch_set":2,"id":"3a98d1f4_52b0f98b","line":937,"in_reply_to":"3a98d1f4_3c26e616","updated":"2016-09-28 15:42:06.000000000","message":"Sure.","commit_id":"cf26ce3bebc69bb40721d1088586b6e74097c877"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6b08e82fd48cd405e6d9cb984e4dd7146e39d731","unresolved":false,"context_lines":[{"line_number":967,"context_line":"                security_groups\u003d\u0027security_groups\u0027,"},{"line_number":968,"context_line":"                block_device_mapping\u003d\u0027block_device_mapping\u0027,"},{"line_number":969,"context_line":"                legacy_bdm\u003dFalse)"},{"line_number":970,"context_line":"            mock_build_and_run.assert_called_once()"},{"line_number":971,"context_line":"            mock_pop_inst_map.assert_not_called()"},{"line_number":972,"context_line":"            mock_destroy_build_req.assert_not_called()"},{"line_number":973,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a98d1f4_5cf57281","line":970,"range":{"start_line":970,"start_character":31,"end_line":970,"end_character":49},"updated":"2016-09-28 15:14:17.000000000","message":"This isn\u0027t a thing, should be assert_called_once_with().","commit_id":"cf26ce3bebc69bb40721d1088586b6e74097c877"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"fed995185674fe29d56cec57ff2e7df4ad38289e","unresolved":false,"context_lines":[{"line_number":967,"context_line":"                security_groups\u003d\u0027security_groups\u0027,"},{"line_number":968,"context_line":"                block_device_mapping\u003d\u0027block_device_mapping\u0027,"},{"line_number":969,"context_line":"                legacy_bdm\u003dFalse)"},{"line_number":970,"context_line":"            mock_build_and_run.assert_called_once()"},{"line_number":971,"context_line":"            mock_pop_inst_map.assert_not_called()"},{"line_number":972,"context_line":"            mock_destroy_build_req.assert_not_called()"},{"line_number":973,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a98d1f4_d2bb2974","line":970,"range":{"start_line":970,"start_character":31,"end_line":970,"end_character":49},"in_reply_to":"3a98d1f4_5cf57281","updated":"2016-09-28 15:42:06.000000000","message":"It didn\u0027t used to be a thing, but is now https://github.com/testing-cabal/mock/blob/master/mock/mock.py#L908. I wasn\u0027t concerned with what it was called with as that\u0027s tested elsewhere, but I can update this.","commit_id":"cf26ce3bebc69bb40721d1088586b6e74097c877"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"85a9d766e23a98a32f8ea21405dc8d28c43800f4","unresolved":false,"context_lines":[{"line_number":961,"context_line":"                context\u003dself.context,"},{"line_number":962,"context_line":"                instances\u003d[instance],"},{"line_number":963,"context_line":"                image\u003dimage,"},{"line_number":964,"context_line":"                filter_properties\u003d{\u0027retry\u0027: {\u0027num_attempts\u0027: 1, \u0027hosts\u0027: []}},"},{"line_number":965,"context_line":"                admin_password\u003d\u0027admin_password\u0027,"},{"line_number":966,"context_line":"                injected_files\u003d\u0027injected_files\u0027,"},{"line_number":967,"context_line":"                requested_networks\u003dNone,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a98d1f4_f5e4853c","line":964,"range":{"start_line":964,"start_character":45,"end_line":964,"end_character":62},"updated":"2016-09-28 17:56:27.000000000","message":"Does this mean that we\u0027ve already attempted a build once, and this will get incremented to 2 so the num_attempts \u003c\u003d 1 will be False and we don\u0027t attempt to delete the build request? I haven\u0027t dug into how everything is mutated in here.","commit_id":"9b090aeb7e2d4e4adc0b2a80402cbfb09830bd94"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"641084c391c217c1b472e88ad0e19d8b151f3d08","unresolved":false,"context_lines":[{"line_number":961,"context_line":"                context\u003dself.context,"},{"line_number":962,"context_line":"                instances\u003d[instance],"},{"line_number":963,"context_line":"                image\u003dimage,"},{"line_number":964,"context_line":"                filter_properties\u003d{\u0027retry\u0027: {\u0027num_attempts\u0027: 1, \u0027hosts\u0027: []}},"},{"line_number":965,"context_line":"                admin_password\u003d\u0027admin_password\u0027,"},{"line_number":966,"context_line":"                injected_files\u003d\u0027injected_files\u0027,"},{"line_number":967,"context_line":"                requested_networks\u003dNone,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a98d1f4_550ff9e0","line":964,"range":{"start_line":964,"start_character":45,"end_line":964,"end_character":62},"in_reply_to":"3a98d1f4_35634db3","updated":"2016-09-28 17:58:38.000000000","message":"Yup, sweet.\n\n    # retry is enabled, update attempt count:\n    retry \u003d filter_properties.setdefault(\n        \u0027retry\u0027, {\n            \u0027num_attempts\u0027: 0,\n            \u0027hosts\u0027: []  # list of compute hosts tried\n    })\n    retry[\u0027num_attempts\u0027] +\u003d 1","commit_id":"9b090aeb7e2d4e4adc0b2a80402cbfb09830bd94"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"3082033251386b03a509801b184bd30162683975","unresolved":false,"context_lines":[{"line_number":961,"context_line":"                context\u003dself.context,"},{"line_number":962,"context_line":"                instances\u003d[instance],"},{"line_number":963,"context_line":"                image\u003dimage,"},{"line_number":964,"context_line":"                filter_properties\u003d{\u0027retry\u0027: {\u0027num_attempts\u0027: 1, \u0027hosts\u0027: []}},"},{"line_number":965,"context_line":"                admin_password\u003d\u0027admin_password\u0027,"},{"line_number":966,"context_line":"                injected_files\u003d\u0027injected_files\u0027,"},{"line_number":967,"context_line":"                requested_networks\u003dNone,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a98d1f4_35634db3","line":964,"range":{"start_line":964,"start_character":45,"end_line":964,"end_character":62},"in_reply_to":"3a98d1f4_f5e4853c","updated":"2016-09-28 17:57:49.000000000","message":"That\u0027s exactly right. You can see in the assert below (L978) that num_attempts will be 2.","commit_id":"9b090aeb7e2d4e4adc0b2a80402cbfb09830bd94"}]}
