)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"41397566712d0bf5e6636916b23e9c1f391ccc90","unresolved":false,"context_lines":[{"line_number":11,"context_line":"to commits that aim to make these checks more consistent by moving"},{"line_number":12,"context_line":"calls from the manager to the API. This way, we can give the user"},{"line_number":13,"context_line":"feedback before launching the RPC call."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I49e3e2bf3e1621e9e8d9645b7ad09154ffb448c3"},{"line_number":16,"context_line":"Partial-bug: #1508249"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9a8ffd7b_7f31fb0a","line":14,"updated":"2015-11-24 20:58:12.000000000","message":"This needs an APIImpact tag.","commit_id":"f93a393993cd4fada95d54e20021e9221339e4dc"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"604ea37de6e0a97fd4b1461b426325d9d0ffa2a9","unresolved":false,"context_lines":[{"line_number":11,"context_line":"to commits that aim to make these checks more consistent by moving"},{"line_number":12,"context_line":"calls from the manager to the API. This way, we can give the user"},{"line_number":13,"context_line":"feedback before launching the RPC call."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I49e3e2bf3e1621e9e8d9645b7ad09154ffb448c3"},{"line_number":16,"context_line":"Partial-bug: #1508249"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9a8ffd7b_60ecfcc7","line":14,"in_reply_to":"9a8ffd7b_7f31fb0a","updated":"2015-11-24 21:59:36.000000000","message":"Done","commit_id":"f93a393993cd4fada95d54e20021e9221339e4dc"},{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"34d908606cc8c054c6e9de780c4c5b4fff4674dc","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Move quota checks from manager to API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently quotas are sometimes checked in cinder.volume.manager,"},{"line_number":10,"context_line":"and other times checked in cinder.volume.api. This patch is one of"},{"line_number":11,"context_line":"two commits that aim to make these checks more consistent by moving"},{"line_number":12,"context_line":"calls from the manager to the API. This way, we can give the user"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9a8ffd7b_170c5393","line":9,"updated":"2015-11-24 22:58:59.000000000","message":"It is a bit confusing that we have two patches with the same first line that are related to eachother. It would be helpful if we add some info to distinguish one from the other. Maybe adding \u0027part 1\u0027 or \u0027[1/2]\u0027?","commit_id":"069c71742ec80a369685c243c7cbfedb3877a915"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"4e70d861554200c911848dfd8b01d41fb12902d5","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Move quota checks from manager to API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently quotas are sometimes checked in cinder.volume.manager,"},{"line_number":10,"context_line":"and other times checked in cinder.volume.api. This patch is one of"},{"line_number":11,"context_line":"two commits that aim to make these checks more consistent by moving"},{"line_number":12,"context_line":"calls from the manager to the API. This way, we can give the user"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9a8ffd7b_77f35f74","line":9,"in_reply_to":"9a8ffd7b_170c5393","updated":"2015-11-24 23:00:45.000000000","message":"Done","commit_id":"069c71742ec80a369685c243c7cbfedb3877a915"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9f6751c021a35b3e373dcb2f212b47aca01ec544","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Nate Potter \u003cnathaniel.potter@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-11-24 23:00:31 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Move quota checks from manager to API Part 1"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently quotas are sometimes checked in cinder.volume.manager,"},{"line_number":10,"context_line":"and other times checked in cinder.volume.api. This patch is one of"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7a740942_9a1dea11","line":7,"updated":"2015-12-03 18:39:36.000000000","message":"Ah, instead of writing \"Part 1\" - maybe you can describe which calls? These are volume and snapshot calls, aren\u0027t they?","commit_id":"33497565c08d83b0222711d94362b43c6b905951"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"7d69baa755429e5905b539a0660def5c98519c7e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Nate Potter \u003cnathaniel.potter@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-11-24 23:00:31 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Move quota checks from manager to API Part 1"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently quotas are sometimes checked in cinder.volume.manager,"},{"line_number":10,"context_line":"and other times checked in cinder.volume.api. This patch is one of"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7a740942_da7132e2","line":7,"in_reply_to":"7a740942_9a1dea11","updated":"2015-12-03 18:51:36.000000000","message":"Sure, I can update this in my next patch set and I\u0027ll do the same for part 2.","commit_id":"33497565c08d83b0222711d94362b43c6b905951"}],"cinder/scheduler/manager.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9f607ec6d384857718762a0b2de926c17579dd61","unresolved":false,"context_lines":[{"line_number":212,"context_line":"                                              context, ex, request_spec, msg)"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"        reservations \u003d request_spec.get(\u0027quota_reservations\u0027)"},{"line_number":215,"context_line":"        old_reservations \u003d request_spec.get(\u0027old_reservations\u0027)"},{"line_number":216,"context_line":"        new_type \u003d request_spec.get(\u0027volume_type\u0027)"},{"line_number":217,"context_line":"        if new_type is None:"},{"line_number":218,"context_line":"            msg \u003d _(\u0027New volume type not specified in request_spec.\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_845f3840","line":215,"updated":"2015-12-02 20:26:46.000000000","message":"I would add None as second parameter to be safe if old_reservations aren\u0027t in request_spec (although I\u0027m not sure this may happen in our planned upgrade flow). Anyway - get is done in a strange way in ovo [1] - it doesn\u0027t have None as default.\n\n[1] https://github.com/openstack/cinder/blob/master/cinder/objects/base.py#L221-L241","commit_id":"33497565c08d83b0222711d94362b43c6b905951"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"3575d34988dab00c3b12ee47a045cadb9c3d9e71","unresolved":false,"context_lines":[{"line_number":212,"context_line":"                                              context, ex, request_spec, msg)"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"        reservations \u003d request_spec.get(\u0027quota_reservations\u0027)"},{"line_number":215,"context_line":"        old_reservations \u003d request_spec.get(\u0027old_reservations\u0027)"},{"line_number":216,"context_line":"        new_type \u003d request_spec.get(\u0027volume_type\u0027)"},{"line_number":217,"context_line":"        if new_type is None:"},{"line_number":218,"context_line":"            msg \u003d _(\u0027New volume type not specified in request_spec.\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_b5114454","line":215,"in_reply_to":"9a8ffd7b_845f3840","updated":"2015-12-02 21:12:32.000000000","message":"Done","commit_id":"33497565c08d83b0222711d94362b43c6b905951"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"415e8677b653befbad15adc612766021b31b5369","unresolved":false,"context_lines":[{"line_number":212,"context_line":"                                              context, ex, request_spec, msg)"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"        reservations \u003d request_spec.get(\u0027quota_reservations\u0027)"},{"line_number":215,"context_line":"        old_reservations \u003d request_spec.get(\u0027old_reservations\u0027)"},{"line_number":216,"context_line":"        new_type \u003d request_spec.get(\u0027volume_type\u0027)"},{"line_number":217,"context_line":"        if new_type is None:"},{"line_number":218,"context_line":"            msg \u003d _(\u0027New volume type not specified in request_spec.\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a740942_30b3e70b","line":215,"updated":"2015-12-08 20:29:35.000000000","message":"My comment from patchset 5 wasn\u0027t addressed.","commit_id":"b57607e8f91a56fcde9c10cfe9e1abcf8d8820e6"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"8eb2d94185de4cc2f4f10b438da4724feb034ae0","unresolved":false,"context_lines":[{"line_number":212,"context_line":"                                              context, ex, request_spec, msg)"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"        reservations \u003d request_spec.get(\u0027quota_reservations\u0027)"},{"line_number":215,"context_line":"        old_reservations \u003d request_spec.get(\u0027old_reservations\u0027)"},{"line_number":216,"context_line":"        new_type \u003d request_spec.get(\u0027volume_type\u0027)"},{"line_number":217,"context_line":"        if new_type is None:"},{"line_number":218,"context_line":"            msg \u003d _(\u0027New volume type not specified in request_spec.\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a740942_9d4f5333","line":215,"in_reply_to":"7a740942_30b3e70b","updated":"2015-12-08 21:13:22.000000000","message":"Oh sorry I missed that, I\u0027ll fix this in my next patch.","commit_id":"b57607e8f91a56fcde9c10cfe9e1abcf8d8820e6"}],"cinder/volume/api.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"41397566712d0bf5e6636916b23e9c1f391ccc90","unresolved":false,"context_lines":[{"line_number":1014,"context_line":"                                          **reserve_opts)"},{"line_number":1015,"context_line":"        except Exception:"},{"line_number":1016,"context_line":"            reservations \u003d None"},{"line_number":1017,"context_line":"            LOG.exception(_LE(\"Update snapshot usages failed.\"),"},{"line_number":1018,"context_line":"                          resource\u003dsnapshot)"},{"line_number":1019,"context_line":""},{"line_number":1020,"context_line":"        volume \u003d self.db.volume_get(context, snapshot_obj.volume_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_5f5f5772","line":1017,"updated":"2015-11-24 20:58:12.000000000","message":"This message should be made more consistent with the one above:\n\"Failed to update snapshot quota usage while deleting.\" or something like that.","commit_id":"f93a393993cd4fada95d54e20021e9221339e4dc"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"604ea37de6e0a97fd4b1461b426325d9d0ffa2a9","unresolved":false,"context_lines":[{"line_number":1014,"context_line":"                                          **reserve_opts)"},{"line_number":1015,"context_line":"        except Exception:"},{"line_number":1016,"context_line":"            reservations \u003d None"},{"line_number":1017,"context_line":"            LOG.exception(_LE(\"Update snapshot usages failed.\"),"},{"line_number":1018,"context_line":"                          resource\u003dsnapshot)"},{"line_number":1019,"context_line":""},{"line_number":1020,"context_line":"        volume \u003d self.db.volume_get(context, snapshot_obj.volume_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_20cfd457","line":1017,"in_reply_to":"9a8ffd7b_5f5f5772","updated":"2015-11-24 21:59:36.000000000","message":"Done","commit_id":"f93a393993cd4fada95d54e20021e9221339e4dc"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"41397566712d0bf5e6636916b23e9c1f391ccc90","unresolved":false,"context_lines":[{"line_number":1596,"context_line":"            volume.update(status_update)"},{"line_number":1597,"context_line":"            volume.save()"},{"line_number":1598,"context_line":"            LOG.exception(_LE(\"Failed to update usages \""},{"line_number":1599,"context_line":"                              \"while retyping volume.\"))"},{"line_number":1600,"context_line":"            raise exception.CinderException(_(\"Failed to get old volume type\""},{"line_number":1601,"context_line":"                                              \" quota reservations\"))"},{"line_number":1602,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_1f00ef33","line":1599,"updated":"2015-11-24 20:58:12.000000000","message":"Same comment here:  \"Failed to update quota usage while retyping volume.\"\n\nAlso would recommend just putting the message into a variable and pass it into the log message and the exception.","commit_id":"f93a393993cd4fada95d54e20021e9221339e4dc"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"604ea37de6e0a97fd4b1461b426325d9d0ffa2a9","unresolved":false,"context_lines":[{"line_number":1596,"context_line":"            volume.update(status_update)"},{"line_number":1597,"context_line":"            volume.save()"},{"line_number":1598,"context_line":"            LOG.exception(_LE(\"Failed to update usages \""},{"line_number":1599,"context_line":"                              \"while retyping volume.\"))"},{"line_number":1600,"context_line":"            raise exception.CinderException(_(\"Failed to get old volume type\""},{"line_number":1601,"context_line":"                                              \" quota reservations\"))"},{"line_number":1602,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_c0db681a","line":1599,"in_reply_to":"9a8ffd7b_1f00ef33","updated":"2015-11-24 21:59:36.000000000","message":"Done","commit_id":"f93a393993cd4fada95d54e20021e9221339e4dc"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"403bb152a80298740514a1ef69b40a7c34ef9822","unresolved":false,"context_lines":[{"line_number":1015,"context_line":"        except Exception:"},{"line_number":1016,"context_line":"            reservations \u003d None"},{"line_number":1017,"context_line":"            msg \u003d _(\"Failed to update snapshot quota usage while deleting\")"},{"line_number":1018,"context_line":"            LOG.exception(msg, resource\u003dsnapshot)"},{"line_number":1019,"context_line":""},{"line_number":1020,"context_line":"        volume \u003d self.db.volume_get(context, snapshot_obj.volume_id)"},{"line_number":1021,"context_line":"        self.volume_rpcapi.delete_snapshot(context, snapshot_obj,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_87cf3555","line":1018,"updated":"2015-12-02 22:26:51.000000000","message":"Any reason we do not want to raise an error here?","commit_id":"33497565c08d83b0222711d94362b43c6b905951"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"5ac3a57fce625955554f7a980c31ae7e8a696749","unresolved":false,"context_lines":[{"line_number":1015,"context_line":"        except Exception:"},{"line_number":1016,"context_line":"            reservations \u003d None"},{"line_number":1017,"context_line":"            msg \u003d _(\"Failed to update snapshot quota usage while deleting\")"},{"line_number":1018,"context_line":"            LOG.exception(msg, resource\u003dsnapshot)"},{"line_number":1019,"context_line":""},{"line_number":1020,"context_line":"        volume \u003d self.db.volume_get(context, snapshot_obj.volume_id)"},{"line_number":1021,"context_line":"        self.volume_rpcapi.delete_snapshot(context, snapshot_obj,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_da45b217","line":1018,"in_reply_to":"7a740942_22813690","updated":"2015-12-03 18:38:24.000000000","message":"Hm… This is a negative reservation, so it shouldn\u0027t fail, but still if we were unable to reserve we will be unable to commit. Quotas may get out of sync.\n\nThis was probably done to never prevent deleting a snapshot - even if we\u0027re unable to reserve negative quota. Seems to make sense, but I would like to have someone\u0027s else opinion on that.\n\nBTW - we\u0027re doing same thing for volume delete.","commit_id":"33497565c08d83b0222711d94362b43c6b905951"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"7d69baa755429e5905b539a0660def5c98519c7e","unresolved":false,"context_lines":[{"line_number":1015,"context_line":"        except Exception:"},{"line_number":1016,"context_line":"            reservations \u003d None"},{"line_number":1017,"context_line":"            msg \u003d _(\"Failed to update snapshot quota usage while deleting\")"},{"line_number":1018,"context_line":"            LOG.exception(msg, resource\u003dsnapshot)"},{"line_number":1019,"context_line":""},{"line_number":1020,"context_line":"        volume \u003d self.db.volume_get(context, snapshot_obj.volume_id)"},{"line_number":1021,"context_line":"        self.volume_rpcapi.delete_snapshot(context, snapshot_obj,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_ba43066c","line":1018,"in_reply_to":"7a740942_da45b217","updated":"2015-12-03 18:51:36.000000000","message":"Okay fair enough, should this patch change that behavior though or should it be done another time if we want to make that change? Seems like we may be introducing a few independent variables at once by moving this at the same time as changing its behavior.","commit_id":"33497565c08d83b0222711d94362b43c6b905951"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"3fb02cf6eec512a0aa67b59b8bea304b4022edbd","unresolved":false,"context_lines":[{"line_number":1015,"context_line":"        except Exception:"},{"line_number":1016,"context_line":"            reservations \u003d None"},{"line_number":1017,"context_line":"            msg \u003d _(\"Failed to update snapshot quota usage while deleting\")"},{"line_number":1018,"context_line":"            LOG.exception(msg, resource\u003dsnapshot)"},{"line_number":1019,"context_line":""},{"line_number":1020,"context_line":"        volume \u003d self.db.volume_get(context, snapshot_obj.volume_id)"},{"line_number":1021,"context_line":"        self.volume_rpcapi.delete_snapshot(context, snapshot_obj,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_c0798c94","line":1018,"in_reply_to":"9a8ffd7b_87cf3555","updated":"2015-12-03 10:15:20.000000000","message":"Good catch!","commit_id":"33497565c08d83b0222711d94362b43c6b905951"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"8dc108be9bf10e1bced2936ae1b8da2ee114b16a","unresolved":false,"context_lines":[{"line_number":1015,"context_line":"        except Exception:"},{"line_number":1016,"context_line":"            reservations \u003d None"},{"line_number":1017,"context_line":"            msg \u003d _(\"Failed to update snapshot quota usage while deleting\")"},{"line_number":1018,"context_line":"            LOG.exception(msg, resource\u003dsnapshot)"},{"line_number":1019,"context_line":""},{"line_number":1020,"context_line":"        volume \u003d self.db.volume_get(context, snapshot_obj.volume_id)"},{"line_number":1021,"context_line":"        self.volume_rpcapi.delete_snapshot(context, snapshot_obj,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_22813690","line":1018,"in_reply_to":"9a8ffd7b_c0798c94","updated":"2015-12-03 16:00:14.000000000","message":"When this quota check was happening in manager no error was raised so this would be a change in behavior, I\u0027m not sure why it behaved differently than the others though. I can add that in if we think it should be included.","commit_id":"33497565c08d83b0222711d94362b43c6b905951"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"415e8677b653befbad15adc612766021b31b5369","unresolved":false,"context_lines":[{"line_number":459,"context_line":"            msg \u003d _(\"Failed to update quota usage while deleting volume.\")"},{"line_number":460,"context_line":"            LOG.exception(msg, resource\u003dvolume)"},{"line_number":461,"context_line":"            if not force:"},{"line_number":462,"context_line":"                raise exception.CinderException(msg)"},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"        self.volume_rpcapi.delete_volume(context, volume, unmanage_only,"},{"line_number":465,"context_line":"                                         reservations)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a740942_90d97b59","line":462,"updated":"2015-12-08 20:29:35.000000000","message":"I\u0027m opposed to changing this until we\u0027ll understand the motivation on not raising an exception in case of quota error in delete calls.","commit_id":"b57607e8f91a56fcde9c10cfe9e1abcf8d8820e6"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"415e8677b653befbad15adc612766021b31b5369","unresolved":false,"context_lines":[{"line_number":1019,"context_line":"            msg \u003d _(\"Failed to update snapshot quota usage while deleting\")"},{"line_number":1020,"context_line":"            LOG.exception(msg, resource\u003dsnapshot)"},{"line_number":1021,"context_line":"            if not force:"},{"line_number":1022,"context_line":"                raise exception.CinderException(msg)"},{"line_number":1023,"context_line":""},{"line_number":1024,"context_line":"        volume \u003d self.db.volume_get(context, snapshot_obj.volume_id)"},{"line_number":1025,"context_line":"        self.volume_rpcapi.delete_snapshot(context, snapshot_obj,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a740942_f0ea3fda","line":1022,"updated":"2015-12-08 20:29:35.000000000","message":"ditto.","commit_id":"b57607e8f91a56fcde9c10cfe9e1abcf8d8820e6"}],"cinder/volume/manager.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9f607ec6d384857718762a0b2de926c17579dd61","unresolved":false,"context_lines":[{"line_number":2112,"context_line":"                                                  project_id\u003dproject_id,"},{"line_number":2113,"context_line":"                                                  **reserve_opts)"},{"line_number":2114,"context_line":"            except Exception:"},{"line_number":2115,"context_line":"                volume.update(status_update)"},{"line_number":2116,"context_line":"                volume.save()"},{"line_number":2117,"context_line":"                msg \u003d _(\"Failed to update quota usage while retyping volume\")"},{"line_number":2118,"context_line":"                LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_24320ca8","line":2115,"updated":"2015-12-02 20:26:46.000000000","message":"Is there a reason not to rollback new reservations?","commit_id":"33497565c08d83b0222711d94362b43c6b905951"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"3575d34988dab00c3b12ee47a045cadb9c3d9e71","unresolved":false,"context_lines":[{"line_number":2112,"context_line":"                                                  project_id\u003dproject_id,"},{"line_number":2113,"context_line":"                                                  **reserve_opts)"},{"line_number":2114,"context_line":"            except Exception:"},{"line_number":2115,"context_line":"                volume.update(status_update)"},{"line_number":2116,"context_line":"                volume.save()"},{"line_number":2117,"context_line":"                msg \u003d _(\"Failed to update quota usage while retyping volume\")"},{"line_number":2118,"context_line":"                LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_95b0c044","line":2115,"in_reply_to":"9a8ffd7b_24320ca8","updated":"2015-12-02 21:12:32.000000000","message":"Do you mean here in this exception? The new reservations are rolled back with the old ones any time _retype_error is called, and nothing was previously being rolled back here, I\u0027m not sure I understand the question.","commit_id":"33497565c08d83b0222711d94362b43c6b905951"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"3fb02cf6eec512a0aa67b59b8bea304b4022edbd","unresolved":false,"context_lines":[{"line_number":2112,"context_line":"                                                  project_id\u003dproject_id,"},{"line_number":2113,"context_line":"                                                  **reserve_opts)"},{"line_number":2114,"context_line":"            except Exception:"},{"line_number":2115,"context_line":"                volume.update(status_update)"},{"line_number":2116,"context_line":"                volume.save()"},{"line_number":2117,"context_line":"                msg \u003d _(\"Failed to update quota usage while retyping volume\")"},{"line_number":2118,"context_line":"                LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_601ea060","line":2115,"in_reply_to":"9a8ffd7b_95b0c044","updated":"2015-12-03 10:15:20.000000000","message":"Hm, right, previously these weren\u0027t rolled back. Okay, probably it\u0027s safe to leave things as they were…","commit_id":"33497565c08d83b0222711d94362b43c6b905951"}],"cinder/volume/rpcapi.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9f607ec6d384857718762a0b2de926c17579dd61","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        if version \u003d\u003d \u00271.36\u0027:"},{"line_number":193,"context_line":"            cctxt \u003d self.client.prepare(server\u003dnew_host, version\u003d\u00271.36\u0027)"},{"line_number":194,"context_line":"        else:"},{"line_number":195,"context_line":"            cctxt \u003d self.client.prepare(server\u003dnew_host)"},{"line_number":196,"context_line":"        cctxt.cast(ctxt, \u0027delete_snapshot\u0027, **msg_args)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    def attach_volume(self, ctxt, volume, instance_uuid, host_name,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_64ec94bb","line":195,"updated":"2015-12-02 20:26:46.000000000","message":"Ah, you\u0027ve did it in that complicated way to prevent from passing version here. Don\u0027t worry, according to changelog comment you can pass 1.20 in case 1.36 is impossible.","commit_id":"33497565c08d83b0222711d94362b43c6b905951"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"3575d34988dab00c3b12ee47a045cadb9c3d9e71","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        if version \u003d\u003d \u00271.36\u0027:"},{"line_number":193,"context_line":"            cctxt \u003d self.client.prepare(server\u003dnew_host, version\u003d\u00271.36\u0027)"},{"line_number":194,"context_line":"        else:"},{"line_number":195,"context_line":"            cctxt \u003d self.client.prepare(server\u003dnew_host)"},{"line_number":196,"context_line":"        cctxt.cast(ctxt, \u0027delete_snapshot\u0027, **msg_args)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    def attach_volume(self, ctxt, volume, instance_uuid, host_name,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_75b8bc11","line":195,"in_reply_to":"9a8ffd7b_64ec94bb","updated":"2015-12-02 21:12:32.000000000","message":"Yes, there was no version being passed in before so I thought this way might preserve that - should I change this so that it passes in version 1.20 if it can\u0027t handle 1.36?","commit_id":"33497565c08d83b0222711d94362b43c6b905951"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"3fb02cf6eec512a0aa67b59b8bea304b4022edbd","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        if version \u003d\u003d \u00271.36\u0027:"},{"line_number":193,"context_line":"            cctxt \u003d self.client.prepare(server\u003dnew_host, version\u003d\u00271.36\u0027)"},{"line_number":194,"context_line":"        else:"},{"line_number":195,"context_line":"            cctxt \u003d self.client.prepare(server\u003dnew_host)"},{"line_number":196,"context_line":"        cctxt.cast(ctxt, \u0027delete_snapshot\u0027, **msg_args)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    def attach_volume(self, ctxt, volume, instance_uuid, host_name,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_20441848","line":195,"in_reply_to":"9a8ffd7b_75b8bc11","updated":"2015-12-03 10:15:20.000000000","message":"I believe that it\u0027s the right way.","commit_id":"33497565c08d83b0222711d94362b43c6b905951"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"415e8677b653befbad15adc612766021b31b5369","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        if version \u003d\u003d \u00271.36\u0027:"},{"line_number":193,"context_line":"            cctxt \u003d self.client.prepare(server\u003dnew_host, version\u003d\u00271.36\u0027)"},{"line_number":194,"context_line":"        else:"},{"line_number":195,"context_line":"            cctxt \u003d self.client.prepare(server\u003dnew_host)"},{"line_number":196,"context_line":"        cctxt.cast(ctxt, \u0027delete_snapshot\u0027, **msg_args)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    def attach_volume(self, ctxt, volume, instance_uuid, host_name,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a740942_70088fda","line":195,"updated":"2015-12-08 20:29:35.000000000","message":"My comments on patchset 5 weren\u0027t addressed here.","commit_id":"b57607e8f91a56fcde9c10cfe9e1abcf8d8820e6"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"8eb2d94185de4cc2f4f10b438da4724feb034ae0","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        if version \u003d\u003d \u00271.36\u0027:"},{"line_number":193,"context_line":"            cctxt \u003d self.client.prepare(server\u003dnew_host, version\u003d\u00271.36\u0027)"},{"line_number":194,"context_line":"        else:"},{"line_number":195,"context_line":"            cctxt \u003d self.client.prepare(server\u003dnew_host)"},{"line_number":196,"context_line":"        cctxt.cast(ctxt, \u0027delete_snapshot\u0027, **msg_args)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    def attach_volume(self, ctxt, volume, instance_uuid, host_name,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a740942_bd232f55","line":195,"in_reply_to":"7a740942_70088fda","updated":"2015-12-08 21:13:22.000000000","message":"Oh I misunderstood what you meant, I thought you said it was correct. I\u0027ll go back and change this too.","commit_id":"b57607e8f91a56fcde9c10cfe9e1abcf8d8820e6"}]}
