)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"df32393eabfc9d45c771e77e96fbc379058e3ad9","unresolved":false,"context_lines":[{"line_number":11,"context_line":"instances locally within the compute layer. Allowing any"},{"line_number":12,"context_line":"terminate-connection Cinder calls to complete successfully instead of"},{"line_number":13,"context_line":"using a fake connector that can result in failures for some volume"},{"line_number":14,"context_line":"backends that expect actual connectors to be provided."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Closes-bug: #1415778"},{"line_number":17,"context_line":"Change-Id: I825236502b382f2922af8380d7b3a85a0a4f9af7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"dada55a8_4b21119f","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":54},"updated":"2016-07-19 06:31:41.000000000","message":"Could you, please, clarify here what backends cause issues?","commit_id":"cbd8d96332ffa82c03a8bb706efeb16aba8cdbd0"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"bb1d0e447de9fd6c82807d5deb9dc69181e11baf","unresolved":false,"context_lines":[{"line_number":11,"context_line":"instances locally within the compute layer. Allowing any"},{"line_number":12,"context_line":"terminate-connection Cinder calls to complete successfully instead of"},{"line_number":13,"context_line":"using a fake connector that can result in failures for some volume"},{"line_number":14,"context_line":"backends that expect actual connectors to be provided."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Closes-bug: #1415778"},{"line_number":17,"context_line":"Change-Id: I825236502b382f2922af8380d7b3a85a0a4f9af7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"dada55a8_e6d63c26","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":54},"in_reply_to":"dada55a8_4b21119f","updated":"2016-07-19 12:08:40.000000000","message":"Any backend expecting more than the two fake key values provided in the connector. For example FJDXFCDriver https://git.io/vKrGX . I\u0027ll add this to the message now.","commit_id":"cbd8d96332ffa82c03a8bb706efeb16aba8cdbd0"}],"nova/compute/api.py":[{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"df32393eabfc9d45c771e77e96fbc379058e3ad9","unresolved":false,"context_lines":[{"line_number":1741,"context_line":"                # the connection_info of the bdm. If this is not present use a"},{"line_number":1742,"context_line":"                # fake connector to at least attempt to terminate any open"},{"line_number":1743,"context_line":"                # connections to the volume."},{"line_number":1744,"context_line":"                connection_info \u003d jsonutils.loads(bdm.connection_info)"},{"line_number":1745,"context_line":"                stashed_connector \u003d connection_info.get(\u0027connector\u0027)"},{"line_number":1746,"context_line":"                if stashed_connector:"},{"line_number":1747,"context_line":"                    connector \u003d stashed_connector"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_00641820","line":1744,"updated":"2016-07-19 06:31:41.000000000","message":"What if for some reason connection_info has no or incorrect json?","commit_id":"cbd8d96332ffa82c03a8bb706efeb16aba8cdbd0"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"bb1d0e447de9fd6c82807d5deb9dc69181e11baf","unresolved":false,"context_lines":[{"line_number":1741,"context_line":"                # the connection_info of the bdm. If this is not present use a"},{"line_number":1742,"context_line":"                # fake connector to at least attempt to terminate any open"},{"line_number":1743,"context_line":"                # connections to the volume."},{"line_number":1744,"context_line":"                connection_info \u003d jsonutils.loads(bdm.connection_info)"},{"line_number":1745,"context_line":"                stashed_connector \u003d connection_info.get(\u0027connector\u0027)"},{"line_number":1746,"context_line":"                if stashed_connector:"},{"line_number":1747,"context_line":"                    connector \u003d stashed_connector"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_b42620b8","line":1744,"in_reply_to":"dada55a8_00641820","updated":"2016-07-19 12:08:40.000000000","message":"The assumption is that another compute host called initialize_connection populating connection_info before we attempt a local compute api delete. That said I can add a guard to check before looking for the connector.","commit_id":"cbd8d96332ffa82c03a8bb706efeb16aba8cdbd0"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"df32393eabfc9d45c771e77e96fbc379058e3ad9","unresolved":false,"context_lines":[{"line_number":1742,"context_line":"                # fake connector to at least attempt to terminate any open"},{"line_number":1743,"context_line":"                # connections to the volume."},{"line_number":1744,"context_line":"                connection_info \u003d jsonutils.loads(bdm.connection_info)"},{"line_number":1745,"context_line":"                stashed_connector \u003d connection_info.get(\u0027connector\u0027)"},{"line_number":1746,"context_line":"                if stashed_connector:"},{"line_number":1747,"context_line":"                    connector \u003d stashed_connector"},{"line_number":1748,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_406e1002","line":1745,"updated":"2016-07-19 06:31:41.000000000","message":"It can be:\nconnector \u003d connection_info.get(\u0027connector\u0027, {\u0027ip\u0027: \u0027127.0.0.1\u0027, \u0027initiator\u0027: \u0027iqn.fake\u0027})","commit_id":"cbd8d96332ffa82c03a8bb706efeb16aba8cdbd0"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"bb1d0e447de9fd6c82807d5deb9dc69181e11baf","unresolved":false,"context_lines":[{"line_number":1742,"context_line":"                # fake connector to at least attempt to terminate any open"},{"line_number":1743,"context_line":"                # connections to the volume."},{"line_number":1744,"context_line":"                connection_info \u003d jsonutils.loads(bdm.connection_info)"},{"line_number":1745,"context_line":"                stashed_connector \u003d connection_info.get(\u0027connector\u0027)"},{"line_number":1746,"context_line":"                if stashed_connector:"},{"line_number":1747,"context_line":"                    connector \u003d stashed_connector"},{"line_number":1748,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_14360ce7","line":1745,"in_reply_to":"dada55a8_406e1002","updated":"2016-07-19 12:08:40.000000000","message":"Good point but I\u0027ll add an if connection_info: guard above this now so this isn\u0027t going to work.","commit_id":"cbd8d96332ffa82c03a8bb706efeb16aba8cdbd0"}],"nova/tests/unit/compute/test_compute_api.py":[{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"df32393eabfc9d45c771e77e96fbc379058e3ad9","unresolved":false,"context_lines":[{"line_number":1246,"context_line":"            mock_vol_term.assert_called_once_with(self.context,"},{"line_number":1247,"context_line":"                                                  bdms[0].volume_id,"},{"line_number":1248,"context_line":"                                                  connector)"},{"line_number":1249,"context_line":"            mock_vol_detach.assert_called_once_with(self.context.elevated(),"},{"line_number":1250,"context_line":"                                                    bdms[0].volume_id,"},{"line_number":1251,"context_line":"                                                    inst.uuid)"},{"line_number":1252,"context_line":"            mock_vol_delete.assert_called_once_with(self.context,"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_203f9cd7","line":1249,"updated":"2016-07-19 06:31:41.000000000","message":"You test here that termination is called with correct connector, right? Why do you need additional asserts?","commit_id":"cbd8d96332ffa82c03a8bb706efeb16aba8cdbd0"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"bb1d0e447de9fd6c82807d5deb9dc69181e11baf","unresolved":false,"context_lines":[{"line_number":1246,"context_line":"            mock_vol_term.assert_called_once_with(self.context,"},{"line_number":1247,"context_line":"                                                  bdms[0].volume_id,"},{"line_number":1248,"context_line":"                                                  connector)"},{"line_number":1249,"context_line":"            mock_vol_detach.assert_called_once_with(self.context.elevated(),"},{"line_number":1250,"context_line":"                                                    bdms[0].volume_id,"},{"line_number":1251,"context_line":"                                                    inst.uuid)"},{"line_number":1252,"context_line":"            mock_vol_delete.assert_called_once_with(self.context,"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_b4d0e054","line":1249,"in_reply_to":"dada55a8_203f9cd7","updated":"2016-07-19 12:08:40.000000000","message":"Really I don\u0027t but as these are all mocked anyway it seemed right to assert that they are also called correctly.","commit_id":"cbd8d96332ffa82c03a8bb706efeb16aba8cdbd0"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"7f00c8aa5466588fdb3fdd2804fd037fb2034e91","unresolved":false,"context_lines":[{"line_number":1246,"context_line":"            mock_vol_term.assert_called_once_with(self.context,"},{"line_number":1247,"context_line":"                                                  bdms[0].volume_id,"},{"line_number":1248,"context_line":"                                                  connector)"},{"line_number":1249,"context_line":"            mock_vol_detach.assert_called_once_with(self.context.elevated(),"},{"line_number":1250,"context_line":"                                                    bdms[0].volume_id,"},{"line_number":1251,"context_line":"                                                    inst.uuid)"},{"line_number":1252,"context_line":"            mock_vol_delete.assert_called_once_with(self.context,"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_93978439","line":1249,"in_reply_to":"dada55a8_b4d0e054","updated":"2016-07-20 08:20:46.000000000","message":"Honestly, for me connector checking would be enough. This test will fail if any methods (detach, delete, destroy) change its signature or if context elevation logic is changed. Let\u0027s wait for other reviewers.","commit_id":"cbd8d96332ffa82c03a8bb706efeb16aba8cdbd0"}]}
