)]}'
{"cinder/tests/unit/volume/drivers/test_rbd.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6931136bf219814c2e72500dcd60f65414e54ab4","unresolved":false,"context_lines":[{"line_number":1192,"context_line":"                 .assert_called_once_with(\u0027.\u0027.join("},{"line_number":1193,"context_line":"                     (self.volume_b.name, \u0027clone_snap\u0027))))"},{"line_number":1194,"context_line":""},{"line_number":1195,"context_line":"                self.assertEqual(1, self.mock_proxy.call_count)"},{"line_number":1196,"context_line":""},{"line_number":1197,"context_line":"                # Source volume is closed by direct call of close()"},{"line_number":1198,"context_line":"                self.assertEqual("}],"source_content_type":"text/x-python","patch_set":7,"id":"7f6b1bfe_5cf7d5f6","line":1195,"updated":"2020-10-13 14:00:37.000000000","message":"We should check the parameters we are using for the call:\n\n   self.mock_proxy.assert_called_once_with(...)","commit_id":"277a0e989ed2199a776178ecaa372215c7e02dbb"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"6eab28b19b59aac87885923b2e6d2f67eace366f","unresolved":false,"context_lines":[{"line_number":1192,"context_line":"                 .assert_called_once_with(\u0027.\u0027.join("},{"line_number":1193,"context_line":"                     (self.volume_b.name, \u0027clone_snap\u0027))))"},{"line_number":1194,"context_line":""},{"line_number":1195,"context_line":"                self.assertEqual(1, self.mock_proxy.call_count)"},{"line_number":1196,"context_line":""},{"line_number":1197,"context_line":"                # Source volume is closed by direct call of close()"},{"line_number":1198,"context_line":"                self.assertEqual("}],"source_content_type":"text/x-python","patch_set":7,"id":"7f6b1bfe_7c457170","line":1195,"in_reply_to":"7f6b1bfe_5cf7d5f6","updated":"2020-10-13 14:43:02.000000000","message":"Done","commit_id":"277a0e989ed2199a776178ecaa372215c7e02dbb"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"6eab28b19b59aac87885923b2e6d2f67eace366f","unresolved":false,"context_lines":[{"line_number":1192,"context_line":"                 .assert_called_once_with(\u0027.\u0027.join("},{"line_number":1193,"context_line":"                     (self.volume_b.name, \u0027clone_snap\u0027))))"},{"line_number":1194,"context_line":""},{"line_number":1195,"context_line":"                 self.mock_proxy.assert_called_once_with("},{"line_number":1196,"context_line":"                    self.volume_b.name,"},{"line_number":1197,"context_line":"                    client\u003dself.mock_client, iostx\u003dself.mock_client.ioctx)"},{"line_number":1198,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7f6b1bfe_3ffe4b05","line":1195,"range":{"start_line":1195,"start_character":16,"end_line":1195,"end_character":17},"updated":"2020-10-13 14:43:02.000000000","message":"I\u0027ll fix this wrong indent as well as this broken test case, soon","commit_id":"f45176890c0fb64740d0ef06af8f2dc192271da8"}],"cinder/volume/drivers/rbd.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cf910a99aa034715695b722d0109c1e9eaf64462","unresolved":false,"context_lines":[{"line_number":707,"context_line":""},{"line_number":708,"context_line":"                # Flatten destination volume"},{"line_number":709,"context_line":"                try:"},{"line_number":710,"context_line":"                    with RBDVolumeProxy(self, dst_name, client\u003dclient,"},{"line_number":711,"context_line":"                                        ioctl\u003dclient.ioctx) as dest_volume:"},{"line_number":712,"context_line":"                        LOG.debug(\"flattening dest volume %s\", dest_name)"},{"line_number":713,"context_line":"                        dest_volume.flatten()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_9b05707c","line":710,"updated":"2020-10-07 04:06:24.000000000","message":"pep8: F821 undefined name \u0027dst_name\u0027","commit_id":"15bbb00227d429c4ce64ce726ca28cb5c0502cac"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"c023c2581f6898e69e63bbaab1856ee39c9c1c53","unresolved":false,"context_lines":[{"line_number":712,"context_line":"                        LOG.debug(\"flattening dest volume %s\", dest_name)"},{"line_number":713,"context_line":"                        dest_volume.flatten()"},{"line_number":714,"context_line":"                except Exception as e:"},{"line_number":715,"context_line":"                    msg \u003d (_(\"Failed to flatten volume %(volume)s with \""},{"line_number":716,"context_line":"                             \"error: %(error)s.\") %"},{"line_number":717,"context_line":"                           {\u0027volume\u0027: dest_name,"},{"line_number":718,"context_line":"                            \u0027error\u0027: e})"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_29c0547c","line":715,"updated":"2020-10-07 17:48:03.000000000","message":"This message will now appear if the volume failed to open too, which is confusing -- we should get different error messages for failure to open vs. failure to flatten.","commit_id":"73b3836d5815aa6f804f6c1d181df272bd130176"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"ba351c0cc87c1b253bc367578607b87ed4a7fe3c","unresolved":false,"context_lines":[{"line_number":712,"context_line":"                        LOG.debug(\"flattening dest volume %s\", dest_name)"},{"line_number":713,"context_line":"                        dest_volume.flatten()"},{"line_number":714,"context_line":"                except Exception as e:"},{"line_number":715,"context_line":"                    msg \u003d (_(\"Failed to flatten volume %(volume)s with \""},{"line_number":716,"context_line":"                             \"error: %(error)s.\") %"},{"line_number":717,"context_line":"                           {\u0027volume\u0027: dest_name,"},{"line_number":718,"context_line":"                            \u0027error\u0027: e})"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_69952c3d","line":715,"in_reply_to":"9f560f44_29c0547c","updated":"2020-10-07 18:08:33.000000000","message":"IMHO it makes sense to show \"Failed to flatten volume\" when cinder fails to open a volume \"to flatten it\", instead of the exact detailed step of failure.\nThe error message should describe the detail of the failure thus operators can understand cinder failed to flatten the volume because it failed to open it.\n\nActually if I follow the current implementation, this with statement should be placed outside of try-except, and the failed open is not caught by this except.\n\nHowever it would leave source_volume opened when it failed to open the image, and I\u0027d put this in try-except block to make sure that the failure during opening the Image results in close of src_volume .","commit_id":"73b3836d5815aa6f804f6c1d181df272bd130176"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"2e0f7c5d9e38c6e5b12104648c159554ba9a2195","unresolved":false,"context_lines":[{"line_number":710,"context_line":"                    with RBDVolumeProxy(self, dest_name, client\u003dclient,"},{"line_number":711,"context_line":"                                        ioctx\u003dclient.ioctx) as dest_volume:"},{"line_number":712,"context_line":"                        LOG.debug(\"flattening dest volume %s\", dest_name)"},{"line_number":713,"context_line":"                        dest_volume.flatten()"},{"line_number":714,"context_line":"                except Exception as e:"},{"line_number":715,"context_line":"                    msg \u003d (_(\"Failed to flatten volume %(volume)s with \""},{"line_number":716,"context_line":"                             \"error: %(error)s.\") %"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_35d97ef3","line":713,"updated":"2020-10-13 02:00:47.000000000","message":"FWIW as a data point, we flatten volumes using the RBDVolumeProxy as well in nova:\n\nhttps://github.com/openstack/nova/blob/261de76104ca67bed3ea6cdbcaaab0e44030f1e2/nova/storage/rbd_utils.py#L293-L294\n\nand that was done in order to keep nova-compute responsive when making blocking calls:\n\nhttps://github.com/openstack/nova/commit/3405a28688eacbca23cf5cac0a611d33fb1a1f2c","commit_id":"277a0e989ed2199a776178ecaa372215c7e02dbb"}]}
