)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"551a2fe4fffc55b70217e9bf6448a5ce899ac0c8","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Disconnect volume when encryption is failed"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The computing node has left the attaching informations after the"},{"line_number":10,"context_line":"encryption fails. This patch fix this."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I9d652f182d83a2557ff6ed0b21c69a735c3f9840"},{"line_number":13,"context_line":"Closes-Bug: #1812945"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9fdfeff1_0e052c10","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":38},"updated":"2019-02-26 10:13:55.000000000","message":"supernit - Again if you respin it might be worth adding some more words about the fix itself, something like `fixes this by ensuring the volume is disconnected when an exception is encountered`.","commit_id":"869eb884b476b04642957ead2fda4c8a3ec44feb"},{"author":{"_account_id":25837,"name":"yenai","email":"yenai_yewu@cmss.chinamobile.com","username":"yenai2008"},"change_message_id":"e34e372c28276905e11f05ffa7256275af5077b0","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Disconnect volume when encryption is failed"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The computing node has left the attaching informations after the"},{"line_number":10,"context_line":"encryption fails. This patch fix this."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I9d652f182d83a2557ff6ed0b21c69a735c3f9840"},{"line_number":13,"context_line":"Closes-Bug: #1812945"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5fc1f717_040ac81e","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":38},"in_reply_to":"9fdfeff1_0e052c10","updated":"2019-03-27 01:51:03.000000000","message":"Done","commit_id":"869eb884b476b04642957ead2fda4c8a3ec44feb"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"014f50c16d379cdb10054e6c5b8a5afda6d0f0f2","unresolved":false,"context_lines":[{"line_number":7529,"context_line":"                             encryption\u003dencryption)"},{"line_number":7530,"context_line":"        mock_volume_driver.connect_volume.assert_called_once_with("},{"line_number":7531,"context_line":"            connection_info, instance)"},{"line_number":7532,"context_line":"        mock_volume_driver.disconnect_volume.assert_not_called()"},{"line_number":7533,"context_line":""},{"line_number":7534,"context_line":"    @mock.patch.object(libvirt_driver.LibvirtDriver, \u0027_get_volume_driver\u0027)"},{"line_number":7535,"context_line":"    @mock.patch.object(libvirt_driver.LibvirtDriver, \u0027_attach_encryptor\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_93d2f7d0","line":7532,"updated":"2019-02-21 13:09:07.000000000","message":"Add assertions for mock_attach_encryptor and mock_get_volume_driver.","commit_id":"da34a5f05230c4bfcc828a223e1ff8434b05ce09"},{"author":{"_account_id":25837,"name":"yenai","email":"yenai_yewu@cmss.chinamobile.com","username":"yenai2008"},"change_message_id":"2f68d2bbb48a65817c6273e077a922b1952b4cd5","unresolved":false,"context_lines":[{"line_number":7529,"context_line":"                             encryption\u003dencryption)"},{"line_number":7530,"context_line":"        mock_volume_driver.connect_volume.assert_called_once_with("},{"line_number":7531,"context_line":"            connection_info, instance)"},{"line_number":7532,"context_line":"        mock_volume_driver.disconnect_volume.assert_not_called()"},{"line_number":7533,"context_line":""},{"line_number":7534,"context_line":"    @mock.patch.object(libvirt_driver.LibvirtDriver, \u0027_get_volume_driver\u0027)"},{"line_number":7535,"context_line":"    @mock.patch.object(libvirt_driver.LibvirtDriver, \u0027_attach_encryptor\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_8be913e4","line":7532,"in_reply_to":"9fdfeff1_93d2f7d0","updated":"2019-02-26 03:02:58.000000000","message":"Done","commit_id":"da34a5f05230c4bfcc828a223e1ff8434b05ce09"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"014f50c16d379cdb10054e6c5b8a5afda6d0f0f2","unresolved":false,"context_lines":[{"line_number":7557,"context_line":"        mock_volume_driver.connect_volume.assert_called_once_with("},{"line_number":7558,"context_line":"            connection_info, instance)"},{"line_number":7559,"context_line":"        mock_volume_driver.disconnect_volume.assert_called_once_with("},{"line_number":7560,"context_line":"            connection_info, instance)"},{"line_number":7561,"context_line":""},{"line_number":7562,"context_line":"    @mock.patch.object(key_manager, \u0027API\u0027)"},{"line_number":7563,"context_line":"    @mock.patch.object(libvirt_driver.LibvirtDriver, \u0027_get_volume_encryption\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_b3ee1b89","line":7560,"updated":"2019-02-21 13:09:07.000000000","message":"ditto","commit_id":"da34a5f05230c4bfcc828a223e1ff8434b05ce09"},{"author":{"_account_id":25837,"name":"yenai","email":"yenai_yewu@cmss.chinamobile.com","username":"yenai2008"},"change_message_id":"2f68d2bbb48a65817c6273e077a922b1952b4cd5","unresolved":false,"context_lines":[{"line_number":7557,"context_line":"        mock_volume_driver.connect_volume.assert_called_once_with("},{"line_number":7558,"context_line":"            connection_info, instance)"},{"line_number":7559,"context_line":"        mock_volume_driver.disconnect_volume.assert_called_once_with("},{"line_number":7560,"context_line":"            connection_info, instance)"},{"line_number":7561,"context_line":""},{"line_number":7562,"context_line":"    @mock.patch.object(key_manager, \u0027API\u0027)"},{"line_number":7563,"context_line":"    @mock.patch.object(libvirt_driver.LibvirtDriver, \u0027_get_volume_encryption\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_2bbca7da","line":7560,"in_reply_to":"9fdfeff1_b3ee1b89","updated":"2019-02-26 03:02:58.000000000","message":"Done","commit_id":"da34a5f05230c4bfcc828a223e1ff8434b05ce09"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"beac48b6b1667a8a9c608c90a75e33f83e2b68ab","unresolved":false,"context_lines":[{"line_number":7509,"context_line":""},{"line_number":7510,"context_line":"    @mock.patch.object(libvirt_driver.LibvirtDriver, \u0027_get_volume_driver\u0027)"},{"line_number":7511,"context_line":"    @mock.patch.object(libvirt_driver.LibvirtDriver, \u0027_attach_encryptor\u0027)"},{"line_number":7512,"context_line":"    def test_connect_volume_encryption_success("},{"line_number":7513,"context_line":"            self, mock_attach_encryptor, mock_get_volume_driver):"},{"line_number":7514,"context_line":""},{"line_number":7515,"context_line":"        drvr \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_3c69588b","line":7512,"updated":"2019-04-05 23:56:27.000000000","message":"I\u0027m surprised we don\u0027t already have a test for this but I don\u0027t see anything obvious.","commit_id":"3f18b702afe20cc7e3c3a1ccbdb2dbcc286bdbbb"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"8b9d450e58637ffec39c2a1ea2ba1fafa2d97a99","unresolved":false,"context_lines":[{"line_number":1259,"context_line":"        try:"},{"line_number":1260,"context_line":"            self._attach_encryptor("},{"line_number":1261,"context_line":"                context, connection_info, encryption, allow_native_luks)"},{"line_number":1262,"context_line":"        except Exception:"},{"line_number":1263,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1264,"context_line":"                vol_driver.disconnect_volume(connection_info, instance)"},{"line_number":1265,"context_line":""},{"line_number":1266,"context_line":"    def _should_disconnect_target(self, context, connection_info, instance):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_86471778","line":1263,"range":{"start_line":1262,"start_character":0,"end_line":1263,"end_character":55},"updated":"2019-02-21 13:51:01.000000000","message":"Can we log the actual exception here before the caller potentially swallows it?","commit_id":"da34a5f05230c4bfcc828a223e1ff8434b05ce09"},{"author":{"_account_id":25837,"name":"yenai","email":"yenai_yewu@cmss.chinamobile.com","username":"yenai2008"},"change_message_id":"2f68d2bbb48a65817c6273e077a922b1952b4cd5","unresolved":false,"context_lines":[{"line_number":1259,"context_line":"        try:"},{"line_number":1260,"context_line":"            self._attach_encryptor("},{"line_number":1261,"context_line":"                context, connection_info, encryption, allow_native_luks)"},{"line_number":1262,"context_line":"        except Exception:"},{"line_number":1263,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1264,"context_line":"                vol_driver.disconnect_volume(connection_info, instance)"},{"line_number":1265,"context_line":""},{"line_number":1266,"context_line":"    def _should_disconnect_target(self, context, connection_info, instance):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_4bc1eb53","line":1263,"range":{"start_line":1262,"start_character":0,"end_line":1263,"end_character":55},"in_reply_to":"9fdfeff1_86471778","updated":"2019-02-26 03:02:58.000000000","message":"Done","commit_id":"da34a5f05230c4bfcc828a223e1ff8434b05ce09"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"551a2fe4fffc55b70217e9bf6448a5ce899ac0c8","unresolved":false,"context_lines":[{"line_number":1261,"context_line":"                context, connection_info, encryption, allow_native_luks)"},{"line_number":1262,"context_line":"        except Exception as e:"},{"line_number":1263,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1264,"context_line":"                LOG.error(\"Volume encryption failure: %s\","},{"line_number":1265,"context_line":"                          e, instance\u003dinstance)"},{"line_number":1266,"context_line":"                vol_driver.disconnect_volume(connection_info, instance)"},{"line_number":1267,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_ce3ba4ce","line":1264,"range":{"start_line":1264,"start_character":16,"end_line":1264,"end_character":25},"updated":"2019-02-26 10:13:55.000000000","message":"Should this be `LOG.exception`?","commit_id":"869eb884b476b04642957ead2fda4c8a3ec44feb"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"551a2fe4fffc55b70217e9bf6448a5ce899ac0c8","unresolved":false,"context_lines":[{"line_number":1261,"context_line":"                context, connection_info, encryption, allow_native_luks)"},{"line_number":1262,"context_line":"        except Exception as e:"},{"line_number":1263,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1264,"context_line":"                LOG.error(\"Volume encryption failure: %s\","},{"line_number":1265,"context_line":"                          e, instance\u003dinstance)"},{"line_number":1266,"context_line":"                vol_driver.disconnect_volume(connection_info, instance)"},{"line_number":1267,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_b3a4894c","line":1264,"range":{"start_line":1264,"start_character":27,"end_line":1264,"end_character":52},"updated":"2019-02-26 10:13:55.000000000","message":"supernit - `Failure attaching encryptor: %s` would read better but this is still fine.","commit_id":"869eb884b476b04642957ead2fda4c8a3ec44feb"},{"author":{"_account_id":25837,"name":"yenai","email":"yenai_yewu@cmss.chinamobile.com","username":"yenai2008"},"change_message_id":"e34e372c28276905e11f05ffa7256275af5077b0","unresolved":false,"context_lines":[{"line_number":1261,"context_line":"                context, connection_info, encryption, allow_native_luks)"},{"line_number":1262,"context_line":"        except Exception as e:"},{"line_number":1263,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1264,"context_line":"                LOG.error(\"Volume encryption failure: %s\","},{"line_number":1265,"context_line":"                          e, instance\u003dinstance)"},{"line_number":1266,"context_line":"                vol_driver.disconnect_volume(connection_info, instance)"},{"line_number":1267,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_44045015","line":1264,"range":{"start_line":1264,"start_character":27,"end_line":1264,"end_character":52},"in_reply_to":"9fdfeff1_b3a4894c","updated":"2019-03-27 01:51:03.000000000","message":"Done","commit_id":"869eb884b476b04642957ead2fda4c8a3ec44feb"},{"author":{"_account_id":25837,"name":"yenai","email":"yenai_yewu@cmss.chinamobile.com","username":"yenai2008"},"change_message_id":"e34e372c28276905e11f05ffa7256275af5077b0","unresolved":false,"context_lines":[{"line_number":1261,"context_line":"                context, connection_info, encryption, allow_native_luks)"},{"line_number":1262,"context_line":"        except Exception as e:"},{"line_number":1263,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1264,"context_line":"                LOG.error(\"Volume encryption failure: %s\","},{"line_number":1265,"context_line":"                          e, instance\u003dinstance)"},{"line_number":1266,"context_line":"                vol_driver.disconnect_volume(connection_info, instance)"},{"line_number":1267,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_e4069c1c","line":1264,"range":{"start_line":1264,"start_character":16,"end_line":1264,"end_character":25},"in_reply_to":"9fdfeff1_ce3ba4ce","updated":"2019-03-27 01:51:03.000000000","message":"Done","commit_id":"869eb884b476b04642957ead2fda4c8a3ec44feb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"beac48b6b1667a8a9c608c90a75e33f83e2b68ab","unresolved":false,"context_lines":[{"line_number":1261,"context_line":"                context, connection_info, encryption, allow_native_luks)"},{"line_number":1262,"context_line":"        except Exception as e:"},{"line_number":1263,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1264,"context_line":"                LOG.exception(_(\"Failure attaching encryptor: %s\"),"},{"line_number":1265,"context_line":"                              e, instance\u003dinstance)"},{"line_number":1266,"context_line":"                vol_driver.disconnect_volume(connection_info, instance)"},{"line_number":1267,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_5cb8e40f","line":1264,"range":{"start_line":1264,"start_character":30,"end_line":1264,"end_character":31},"updated":"2019-04-05 23:56:27.000000000","message":"This doesn\u0027t need to be marked for translation.","commit_id":"3f18b702afe20cc7e3c3a1ccbdb2dbcc286bdbbb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"169abb75003db14e9bcae4ef2d9abdd2b0d255c1","unresolved":false,"context_lines":[{"line_number":1261,"context_line":"                context, connection_info, encryption, allow_native_luks)"},{"line_number":1262,"context_line":"        except Exception as e:"},{"line_number":1263,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1264,"context_line":"                LOG.exception(_(\"Failure attaching encryptor: %s\"),"},{"line_number":1265,"context_line":"                              e, instance\u003dinstance)"},{"line_number":1266,"context_line":"                vol_driver.disconnect_volume(connection_info, instance)"},{"line_number":1267,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_dcab7485","line":1264,"range":{"start_line":1264,"start_character":30,"end_line":1264,"end_character":31},"in_reply_to":"5fc1f717_5cb8e40f","updated":"2019-04-06 00:01:11.000000000","message":"Done","commit_id":"3f18b702afe20cc7e3c3a1ccbdb2dbcc286bdbbb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"beac48b6b1667a8a9c608c90a75e33f83e2b68ab","unresolved":false,"context_lines":[{"line_number":1262,"context_line":"        except Exception as e:"},{"line_number":1263,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1264,"context_line":"                LOG.exception(_(\"Failure attaching encryptor: %s\"),"},{"line_number":1265,"context_line":"                              e, instance\u003dinstance)"},{"line_number":1266,"context_line":"                vol_driver.disconnect_volume(connection_info, instance)"},{"line_number":1267,"context_line":""},{"line_number":1268,"context_line":"    def _should_disconnect_target(self, context, connection_info, instance):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_dc41340c","line":1265,"range":{"start_line":1265,"start_character":30,"end_line":1265,"end_character":31},"updated":"2019-04-05 23:56:27.000000000","message":"You don\u0027t need this in the log message because you\u0027re using LOG.exception so it will get traced anyway.","commit_id":"3f18b702afe20cc7e3c3a1ccbdb2dbcc286bdbbb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"169abb75003db14e9bcae4ef2d9abdd2b0d255c1","unresolved":false,"context_lines":[{"line_number":1262,"context_line":"        except Exception as e:"},{"line_number":1263,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1264,"context_line":"                LOG.exception(_(\"Failure attaching encryptor: %s\"),"},{"line_number":1265,"context_line":"                              e, instance\u003dinstance)"},{"line_number":1266,"context_line":"                vol_driver.disconnect_volume(connection_info, instance)"},{"line_number":1267,"context_line":""},{"line_number":1268,"context_line":"    def _should_disconnect_target(self, context, connection_info, instance):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_7c94c044","line":1265,"range":{"start_line":1265,"start_character":30,"end_line":1265,"end_character":31},"in_reply_to":"5fc1f717_dc41340c","updated":"2019-04-06 00:01:11.000000000","message":"Done","commit_id":"3f18b702afe20cc7e3c3a1ccbdb2dbcc286bdbbb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"beac48b6b1667a8a9c608c90a75e33f83e2b68ab","unresolved":false,"context_lines":[{"line_number":1263,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1264,"context_line":"                LOG.exception(_(\"Failure attaching encryptor: %s\"),"},{"line_number":1265,"context_line":"                              e, instance\u003dinstance)"},{"line_number":1266,"context_line":"                vol_driver.disconnect_volume(connection_info, instance)"},{"line_number":1267,"context_line":""},{"line_number":1268,"context_line":"    def _should_disconnect_target(self, context, connection_info, instance):"},{"line_number":1269,"context_line":"        connection_count \u003d 0"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_fc5f50e2","line":1266,"updated":"2019-04-05 23:56:27.000000000","message":"OK I guess you\u0027re not calling _disconnect_volume since that will try to detach the encryptor which could fail as no encryptor was attached.","commit_id":"3f18b702afe20cc7e3c3a1ccbdb2dbcc286bdbbb"}]}
