)]}'
{"nova/conductor/manager.py":[{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"684719b855e180e5db2c20c7aeae04e633c6fb93","unresolved":false,"context_lines":[{"line_number":562,"context_line":"                            instance_id\u003dinstance.uuid, reason\u003dreason)"},{"line_number":563,"context_line":"            image_meta \u003d image"},{"line_number":564,"context_line":"            if not image_meta:"},{"line_number":565,"context_line":"                image_meta \u003d utils.get_image_from_system_metadata("},{"line_number":566,"context_line":"                        sys_meta)"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_77a2d3af","line":565,"updated":"2016-08-16 14:50:41.000000000","message":"We don\u0027t check that image exists here if it doesn\u0027t exist we should update instance state appropriately as above.","commit_id":"abbb0df3a7eba407ff7778d9304bf633c8b5ef86"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a61706095d3c8190c152dff9454fcdbdccafb9f0","unresolved":false,"context_lines":[{"line_number":595,"context_line":"                            instance_id\u003dinstance.uuid, reason\u003dreason)"},{"line_number":596,"context_line":"            image_meta \u003d image"},{"line_number":597,"context_line":"            if not image_meta:"},{"line_number":598,"context_line":"                try:"},{"line_number":599,"context_line":"                    image_meta \u003d utils.get_image_from_system_metadata("},{"line_number":600,"context_line":"                            sys_meta)"},{"line_number":601,"context_line":"                except exception.ImageNotFound:"},{"line_number":602,"context_line":"                        instance.vm_state \u003d vm_states.ERROR"},{"line_number":603,"context_line":"                        instance.save()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a95cdbc_b8cd0433","line":600,"range":{"start_line":598,"start_character":0,"end_line":600,"end_character":37},"updated":"2016-10-07 15:14:49.000000000","message":"nit: this can all fit on one line?","commit_id":"1450a3f37d1b0f0200df918fce48d68e7ad1dbc3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a61706095d3c8190c152dff9454fcdbdccafb9f0","unresolved":false,"context_lines":[{"line_number":601,"context_line":"                except exception.ImageNotFound:"},{"line_number":602,"context_line":"                        instance.vm_state \u003d vm_states.ERROR"},{"line_number":603,"context_line":"                        instance.save()"},{"line_number":604,"context_line":"                        reason \u003d _(\u0027Unshelve attempted but the image \u0027"},{"line_number":605,"context_line":"                                   \u0027cannot be found.\u0027)"},{"line_number":606,"context_line":"                        LOG.error(reason, instance\u003dinstance)"},{"line_number":607,"context_line":"                        raise exception.UnshelveException("}],"source_content_type":"text/x-python","patch_set":3,"id":"1a95cdbc_78e0dc96","line":604,"range":{"start_line":604,"start_character":33,"end_line":604,"end_character":34},"updated":"2016-10-07 15:14:49.000000000","message":"Should this be \u0027_LE\u0027? [1]\n\n[1] http://docs.openstack.org/developer/oslo.i18n/usage.html","commit_id":"1450a3f37d1b0f0200df918fce48d68e7ad1dbc3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"431eeb80fcacec8ac0ac0c85e7b386c007b4c4a7","unresolved":false,"context_lines":[{"line_number":601,"context_line":"                        instance.vm_state \u003d vm_states.ERROR"},{"line_number":602,"context_line":"                        instance.save()"},{"line_number":603,"context_line":"                        reason \u003d _LE(\u0027Unshelve attempted but the image \u0027"},{"line_number":604,"context_line":"                                   \u0027cannot be found.\u0027)"},{"line_number":605,"context_line":"                        LOG.error(reason, instance\u003dinstance)"},{"line_number":606,"context_line":"                        raise exception.UnshelveException("},{"line_number":607,"context_line":"                            instance_id\u003dinstance.uuid, reason\u003dreason)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_36e99c1b","line":604,"range":{"start_line":604,"start_character":0,"end_line":604,"end_character":54},"updated":"2016-10-11 12:15:13.000000000","message":"Indentation :)","commit_id":"4a800278ce399eadbb72365d5ba9d2997855399c"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"86e2ce6152a7f84c99aa54066300bc174b19df59","unresolved":false,"context_lines":[{"line_number":601,"context_line":"                        instance.vm_state \u003d vm_states.ERROR"},{"line_number":602,"context_line":"                        instance.save()"},{"line_number":603,"context_line":"                        reason \u003d _LE(\u0027Unshelve attempted but the image \u0027"},{"line_number":604,"context_line":"                                   \u0027cannot be found.\u0027)"},{"line_number":605,"context_line":"                        LOG.error(reason, instance\u003dinstance)"},{"line_number":606,"context_line":"                        raise exception.UnshelveException("},{"line_number":607,"context_line":"                            instance_id\u003dinstance.uuid, reason\u003dreason)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_47643f48","line":604,"range":{"start_line":604,"start_character":0,"end_line":604,"end_character":54},"in_reply_to":"fa6399be_36e99c1b","updated":"2016-10-13 08:02:11.000000000","message":"Done","commit_id":"4a800278ce399eadbb72365d5ba9d2997855399c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3d3040364d8cbef713e2f7eaf07dbedf6d74e97c","unresolved":false,"context_lines":[{"line_number":629,"context_line":"                        LOG.error(reason, instance\u003dinstance)"},{"line_number":630,"context_line":"                        raise exception.UnshelveException("},{"line_number":631,"context_line":"                            instance_id\u003dinstance.uuid, reason\u003dreason)"},{"line_number":632,"context_line":"            image_meta \u003d image"},{"line_number":633,"context_line":"            if not image_meta:"},{"line_number":634,"context_line":"                try:"},{"line_number":635,"context_line":"                    image_meta \u003d utils.get_image_from_system_metadata(sys_meta)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa31d9ce_89031973","line":632,"updated":"2017-02-10 12:43:13.000000000","message":"I think this is confusing here, can\u0027t we just keep using the variable image?\n\nIf these are not the same thing, we probably can\u0027t use them interchangeably.","commit_id":"403b3a4f731acb6f3e8784df37837be0b5db0cc5"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ef2c8b42740ce0e4a954388d65102e6c381c2375","unresolved":false,"context_lines":[{"line_number":629,"context_line":"                        LOG.error(reason, instance\u003dinstance)"},{"line_number":630,"context_line":"                        raise exception.UnshelveException("},{"line_number":631,"context_line":"                            instance_id\u003dinstance.uuid, reason\u003dreason)"},{"line_number":632,"context_line":"            image_meta \u003d image"},{"line_number":633,"context_line":"            if not image_meta:"},{"line_number":634,"context_line":"                try:"},{"line_number":635,"context_line":"                    image_meta \u003d utils.get_image_from_system_metadata(sys_meta)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff0f0b1f_12fa8b41","line":632,"in_reply_to":"fa31d9ce_89031973","updated":"2017-05-18 01:42:49.000000000","message":"Agreed on both counts.","commit_id":"403b3a4f731acb6f3e8784df37837be0b5db0cc5"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ef2c8b42740ce0e4a954388d65102e6c381c2375","unresolved":false,"context_lines":[{"line_number":632,"context_line":"            image_meta \u003d image"},{"line_number":633,"context_line":"            if not image_meta:"},{"line_number":634,"context_line":"                try:"},{"line_number":635,"context_line":"                    image_meta \u003d utils.get_image_from_system_metadata(sys_meta)"},{"line_number":636,"context_line":"                except exception.ImageNotFound:"},{"line_number":637,"context_line":"                        instance.vm_state \u003d vm_states.ERROR"},{"line_number":638,"context_line":"                        instance.save()"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff0f0b1f_b29e3f05","line":635,"updated":"2017-05-18 01:42:49.000000000","message":"utils.get_image_from_system_metadata() does not raise exception.ImageNotFound.","commit_id":"403b3a4f731acb6f3e8784df37837be0b5db0cc5"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ef2c8b42740ce0e4a954388d65102e6c381c2375","unresolved":false,"context_lines":[{"line_number":634,"context_line":"                try:"},{"line_number":635,"context_line":"                    image_meta \u003d utils.get_image_from_system_metadata(sys_meta)"},{"line_number":636,"context_line":"                except exception.ImageNotFound:"},{"line_number":637,"context_line":"                        instance.vm_state \u003d vm_states.ERROR"},{"line_number":638,"context_line":"                        instance.save()"},{"line_number":639,"context_line":"                        reason \u003d _LE(\u0027Unshelve attempted but the image \u0027"},{"line_number":640,"context_line":"                                     \u0027cannot be found.\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff0f0b1f_7288a7c5","line":637,"updated":"2017-05-18 01:42:49.000000000","message":"Plus, this section is indented too far.","commit_id":"403b3a4f731acb6f3e8784df37837be0b5db0cc5"}],"nova/tests/unit/conductor/test_conductor.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"431eeb80fcacec8ac0ac0c85e7b386c007b4c4a7","unresolved":false,"context_lines":[{"line_number":1146,"context_line":"        system_metadata \u003d instance.system_metadata"},{"line_number":1147,"context_line":""},{"line_number":1148,"context_line":"        with test.nested("},{"line_number":1149,"context_line":"            mock.patch.object(utils, \u0027get_image_from_system_metadata\u0027),"},{"line_number":1150,"context_line":"            mock.patch.object(scheduler_utils, \u0027build_request_spec\u0027),"},{"line_number":1151,"context_line":"            mock.patch.object(self.conductor_manager, \u0027_schedule_instances\u0027),"},{"line_number":1152,"context_line":"            mock.patch.object(self.conductor_manager.compute_rpcapi,"},{"line_number":1153,"context_line":"                              \u0027unshelve_instance\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_3637dcb1","line":1150,"range":{"start_line":1149,"start_character":0,"end_line":1150,"end_character":69},"updated":"2016-10-11 12:15:13.000000000","message":"These should probably be moved to decorators to simplify this? If you do, you can pass a \u0027return_value\u0027 parameter to said decorator:\n\n    @mock.patch.object(utils, \u0027get_image_from_system_metadata\u0027,\n                       return_value\u003d\u0027image\u0027)","commit_id":"4a800278ce399eadbb72365d5ba9d2997855399c"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"86e2ce6152a7f84c99aa54066300bc174b19df59","unresolved":false,"context_lines":[{"line_number":1146,"context_line":"        system_metadata \u003d instance.system_metadata"},{"line_number":1147,"context_line":""},{"line_number":1148,"context_line":"        with test.nested("},{"line_number":1149,"context_line":"            mock.patch.object(utils, \u0027get_image_from_system_metadata\u0027),"},{"line_number":1150,"context_line":"            mock.patch.object(scheduler_utils, \u0027build_request_spec\u0027),"},{"line_number":1151,"context_line":"            mock.patch.object(self.conductor_manager, \u0027_schedule_instances\u0027),"},{"line_number":1152,"context_line":"            mock.patch.object(self.conductor_manager.compute_rpcapi,"},{"line_number":1153,"context_line":"                              \u0027unshelve_instance\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_a76efb2c","line":1150,"range":{"start_line":1149,"start_character":0,"end_line":1150,"end_character":69},"in_reply_to":"fa6399be_3637dcb1","updated":"2016-10-13 08:02:11.000000000","message":"Done","commit_id":"4a800278ce399eadbb72365d5ba9d2997855399c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3d3040364d8cbef713e2f7eaf07dbedf6d74e97c","unresolved":false,"context_lines":[{"line_number":1164,"context_line":"                                       \u0027hosts\u0027: []}}"},{"line_number":1165,"context_line":"        system_metadata \u003d instance.system_metadata"},{"line_number":1166,"context_line":""},{"line_number":1167,"context_line":"        self.mox.StubOutWithMock(scheduler_utils, \u0027build_request_spec\u0027)"},{"line_number":1168,"context_line":"        self.mox.StubOutWithMock(self.conductor_manager, \u0027_schedule_instances\u0027)"},{"line_number":1169,"context_line":"        self.mox.StubOutWithMock(self.conductor_manager.compute_rpcapi,"},{"line_number":1170,"context_line":"                \u0027unshelve_instance\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa31d9ce_c93c3132","side":"PARENT","line":1167,"updated":"2017-02-10 12:43:13.000000000","message":"Mox-\u003e mock conversion should be in a separate patch.\n\nI would suggest you have a patch to convert this test, then add this patch on top of that please.","commit_id":"045f08ab8a57b90b00e4777ca71a20b5603c296c"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ef2c8b42740ce0e4a954388d65102e6c381c2375","unresolved":false,"context_lines":[{"line_number":1157,"context_line":"        self.assertIsNone(instance.task_state)"},{"line_number":1158,"context_line":""},{"line_number":1159,"context_line":"    @mock.patch.object(utils, \u0027get_image_from_system_metadata\u0027,"},{"line_number":1160,"context_line":"                       return_value\u003d\u0027image\u0027)"},{"line_number":1161,"context_line":"    @mock.patch.object(scheduler_utils, \u0027build_request_spec\u0027,"},{"line_number":1162,"context_line":"                       return_value\u003d\u0027req_spec\u0027)"},{"line_number":1163,"context_line":"    def test_unshelve_instance_schedule_and_rebuild_volume_backed(self,"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff0f0b1f_727667db","line":1160,"updated":"2017-05-18 01:42:49.000000000","message":"this isn\u0027t an appropriate return value for that function.","commit_id":"403b3a4f731acb6f3e8784df37837be0b5db0cc5"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ef2c8b42740ce0e4a954388d65102e6c381c2375","unresolved":false,"context_lines":[{"line_number":1180,"context_line":"            system_metadata[\u0027shelved_host\u0027] \u003d \u0027fake-mini\u0027"},{"line_number":1181,"context_line":"            self.conductor_manager.unshelve_instance(self.context, instance)"},{"line_number":1182,"context_line":"            unshelve_mock.assert_called_once_with(self.context,"},{"line_number":1183,"context_line":"                instance, \u0027fake_host\u0027, image\u003dNone,"},{"line_number":1184,"context_line":"                filter_properties\u003d{\u0027limits\u0027: {},"},{"line_number":1185,"context_line":"                                   \u0027retry\u0027: {\u0027num_attempts\u0027: 1,"},{"line_number":1186,"context_line":"                                             \u0027hosts\u0027: [[\u0027fake_host\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff0f0b1f_32590f5a","line":1183,"updated":"2017-05-18 01:42:49.000000000","message":"The whole point of this patch was supposed to make sure the above image\u003dNone was *not* occurring...","commit_id":"403b3a4f731acb6f3e8784df37837be0b5db0cc5"}]}
