)]}'
{"cinder/tests/test_volume.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8bd8bb17b662fa4c9c2cce788b05294a352a43a2","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"class VolumeTestCase(BaseVolumeTestCase):"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def _stub_clear_volume(self):"},{"line_number":133,"context_line":"        self.stubs.Set(volutils, \u0027clear_volume\u0027,"},{"line_number":134,"context_line":"                       lambda a, b, c, volume_clear\u003dmox.IgnoreArg(),"},{"line_number":135,"context_line":"                       volume_clear_size\u003dmox.IgnoreArg(),"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2FF58%3D","line":132,"updated":"2013-11-14 14:19:01.000000000","message":"What you should actually do here is make this:\ndef setUp(self):\n    super(VolumeTestCase, self).setUp()\n    self.Stubs.Set(volutils, \u0027clear_volume\u0027,\n         ...\n\nThen it will run for each test and you can remove all of the _stub_clear_volume() calls below.","commit_id":"3b98260858ca1b4b75bfef756fb3581fd40bd2f6"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"2f8016fff07eec0177805d8f3e7abc608acd49ff","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"class VolumeTestCase(BaseVolumeTestCase):"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def _stub_clear_volume(self):"},{"line_number":133,"context_line":"        self.stubs.Set(volutils, \u0027clear_volume\u0027,"},{"line_number":134,"context_line":"                       lambda a, b, c, volume_clear\u003dmox.IgnoreArg(),"},{"line_number":135,"context_line":"                       volume_clear_size\u003dmox.IgnoreArg(),"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2FDEk%3D","line":132,"in_reply_to":"AAAATn%2F%2FF58%3D","updated":"2013-11-15 07:04:04.000000000","message":"_stub_clear_volume() is not used in each test, so it can\u0027t be moved in setUp()","commit_id":"3b98260858ca1b4b75bfef756fb3581fd40bd2f6"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8bd8bb17b662fa4c9c2cce788b05294a352a43a2","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        self.volume.init_host()"},{"line_number":144,"context_line":"        volume \u003d db.volume_get(context.get_admin_context(), volume_id)"},{"line_number":145,"context_line":"        self.assertEqual(volume[\u0027status\u0027], \"error\")"},{"line_number":146,"context_line":"        self._stub_clear_volume()"},{"line_number":147,"context_line":"        self.volume.delete_volume(self.context, volume[\u0027id\u0027])"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def test_create_delete_volume(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2FF50%3D","line":146,"updated":"2013-11-14 14:19:01.000000000","message":"Remove","commit_id":"3b98260858ca1b4b75bfef756fb3581fd40bd2f6"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8bd8bb17b662fa4c9c2cce788b05294a352a43a2","unresolved":false,"context_lines":[{"line_number":193,"context_line":"        self.assertDictMatch(msg[\u0027payload\u0027], expected)"},{"line_number":194,"context_line":"        self.assertEqual(volume_id, db.volume_get(context.get_admin_context(),"},{"line_number":195,"context_line":"                         volume_id).id)"},{"line_number":196,"context_line":"        self._stub_clear_volume()"},{"line_number":197,"context_line":"        self.volume.delete_volume(self.context, volume[\u0027id\u0027])"},{"line_number":198,"context_line":"        vol \u003d db.volume_get(context.get_admin_context(read_deleted\u003d\u0027yes\u0027),"},{"line_number":199,"context_line":"                            volume_id)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2FF5w%3D","line":196,"updated":"2013-11-14 14:19:01.000000000","message":"Remove","commit_id":"3b98260858ca1b4b75bfef756fb3581fd40bd2f6"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8bd8bb17b662fa4c9c2cce788b05294a352a43a2","unresolved":false,"context_lines":[{"line_number":221,"context_line":"            volume.volume_metadata[0].key: volume.volume_metadata[0].value}"},{"line_number":222,"context_line":"        self.assertEqual(result_meta, test_meta)"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        self._stub_clear_volume()"},{"line_number":225,"context_line":"        self.volume.delete_volume(self.context, volume[\u0027id\u0027])"},{"line_number":226,"context_line":"        self.assertRaises(exception.NotFound,"},{"line_number":227,"context_line":"                          db.volume_get,"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2FF5s%3D","line":224,"updated":"2013-11-14 14:19:01.000000000","message":"Remove (and more below)","commit_id":"3b98260858ca1b4b75bfef756fb3581fd40bd2f6"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"6565ea9f0fe7c546d40785bd3ae7f88330b38a74","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"class VolumeTestCase(BaseVolumeTestCase):"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def _stub_clear_volume(self):"},{"line_number":133,"context_line":"        self.stubs.Set(volutils, \u0027clear_volume\u0027,"},{"line_number":134,"context_line":"                       lambda a, b, c, volume_clear\u003dmox.IgnoreArg(),"},{"line_number":135,"context_line":"                       volume_clear_size\u003dmox.IgnoreArg(),"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAATn%2F98XY%3D","line":132,"updated":"2013-12-04 07:07:57.000000000","message":"Used in 26 tests, so I guess you should move this up into setUp()","commit_id":"2d218023dceeb53875eebc61ce72b9349c919aff"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"d7881bf3519845c7dc5f23603ae7017493b0c1bd","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        self.volume.init_host()"},{"line_number":151,"context_line":"        volume \u003d db.volume_get(context.get_admin_context(), volume_id)"},{"line_number":152,"context_line":"        self.assertEqual(volume[\u0027status\u0027], \"error\")"},{"line_number":153,"context_line":"        self.volume.delete_volume(self.context, volume[\u0027id\u0027])"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    @mock.patch.object(QUOTAS, \u0027reserve\u0027)"},{"line_number":156,"context_line":"    @mock.patch.object(QUOTAS, \u0027commit\u0027)"}],"source_content_type":"text/x-python","patch_set":32,"id":"AAAAUH%2F%2B0mM%3D","line":153,"updated":"2014-01-21 18:57:07.000000000","message":"Why was this changed?","commit_id":"54b1a9bb0dd803e6c859024d8728256575d77b19"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"d7881bf3519845c7dc5f23603ae7017493b0c1bd","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        self.assertDictMatch(msg[\u0027payload\u0027], expected)"},{"line_number":267,"context_line":"        self.assertEqual(volume_id, db.volume_get(context.get_admin_context(),"},{"line_number":268,"context_line":"                         volume_id).id)"},{"line_number":269,"context_line":"        self.volume.delete_volume(self.context, volume[\u0027id\u0027])"},{"line_number":270,"context_line":"        vol \u003d db.volume_get(context.get_admin_context(read_deleted\u003d\u0027yes\u0027),"},{"line_number":271,"context_line":"                            volume_id)"},{"line_number":272,"context_line":"        self.assertEqual(vol[\u0027status\u0027], \u0027deleted\u0027)"}],"source_content_type":"text/x-python","patch_set":32,"id":"AAAAUH%2F%2B0kU%3D","line":269,"updated":"2014-01-21 18:57:07.000000000","message":"why was this changed?","commit_id":"54b1a9bb0dd803e6c859024d8728256575d77b19"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"d7881bf3519845c7dc5f23603ae7017493b0c1bd","unresolved":false,"context_lines":[{"line_number":1025,"context_line":"        vol \u003d db.volume_get(self.context, volume_id)"},{"line_number":1026,"context_line":"        self.assertEqual(vol[\u0027status\u0027], \"available\")"},{"line_number":1027,"context_line":""},{"line_number":1028,"context_line":"        self.volume.delete_volume(self.context, volume[\u0027id\u0027])"},{"line_number":1029,"context_line":"        self.assertRaises(exception.VolumeNotFound,"},{"line_number":1030,"context_line":"                          db.volume_get,"},{"line_number":1031,"context_line":"                          self.context,"}],"source_content_type":"text/x-python","patch_set":32,"id":"AAAAUH%2F%2B0kI%3D","line":1028,"updated":"2014-01-21 18:57:07.000000000","message":"why was this changed?","commit_id":"54b1a9bb0dd803e6c859024d8728256575d77b19"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"d7881bf3519845c7dc5f23603ae7017493b0c1bd","unresolved":false,"context_lines":[{"line_number":1068,"context_line":"        vol \u003d db.volume_get(self.context, volume_id)"},{"line_number":1069,"context_line":"        self.assertEqual(vol[\u0027status\u0027], \"available\")"},{"line_number":1070,"context_line":""},{"line_number":1071,"context_line":"        self.volume.delete_volume(self.context, volume[\u0027id\u0027])"},{"line_number":1072,"context_line":"        self.assertRaises(exception.VolumeNotFound,"},{"line_number":1073,"context_line":"                          db.volume_get,"},{"line_number":1074,"context_line":"                          self.context,"}],"source_content_type":"text/x-python","patch_set":32,"id":"AAAAUH%2F%2B0kE%3D","line":1071,"updated":"2014-01-21 18:57:07.000000000","message":"why was this changed?","commit_id":"54b1a9bb0dd803e6c859024d8728256575d77b19"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"d7881bf3519845c7dc5f23603ae7017493b0c1bd","unresolved":false,"context_lines":[{"line_number":1148,"context_line":"        self.assertEqual(admin_metadata[0][\u0027key\u0027], \u0027readonly\u0027)"},{"line_number":1149,"context_line":"        self.assertEqual(admin_metadata[0][\u0027value\u0027], \u0027True\u0027)"},{"line_number":1150,"context_line":""},{"line_number":1151,"context_line":"        self.volume.delete_volume(self.context, volume[\u0027id\u0027])"},{"line_number":1152,"context_line":"        self.assertRaises(exception.VolumeNotFound,"},{"line_number":1153,"context_line":"                          db.volume_get,"},{"line_number":1154,"context_line":"                          self.context,"}],"source_content_type":"text/x-python","patch_set":32,"id":"AAAAUH%2F%2B0kA%3D","line":1151,"updated":"2014-01-21 18:57:07.000000000","message":"why was this changed?","commit_id":"54b1a9bb0dd803e6c859024d8728256575d77b19"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"d7881bf3519845c7dc5f23603ae7017493b0c1bd","unresolved":false,"context_lines":[{"line_number":2722,"context_line":"    \"\"\"Test case for VolumeDriver\"\"\""},{"line_number":2723,"context_line":"    driver_name \u003d \"cinder.volume.drivers.lvm.LVMVolumeDriver\""},{"line_number":2724,"context_line":"    FAKE_VOLUME \u003d {\u0027name\u0027: \u0027test1\u0027,"},{"line_number":2725,"context_line":"                   \u0027volume_name\u0027: \u0027test1\u0027,"},{"line_number":2726,"context_line":"                   \u0027id\u0027: \u0027test1\u0027}"},{"line_number":2727,"context_line":""},{"line_number":2728,"context_line":"    def test_delete_volume_invalid_parameter(self):"}],"source_content_type":"text/x-python","patch_set":32,"id":"AAAAUH%2F%2B0kQ%3D","line":2725,"updated":"2014-01-21 18:57:07.000000000","message":"what is volume_name for?","commit_id":"54b1a9bb0dd803e6c859024d8728256575d77b19"}],"cinder/tests/test_volume_utils.py":[{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"d7881bf3519845c7dc5f23603ae7017493b0c1bd","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from cinder.openstack.common.notifier import test_notifier"},{"line_number":30,"context_line":"from cinder import test"},{"line_number":31,"context_line":"from cinder import utils"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"from cinder.volume import utils as volume_utils"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":32,"id":"AAAAUH%2F%2B0lo%3D","line":32,"updated":"2014-01-21 18:57:07.000000000","message":"remove new line here.","commit_id":"54b1a9bb0dd803e6c859024d8728256575d77b19"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"d7881bf3519845c7dc5f23603ae7017493b0c1bd","unresolved":false,"context_lines":[{"line_number":155,"context_line":"class ClearVolumeTestCase(test.TestCase):"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    FAKE_VOLUME \u003d {\u0027name\u0027: \u0027test1\u0027,"},{"line_number":158,"context_line":"                   \u0027volume_name\u0027: \u0027test1\u0027,"},{"line_number":159,"context_line":"                   \u0027id\u0027: \u0027test1\u0027}"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def test_clear_volume(self):"}],"source_content_type":"text/x-python","patch_set":32,"id":"AAAAUH%2F%2B0kk%3D","line":158,"updated":"2014-01-21 18:57:07.000000000","message":"don\u0027t think volume_name key is needed.","commit_id":"54b1a9bb0dd803e6c859024d8728256575d77b19"}],"cinder/volume/driver.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8bd8bb17b662fa4c9c2cce788b05294a352a43a2","unresolved":false,"context_lines":[{"line_number":115,"context_line":"                    \u0027volumes\u0027),"},{"line_number":116,"context_line":"    cfg.StrOpt(\u0027volume_clear\u0027,"},{"line_number":117,"context_line":"               default\u003d\u0027zero\u0027,"},{"line_number":118,"context_line":"               help\u003d\u0027Method used to wipe old voumes (valid options are: \u0027"},{"line_number":119,"context_line":"                    \u0027none, zero, shred)\u0027),"},{"line_number":120,"context_line":"    cfg.IntOpt(\u0027volume_clear_size\u0027,"},{"line_number":121,"context_line":"               default\u003d0,"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2FF40%3D","line":118,"updated":"2013-11-14 14:19:01.000000000","message":"Typo \"voumes\".  (Not introduced here but should fix.)","commit_id":"3b98260858ca1b4b75bfef756fb3581fd40bd2f6"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"2f8016fff07eec0177805d8f3e7abc608acd49ff","unresolved":false,"context_lines":[{"line_number":115,"context_line":"                    \u0027volumes\u0027),"},{"line_number":116,"context_line":"    cfg.StrOpt(\u0027volume_clear\u0027,"},{"line_number":117,"context_line":"               default\u003d\u0027zero\u0027,"},{"line_number":118,"context_line":"               help\u003d\u0027Method used to wipe old voumes (valid options are: \u0027"},{"line_number":119,"context_line":"                    \u0027none, zero, shred)\u0027),"},{"line_number":120,"context_line":"    cfg.IntOpt(\u0027volume_clear_size\u0027,"},{"line_number":121,"context_line":"               default\u003d0,"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2FDEc%3D","line":118,"in_reply_to":"AAAATn%2F%2FF40%3D","updated":"2013-11-15 07:04:04.000000000","message":"I\u0027ll correct this.","commit_id":"3b98260858ca1b4b75bfef756fb3581fd40bd2f6"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"3955fac00bd54f6b6da8d753a9169c8e83776953","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                    \u0027none, zero, shred)\u0027),"},{"line_number":101,"context_line":"    cfg.IntOpt(\u0027volume_clear_size\u0027,"},{"line_number":102,"context_line":"               default\u003d0,"},{"line_number":103,"context_line":"               help\u003d\u0027Size in MiB to wipe at start of old volumes. 0 \u003d\u003e all\u0027),"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"]"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAATn%2F9dqA%3D","line":103,"updated":"2013-12-11 09:03:40.000000000","message":"Why do we need to move these two options to the last?","commit_id":"d5226224238250cbacfc3479188dd09e0c2c1528"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"155a99ed5ea892821b1568999162b9c00c3e2f48","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                    \u0027none, zero, shred)\u0027),"},{"line_number":101,"context_line":"    cfg.IntOpt(\u0027volume_clear_size\u0027,"},{"line_number":102,"context_line":"               default\u003d0,"},{"line_number":103,"context_line":"               help\u003d\u0027Size in MiB to wipe at start of old volumes. 0 \u003d\u003e all\u0027),"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"]"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAATn%2F9Xfc%3D","line":103,"in_reply_to":"AAAATn%2F9dqA%3D","updated":"2013-12-12 07:26:05.000000000","message":"I didn\u0027t notice that, I\u0027ve done another changes before and forgot move it as it was at the beginning. Thanks.","commit_id":"d5226224238250cbacfc3479188dd09e0c2c1528"}],"cinder/volume/drivers/block_device.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"24f77b44ccb01d019ff7e5a77482b14fad001f9b","unresolved":false,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    def _ensure_iscsi_targets(self, context, host):"},{"line_number":230,"context_line":"        \"\"\"Ensure that target ids have been created in datastore.\"\"\""},{"line_number":231,"context_line":"        # NOTE(jdg): tgtadm doesn\u0027t use the iscsi_targets tableTODO(jdg):"},{"line_number":232,"context_line":"        # In the future move all of the dependent stuff into the"},{"line_number":233,"context_line":"        # cooresponding target admin class"},{"line_number":234,"context_line":"        if not isinstance(self.tgtadm, iscsi.TgtAdm):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAASn%2F%2F9VU%3D","line":231,"updated":"2013-08-27 15:08:48.000000000","message":"Please reformat this.  (Accidental change?)","commit_id":"fded74d121905c6556dd39be127e12a5d52c0516"}],"cinder/volume/drivers/lvm.py":[{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"4819b25cad1befd6a3afb565a31facb7d6f0ad8f","unresolved":false,"context_lines":[{"line_number":154,"context_line":"                raise exception.InvalidParameterValue(msg)"},{"line_number":155,"context_line":"            vol_size \u003d size_in_g * 1024"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"            if self.configuration.volume_clear !\u003d \u0027none\u0027:"},{"line_number":158,"context_line":"                volutils.clear_volume("},{"line_number":159,"context_line":"                    volume, vol_size, dev_path,"},{"line_number":160,"context_line":"                    volume_clear\u003dself.configuration.volume_clear,"}],"source_content_type":"text/x-python","patch_set":31,"id":"AAAAUH%2F%2B2Zc%3D","line":157,"updated":"2014-01-21 13:13:30.000000000","message":"Would prefer to move this condition up as in the original code:\n\nif self.configuration.volume_clear \u003d\u003d \u0027none\u0027 or \\\t\t\n        self.configuration.lvm_type \u003d\u003d \u0027thin\u0027:","commit_id":"6362b3dd411010aa063df5fb35cd69d7ea88a52d"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"d7881bf3519845c7dc5f23603ae7017493b0c1bd","unresolved":false,"context_lines":[{"line_number":153,"context_line":"                         \"cannot secure delete.\") % volume[\u0027id\u0027])"},{"line_number":154,"context_line":"                LOG.error(msg)"},{"line_number":155,"context_line":"                raise exception.InvalidParameterValue(msg)"},{"line_number":156,"context_line":"            vol_size \u003d size_in_g * 1024"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"            volutils.clear_volume("},{"line_number":159,"context_line":"                volume, vol_size, dev_path,"}],"source_content_type":"text/x-python","patch_set":32,"id":"AAAAUH%2F%2B0jU%3D","line":156,"updated":"2014-01-21 18:57:07.000000000","message":"use cinder.unit instead","commit_id":"54b1a9bb0dd803e6c859024d8728256575d77b19"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"85622ff9773c91bed8bb4d02c820760212b2d9f9","unresolved":false,"context_lines":[{"line_number":153,"context_line":"                         \"cannot secure delete.\") % volume[\u0027id\u0027])"},{"line_number":154,"context_line":"                LOG.error(msg)"},{"line_number":155,"context_line":"                raise exception.InvalidParameterValue(msg)"},{"line_number":156,"context_line":"            vol_size \u003d size_in_g * 1024"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"            volutils.clear_volume("},{"line_number":159,"context_line":"                volume, vol_size, dev_path,"}],"source_content_type":"text/x-python","patch_set":32,"id":"AAAAUH%2F%2ByJg%3D","line":156,"in_reply_to":"AAAAUH%2F%2B0jU%3D","updated":"2014-01-22 07:08:57.000000000","message":"Here I don\u0027t convert bytes to kilobytes, I convert gigabytes to megabytes. I can\u0027t see the reason use cinder.unit.","commit_id":"54b1a9bb0dd803e6c859024d8728256575d77b19"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"5caca1dd61fbacca5694e2597b5469b3c3ad80eb","unresolved":false,"context_lines":[{"line_number":158,"context_line":"            volutils.clear_volume("},{"line_number":159,"context_line":"                vol_size, dev_path,"},{"line_number":160,"context_line":"                volume_clear\u003dself.configuration.volume_clear,"},{"line_number":161,"context_line":"                volume_clear_size\u003dself.configuration.volume_clear_size)"},{"line_number":162,"context_line":"        name \u003d volume[\u0027name\u0027]"},{"line_number":163,"context_line":"        if is_snapshot:"},{"line_number":164,"context_line":"            name \u003d self._escape_snapshot(volume[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":35,"id":"AAAAUH%2F9tR0%3D","line":161,"updated":"2014-02-04 19:35:05.000000000","message":"I would have just left this in a self.clear_volume() as it was and just call the volutils.clear_volume() inside of it.","commit_id":"9b121ca5f5b47b14474d1c80936dbcf079561849"}],"cinder/volume/utils.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d352a4fd7dbaecd5183be10095a349b2e1a1806e","unresolved":false,"context_lines":[{"line_number":197,"context_line":""},{"line_number":198,"context_line":"def clear_volume(volume, volume_size, volume_path):"},{"line_number":199,"context_line":"    \"\"\"unprovision old volumes to prevent data leaking between users.\"\"\""},{"line_number":200,"context_line":"    clear_size \u003d CONF.volume_clear_size"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    if CONF.volume_clear \u003d\u003d \u0027none\u0027:"},{"line_number":203,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAASn%2F%2Fv%2Fk%3D","line":200,"updated":"2013-08-30 02:08:25.000000000","message":"Don\u0027t you need an import_opt() at the top of this file to ensure this option is always loaded?  (I know it should be in practice since this is only called from volume/driver.py, but I think this is still incorrect.)\n\nSeeing that this file already has volume_dd_blocksize, why not move the volume_clear_size option to this file?","commit_id":"d7ea2c71b5679e2269828804be578a9da28fab0e"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"fe401bbe78b126d5b172cb5ad7aa8a4a52155bbe","unresolved":false,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"def clear_volume(volume, volume_size, volume_path):"},{"line_number":207,"context_line":"    \"\"\"unprovision old volumes to prevent data leaking between users.\"\"\""},{"line_number":208,"context_line":"    clear_size \u003d CONF.volume_clear_size"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"    if CONF.volume_clear \u003d\u003d \u0027none\u0027:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2F%2Bn8%3D","line":207,"updated":"2013-10-07 05:37:40.000000000","message":"Please start with capital letter, and describe parameters - especially the fact that volume_size is in MB.","commit_id":"8491e2a286d005b331dfad885c7bb0f40dd41a9e"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"9bd63ced6cd703b52a68ae113e45405abf57272a","unresolved":false,"context_lines":[{"line_number":224,"context_line":"            clear_cmd.append(\u0027-s%dMiB\u0027 % clear_size)"},{"line_number":225,"context_line":"    else:"},{"line_number":226,"context_line":"        LOG.error(_(\"Error unrecognized volume_clear option: %s\"),"},{"line_number":227,"context_line":"                  CONF.volume_clear)"},{"line_number":228,"context_line":"        return"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    clear_cmd.append(volume_path)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2F7%2Fk%3D","line":227,"updated":"2013-10-07 19:22:32.000000000","message":"I think this should now be handled with an InvalidConfigurationValue exception.  Don\u0027t know that we had that option when you first wrote this.","commit_id":"8491e2a286d005b331dfad885c7bb0f40dd41a9e"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"ede8403f8a1d1d64c8221d534d90fcfb499eec5d","unresolved":false,"context_lines":[{"line_number":224,"context_line":"            clear_cmd.append(\u0027-s%dMiB\u0027 % clear_size)"},{"line_number":225,"context_line":"    else:"},{"line_number":226,"context_line":"        LOG.error(_(\"Error unrecognized volume_clear option: %s\"),"},{"line_number":227,"context_line":"                  CONF.volume_clear)"},{"line_number":228,"context_line":"        return"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    clear_cmd.append(volume_path)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2F6ig%3D","line":227,"in_reply_to":"AAAATH%2F%2F7%2Fk%3D","updated":"2013-10-08 05:05:38.000000000","message":"Yes, this code needs to be rebased.  There was a bug where an invalid value caused volumes not to be cleared.  Good catch!","commit_id":"8491e2a286d005b331dfad885c7bb0f40dd41a9e"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"7b6e1d62c84f9797814e450ee9be411e45b83401","unresolved":false,"context_lines":[{"line_number":192,"context_line":""},{"line_number":193,"context_line":"def clear_volume(volume, volume_size, volume_path, volume_clear\u003dNone,"},{"line_number":194,"context_line":"                 volume_clear_size\u003dNone):"},{"line_number":195,"context_line":"    \"\"\"unprovision old volumes to prevent data leaking between users.\"\"\""},{"line_number":196,"context_line":"    if volume_clear is None:"},{"line_number":197,"context_line":"        volume_clear \u003d CONF.volume_clear"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F%2FarE%3D","line":195,"updated":"2013-11-06 18:55:58.000000000","message":"Still need this to be a capital letter at the beginning.","commit_id":"193135efeb267f5043456b2bff1b581def33ca4b"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"eeb3f079bc6609a113c4e840fbbbf1d53cea5f65","unresolved":false,"context_lines":[{"line_number":197,"context_line":"    if volume_clear_size is None:"},{"line_number":198,"context_line":"        volume_clear_size \u003d CONF.volume_clear_size"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    if volume_clear \u003d\u003d \u0027none\u0027:"},{"line_number":201,"context_line":"        return"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    LOG.info(_(\"Performing secure delete on volume: %s\") % volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":26,"id":"AAAAT3%2F%2F8Ho%3D","line":200,"updated":"2013-12-26 18:06:29.000000000","message":"Would it be better to leave this check up to the driver?  In other words just never call clear_volume rather than pass it though like this?","commit_id":"05a750f61afb1d1541f86ba1a1d367054c81b844"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"aeaca0090a2401d4fbe96a5531bcc4567ab9ca95","unresolved":false,"context_lines":[{"line_number":197,"context_line":"    if volume_clear_size is None:"},{"line_number":198,"context_line":"        volume_clear_size \u003d CONF.volume_clear_size"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    if volume_clear \u003d\u003d \u0027none\u0027:"},{"line_number":201,"context_line":"        return"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    LOG.info(_(\"Performing secure delete on volume: %s\") % volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":26,"id":"AAAAUH%2F%2FuVM%3D","line":200,"in_reply_to":"AAAAT3%2F%2F8Ho%3D","updated":"2014-01-09 06:44:43.000000000","message":"thanks, will do","commit_id":"05a750f61afb1d1541f86ba1a1d367054c81b844"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b7b0c3c973c4cc98f9963c3bfa7863e2f980d343","unresolved":false,"context_lines":[{"line_number":193,"context_line":"    if volume_clear_size is None:"},{"line_number":194,"context_line":"        volume_clear_size \u003d CONF.volume_clear_size"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    LOG.info(_(\"Performing secure delete on volume: %s\") % volume[\u0027id\u0027])"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    if volume_clear \u003d\u003d \u0027zero\u0027:"},{"line_number":199,"context_line":"        if volume_clear_size \u003d\u003d 0:"}],"source_content_type":"text/x-python","patch_set":34,"id":"AAAAUH%2F%2Btb4%3D","line":196,"updated":"2014-01-22 23:01:42.000000000","message":"This log is the only use of the volume parameter that\u0027s passed in.  Why not just drop that parameter and log the path being wiped?","commit_id":"cbaea97cf192dca49a2902541fc2c19b4cdd6fce"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"c55e4ff2cf05320f3d86a941138f4884cf506594","unresolved":false,"context_lines":[{"line_number":193,"context_line":"    if volume_clear_size is None:"},{"line_number":194,"context_line":"        volume_clear_size \u003d CONF.volume_clear_size"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    LOG.info(_(\"Performing secure delete on volume: %s\") % volume[\u0027id\u0027])"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    if volume_clear \u003d\u003d \u0027zero\u0027:"},{"line_number":199,"context_line":"        if volume_clear_size \u003d\u003d 0:"}],"source_content_type":"text/x-python","patch_set":34,"id":"AAAAUH%2F%2Bq0s%3D","line":196,"in_reply_to":"AAAAUH%2F%2Btb4%3D","updated":"2014-01-23 11:26:20.000000000","message":"Ok, will do","commit_id":"cbaea97cf192dca49a2902541fc2c19b4cdd6fce"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"aacba487225abbcafd6cdfc4c87cb1d963328a58","unresolved":false,"context_lines":[{"line_number":201,"context_line":"                               CONF.volume_dd_blocksize,"},{"line_number":202,"context_line":"                               sync\u003dTrue, execute\u003dutils.execute)"},{"line_number":203,"context_line":"        else:"},{"line_number":204,"context_line":"            clear_cmd \u003d [\u0027shred\u0027, \u0027-n0\u0027, \u0027-z\u0027, \u0027-s%dMiB\u0027 % volume_clear_size]"},{"line_number":205,"context_line":"    elif volume_clear \u003d\u003d \u0027shred\u0027:"},{"line_number":206,"context_line":"        clear_cmd \u003d [\u0027shred\u0027, \u0027-n3\u0027]"},{"line_number":207,"context_line":"        if volume_clear_size:"}],"source_content_type":"text/x-python","patch_set":35,"id":"AAAAUH%2F9uUo%3D","line":204,"updated":"2014-02-04 16:52:06.000000000","message":"This isn\u0027t new in your patchset... but it doesn\u0027t make sense to rely on the shred command for a single-pass zeroing, when this should just be a call to copy_volume() with volume_clear_size passed in for the volume size.\n\nCan we change this to only use shred for the volume_clear \u003d\u003d \u0027shred\u0027 case?","commit_id":"9b121ca5f5b47b14474d1c80936dbcf079561849"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"e133909fd99fb235425658989c3ee7840651aebd","unresolved":false,"context_lines":[{"line_number":201,"context_line":"                               CONF.volume_dd_blocksize,"},{"line_number":202,"context_line":"                               sync\u003dTrue, execute\u003dutils.execute)"},{"line_number":203,"context_line":"        else:"},{"line_number":204,"context_line":"            clear_cmd \u003d [\u0027shred\u0027, \u0027-n0\u0027, \u0027-z\u0027, \u0027-s%dMiB\u0027 % volume_clear_size]"},{"line_number":205,"context_line":"    elif volume_clear \u003d\u003d \u0027shred\u0027:"},{"line_number":206,"context_line":"        clear_cmd \u003d [\u0027shred\u0027, \u0027-n3\u0027]"},{"line_number":207,"context_line":"        if volume_clear_size:"}],"source_content_type":"text/x-python","patch_set":35,"id":"AAAAUH%2F9too%3D","line":204,"in_reply_to":"AAAAUH%2F9uUo%3D","updated":"2014-02-04 18:47:19.000000000","message":"All of this is unrelated to this commit. I suggest to do it in another change.","commit_id":"9b121ca5f5b47b14474d1c80936dbcf079561849"}],"etc/cinder/cinder.conf.sample":[{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"6565ea9f0fe7c546d40785bd3ae7f88330b38a74","unresolved":false,"context_lines":[{"line_number":1076,"context_line":"# value)"},{"line_number":1077,"context_line":"#use_multipath_for_image_xfer\u003dfalse"},{"line_number":1078,"context_line":""},{"line_number":1079,"context_line":"# Method used to wipe old voumes (valid options are: none,"},{"line_number":1080,"context_line":"# zero, shred) (string value)"},{"line_number":1081,"context_line":"#volume_clear\u003dzero"},{"line_number":1082,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":18,"id":"AAAATn%2F98WA%3D","side":"PARENT","line":1079,"updated":"2013-12-04 07:07:57.000000000","message":"These config options are not removed from driver.py, just relocated to be at the end of the config options.","commit_id":"d52675cda76acad00cc865538e98cc10d631a26a"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"9691bd9a95d02f23c5864a4a514ba222d9f0b250","unresolved":false,"context_lines":[{"line_number":1076,"context_line":"# value)"},{"line_number":1077,"context_line":"#use_multipath_for_image_xfer\u003dfalse"},{"line_number":1078,"context_line":""},{"line_number":1079,"context_line":"# Method used to wipe old voumes (valid options are: none,"},{"line_number":1080,"context_line":"# zero, shred) (string value)"},{"line_number":1081,"context_line":"#volume_clear\u003dzero"},{"line_number":1082,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":18,"id":"AAAATn%2F9wIQ%3D","side":"PARENT","line":1079,"in_reply_to":"AAAATn%2F98QU%3D","updated":"2013-12-06 11:52:25.000000000","message":"Oh sorry, I failed to see last time that they\u0027re relocated here too. I though you only deleted them.","commit_id":"d52675cda76acad00cc865538e98cc10d631a26a"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"cbd7d187aa5859d232f3081115c818c11ab432b1","unresolved":false,"context_lines":[{"line_number":1076,"context_line":"# value)"},{"line_number":1077,"context_line":"#use_multipath_for_image_xfer\u003dfalse"},{"line_number":1078,"context_line":""},{"line_number":1079,"context_line":"# Method used to wipe old voumes (valid options are: none,"},{"line_number":1080,"context_line":"# zero, shred) (string value)"},{"line_number":1081,"context_line":"#volume_clear\u003dzero"},{"line_number":1082,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":18,"id":"AAAATn%2F98QU%3D","side":"PARENT","line":1079,"in_reply_to":"AAAATn%2F98WA%3D","updated":"2013-12-04 07:40:07.000000000","message":"Yes, but i if I hadn\u0027t relocated this config options checking would tell that parameters are not in right place.","commit_id":"d52675cda76acad00cc865538e98cc10d631a26a"}]}
