)]}'
{"nova/conductor/manager.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f7d57bfc0cbd3780ebb0fd58c160ed950b310d72","unresolved":false,"context_lines":[{"line_number":407,"context_line":"            # check retry policy. Rather ugly use of instances[0]..."},{"line_number":408,"context_line":"            # but if we\u0027ve exceeded max retries... then we really only"},{"line_number":409,"context_line":"            # have a single instance."},{"line_number":410,"context_line":"            request_spec \u003d scheduler_utils.build_request_spec("},{"line_number":411,"context_line":"                context, image, instances)"},{"line_number":412,"context_line":"            scheduler_utils.populate_retry("},{"line_number":413,"context_line":"                filter_properties, instances[0].uuid)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_191e9a0b","line":410,"updated":"2016-06-09 09:19:20.000000000","message":"so we will get an undefined variable error if this throws an exception, I think?\n\ncan\u0027t we just leave ln406 in place?","commit_id":"59dab1379ddfaff1727966be73c6251a6903c10a"},{"author":{"_account_id":13248,"name":"Wenzhi Yu","email":"wenzhi_yu@163.com","username":"yuywz"},"change_message_id":"56cb4d8f3cf3d9a981d8cacb4549330f8b0a7f37","unresolved":false,"context_lines":[{"line_number":407,"context_line":"            # check retry policy. Rather ugly use of instances[0]..."},{"line_number":408,"context_line":"            # but if we\u0027ve exceeded max retries... then we really only"},{"line_number":409,"context_line":"            # have a single instance."},{"line_number":410,"context_line":"            request_spec \u003d scheduler_utils.build_request_spec("},{"line_number":411,"context_line":"                context, image, instances)"},{"line_number":412,"context_line":"            scheduler_utils.populate_retry("},{"line_number":413,"context_line":"                filter_properties, instances[0].uuid)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_873667b2","line":410,"in_reply_to":"7aa08908_191e9a0b","updated":"2016-06-10 05:38:28.000000000","message":"Done","commit_id":"59dab1379ddfaff1727966be73c6251a6903c10a"}],"nova/tests/unit/conductor/test_conductor.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"d74943b74a5c0feab541d346b37a79c76d660c9e","unresolved":false,"context_lines":[{"line_number":569,"context_line":"                \u0027build_instances\u0027, updates, mock.ANY, mock.ANY)"},{"line_number":570,"context_line":"            self.assertEqual("},{"line_number":571,"context_line":"                image,"},{"line_number":572,"context_line":"                set_vm_state_and_notify.call_args_list[0][0][-1][\u0027image\u0027])"},{"line_number":573,"context_line":"            cleanup_mock.assert_called_once_with(self.context, mock.ANY, None)"},{"line_number":574,"context_line":""},{"line_number":575,"context_line":"        _test()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_e0c93e27","line":572,"updated":"2016-07-13 23:29:42.000000000","message":"This is a pretty roundabout way of testing that request_spec was passed. Why not mock scheduler_utils.build_request_spec and assert on mock_build.return_value instead?","commit_id":"7de6be619402cd18115059514891fef47b7d59be"},{"author":{"_account_id":13248,"name":"Wenzhi Yu","email":"wenzhi_yu@163.com","username":"yuywz"},"change_message_id":"5dc944e1ec14d7afd89e51c2a8c53f715d303b50","unresolved":false,"context_lines":[{"line_number":569,"context_line":"                \u0027build_instances\u0027, updates, mock.ANY, mock.ANY)"},{"line_number":570,"context_line":"            self.assertEqual("},{"line_number":571,"context_line":"                image,"},{"line_number":572,"context_line":"                set_vm_state_and_notify.call_args_list[0][0][-1][\u0027image\u0027])"},{"line_number":573,"context_line":"            cleanup_mock.assert_called_once_with(self.context, mock.ANY, None)"},{"line_number":574,"context_line":""},{"line_number":575,"context_line":"        _test()"}],"source_content_type":"text/x-python","patch_set":3,"id":"dada55a8_ba064f1e","line":572,"in_reply_to":"1aa78d24_e0c93e27","updated":"2016-07-18 09:39:26.000000000","message":"Done, good point, thanks melanie!","commit_id":"7de6be619402cd18115059514891fef47b7d59be"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"52ef6b726e24cd794dd3c31f2f25062e7ff74222","unresolved":false,"context_lines":[{"line_number":600,"context_line":"                filter_properties, instances[0].uuid)"},{"line_number":601,"context_line":"            set_vm_state_and_notify.assert_called_once_with("},{"line_number":602,"context_line":"                self.context, instances[0].uuid, \u0027compute_task\u0027,"},{"line_number":603,"context_line":"                \u0027build_instances\u0027, updates, mock.ANY, mock.ANY)"},{"line_number":604,"context_line":"            self.assertEqual("},{"line_number":605,"context_line":"                build_spec.return_value,"},{"line_number":606,"context_line":"                set_vm_state_and_notify.call_args_list[0][0][-1])"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a98d1f4_7fc004e1","line":603,"range":{"start_line":603,"start_character":54,"end_line":603,"end_character":62},"updated":"2016-09-29 23:29:07.000000000","message":"Sorry, I should have been more clear. I meant, after mocking build_request_spec, use build_spec.return_value here instead of mock.ANY.","commit_id":"aa677b12c334e1f1b32c27ecb73bb1dffc303907"},{"author":{"_account_id":13248,"name":"Wenzhi Yu","email":"wenzhi_yu@163.com","username":"yuywz"},"change_message_id":"7c66f57ebbc19a11d98a83e282b6a0d6ed3fa7e5","unresolved":false,"context_lines":[{"line_number":600,"context_line":"                filter_properties, instances[0].uuid)"},{"line_number":601,"context_line":"            set_vm_state_and_notify.assert_called_once_with("},{"line_number":602,"context_line":"                self.context, instances[0].uuid, \u0027compute_task\u0027,"},{"line_number":603,"context_line":"                \u0027build_instances\u0027, updates, mock.ANY, mock.ANY)"},{"line_number":604,"context_line":"            self.assertEqual("},{"line_number":605,"context_line":"                build_spec.return_value,"},{"line_number":606,"context_line":"                set_vm_state_and_notify.call_args_list[0][0][-1])"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a98d1f4_73383ba1","line":603,"range":{"start_line":603,"start_character":54,"end_line":603,"end_character":62},"in_reply_to":"3a98d1f4_7fc004e1","updated":"2016-09-30 01:53:54.000000000","message":"Done","commit_id":"aa677b12c334e1f1b32c27ecb73bb1dffc303907"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"52ef6b726e24cd794dd3c31f2f25062e7ff74222","unresolved":false,"context_lines":[{"line_number":601,"context_line":"            set_vm_state_and_notify.assert_called_once_with("},{"line_number":602,"context_line":"                self.context, instances[0].uuid, \u0027compute_task\u0027,"},{"line_number":603,"context_line":"                \u0027build_instances\u0027, updates, mock.ANY, mock.ANY)"},{"line_number":604,"context_line":"            self.assertEqual("},{"line_number":605,"context_line":"                build_spec.return_value,"},{"line_number":606,"context_line":"                set_vm_state_and_notify.call_args_list[0][0][-1])"},{"line_number":607,"context_line":"            cleanup_mock.assert_called_once_with(self.context, mock.ANY, None)"},{"line_number":608,"context_line":""},{"line_number":609,"context_line":"        _test()"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a98d1f4_bfba8c6c","line":606,"range":{"start_line":604,"start_character":12,"end_line":606,"end_character":65},"updated":"2016-09-29 23:29:07.000000000","message":"And then remove this.","commit_id":"aa677b12c334e1f1b32c27ecb73bb1dffc303907"},{"author":{"_account_id":13248,"name":"Wenzhi Yu","email":"wenzhi_yu@163.com","username":"yuywz"},"change_message_id":"7c66f57ebbc19a11d98a83e282b6a0d6ed3fa7e5","unresolved":false,"context_lines":[{"line_number":601,"context_line":"            set_vm_state_and_notify.assert_called_once_with("},{"line_number":602,"context_line":"                self.context, instances[0].uuid, \u0027compute_task\u0027,"},{"line_number":603,"context_line":"                \u0027build_instances\u0027, updates, mock.ANY, mock.ANY)"},{"line_number":604,"context_line":"            self.assertEqual("},{"line_number":605,"context_line":"                build_spec.return_value,"},{"line_number":606,"context_line":"                set_vm_state_and_notify.call_args_list[0][0][-1])"},{"line_number":607,"context_line":"            cleanup_mock.assert_called_once_with(self.context, mock.ANY, None)"},{"line_number":608,"context_line":""},{"line_number":609,"context_line":"        _test()"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a98d1f4_933b079c","line":606,"range":{"start_line":604,"start_character":12,"end_line":606,"end_character":65},"in_reply_to":"3a98d1f4_bfba8c6c","updated":"2016-09-30 01:53:54.000000000","message":"Done","commit_id":"aa677b12c334e1f1b32c27ecb73bb1dffc303907"}]}
