)]}'
{"nova/tests/fixtures.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"34088dbf8f9c5375e01dacaafb695bb0e6c068d7","unresolved":false,"context_lines":[{"line_number":1636,"context_line":"            lambda *args, **kwargs: mock.MagicMock()))"},{"line_number":1637,"context_line":""},{"line_number":1638,"context_line":""},{"line_number":1639,"context_line":"# TODO(mriedem): Just rename this to be CinderFixture."},{"line_number":1640,"context_line":"class CinderFixtureNewAttachFlow(fixtures.Fixture):"},{"line_number":1641,"context_line":"    \"\"\"A fixture to volume operations with the new Cinder attach/detach API\"\"\""},{"line_number":1642,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"9fb8cfa7_21c23486","line":1639,"range":{"start_line":1639,"start_character":0,"end_line":1639,"end_character":54},"updated":"2019-07-01 21:03:34.000000000","message":"https://review.opendev.org/#/c/668561/","commit_id":"f260f12ec76e4ad060f02798b8bbba9fe28a657c"}],"nova/tests/functional/api_sample_tests/test_volumes.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ce6807e1c64e0d2ade1cd915c932a00d5efe0bdc","unresolved":false,"context_lines":[{"line_number":398,"context_line":"            self.NEW_VOLUME_ID: None"},{"line_number":399,"context_line":"        }"},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"    def test_attach_volume_to_server(self):"},{"line_number":402,"context_line":"        device_name \u003d \u0027/dev/sdb\u0027"},{"line_number":403,"context_line":"        bdm \u003d objects.BlockDeviceMapping()"},{"line_number":404,"context_line":"        bdm[\u0027device_name\u0027] \u003d device_name"}],"source_content_type":"text/x-python","patch_set":2,"id":"5fc1f717_6b8c14d7","line":401,"updated":"2019-04-04 14:57:26.000000000","message":"Rebase damage, this should be removed.","commit_id":"2573780657950ef26273037b92af245afe0b57e6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ad991b70c939b2e41ea5684c03e25739727c2291","unresolved":false,"context_lines":[{"line_number":286,"context_line":"        self._verify_response(\u0027attach-volume-to-server-resp\u0027, subs,"},{"line_number":287,"context_line":"                              response, 200)"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"    def test_attach_volume_to_server_new_flow(self):"},{"line_number":290,"context_line":"        self.stub_out(\u0027nova.volume.cinder.API.get\u0027, fakes.stub_volume_get)"},{"line_number":291,"context_line":"        self.stub_out(\u0027nova.volume.cinder.API.attachment_create\u0027,"},{"line_number":292,"context_line":"                      lambda *a, **k: {\u0027id\u0027: uuids.volume})"}],"source_content_type":"text/x-python","patch_set":8,"id":"9fb8cfa7_254fd293","line":289,"updated":"2019-06-12 15:58:40.000000000","message":"This is almost the same as the test above now. Can we remove one of them?","commit_id":"bca5a6558af888e047a9077a1d2ea5e4d37e8a1c"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b14978dd6a6ec8048296299be1792284eb21878d","unresolved":false,"context_lines":[{"line_number":1053,"context_line":"        self.stub_out(\u0027nova.volume.cinder.API.get_snapshot\u0027, fake_get)"},{"line_number":1054,"context_line":"        self.stub_out(\u0027nova.volume.cinder.API.check_availability_zone\u0027,"},{"line_number":1055,"context_line":"                       fake_check_availability_zone)"},{"line_number":1056,"context_line":"        self.stub_out(\u0027nova.volume.cinder.API.reserve_volume\u0027,"},{"line_number":1057,"context_line":"                       fake_reserve_volume)"},{"line_number":1058,"context_line":""},{"line_number":1059,"context_line":"        volume_id \u003d \u002755555555-aaaa-bbbb-cccc-555555555555\u0027"},{"line_number":1060,"context_line":"        snapshot_id \u003d \u002766666666-aaaa-bbbb-cccc-555555555555\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"5fc1f717_0b4b1087","line":1057,"range":{"start_line":1056,"start_character":8,"end_line":1057,"end_character":43},"updated":"2019-04-04 14:59:00.000000000","message":"same","commit_id":"2573780657950ef26273037b92af245afe0b57e6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b14978dd6a6ec8048296299be1792284eb21878d","unresolved":false,"context_lines":[{"line_number":1267,"context_line":""},{"line_number":1268,"context_line":"    @mock.patch.object(cinder.API, \u0027get\u0027)"},{"line_number":1269,"context_line":"    @mock.patch.object(cinder.API, \u0027check_availability_zone\u0027)"},{"line_number":1270,"context_line":"    @mock.patch.object(cinder.API, \u0027reserve_volume\u0027,"},{"line_number":1271,"context_line":"                       side_effect\u003dexception.InvalidVolume(reason\u003d\u0027error\u0027))"},{"line_number":1272,"context_line":"    def test_validate_bdm_media_service_invalid_volume(self, mock_reserve_vol,"},{"line_number":1273,"context_line":"                                                       mock_check_av_zone,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5fc1f717_cb6bc8ee","line":1270,"updated":"2019-04-04 14:59:00.000000000","message":"Change this to attachment_create.","commit_id":"2573780657950ef26273037b92af245afe0b57e6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b14978dd6a6ec8048296299be1792284eb21878d","unresolved":false,"context_lines":[{"line_number":1342,"context_line":""},{"line_number":1343,"context_line":"    @mock.patch.object(cinder.API, \u0027get\u0027)"},{"line_number":1344,"context_line":"    @mock.patch.object(cinder.API, \u0027check_availability_zone\u0027)"},{"line_number":1345,"context_line":"    @mock.patch.object(cinder.API, \u0027reserve_volume\u0027)"},{"line_number":1346,"context_line":"    def test_validate_bdm_media_service_valid(self, mock_reserve_vol,"},{"line_number":1347,"context_line":"                                              mock_check_av_zone,"},{"line_number":1348,"context_line":"                                              mock_get):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5fc1f717_8b75c0ce","line":1345,"updated":"2019-04-04 14:59:00.000000000","message":"same","commit_id":"2573780657950ef26273037b92af245afe0b57e6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b14978dd6a6ec8048296299be1792284eb21878d","unresolved":false,"context_lines":[{"line_number":2154,"context_line":"        self.stub_out(\u0027nova.volume.cinder.API.get\u0027, fake_volume_get)"},{"line_number":2155,"context_line":"        self.stub_out(\u0027nova.volume.cinder.API.check_availability_zone\u0027,"},{"line_number":2156,"context_line":"                      fake_check_availability_zone)"},{"line_number":2157,"context_line":"        self.stub_out(\u0027nova.volume.cinder.API.reserve_volume\u0027,"},{"line_number":2158,"context_line":"                       fake_reserve_volume)"},{"line_number":2159,"context_line":"        self.stub_out(\u0027nova.volume.cinder.API.terminate_connection\u0027,"},{"line_number":2160,"context_line":"                       fake_terminate_connection)"},{"line_number":2161,"context_line":"        self.stub_out(\u0027nova.volume.cinder.API.detach\u0027, fake_detach)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5fc1f717_6ba5f446","line":2158,"range":{"start_line":2157,"start_character":8,"end_line":2158,"end_character":43},"updated":"2019-04-04 14:59:00.000000000","message":"This needs to change to attachment_create.","commit_id":"2573780657950ef26273037b92af245afe0b57e6"}],"nova/tests/unit/compute/test_compute_api.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a9db82a9e00db2de791ca5575155d804cc7a7898","unresolved":false,"context_lines":[{"line_number":6795,"context_line":"    @mock.patch.object(compute_cells_api.ComputeCellsAPI, \u0027_call_to_cells\u0027)"},{"line_number":6796,"context_line":"    @mock.patch.object(objects.BlockDeviceMapping,"},{"line_number":6797,"context_line":"                              \u0027get_by_volume_and_instance\u0027)"},{"line_number":6798,"context_line":"    def test_attach_volume_new_flow(self, mock_no_bdm, mock_attach):"},{"line_number":6799,"context_line":"        mock_no_bdm.side_effect \u003d exception.VolumeBDMNotFound("},{"line_number":6800,"context_line":"                                        volume_id\u003d\u0027test-vol\u0027)"},{"line_number":6801,"context_line":"        instance \u003d self._create_instance_obj()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fce034c_6da64a56","line":6798,"range":{"start_line":6798,"start_character":26,"end_line":6798,"end_character":35},"updated":"2019-04-18 11:16:19.000000000","message":"as a todo, all these could be renamed in the future (new flow is the only flow now)","commit_id":"d6128b7b354681d915020b3c69cc61284da4237f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d042ea94acad1900bfbc2cb4e399c9ce83a32307","unresolved":false,"context_lines":[{"line_number":6795,"context_line":"    @mock.patch.object(compute_cells_api.ComputeCellsAPI, \u0027_call_to_cells\u0027)"},{"line_number":6796,"context_line":"    @mock.patch.object(objects.BlockDeviceMapping,"},{"line_number":6797,"context_line":"                              \u0027get_by_volume_and_instance\u0027)"},{"line_number":6798,"context_line":"    def test_attach_volume_new_flow(self, mock_no_bdm, mock_attach):"},{"line_number":6799,"context_line":"        mock_no_bdm.side_effect \u003d exception.VolumeBDMNotFound("},{"line_number":6800,"context_line":"                                        volume_id\u003d\u0027test-vol\u0027)"},{"line_number":6801,"context_line":"        instance \u003d self._create_instance_obj()"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffb9cba7_2d737c4f","line":6798,"range":{"start_line":6798,"start_character":26,"end_line":6798,"end_character":35},"in_reply_to":"3fce034c_6da64a56","updated":"2019-04-26 20:08:43.000000000","message":"Yeah, I didn\u0027t mess with that in this change since it\u0027s already big and there are still flows during things like detach where we don\u0027t have a new style attachment and have to detach the old way. I\u0027d have to go through the tests to sort those out.","commit_id":"d6128b7b354681d915020b3c69cc61284da4237f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ad991b70c939b2e41ea5684c03e25739727c2291","unresolved":false,"context_lines":[{"line_number":4154,"context_line":"        # volume_api.reserve_volume due to the volume status not being"},{"line_number":4155,"context_line":"        # \u0027available\u0027 results in _validate_bdm re-raising InvalidVolume."},{"line_number":4156,"context_line":"        instance \u003d self._create_instance_obj()"},{"line_number":4157,"context_line":"        del instance.id"},{"line_number":4158,"context_line":"        instance_type \u003d self._create_flavor()"},{"line_number":4159,"context_line":"        volume_id \u003d \u0027e856840e-9f5b-4894-8bde-58c6e29ac1e8\u0027"},{"line_number":4160,"context_line":"        volume_info \u003d {\u0027status\u0027: \u0027error\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"9fb8cfa7_c8c36b88","line":4157,"updated":"2019-06-12 15:58:40.000000000","message":"This appears to be the exact same as \u0027test_validate_bdm_with_error_volume_new_flow\u0027 now so, if so, one of them should be removed","commit_id":"bca5a6558af888e047a9077a1d2ea5e4d37e8a1c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ad991b70c939b2e41ea5684c03e25739727c2291","unresolved":false,"context_lines":[{"line_number":4474,"context_line":"    @mock.patch.object(cinder.API, \u0027check_availability_zone\u0027)"},{"line_number":4475,"context_line":"    @mock.patch.object(cinder.API, \u0027attachment_create\u0027,"},{"line_number":4476,"context_line":"                       side_effect\u003dexception.InvalidInput(reason\u003d\u0027error\u0027))"},{"line_number":4477,"context_line":"    def test_provision_instances_with_error_volume_new_flow(self,"},{"line_number":4478,"context_line":"        mock_cinder_check_av_zone, mock_attach_create, mock_get):"},{"line_number":4479,"context_line":"        self._test_provision_instances_with_cinder_error("},{"line_number":4480,"context_line":"            expected_exception\u003dexception.InvalidVolume)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9fb8cfa7_c586f6b9","line":4477,"updated":"2019-06-12 15:58:40.000000000","message":"This is the exact same as the text above now. We should probably remove this or the one above","commit_id":"bca5a6558af888e047a9077a1d2ea5e4d37e8a1c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"81b234818315fbe41bbf7ea7cc09f337375c5527","unresolved":false,"context_lines":[{"line_number":4474,"context_line":"    @mock.patch.object(cinder.API, \u0027check_availability_zone\u0027)"},{"line_number":4475,"context_line":"    @mock.patch.object(cinder.API, \u0027attachment_create\u0027,"},{"line_number":4476,"context_line":"                       side_effect\u003dexception.InvalidInput(reason\u003d\u0027error\u0027))"},{"line_number":4477,"context_line":"    def test_provision_instances_with_error_volume_new_flow(self,"},{"line_number":4478,"context_line":"        mock_cinder_check_av_zone, mock_attach_create, mock_get):"},{"line_number":4479,"context_line":"        self._test_provision_instances_with_cinder_error("},{"line_number":4480,"context_line":"            expected_exception\u003dexception.InvalidVolume)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9fb8cfa7_2962200b","line":4477,"in_reply_to":"9fb8cfa7_5f4954b4","updated":"2019-06-14 15:38:40.000000000","message":"I did. I\u0027ll fix now","commit_id":"bca5a6558af888e047a9077a1d2ea5e4d37e8a1c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"63d7a4019bc75b62e105db2bd343717486ae2f73","unresolved":false,"context_lines":[{"line_number":4474,"context_line":"    @mock.patch.object(cinder.API, \u0027check_availability_zone\u0027)"},{"line_number":4475,"context_line":"    @mock.patch.object(cinder.API, \u0027attachment_create\u0027,"},{"line_number":4476,"context_line":"                       side_effect\u003dexception.InvalidInput(reason\u003d\u0027error\u0027))"},{"line_number":4477,"context_line":"    def test_provision_instances_with_error_volume_new_flow(self,"},{"line_number":4478,"context_line":"        mock_cinder_check_av_zone, mock_attach_create, mock_get):"},{"line_number":4479,"context_line":"        self._test_provision_instances_with_cinder_error("},{"line_number":4480,"context_line":"            expected_exception\u003dexception.InvalidVolume)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9fb8cfa7_5f4954b4","line":4477,"in_reply_to":"9fb8cfa7_c586f6b9","updated":"2019-06-13 20:38:32.000000000","message":"Did you mean to remove this one in the fup?","commit_id":"bca5a6558af888e047a9077a1d2ea5e4d37e8a1c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ad991b70c939b2e41ea5684c03e25739727c2291","unresolved":false,"context_lines":[{"line_number":4475,"context_line":"    @mock.patch.object(cinder.API, \u0027attachment_create\u0027,"},{"line_number":4476,"context_line":"                       side_effect\u003dexception.InvalidInput(reason\u003d\u0027error\u0027))"},{"line_number":4477,"context_line":"    def test_provision_instances_with_error_volume_new_flow(self,"},{"line_number":4478,"context_line":"        mock_cinder_check_av_zone, mock_attach_create, mock_get):"},{"line_number":4479,"context_line":"        self._test_provision_instances_with_cinder_error("},{"line_number":4480,"context_line":"            expected_exception\u003dexception.InvalidVolume)"},{"line_number":4481,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9fb8cfa7_85a55e49","line":4478,"updated":"2019-06-12 15:58:40.000000000","message":"Not entirely related, but I think the mocking order here is well screwed up? Shouldn\u0027t it be:\n\n  mock_attach_create, mock_cinder_check_av_zone, mock_get","commit_id":"bca5a6558af888e047a9077a1d2ea5e4d37e8a1c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"63d7a4019bc75b62e105db2bd343717486ae2f73","unresolved":false,"context_lines":[{"line_number":4475,"context_line":"    @mock.patch.object(cinder.API, \u0027attachment_create\u0027,"},{"line_number":4476,"context_line":"                       side_effect\u003dexception.InvalidInput(reason\u003d\u0027error\u0027))"},{"line_number":4477,"context_line":"    def test_provision_instances_with_error_volume_new_flow(self,"},{"line_number":4478,"context_line":"        mock_cinder_check_av_zone, mock_attach_create, mock_get):"},{"line_number":4479,"context_line":"        self._test_provision_instances_with_cinder_error("},{"line_number":4480,"context_line":"            expected_exception\u003dexception.InvalidVolume)"},{"line_number":4481,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9fb8cfa7_dfd224d1","line":4478,"in_reply_to":"9fb8cfa7_85a55e49","updated":"2019-06-13 20:38:32.000000000","message":"Yes. Non-broken because unused (where I\u0027m a fan of using new\u003dmock.Mock() in the decorator so we can get rid of the params).","commit_id":"bca5a6558af888e047a9077a1d2ea5e4d37e8a1c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"81b234818315fbe41bbf7ea7cc09f337375c5527","unresolved":false,"context_lines":[{"line_number":4475,"context_line":"    @mock.patch.object(cinder.API, \u0027attachment_create\u0027,"},{"line_number":4476,"context_line":"                       side_effect\u003dexception.InvalidInput(reason\u003d\u0027error\u0027))"},{"line_number":4477,"context_line":"    def test_provision_instances_with_error_volume_new_flow(self,"},{"line_number":4478,"context_line":"        mock_cinder_check_av_zone, mock_attach_create, mock_get):"},{"line_number":4479,"context_line":"        self._test_provision_instances_with_cinder_error("},{"line_number":4480,"context_line":"            expected_exception\u003dexception.InvalidVolume)"},{"line_number":4481,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9fb8cfa7_6d290335","line":4478,"in_reply_to":"9fb8cfa7_dfd224d1","updated":"2019-06-14 15:38:40.000000000","message":"Done","commit_id":"bca5a6558af888e047a9077a1d2ea5e4d37e8a1c"}]}
