)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"0796ca39f657912597bbf3d43034970b11e1c562","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Flavio Percoco \u003cflaper87@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-12-11 15:10:31 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Move driver initizialization check into the method"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Volumes and backups managers\u0027 methods are decorated with"},{"line_number":10,"context_line":"`require_initialized_driver` which checks whether the driver has been"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F9ZbM%3D","line":7,"updated":"2013-12-11 22:50:24.000000000","message":"Typo: \"initialization\".  (Just because this in a summary makes it a pain to grep git history.)","commit_id":"f2997541a5ed26fed54a842e26883802011246c8"}],"cinder/backup/manager.py":[{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"5acddf10aa8c74b7a4d9e03bdceb35f82d1ccc89","unresolved":false,"context_lines":[{"line_number":273,"context_line":"                                      {\u0027status\u0027: \u0027available\u0027})"},{"line_number":274,"context_line":"                self.db.backup_update(context, backup_id,"},{"line_number":275,"context_line":"                                      {\u0027status\u0027: \u0027error\u0027,"},{"line_number":276,"context_line":"                                       \u0027fail_reason\u0027: unicode(err)})"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"        self.db.volume_update(context, volume_id, {\u0027status\u0027: \u0027available\u0027})"},{"line_number":279,"context_line":"        self.db.backup_update(context, backup_id, {\u0027status\u0027: \u0027available\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9iTg%3D","line":276,"updated":"2013-12-10 13:55:06.000000000","message":"Is this fail reason going to start leaking details about the config that a service provider might not want public, like some of the API exceptions used to?","commit_id":"a5daccd438ff48e234a29ea5fa299a9e57d4d02c"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f44e6e6e87973f003d6313ad061b70a215e7be9b","unresolved":false,"context_lines":[{"line_number":261,"context_line":"            # before going forward. The exception will be caught"},{"line_number":262,"context_line":"            # and the volume status updated. Also, let the previous"},{"line_number":263,"context_line":"            # checks go first so we know what status the volume should"},{"line_number":264,"context_line":"            # be set to."},{"line_number":265,"context_line":"            utils.require_driver_initialized(self.driver)"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"            backup_service \u003d self.service.get_backup_driver(context)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FeU4%3D","line":264,"updated":"2014-01-13 14:40:08.000000000","message":"This comment is confusing.  We change the status of both the volume and the backup, and the status does not depend on previous checks.","commit_id":"08a5ee345b9fb1df24c0b7eaf9054ad429414c69"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"da848ddb0be96afa7f69262b90df33762313d37f","unresolved":false,"context_lines":[{"line_number":261,"context_line":"            # before going forward. The exception will be caught"},{"line_number":262,"context_line":"            # and the volume status updated. Also, let the previous"},{"line_number":263,"context_line":"            # checks go first so we know what status the volume should"},{"line_number":264,"context_line":"            # be set to."},{"line_number":265,"context_line":"            utils.require_driver_initialized(self.driver)"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"            backup_service \u003d self.service.get_backup_driver(context)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FYc8%3D","line":264,"in_reply_to":"AAAAUH%2F%2FeU4%3D","updated":"2014-01-14 12:32:46.000000000","message":"Let me rephrase it","commit_id":"08a5ee345b9fb1df24c0b7eaf9054ad429414c69"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f44e6e6e87973f003d6313ad061b70a215e7be9b","unresolved":false,"context_lines":[{"line_number":343,"context_line":"            # before going forward. The exception will be caught"},{"line_number":344,"context_line":"            # and the volume status updated. Also, let the previous"},{"line_number":345,"context_line":"            # checks go first so we know what status the volume should"},{"line_number":346,"context_line":"            # be set to."},{"line_number":347,"context_line":"            utils.require_driver_initialized(self.driver)"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"            backup_service \u003d self.service.get_backup_driver(context)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FeUw%3D","line":346,"updated":"2014-01-13 14:40:08.000000000","message":"Same as above.","commit_id":"08a5ee345b9fb1df24c0b7eaf9054ad429414c69"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"da848ddb0be96afa7f69262b90df33762313d37f","unresolved":false,"context_lines":[{"line_number":343,"context_line":"            # before going forward. The exception will be caught"},{"line_number":344,"context_line":"            # and the volume status updated. Also, let the previous"},{"line_number":345,"context_line":"            # checks go first so we know what status the volume should"},{"line_number":346,"context_line":"            # be set to."},{"line_number":347,"context_line":"            utils.require_driver_initialized(self.driver)"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"            backup_service \u003d self.service.get_backup_driver(context)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FYbc%3D","line":346,"in_reply_to":"AAAAUH%2F%2FeUw%3D","updated":"2014-01-14 12:32:46.000000000","message":"Done","commit_id":"08a5ee345b9fb1df24c0b7eaf9054ad429414c69"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f44e6e6e87973f003d6313ad061b70a215e7be9b","unresolved":false,"context_lines":[{"line_number":368,"context_line":"        try:"},{"line_number":369,"context_line":"            # NOTE(flaper87): Verify the driver is enabled"},{"line_number":370,"context_line":"            # before going forward. The exception will be caught"},{"line_number":371,"context_line":"            # and the volume status updated. Fail early since there"},{"line_number":372,"context_line":"            # are no other status to change but backup\u0027s"},{"line_number":373,"context_line":"            utils.require_driver_initialized(self.driver)"},{"line_number":374,"context_line":"        except exception.DriverNotInitialized as err:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FeUk%3D","line":371,"updated":"2014-01-13 14:40:08.000000000","message":"s/volume/backup/","commit_id":"08a5ee345b9fb1df24c0b7eaf9054ad429414c69"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"da848ddb0be96afa7f69262b90df33762313d37f","unresolved":false,"context_lines":[{"line_number":368,"context_line":"        try:"},{"line_number":369,"context_line":"            # NOTE(flaper87): Verify the driver is enabled"},{"line_number":370,"context_line":"            # before going forward. The exception will be caught"},{"line_number":371,"context_line":"            # and the volume status updated. Fail early since there"},{"line_number":372,"context_line":"            # are no other status to change but backup\u0027s"},{"line_number":373,"context_line":"            utils.require_driver_initialized(self.driver)"},{"line_number":374,"context_line":"        except exception.DriverNotInitialized as err:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FYbM%3D","line":371,"in_reply_to":"AAAAUH%2F%2FeUk%3D","updated":"2014-01-14 12:32:46.000000000","message":"Done","commit_id":"08a5ee345b9fb1df24c0b7eaf9054ad429414c69"}],"cinder/tests/test_volume.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"c6e835925284192506416d8108887261ec0597a1","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        self.volume.delete_volume(self.context, volume_id)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def test_create_driver_not_initialized(self):"},{"line_number":150,"context_line":"        # NOTE(flaper87): Set initialized to False"},{"line_number":151,"context_line":"        self.volume.driver._initialized \u003d False"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        def fake_reserve(context, expire\u003dNone, project_id\u003dNone, **deltas):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2Fqms%3D","line":150,"updated":"2014-01-09 22:19:21.000000000","message":"These comments might be a bit redundant.","commit_id":"08a5ee345b9fb1df24c0b7eaf9054ad429414c69"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"da848ddb0be96afa7f69262b90df33762313d37f","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        self.volume.delete_volume(self.context, volume_id)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def test_create_driver_not_initialized(self):"},{"line_number":150,"context_line":"        # NOTE(flaper87): Set initialized to False"},{"line_number":151,"context_line":"        self.volume.driver._initialized \u003d False"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        def fake_reserve(context, expire\u003dNone, project_id\u003dNone, **deltas):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FYTw%3D","line":150,"in_reply_to":"AAAAUH%2F%2Fqms%3D","updated":"2014-01-14 12:32:46.000000000","message":"Done","commit_id":"08a5ee345b9fb1df24c0b7eaf9054ad429414c69"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f44e6e6e87973f003d6313ad061b70a215e7be9b","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        def fake_rollback(context, reservations, project_id\u003dNone):"},{"line_number":160,"context_line":"            pass"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        self.stubs.Set(QUOTAS, \"reserve\", fake_reserve)"},{"line_number":163,"context_line":"        self.stubs.Set(QUOTAS, \"commit\", fake_commit)"},{"line_number":164,"context_line":"        self.stubs.Set(QUOTAS, \"rollback\", fake_rollback)"},{"line_number":165,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FeVw%3D","line":162,"updated":"2014-01-13 14:40:08.000000000","message":"Please use mock for new tests rather than mox/stubs (for all cases in this patch)","commit_id":"08a5ee345b9fb1df24c0b7eaf9054ad429414c69"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"da848ddb0be96afa7f69262b90df33762313d37f","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        def fake_rollback(context, reservations, project_id\u003dNone):"},{"line_number":160,"context_line":"            pass"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        self.stubs.Set(QUOTAS, \"reserve\", fake_reserve)"},{"line_number":163,"context_line":"        self.stubs.Set(QUOTAS, \"commit\", fake_commit)"},{"line_number":164,"context_line":"        self.stubs.Set(QUOTAS, \"rollback\", fake_rollback)"},{"line_number":165,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FYT0%3D","line":162,"in_reply_to":"AAAAUH%2F%2FeVw%3D","updated":"2014-01-14 12:32:46.000000000","message":"Done","commit_id":"08a5ee345b9fb1df24c0b7eaf9054ad429414c69"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"c6e835925284192506416d8108887261ec0597a1","unresolved":false,"context_lines":[{"line_number":209,"context_line":"                          self.volume.delete_volume,"},{"line_number":210,"context_line":"                          self.context, volume_id)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        # NOTE(flaper87): The volume status should be error."},{"line_number":213,"context_line":"        volume \u003d db.volume_get(context.get_admin_context(), volume_id)"},{"line_number":214,"context_line":"        self.assertEqual(volume.status, \"error_deleting\")"},{"line_number":215,"context_line":"        db.volume_destroy(context.get_admin_context(), volume_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2Fqmo%3D","line":212,"updated":"2014-01-09 22:19:21.000000000","message":"\"error\" -\u003e \"error_deleting\"","commit_id":"08a5ee345b9fb1df24c0b7eaf9054ad429414c69"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"da848ddb0be96afa7f69262b90df33762313d37f","unresolved":false,"context_lines":[{"line_number":209,"context_line":"                          self.volume.delete_volume,"},{"line_number":210,"context_line":"                          self.context, volume_id)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        # NOTE(flaper87): The volume status should be error."},{"line_number":213,"context_line":"        volume \u003d db.volume_get(context.get_admin_context(), volume_id)"},{"line_number":214,"context_line":"        self.assertEqual(volume.status, \"error_deleting\")"},{"line_number":215,"context_line":"        db.volume_destroy(context.get_admin_context(), volume_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FYT4%3D","line":212,"in_reply_to":"AAAAUH%2F%2Fqmo%3D","updated":"2014-01-14 12:32:46.000000000","message":"Done","commit_id":"08a5ee345b9fb1df24c0b7eaf9054ad429414c69"}],"cinder/utils.py":[{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"fac8ea18cfad88042db546e9e68c8fa23db939fa","unresolved":false,"context_lines":[{"line_number":824,"context_line":"    # we can\u0027t do anything if the driver didn\u0027t init"},{"line_number":825,"context_line":"    if not driver.initialized:"},{"line_number":826,"context_line":"        driver_name \u003d driver.__class__.__name__"},{"line_number":827,"context_line":"        raise exception.DriverNotInitialized(driver\u003ddriver_name)"},{"line_number":828,"context_line":""},{"line_number":829,"context_line":""},{"line_number":830,"context_line":"def get_file_mode(path):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9hSg%3D","line":827,"updated":"2013-12-10 16:49:10.000000000","message":"To Duncan\u0027s point, I\u0027m not sure about raising the driver name, I think we could add a log statement here and leave the driver name out of the exception message.","commit_id":"a5daccd438ff48e234a29ea5fa299a9e57d4d02c"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"ff4b5230453ecd44881c00b4cf375b540f20f3d0","unresolved":false,"context_lines":[{"line_number":824,"context_line":"    # we can\u0027t do anything if the driver didn\u0027t init"},{"line_number":825,"context_line":"    if not driver.initialized:"},{"line_number":826,"context_line":"        driver_name \u003d driver.__class__.__name__"},{"line_number":827,"context_line":"        raise exception.DriverNotInitialized(driver\u003ddriver_name)"},{"line_number":828,"context_line":""},{"line_number":829,"context_line":""},{"line_number":830,"context_line":"def get_file_mode(path):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9fvA%3D","line":827,"in_reply_to":"AAAATn%2F9hSg%3D","updated":"2013-12-10 22:31:15.000000000","message":"This is definitely a good concern. TBH, I don\u0027t think the driver\u0027s name contains sensible data but I agree the user shouldn\u0027t care about what driver is not initialized. The admins do, though. A log message makes sense to me. I\u0027ll add that and remove the driver name from the exception.","commit_id":"a5daccd438ff48e234a29ea5fa299a9e57d4d02c"}],"cinder/volume/flows/create_volume/__init__.py":[{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"fac8ea18cfad88042db546e9e68c8fa23db939fa","unresolved":false,"context_lines":[{"line_number":1484,"context_line":"            # NOTE(flaper87): Set the error status before"},{"line_number":1485,"context_line":"            # raising any exception."},{"line_number":1486,"context_line":"            self.db.volume_update(context, volume_id, dict(status\u003d\u0027error\u0027))"},{"line_number":1487,"context_line":"            raise exception.DriverNotInitialized(driver\u003ddriver_name)"},{"line_number":1488,"context_line":""},{"line_number":1489,"context_line":"        create_type \u003d volume_spec.pop(\u0027type\u0027, None)"},{"line_number":1490,"context_line":"        create_functor \u003d self._create_func_mapping.get(create_type)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9hSE%3D","line":1487,"updated":"2013-12-10 16:49:10.000000000","message":"Same here... I realize this isn\u0027t your change, but maybe while you\u0027re here we could/should scrub these?","commit_id":"a5daccd438ff48e234a29ea5fa299a9e57d4d02c"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f44e6e6e87973f003d6313ad061b70a215e7be9b","unresolved":false,"context_lines":[{"line_number":1407,"context_line":""},{"line_number":1408,"context_line":"            # NOTE(flaper87): Set the error status before"},{"line_number":1409,"context_line":"            # raising any exception."},{"line_number":1410,"context_line":"            self.db.volume_update(context, volume_id, dict(status\u003d\u0027error\u0027))"},{"line_number":1411,"context_line":"            raise exception.DriverNotInitialized()"},{"line_number":1412,"context_line":""},{"line_number":1413,"context_line":"        create_type \u003d volume_spec.pop(\u0027type\u0027, None)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FeWU%3D","line":1410,"updated":"2014-01-13 14:40:08.000000000","message":"Why set the status to error only in this case?  What about all the other exceptions that we raise here - does the status not get updated?  Should we define a revert function for the task that calls _error_out_volume?","commit_id":"08a5ee345b9fb1df24c0b7eaf9054ad429414c69"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"da848ddb0be96afa7f69262b90df33762313d37f","unresolved":false,"context_lines":[{"line_number":1407,"context_line":""},{"line_number":1408,"context_line":"            # NOTE(flaper87): Set the error status before"},{"line_number":1409,"context_line":"            # raising any exception."},{"line_number":1410,"context_line":"            self.db.volume_update(context, volume_id, dict(status\u003d\u0027error\u0027))"},{"line_number":1411,"context_line":"            raise exception.DriverNotInitialized()"},{"line_number":1412,"context_line":""},{"line_number":1413,"context_line":"        create_type \u003d volume_spec.pop(\u0027type\u0027, None)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FYcQ%3D","line":1410,"in_reply_to":"AAAAUH%2F%2FeWU%3D","updated":"2014-01-14 12:32:46.000000000","message":"I\u0027m not sure whether all the other cases should be changed here. If they do, that should be done in a separate patch. IMHO.","commit_id":"08a5ee345b9fb1df24c0b7eaf9054ad429414c69"}],"cinder/volume/manager.py":[{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f44e6e6e87973f003d6313ad061b70a215e7be9b","unresolved":false,"context_lines":[{"line_number":439,"context_line":"        try:"},{"line_number":440,"context_line":"            # NOTE(flaper87): Verify the driver is enabled"},{"line_number":441,"context_line":"            # before going forward. The exception will be caught"},{"line_number":442,"context_line":"            # and the volume status updated."},{"line_number":443,"context_line":"            utils.require_driver_initialized(self.driver)"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"            LOG.debug(_(\"snapshot %(snap_id)s: creating\"),"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FecI%3D","line":442,"updated":"2014-01-13 14:40:08.000000000","message":"s/volume/snapshot/","commit_id":"08a5ee345b9fb1df24c0b7eaf9054ad429414c69"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"da848ddb0be96afa7f69262b90df33762313d37f","unresolved":false,"context_lines":[{"line_number":439,"context_line":"        try:"},{"line_number":440,"context_line":"            # NOTE(flaper87): Verify the driver is enabled"},{"line_number":441,"context_line":"            # before going forward. The exception will be caught"},{"line_number":442,"context_line":"            # and the volume status updated."},{"line_number":443,"context_line":"            utils.require_driver_initialized(self.driver)"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"            LOG.debug(_(\"snapshot %(snap_id)s: creating\"),"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FYTY%3D","line":442,"in_reply_to":"AAAAUH%2F%2FecI%3D","updated":"2014-01-14 12:32:46.000000000","message":"Done","commit_id":"08a5ee345b9fb1df24c0b7eaf9054ad429414c69"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f44e6e6e87973f003d6313ad061b70a215e7be9b","unresolved":false,"context_lines":[{"line_number":495,"context_line":"        try:"},{"line_number":496,"context_line":"            # NOTE(flaper87): Verify the driver is enabled"},{"line_number":497,"context_line":"            # before going forward. The exception will be caught"},{"line_number":498,"context_line":"            # and the volume status updated."},{"line_number":499,"context_line":"            utils.require_driver_initialized(self.driver)"},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"            LOG.debug(_(\"snapshot %s: deleting\"), snapshot_ref[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2Febw%3D","line":498,"updated":"2014-01-13 14:40:08.000000000","message":"s/volume/snapshot/","commit_id":"08a5ee345b9fb1df24c0b7eaf9054ad429414c69"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"da848ddb0be96afa7f69262b90df33762313d37f","unresolved":false,"context_lines":[{"line_number":495,"context_line":"        try:"},{"line_number":496,"context_line":"            # NOTE(flaper87): Verify the driver is enabled"},{"line_number":497,"context_line":"            # before going forward. The exception will be caught"},{"line_number":498,"context_line":"            # and the volume status updated."},{"line_number":499,"context_line":"            utils.require_driver_initialized(self.driver)"},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"            LOG.debug(_(\"snapshot %s: deleting\"), snapshot_ref[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FYTE%3D","line":498,"in_reply_to":"AAAAUH%2F%2Febw%3D","updated":"2014-01-14 12:32:46.000000000","message":"Done","commit_id":"08a5ee345b9fb1df24c0b7eaf9054ad429414c69"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"f44e6e6e87973f003d6313ad061b70a215e7be9b","unresolved":false,"context_lines":[{"line_number":906,"context_line":"        try:"},{"line_number":907,"context_line":"            # NOTE(flaper87): Verify the driver is enabled"},{"line_number":908,"context_line":"            # before going forward. The exception will be caught"},{"line_number":909,"context_line":"            # and the volume status updated."},{"line_number":910,"context_line":"            utils.require_driver_initialized(self.driver)"},{"line_number":911,"context_line":"        except exception.DriverNotInitialized:"},{"line_number":912,"context_line":"            with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2Feaw%3D","line":909,"updated":"2014-01-13 14:40:08.000000000","message":"s/volume/migration/","commit_id":"08a5ee345b9fb1df24c0b7eaf9054ad429414c69"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"da848ddb0be96afa7f69262b90df33762313d37f","unresolved":false,"context_lines":[{"line_number":906,"context_line":"        try:"},{"line_number":907,"context_line":"            # NOTE(flaper87): Verify the driver is enabled"},{"line_number":908,"context_line":"            # before going forward. The exception will be caught"},{"line_number":909,"context_line":"            # and the volume status updated."},{"line_number":910,"context_line":"            utils.require_driver_initialized(self.driver)"},{"line_number":911,"context_line":"        except exception.DriverNotInitialized:"},{"line_number":912,"context_line":"            with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FYS8%3D","line":909,"in_reply_to":"AAAAUH%2F%2Feaw%3D","updated":"2014-01-14 12:32:46.000000000","message":"Done","commit_id":"08a5ee345b9fb1df24c0b7eaf9054ad429414c69"}]}
