)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"77ca8a102ba15e666df64e1ffd3ae1ef0db772ed","unresolved":false,"context_lines":[{"line_number":13,"context_line":"- Create volume flows for volume.api, volume.manager and"},{"line_number":14,"context_line":"  scheduler.manager were updated to use taskFlow 0.0.1"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"- Rescheduling was removed from flow revert because logically it is"},{"line_number":17,"context_line":"  not a part of revert, also rescheduling raises exceptions. Exceptions"},{"line_number":18,"context_line":"  are not allowed during the revert because it automatically stops the"},{"line_number":19,"context_line":"  revert and turns the flow into FAILURE state."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAATn%2F9%2Bqo%3D","line":16,"updated":"2013-12-03 20:18:48.000000000","message":"I think this deserves its own commit right? Your reasons are likely valid (in that rescheduling may not logically be a revert - since its more of a retry mechanism, not a reversion one in a way). Rescheduling via the previous mechanism shouldn\u0027t itself raise its own exceptions, if so that seems like a bug (or I missed a catch that should of occurred).","commit_id":"a9b450bdca8e81d4a3e7aa6bcdba45c8a73bea5c"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"5b8bced365ff1d2c3a809c6c8a092d6921a68473","unresolved":false,"context_lines":[{"line_number":11,"context_line":"- TaskFlow 0.1.1 was added to Cinder requirements."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"- Create volume flows for volume.api, volume.manager and"},{"line_number":14,"context_line":"  scheduler.manager were updated to use taskFlow 0.0.1"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Partially implements: blueprint create-volume-flow"},{"line_number":17,"context_line":"Change-Id: Idbac8d001436f02978b366fbb3205ce84c847267"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"AAAATn%2F94Mo%3D","line":14,"updated":"2013-12-04 23:08:55.000000000","message":"0.1.1 not 0.0.1?","commit_id":"a7b3a846a8f104669ab12697eb0fa070e100b6bc"}],"cinder/volume/api.py":[{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"16e2b89a8d1c30921e3ac193a68b527bb6d0e218","unresolved":false,"context_lines":[{"line_number":157,"context_line":"            \u0027key_manager\u0027: self.key_manager,"},{"line_number":158,"context_line":"            \u0027backup_source_volume\u0027: backup_source_volume,"},{"line_number":159,"context_line":"        }"},{"line_number":160,"context_line":"        flow_engine \u003d create_volume.get_api_flow(self.scheduler_rpcapi,"},{"line_number":161,"context_line":"                                                 self.volume_rpcapi,"},{"line_number":162,"context_line":"                                                 self.db,"},{"line_number":163,"context_line":"                                                 self.image_service,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9p58%3D","line":160,"updated":"2013-12-09 08:51:03.000000000","message":"is it true all get_api_flow() all always return a flow without any exception?","commit_id":"a7b3a846a8f104669ab12697eb0fa070e100b6bc"},{"author":{"_account_id":7349,"name":"Anastasia Karpinska","email":"akarpinska@griddynamics.com","username":"anastasia-karpinska"},"change_message_id":"fc56141bd6b547fab045e5ddddf3fe7635872caa","unresolved":false,"context_lines":[{"line_number":157,"context_line":"            \u0027key_manager\u0027: self.key_manager,"},{"line_number":158,"context_line":"            \u0027backup_source_volume\u0027: backup_source_volume,"},{"line_number":159,"context_line":"        }"},{"line_number":160,"context_line":"        flow_engine \u003d create_volume.get_api_flow(self.scheduler_rpcapi,"},{"line_number":161,"context_line":"                                                 self.volume_rpcapi,"},{"line_number":162,"context_line":"                                                 self.db,"},{"line_number":163,"context_line":"                                                 self.image_service,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9pmI%3D","line":160,"in_reply_to":"AAAATn%2F9p58%3D","updated":"2013-12-09 10:46:20.000000000","message":"No, if flow fails because of some exception, it reverts to the previous state and reraises this exception. Otherwise flow returns a value.","commit_id":"a7b3a846a8f104669ab12697eb0fa070e100b6bc"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"1bb8bd1755a4507e16ad309c30d8b66f0b3651b0","unresolved":false,"context_lines":[{"line_number":158,"context_line":"            \u0027key_manager\u0027: self.key_manager,"},{"line_number":159,"context_line":"            \u0027backup_source_volume\u0027: backup_source_volume,"},{"line_number":160,"context_line":"        }"},{"line_number":161,"context_line":"        flow_engine \u003d create_volume.get_api_flow(self.scheduler_rpcapi,"},{"line_number":162,"context_line":"                                                 self.volume_rpcapi,"},{"line_number":163,"context_line":"                                                 self.db,"},{"line_number":164,"context_line":"                                                 self.image_service,"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATn%2F9XT4%3D","line":161,"updated":"2013-12-12 08:14:41.000000000","message":"and here please make sure get_api_flow() exception is handled nicely as well.","commit_id":"60eb2b99585ea3a4275f0129a6f6025205aa8af3"},{"author":{"_account_id":7349,"name":"Anastasia Karpinska","email":"akarpinska@griddynamics.com","username":"anastasia-karpinska"},"change_message_id":"e3b6d4993139524c089665d27cd80b0190d3249c","unresolved":false,"context_lines":[{"line_number":158,"context_line":"            \u0027key_manager\u0027: self.key_manager,"},{"line_number":159,"context_line":"            \u0027backup_source_volume\u0027: backup_source_volume,"},{"line_number":160,"context_line":"        }"},{"line_number":161,"context_line":"        flow_engine \u003d create_volume.get_api_flow(self.scheduler_rpcapi,"},{"line_number":162,"context_line":"                                                 self.volume_rpcapi,"},{"line_number":163,"context_line":"                                                 self.db,"},{"line_number":164,"context_line":"                                                 self.image_service,"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATn%2F9XIU%3D","line":161,"in_reply_to":"AAAATn%2F9XT4%3D","updated":"2013-12-12 08:55:26.000000000","message":"Done","commit_id":"60eb2b99585ea3a4275f0129a6f6025205aa8af3"}],"cinder/volume/flows/create_volume/__init__.py":[{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"77ca8a102ba15e666df64e1ffd3ae1ef0db772ed","unresolved":false,"context_lines":[{"line_number":837,"context_line":"        LOG.error(_(\u0027Unexpected build error:\u0027), exc_info\u003dexc_info)"},{"line_number":838,"context_line":""},{"line_number":839,"context_line":""},{"line_number":840,"context_line":"class OnFailureRescheduleTask(base.CinderTask):"},{"line_number":841,"context_line":"    \"\"\"Triggers a rescheduling request to be sent when reverting occurs."},{"line_number":842,"context_line":""},{"line_number":843,"context_line":"    Reversion strategy: Triggers the rescheduling mechanism whereby a cast gets"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9%2BrU%3D","side":"PARENT","line":840,"updated":"2013-12-03 20:18:48.000000000","message":"I\u0027m unsure why this needs to be removed at this stage? Seems like removing this big chunk isn\u0027t needed just to move to 0.1.1 (or could be done in a followup which just isolates this move due to your stated reasons - which I think are valid but likely don\u0027t need to be done in this commit).","commit_id":"f573b7e3b6bf473c4e5970a9cc1426b4c0a4f767"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"16e2b89a8d1c30921e3ac193a68b527bb6d0e218","unresolved":false,"context_lines":[{"line_number":20,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":21,"context_line":"#    under the License."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"import traceback"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from oslo.config import cfg"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9p9k%3D","side":"PARENT","line":23,"updated":"2013-12-09 08:51:03.000000000","message":"this shouldn\u0027t be moved.","commit_id":"81ce121d782f9d419ff3eaa6f29f8b3df990e0c4"},{"author":{"_account_id":7349,"name":"Anastasia Karpinska","email":"akarpinska@griddynamics.com","username":"anastasia-karpinska"},"change_message_id":"fc56141bd6b547fab045e5ddddf3fe7635872caa","unresolved":false,"context_lines":[{"line_number":20,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":21,"context_line":"#    under the License."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"import traceback"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from oslo.config import cfg"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9pYg%3D","side":"PARENT","line":23,"in_reply_to":"AAAATn%2F9p9k%3D","updated":"2013-12-09 10:46:20.000000000","message":"Done","commit_id":"81ce121d782f9d419ff3eaa6f29f8b3df990e0c4"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"16e2b89a8d1c30921e3ac193a68b527bb6d0e218","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        # It also is used to be able to link tasks that produce items to tasks"},{"line_number":187,"context_line":"        # that consume items (thus allowing the linking of the flow to be"},{"line_number":188,"context_line":"        # mostly automatic)."},{"line_number":189,"context_line":"        self.requires.update([\u0027availability_zone\u0027, \u0027image_id\u0027, \u0027metadata\u0027,"},{"line_number":190,"context_line":"                              \u0027size\u0027, \u0027snapshot\u0027, \u0027source_volume\u0027,"},{"line_number":191,"context_line":"                              \u0027volume_type\u0027, \u0027key_manager\u0027,"},{"line_number":192,"context_line":"                              \u0027backup_source_volume\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9p5E%3D","side":"PARENT","line":189,"updated":"2013-12-09 08:51:03.000000000","message":"all these requirements are no longer needed?","commit_id":"81ce121d782f9d419ff3eaa6f29f8b3df990e0c4"},{"author":{"_account_id":7349,"name":"Anastasia Karpinska","email":"akarpinska@griddynamics.com","username":"anastasia-karpinska"},"change_message_id":"fc56141bd6b547fab045e5ddddf3fe7635872caa","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        # It also is used to be able to link tasks that produce items to tasks"},{"line_number":187,"context_line":"        # that consume items (thus allowing the linking of the flow to be"},{"line_number":188,"context_line":"        # mostly automatic)."},{"line_number":189,"context_line":"        self.requires.update([\u0027availability_zone\u0027, \u0027image_id\u0027, \u0027metadata\u0027,"},{"line_number":190,"context_line":"                              \u0027size\u0027, \u0027snapshot\u0027, \u0027source_volume\u0027,"},{"line_number":191,"context_line":"                              \u0027volume_type\u0027, \u0027key_manager\u0027,"},{"line_number":192,"context_line":"                              \u0027backup_source_volume\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9pl8%3D","side":"PARENT","line":189,"in_reply_to":"AAAATn%2F9p5E%3D","updated":"2013-12-09 10:46:20.000000000","message":"Requirements are fetched automatically from execute method parameters.","commit_id":"81ce121d782f9d419ff3eaa6f29f8b3df990e0c4"},{"author":{"_account_id":7366,"name":"Ivan Melnikov","email":"imelnikov@griddynamics.com","username":"imelnikov"},"change_message_id":"5e5fa3d933f1c5f22dcc7e8b56e75cc13b3866f2","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        # It also is used to be able to link tasks that produce items to tasks"},{"line_number":187,"context_line":"        # that consume items (thus allowing the linking of the flow to be"},{"line_number":188,"context_line":"        # mostly automatic)."},{"line_number":189,"context_line":"        self.requires.update([\u0027availability_zone\u0027, \u0027image_id\u0027, \u0027metadata\u0027,"},{"line_number":190,"context_line":"                              \u0027size\u0027, \u0027snapshot\u0027, \u0027source_volume\u0027,"},{"line_number":191,"context_line":"                              \u0027volume_type\u0027, \u0027key_manager\u0027,"},{"line_number":192,"context_line":"                              \u0027backup_source_volume\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9pO0%3D","side":"PARENT","line":189,"in_reply_to":"AAAATn%2F9pl8%3D","updated":"2013-12-09 11:25:10.000000000","message":"Just in case, task arguments inference is described in TaskFlow docs there:  https://wiki.openstack.org/wiki/TaskFlow/Task_Arguments_and_Results#Arguments_Inference","commit_id":"81ce121d782f9d419ff3eaa6f29f8b3df990e0c4"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"16e2b89a8d1c30921e3ac193a68b527bb6d0e218","unresolved":false,"context_lines":[{"line_number":605,"context_line":""},{"line_number":606,"context_line":"    def __init__(self):"},{"line_number":607,"context_line":"        super(QuotaReserveTask, self).__init__(addons\u003d[ACTION])"},{"line_number":608,"context_line":"        self.requires.update([\u0027size\u0027, \u0027volume_type_id\u0027])"},{"line_number":609,"context_line":"        self.provides.update([\u0027reservations\u0027])"},{"line_number":610,"context_line":""},{"line_number":611,"context_line":"    def __call__(self, context, size, volume_type_id):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9p1c%3D","side":"PARENT","line":608,"updated":"2013-12-09 08:51:03.000000000","message":"size and volume_type_id are longer considered required?","commit_id":"81ce121d782f9d419ff3eaa6f29f8b3df990e0c4"},{"author":{"_account_id":7349,"name":"Anastasia Karpinska","email":"akarpinska@griddynamics.com","username":"anastasia-karpinska"},"change_message_id":"fc56141bd6b547fab045e5ddddf3fe7635872caa","unresolved":false,"context_lines":[{"line_number":605,"context_line":""},{"line_number":606,"context_line":"    def __init__(self):"},{"line_number":607,"context_line":"        super(QuotaReserveTask, self).__init__(addons\u003d[ACTION])"},{"line_number":608,"context_line":"        self.requires.update([\u0027size\u0027, \u0027volume_type_id\u0027])"},{"line_number":609,"context_line":"        self.provides.update([\u0027reservations\u0027])"},{"line_number":610,"context_line":""},{"line_number":611,"context_line":"    def __call__(self, context, size, volume_type_id):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9pl0%3D","side":"PARENT","line":608,"in_reply_to":"AAAATn%2F9p1c%3D","updated":"2013-12-09 10:46:20.000000000","message":"Fetched automatically from execute() parameters.","commit_id":"81ce121d782f9d419ff3eaa6f29f8b3df990e0c4"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"16e2b89a8d1c30921e3ac193a68b527bb6d0e218","unresolved":false,"context_lines":[{"line_number":691,"context_line":""},{"line_number":692,"context_line":"    def __init__(self):"},{"line_number":693,"context_line":"        super(QuotaCommitTask, self).__init__(addons\u003d[ACTION])"},{"line_number":694,"context_line":"        self.requires.update([\u0027reservations\u0027, \u0027volume_properties\u0027])"},{"line_number":695,"context_line":""},{"line_number":696,"context_line":"    def __call__(self, context, reservations, volume_properties):"},{"line_number":697,"context_line":"        QUOTAS.commit(context, reservations)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9p1Q%3D","side":"PARENT","line":694,"updated":"2013-12-09 08:51:03.000000000","message":"not required anymore?","commit_id":"81ce121d782f9d419ff3eaa6f29f8b3df990e0c4"},{"author":{"_account_id":7349,"name":"Anastasia Karpinska","email":"akarpinska@griddynamics.com","username":"anastasia-karpinska"},"change_message_id":"fc56141bd6b547fab045e5ddddf3fe7635872caa","unresolved":false,"context_lines":[{"line_number":691,"context_line":""},{"line_number":692,"context_line":"    def __init__(self):"},{"line_number":693,"context_line":"        super(QuotaCommitTask, self).__init__(addons\u003d[ACTION])"},{"line_number":694,"context_line":"        self.requires.update([\u0027reservations\u0027, \u0027volume_properties\u0027])"},{"line_number":695,"context_line":""},{"line_number":696,"context_line":"    def __call__(self, context, reservations, volume_properties):"},{"line_number":697,"context_line":"        QUOTAS.commit(context, reservations)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9pls%3D","side":"PARENT","line":694,"in_reply_to":"AAAATn%2F9p1Q%3D","updated":"2013-12-09 10:46:20.000000000","message":"The same","commit_id":"81ce121d782f9d419ff3eaa6f29f8b3df990e0c4"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"16e2b89a8d1c30921e3ac193a68b527bb6d0e218","unresolved":false,"context_lines":[{"line_number":38,"context_line":"from cinder.volume import utils as volume_utils"},{"line_number":39,"context_line":"from cinder.volume import volume_types"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"import taskflow.engines"},{"line_number":42,"context_line":"from taskflow.patterns import linear_flow"},{"line_number":43,"context_line":"from taskflow import task"},{"line_number":44,"context_line":"from taskflow.utils import misc"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9p9s%3D","line":41,"updated":"2013-12-09 08:51:03.000000000","message":"please move these imports to the same block as oslo.config","commit_id":"a7b3a846a8f104669ab12697eb0fa070e100b6bc"},{"author":{"_account_id":7349,"name":"Anastasia Karpinska","email":"akarpinska@griddynamics.com","username":"anastasia-karpinska"},"change_message_id":"fc56141bd6b547fab045e5ddddf3fe7635872caa","unresolved":false,"context_lines":[{"line_number":38,"context_line":"from cinder.volume import utils as volume_utils"},{"line_number":39,"context_line":"from cinder.volume import volume_types"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"import taskflow.engines"},{"line_number":42,"context_line":"from taskflow.patterns import linear_flow"},{"line_number":43,"context_line":"from taskflow import task"},{"line_number":44,"context_line":"from taskflow.utils import misc"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9pYo%3D","line":41,"in_reply_to":"AAAATn%2F9p9s%3D","updated":"2013-12-09 10:46:20.000000000","message":"Done","commit_id":"a7b3a846a8f104669ab12697eb0fa070e100b6bc"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"7a79ecb3b35cf0e4d9f48ff5068caab57b63cfea","unresolved":false,"context_lines":[{"line_number":938,"context_line":"        for failure in flow_failures.values():"},{"line_number":939,"context_line":"            if failure.check(self.no_reschedule_types):"},{"line_number":940,"context_line":"                return"},{"line_number":941,"context_line":"        else:"},{"line_number":942,"context_line":"            try:"},{"line_number":943,"context_line":"                cause \u003d list(flow_failures.values())[0]"},{"line_number":944,"context_line":"                self._pre_reschedule(context, volume_id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9gyY%3D","line":941,"updated":"2013-12-10 19:37:45.000000000","message":"should this \u0027else\u0027 be removed?  it\u0027s redundant here.","commit_id":"54d0ffaf8ad4c66a28cc709aef36a7e384535831"},{"author":{"_account_id":7349,"name":"Anastasia Karpinska","email":"akarpinska@griddynamics.com","username":"anastasia-karpinska"},"change_message_id":"856a2ffde2ff54e5951be1b0c006a07a3f04baa3","unresolved":false,"context_lines":[{"line_number":938,"context_line":"        for failure in flow_failures.values():"},{"line_number":939,"context_line":"            if failure.check(self.no_reschedule_types):"},{"line_number":940,"context_line":"                return"},{"line_number":941,"context_line":"        else:"},{"line_number":942,"context_line":"            try:"},{"line_number":943,"context_line":"                cause \u003d list(flow_failures.values())[0]"},{"line_number":944,"context_line":"                self._pre_reschedule(context, volume_id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9dTA%3D","line":941,"in_reply_to":"AAAATn%2F9gyY%3D","updated":"2013-12-11 10:19:00.000000000","message":"Done","commit_id":"54d0ffaf8ad4c66a28cc709aef36a7e384535831"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"b2f5d07ac59833defb4fd3d7d03f2d15ba2d34d5","unresolved":false,"context_lines":[{"line_number":631,"context_line":"                        \"already consumed)\")"},{"line_number":632,"context_line":"                LOG.warn(msg % {\u0027s_pid\u0027: context.project_id,"},{"line_number":633,"context_line":"                                \u0027d_consumed\u0027: _consumed(\u0027volumes\u0027)})"},{"line_number":634,"context_line":"                allowed \u003d quotas[\u0027volumes\u0027]"},{"line_number":635,"context_line":"                raise exception.VolumeLimitExceeded(allowed\u003dquotas[\u0027volumes\u0027])"},{"line_number":636,"context_line":"            else:"},{"line_number":637,"context_line":"                # If nothing was reraised, ensure we reraise the initial error"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F9fX4%3D","line":634,"updated":"2013-12-10 23:57:44.000000000","message":"unused variable \"allowed\"","commit_id":"17176d1535716ce853fdd9f868a5b66d9c5bb75d"},{"author":{"_account_id":7349,"name":"Anastasia Karpinska","email":"akarpinska@griddynamics.com","username":"anastasia-karpinska"},"change_message_id":"97eb31312665e9536766b68607ca696f51781c0a","unresolved":false,"context_lines":[{"line_number":631,"context_line":"                        \"already consumed)\")"},{"line_number":632,"context_line":"                LOG.warn(msg % {\u0027s_pid\u0027: context.project_id,"},{"line_number":633,"context_line":"                                \u0027d_consumed\u0027: _consumed(\u0027volumes\u0027)})"},{"line_number":634,"context_line":"                allowed \u003d quotas[\u0027volumes\u0027]"},{"line_number":635,"context_line":"                raise exception.VolumeLimitExceeded(allowed\u003dquotas[\u0027volumes\u0027])"},{"line_number":636,"context_line":"            else:"},{"line_number":637,"context_line":"                # If nothing was reraised, ensure we reraise the initial error"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F9dTI%3D","line":634,"in_reply_to":"AAAATn%2F9fX4%3D","updated":"2013-12-11 10:29:31.000000000","message":"Done","commit_id":"17176d1535716ce853fdd9f868a5b66d9c5bb75d"}],"cinder/volume/manager.py":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"b2f5d07ac59833defb4fd3d7d03f2d15ba2d34d5","unresolved":false,"context_lines":[{"line_number":38,"context_line":"\"\"\""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"import sys"},{"line_number":42,"context_line":"import time"},{"line_number":43,"context_line":"import traceback"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F9fWo%3D","line":41,"updated":"2013-12-10 23:57:44.000000000","message":"unused import","commit_id":"17176d1535716ce853fdd9f868a5b66d9c5bb75d"},{"author":{"_account_id":7349,"name":"Anastasia Karpinska","email":"akarpinska@griddynamics.com","username":"anastasia-karpinska"},"change_message_id":"97eb31312665e9536766b68607ca696f51781c0a","unresolved":false,"context_lines":[{"line_number":38,"context_line":"\"\"\""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"import sys"},{"line_number":42,"context_line":"import time"},{"line_number":43,"context_line":"import traceback"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F9dSs%3D","line":41,"in_reply_to":"AAAATn%2F9fWo%3D","updated":"2013-12-11 10:29:31.000000000","message":"Done","commit_id":"17176d1535716ce853fdd9f868a5b66d9c5bb75d"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"b2f5d07ac59833defb4fd3d7d03f2d15ba2d34d5","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"import sys"},{"line_number":42,"context_line":"import time"},{"line_number":43,"context_line":"import traceback"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"from oslo.config import cfg"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F9fWk%3D","line":43,"updated":"2013-12-10 23:57:44.000000000","message":"unused import","commit_id":"17176d1535716ce853fdd9f868a5b66d9c5bb75d"},{"author":{"_account_id":7349,"name":"Anastasia Karpinska","email":"akarpinska@griddynamics.com","username":"anastasia-karpinska"},"change_message_id":"97eb31312665e9536766b68607ca696f51781c0a","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"import sys"},{"line_number":42,"context_line":"import time"},{"line_number":43,"context_line":"import traceback"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"from oslo.config import cfg"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F9dSk%3D","line":43,"in_reply_to":"AAAATn%2F9fWk%3D","updated":"2013-12-11 10:29:31.000000000","message":"Done","commit_id":"17176d1535716ce853fdd9f868a5b66d9c5bb75d"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"b2f5d07ac59833defb4fd3d7d03f2d15ba2d34d5","unresolved":false,"context_lines":[{"line_number":321,"context_line":"            locked_action \u003d None"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"        def _run_flow():"},{"line_number":324,"context_line":"            flow_engine.run()"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"        @utils.synchronized(locked_action, external\u003dTrue)"},{"line_number":327,"context_line":"        def _run_flow_locked():"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F9fUQ%3D","line":324,"updated":"2013-12-10 23:57:44.000000000","message":"Can we add some comments here that mentions failures and what happens.  So that one doesn\u0027t think that the code following a run call executes?","commit_id":"17176d1535716ce853fdd9f868a5b66d9c5bb75d"},{"author":{"_account_id":7349,"name":"Anastasia Karpinska","email":"akarpinska@griddynamics.com","username":"anastasia-karpinska"},"change_message_id":"97eb31312665e9536766b68607ca696f51781c0a","unresolved":false,"context_lines":[{"line_number":321,"context_line":"            locked_action \u003d None"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"        def _run_flow():"},{"line_number":324,"context_line":"            flow_engine.run()"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"        @utils.synchronized(locked_action, external\u003dTrue)"},{"line_number":327,"context_line":"        def _run_flow_locked():"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F9dRA%3D","line":324,"in_reply_to":"AAAATn%2F9fUQ%3D","updated":"2013-12-11 10:29:31.000000000","message":"Done","commit_id":"17176d1535716ce853fdd9f868a5b66d9c5bb75d"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"bb110f33f47ca7c9dea5d8b52301b667a8c63958","unresolved":false,"context_lines":[{"line_number":294,"context_line":"        if filter_properties is None:"},{"line_number":295,"context_line":"            filter_properties \u003d {}"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        flow_engine \u003d create_volume.get_manager_flow("},{"line_number":298,"context_line":"            context,"},{"line_number":299,"context_line":"            self.db,"},{"line_number":300,"context_line":"            self.driver,"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATn%2F9YD0%3D","line":297,"updated":"2013-12-12 04:18:26.000000000","message":"Can we add a try, except here, so that if this call fails then a useful exception is reraised. For example if stevedore doesn\u0027t load the engine type, then it\u0027d be nice to raise a better error (one that is more meaningful to cinder).","commit_id":"60eb2b99585ea3a4275f0129a6f6025205aa8af3"},{"author":{"_account_id":7349,"name":"Anastasia Karpinska","email":"akarpinska@griddynamics.com","username":"anastasia-karpinska"},"change_message_id":"e3b6d4993139524c089665d27cd80b0190d3249c","unresolved":false,"context_lines":[{"line_number":294,"context_line":"        if filter_properties is None:"},{"line_number":295,"context_line":"            filter_properties \u003d {}"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        flow_engine \u003d create_volume.get_manager_flow("},{"line_number":298,"context_line":"            context,"},{"line_number":299,"context_line":"            self.db,"},{"line_number":300,"context_line":"            self.driver,"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATn%2F9XIQ%3D","line":297,"in_reply_to":"AAAATn%2F9YD0%3D","updated":"2013-12-12 08:55:26.000000000","message":"Done","commit_id":"60eb2b99585ea3a4275f0129a6f6025205aa8af3"}]}
