)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e180e893fe9e44e09553b783ad32e83a2dfd5225","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Enable zero the snapshot when delete snapshot in LVMVolumeDriver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Because snapshot without \u0027size\u0027 field, So clear_volume method in"},{"line_number":10,"context_line":"LVMVolumeDriverwill will skip secure deleting. Add \u0027size\u0027 parameter to"},{"line_number":11,"context_line":"clear_volume method, So it can get the size of snapshot and zero the snapshot."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Fixes  Bug #1198185"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAP3%2F%2F1RI%3D","line":10,"updated":"2013-07-10 18:05:59.000000000","message":"type \u0027LVMVolumDriverwill\u0027","commit_id":"a69eadab769547989153656e53c93303b8672976"},{"author":{"_account_id":2481,"name":"Rongze Zhu","email":"zrzhit@gmail.com","username":"zrzhit"},"change_message_id":"13948a6dea1f20c7823e98ded6bec6ea728dc949","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Enable zero the snapshot when delete snapshot in LVMVolumeDriver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Because snapshot without \u0027size\u0027 field, So clear_volume method in"},{"line_number":10,"context_line":"LVMVolumeDriverwill will skip secure deleting. Add \u0027size\u0027 parameter to"},{"line_number":11,"context_line":"clear_volume method, So it can get the size of snapshot and zero the snapshot."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Fixes  Bug #1198185"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAP3%2F%2F1O8%3D","line":10,"in_reply_to":"AAAAP3%2F%2F1RI%3D","updated":"2013-07-10 18:31:36.000000000","message":"Done","commit_id":"a69eadab769547989153656e53c93303b8672976"}],"cinder/tests/test_volume.py":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"0098bca8a893f105cd69872ab4f462131b578e2a","unresolved":false,"context_lines":[{"line_number":1501,"context_line":"                       \u0027volume_name\u0027: \u0027test1\u0027,"},{"line_number":1502,"context_line":"                       \u0027id\u0027: \u0027test1\u0027}"},{"line_number":1503,"context_line":""},{"line_number":1504,"context_line":"        # Test volume has \u0027size\u0027 filed"},{"line_number":1505,"context_line":"        volume \u003d dict(fake_volume, size\u003d\u0027123\u0027)"},{"line_number":1506,"context_line":"        self.assertEquals(True, lvm_driver.clear_volume(volume))"},{"line_number":1507,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAP3%2F%2FvIM%3D","line":1504,"updated":"2013-07-12 06:15:01.000000000","message":"Do you mean \u0027field\u0027 here not \u0027filed\u0027 ?","commit_id":"251af8834e19af923467d0ae346561623cf9b8ee"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"0098bca8a893f105cd69872ab4f462131b578e2a","unresolved":false,"context_lines":[{"line_number":1505,"context_line":"        volume \u003d dict(fake_volume, size\u003d\u0027123\u0027)"},{"line_number":1506,"context_line":"        self.assertEquals(True, lvm_driver.clear_volume(volume))"},{"line_number":1507,"context_line":""},{"line_number":1508,"context_line":"        # Test volume has \u0027volume_size\u0027 filed"},{"line_number":1509,"context_line":"        volume \u003d dict(fake_volume, volume_size\u003d\u0027123\u0027)"},{"line_number":1510,"context_line":"        self.assertEquals(True, lvm_driver.clear_volume(volume))"},{"line_number":1511,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAP3%2F%2FvII%3D","line":1508,"updated":"2013-07-12 06:15:01.000000000","message":"same","commit_id":"251af8834e19af923467d0ae346561623cf9b8ee"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"0098bca8a893f105cd69872ab4f462131b578e2a","unresolved":false,"context_lines":[{"line_number":1509,"context_line":"        volume \u003d dict(fake_volume, volume_size\u003d\u0027123\u0027)"},{"line_number":1510,"context_line":"        self.assertEquals(True, lvm_driver.clear_volume(volume))"},{"line_number":1511,"context_line":""},{"line_number":1512,"context_line":"        # Test volume without \u0027size\u0027 filed and \u0027volume_size\u0027 filed"},{"line_number":1513,"context_line":"        volume \u003d dict(fake_volume)"},{"line_number":1514,"context_line":"        self.assertEquals(None, lvm_driver.clear_volume(volume))"},{"line_number":1515,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAP3%2F%2FvIE%3D","line":1512,"updated":"2013-07-12 06:15:01.000000000","message":"same","commit_id":"251af8834e19af923467d0ae346561623cf9b8ee"}],"cinder/volume/drivers/lvm.py":[{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"db94d2cc2eac701c44b7fa8b754bb48cf262717f","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        if size is not None:"},{"line_number":228,"context_line":"            size_in_g \u003d size"},{"line_number":229,"context_line":"        else:"},{"line_number":230,"context_line":"            size_in_g \u003d volume.get(\u0027size\u0027)"},{"line_number":231,"context_line":"        size_in_m \u003d self.configuration.volume_clear_size"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        if not size_in_g:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAP3%2F%2F1Nk%3D","line":230,"updated":"2013-07-10 18:43:11.000000000","message":"Right now, both delete_volume() and delete_snapshot() pass correct size info to clear_volume(), so I think probably we can remove this OR, we do something like:\n\n    try:\n        size_in_g \u003d volume[\u0027size\u0027] if volume.get(\u0027size\u0027, None) else volume[\u0027volume_size\u0027]\n    except KeyError:\n        LOG.error(_(\u0027No valid size info when trying to clear volume.\u0027)","commit_id":"c99bd05d598b8b1c56088814d6de7039cda36588"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"0831a02d581e3bf0286123b157d9752a36269072","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        if size is not None:"},{"line_number":228,"context_line":"            size_in_g \u003d size"},{"line_number":229,"context_line":"        else:"},{"line_number":230,"context_line":"            size_in_g \u003d volume.get(\u0027size\u0027)"},{"line_number":231,"context_line":"        size_in_m \u003d self.configuration.volume_clear_size"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        if not size_in_g:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAP3%2F%2F1Gg%3D","line":230,"in_reply_to":"AAAAP3%2F%2F1HQ%3D","updated":"2013-07-10 19:27:11.000000000","message":"No, I mean we may remove checking if size is None or not because all the callers are doing it correctly.  On the other hand, if we shouldn\u0027t make such assumption, then we should do more test in case volume.get(\u0027size\u0027) returns None.","commit_id":"c99bd05d598b8b1c56088814d6de7039cda36588"},{"author":{"_account_id":2481,"name":"Rongze Zhu","email":"zrzhit@gmail.com","username":"zrzhit"},"change_message_id":"8a0a415f9914dc3c4ce396910543b51b30831ebf","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        if size is not None:"},{"line_number":228,"context_line":"            size_in_g \u003d size"},{"line_number":229,"context_line":"        else:"},{"line_number":230,"context_line":"            size_in_g \u003d volume.get(\u0027size\u0027)"},{"line_number":231,"context_line":"        size_in_m \u003d self.configuration.volume_clear_size"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        if not size_in_g:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAP3%2F%2F1HQ%3D","line":230,"in_reply_to":"AAAAP3%2F%2F1Nk%3D","updated":"2013-07-10 19:18:53.000000000","message":"Do you mean we should remove the size_in_g parameter in _delete_volume method?","commit_id":"c99bd05d598b8b1c56088814d6de7039cda36588"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"ee7cbf2f55830d9d3ccb11cc1c490902b02da173","unresolved":false,"context_lines":[{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        vol_path \u003d self.local_path(volume)"},{"line_number":227,"context_line":"        try:"},{"line_number":228,"context_line":"            size_in_g \u003d volume[\u0027size\u0027] if volume.get(\u0027size\u0027, None) else\\"},{"line_number":229,"context_line":"            volume.get(\u0027volume_size\u0027)"},{"line_number":230,"context_line":"        except KeyError:"},{"line_number":231,"context_line":"            LOG.warning(_(\"Size for volume: %s not found, \""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAP3%2F%2F034%3D","line":228,"updated":"2013-07-10 20:40:11.000000000","message":"Backslashes are generally frowned upon, and this is kind of hard to parse.\n\nsize_in_g \u003d volume.get(\u0027size\u0027, volume.get(\u0027volume_size\u0027, None))\n\n^ Is that better or worse?","commit_id":"3b7f153db78805ee3b536cf043a325d1ebbe4c84"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"97b10ada9b25e469a8e8683c0a5dca1a6d0e5760","unresolved":false,"context_lines":[{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        vol_path \u003d self.local_path(volume)"},{"line_number":227,"context_line":"        try:"},{"line_number":228,"context_line":"            size_in_g \u003d volume[\u0027size\u0027] if volume.get(\u0027size\u0027, None) else\\"},{"line_number":229,"context_line":"            volume.get(\u0027volume_size\u0027)"},{"line_number":230,"context_line":"        except KeyError:"},{"line_number":231,"context_line":"            LOG.warning(_(\"Size for volume: %s not found, \""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAP3%2F%2F0x8%3D","line":228,"in_reply_to":"AAAAP3%2F%2F01o%3D","updated":"2013-07-10 21:00:21.000000000","message":"I see. Yeah, i agree it\u0027s simpler.","commit_id":"3b7f153db78805ee3b536cf043a325d1ebbe4c84"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"bd6634fda7f2a7d52d3cf794a11b00774dc9daf7","unresolved":false,"context_lines":[{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        vol_path \u003d self.local_path(volume)"},{"line_number":227,"context_line":"        try:"},{"line_number":228,"context_line":"            size_in_g \u003d volume[\u0027size\u0027] if volume.get(\u0027size\u0027, None) else\\"},{"line_number":229,"context_line":"            volume.get(\u0027volume_size\u0027)"},{"line_number":230,"context_line":"        except KeyError:"},{"line_number":231,"context_line":"            LOG.warning(_(\"Size for volume: %s not found, \""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAP3%2F%2F01o%3D","line":228,"in_reply_to":"AAAAP3%2F%2F02A%3D","updated":"2013-07-10 20:45:01.000000000","message":"I meant to imply that you would later check against None instead of looking for KeyError.  Seems simpler?","commit_id":"3b7f153db78805ee3b536cf043a325d1ebbe4c84"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"77bdc2b5370621d4eb2145b9179abb7fdf329aa3","unresolved":false,"context_lines":[{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        vol_path \u003d self.local_path(volume)"},{"line_number":227,"context_line":"        try:"},{"line_number":228,"context_line":"            size_in_g \u003d volume[\u0027size\u0027] if volume.get(\u0027size\u0027, None) else\\"},{"line_number":229,"context_line":"            volume.get(\u0027volume_size\u0027)"},{"line_number":230,"context_line":"        except KeyError:"},{"line_number":231,"context_line":"            LOG.warning(_(\"Size for volume: %s not found, \""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAP3%2F%2F02A%3D","line":228,"in_reply_to":"AAAAP3%2F%2F034%3D","updated":"2013-07-10 20:42:41.000000000","message":"It is... different, i think we want to be able to catch the exception when there is no \u0027size\u0027 nor \u0027volume_size\u0027.","commit_id":"3b7f153db78805ee3b536cf043a325d1ebbe4c84"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"77bdc2b5370621d4eb2145b9179abb7fdf329aa3","unresolved":false,"context_lines":[{"line_number":226,"context_line":"        vol_path \u003d self.local_path(volume)"},{"line_number":227,"context_line":"        try:"},{"line_number":228,"context_line":"            size_in_g \u003d volume[\u0027size\u0027] if volume.get(\u0027size\u0027, None) else\\"},{"line_number":229,"context_line":"            volume.get(\u0027volume_size\u0027)"},{"line_number":230,"context_line":"        except KeyError:"},{"line_number":231,"context_line":"            LOG.warning(_(\"Size for volume: %s not found, \""},{"line_number":232,"context_line":"                          \"skipping secure delete.\") % volume[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAP3%2F%2F03I%3D","line":229,"updated":"2013-07-10 20:42:41.000000000","message":"here it should be volume[\u0027volume_size\u0027] in order to trigger that KeyError exception.","commit_id":"3b7f153db78805ee3b536cf043a325d1ebbe4c84"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"77bdc2b5370621d4eb2145b9179abb7fdf329aa3","unresolved":false,"context_lines":[{"line_number":229,"context_line":"            volume.get(\u0027volume_size\u0027)"},{"line_number":230,"context_line":"        except KeyError:"},{"line_number":231,"context_line":"            LOG.warning(_(\"Size for volume: %s not found, \""},{"line_number":232,"context_line":"                          \"skipping secure delete.\") % volume[\u0027name\u0027])"},{"line_number":233,"context_line":"            return"},{"line_number":234,"context_line":"        size_in_m \u003d self.configuration.volume_clear_size"},{"line_number":235,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAP3%2F%2F03g%3D","line":232,"updated":"2013-07-10 20:42:41.000000000","message":"there\u0027s no volume[\u0027name\u0027], it should be volume[\u0027id\u0027].","commit_id":"3b7f153db78805ee3b536cf043a325d1ebbe4c84"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"000e671f28a7a471a166274dba76c8931ea81b2a","unresolved":false,"context_lines":[{"line_number":231,"context_line":"            return"},{"line_number":232,"context_line":"        size_in_m \u003d self.configuration.volume_clear_size"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"        if self.configuration.volume_clear \u003d\u003d \u0027none\u0027:"},{"line_number":235,"context_line":"            return"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        LOG.info(_(\"Performing secure delete on volume: %s\") % volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAP3%2F%2Fts0%3D","line":234,"updated":"2013-07-12 15:16:25.000000000","message":"Might be worth doing this right off the bad in this method and just return right away if not needed.\n\nMinor nit though, I\u0027ll leave it to you.","commit_id":"0ee31073c5cb432a9cdd2648e99aa802b0ed0a17"},{"author":{"_account_id":2481,"name":"Rongze Zhu","email":"zrzhit@gmail.com","username":"zrzhit"},"change_message_id":"27245ed2ab7ce644ed776ec81118baa61aa17ad9","unresolved":false,"context_lines":[{"line_number":231,"context_line":"            return"},{"line_number":232,"context_line":"        size_in_m \u003d self.configuration.volume_clear_size"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"        if self.configuration.volume_clear \u003d\u003d \u0027none\u0027:"},{"line_number":235,"context_line":"            return"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        LOG.info(_(\"Performing secure delete on volume: %s\") % volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAP3%2F%2FgYI%3D","line":234,"in_reply_to":"AAAAP3%2F%2Fts0%3D","updated":"2013-07-17 08:13:59.000000000","message":"Thank you:)","commit_id":"0ee31073c5cb432a9cdd2648e99aa802b0ed0a17"}]}
