)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"b49f20835c1e4b82ded10c81016e5f1b85a3516a","unresolved":false,"context_lines":[{"line_number":10,"context_line":"raise an exception if the check fails. This patch moves the check to the"},{"line_number":11,"context_line":"API so that the user is given feedback before the RPC cast is made."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"APIImpact"},{"line_number":14,"context_line":"Closes-bug: #1508249"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Iba24edd8ad824837028353b52c90742df55c9173"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3a7e1126_719e6708","line":13,"updated":"2015-12-21 12:41:19.000000000","message":"nit: To facilitate the API working group job, this should include a comment in the APIImpact line.","commit_id":"d78399e614a90b062bcc1ff10aa00a037b158cad"}],"cinder/scheduler/manager.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"1bd8cc3038e044a6965da87fecad439f2b99a6a2","unresolved":false,"context_lines":[{"line_number":247,"context_line":"            volume_rpcapi.VolumeAPI().retype(context, volume,"},{"line_number":248,"context_line":"                                             new_type[\u0027id\u0027], tgt_host,"},{"line_number":249,"context_line":"                                             migration_policy,"},{"line_number":250,"context_line":"                                             old_reservations,"},{"line_number":251,"context_line":"                                             reservations)"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"    def manage_existing(self, context, topic, volume_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_3a3985a4","line":250,"updated":"2015-12-14 14:24:42.000000000","message":"-1: This is in the wrong order, it\u0027s reservations and the old_reservations","commit_id":"7ff3dc70e33e05f477ed545b9cf02e0c09e89d6a"}],"cinder/tests/unit/test_volume.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"1bd8cc3038e044a6965da87fecad439f2b99a6a2","unresolved":false,"context_lines":[{"line_number":4817,"context_line":"                                   vol_type[\u0027id\u0027], host_obj,"},{"line_number":4818,"context_line":"                                   migration_policy\u003dpolicy,"},{"line_number":4819,"context_line":"                                   reservations\u003dreservations,"},{"line_number":4820,"context_line":"                                   old_reservations\u003dreservations,"},{"line_number":4821,"context_line":"                                   volume\u003dvolume)"},{"line_number":4822,"context_line":"            else:"},{"line_number":4823,"context_line":"                self.assertRaises(exc, self.volume.retype,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_faad3d84","line":4820,"updated":"2015-12-14 14:24:42.000000000","message":"-1: How could they be the same?  One is positive and the other is negative!","commit_id":"7ff3dc70e33e05f477ed545b9cf02e0c09e89d6a"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"c05e80e3b005637f0e6fe926eeed458a35f954b4","unresolved":false,"context_lines":[{"line_number":4817,"context_line":"                                   vol_type[\u0027id\u0027], host_obj,"},{"line_number":4818,"context_line":"                                   migration_policy\u003dpolicy,"},{"line_number":4819,"context_line":"                                   reservations\u003dreservations,"},{"line_number":4820,"context_line":"                                   old_reservations\u003dreservations,"},{"line_number":4821,"context_line":"                                   volume\u003dvolume)"},{"line_number":4822,"context_line":"            else:"},{"line_number":4823,"context_line":"                self.assertRaises(exc, self.volume.retype,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_c3b2d893","line":4820,"in_reply_to":"7a740942_faad3d84","updated":"2015-12-14 15:20:25.000000000","message":"Sorry, thought it was like a placeholder for the test - I\u0027ll add similar reservation checks here to the ones in the API to get old_reservations.","commit_id":"7ff3dc70e33e05f477ed545b9cf02e0c09e89d6a"}],"cinder/volume/api.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"1bd8cc3038e044a6965da87fecad439f2b99a6a2","unresolved":false,"context_lines":[{"line_number":1506,"context_line":"                                                               vol_type_id)"},{"line_number":1507,"context_line":""},{"line_number":1508,"context_line":"        # Get old reservations"},{"line_number":1509,"context_line":"        project_id \u003d volume[\u0027project_id\u0027]"},{"line_number":1510,"context_line":"        status_update \u003d {\u0027status\u0027: volume.previous_status}"},{"line_number":1511,"context_line":"        try:"},{"line_number":1512,"context_line":"            reserve_opts \u003d {\u0027volumes\u0027: -1, \u0027gigabytes\u0027: -volume[\u0027size\u0027]}"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_b06037d0","line":1509,"updated":"2015-12-14 14:24:42.000000000","message":"-1: Use volume.project_id instead, and since this is only used once, no need to define a specific variable 8 lines before its only use, just use directly volume.project_id on line 1517.","commit_id":"7ff3dc70e33e05f477ed545b9cf02e0c09e89d6a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"1bd8cc3038e044a6965da87fecad439f2b99a6a2","unresolved":false,"context_lines":[{"line_number":1507,"context_line":""},{"line_number":1508,"context_line":"        # Get old reservations"},{"line_number":1509,"context_line":"        project_id \u003d volume[\u0027project_id\u0027]"},{"line_number":1510,"context_line":"        status_update \u003d {\u0027status\u0027: volume.previous_status}"},{"line_number":1511,"context_line":"        try:"},{"line_number":1512,"context_line":"            reserve_opts \u003d {\u0027volumes\u0027: -1, \u0027gigabytes\u0027: -volume[\u0027size\u0027]}"},{"line_number":1513,"context_line":"            QUOTAS.add_volume_type_opts(context,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_55130565","line":1510,"updated":"2015-12-14 14:24:42.000000000","message":"-1: This is only used on the exception, so just do\n\n volume.status \u003d volume.previous_status\n\non line 1520","commit_id":"7ff3dc70e33e05f477ed545b9cf02e0c09e89d6a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"1bd8cc3038e044a6965da87fecad439f2b99a6a2","unresolved":false,"context_lines":[{"line_number":1509,"context_line":"        project_id \u003d volume[\u0027project_id\u0027]"},{"line_number":1510,"context_line":"        status_update \u003d {\u0027status\u0027: volume.previous_status}"},{"line_number":1511,"context_line":"        try:"},{"line_number":1512,"context_line":"            reserve_opts \u003d {\u0027volumes\u0027: -1, \u0027gigabytes\u0027: -volume[\u0027size\u0027]}"},{"line_number":1513,"context_line":"            QUOTAS.add_volume_type_opts(context,"},{"line_number":1514,"context_line":"                                        reserve_opts,"},{"line_number":1515,"context_line":"                                        old_vol_type_id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_95688df6","line":1512,"updated":"2015-12-14 14:24:42.000000000","message":"-1: volume.size","commit_id":"7ff3dc70e33e05f477ed545b9cf02e0c09e89d6a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"1bd8cc3038e044a6965da87fecad439f2b99a6a2","unresolved":false,"context_lines":[{"line_number":1514,"context_line":"                                        reserve_opts,"},{"line_number":1515,"context_line":"                                        old_vol_type_id)"},{"line_number":1516,"context_line":"            old_reservations \u003d QUOTAS.reserve(context,"},{"line_number":1517,"context_line":"                                              project_id\u003dproject_id,"},{"line_number":1518,"context_line":"                                              **reserve_opts)"},{"line_number":1519,"context_line":"        except Exception:"},{"line_number":1520,"context_line":"            volume.update(status_update)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_15757dc9","line":1517,"updated":"2015-12-14 14:24:42.000000000","message":"-1: use directly volume.project_id","commit_id":"7ff3dc70e33e05f477ed545b9cf02e0c09e89d6a"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"c05e80e3b005637f0e6fe926eeed458a35f954b4","unresolved":false,"context_lines":[{"line_number":1514,"context_line":"                                        reserve_opts,"},{"line_number":1515,"context_line":"                                        old_vol_type_id)"},{"line_number":1516,"context_line":"            old_reservations \u003d QUOTAS.reserve(context,"},{"line_number":1517,"context_line":"                                              project_id\u003dproject_id,"},{"line_number":1518,"context_line":"                                              **reserve_opts)"},{"line_number":1519,"context_line":"        except Exception:"},{"line_number":1520,"context_line":"            volume.update(status_update)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_23e87cb2","line":1517,"in_reply_to":"7a740942_15757dc9","updated":"2015-12-14 15:20:25.000000000","message":"I can make these changes - this was just directly copied over from what already existed in the manager, so I\u0027ll change that as well.","commit_id":"7ff3dc70e33e05f477ed545b9cf02e0c09e89d6a"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"b24d46f741e883df75906ff500b124c32b1bd2ee","unresolved":false,"context_lines":[{"line_number":1514,"context_line":"                                        reserve_opts,"},{"line_number":1515,"context_line":"                                        old_vol_type_id)"},{"line_number":1516,"context_line":"            old_reservations \u003d QUOTAS.reserve(context,"},{"line_number":1517,"context_line":"                                              project_id\u003dproject_id,"},{"line_number":1518,"context_line":"                                              **reserve_opts)"},{"line_number":1519,"context_line":"        except Exception:"},{"line_number":1520,"context_line":"            volume.update(status_update)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_09f1e100","line":1517,"in_reply_to":"7a740942_23e87cb2","updated":"2015-12-14 15:29:32.000000000","message":"Ah oops never mind, some of it was mistakenly added, like volume[\u0027size\u0027]","commit_id":"7ff3dc70e33e05f477ed545b9cf02e0c09e89d6a"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"a2d193268c76761f5095879c54ab001ab3cc251f","unresolved":false,"context_lines":[{"line_number":1519,"context_line":"        except Exception:"},{"line_number":1520,"context_line":"            volume.update(status_update)"},{"line_number":1521,"context_line":"            volume.save()"},{"line_number":1522,"context_line":"            msg \u003d _(\"Failed to update quota usage while retyping volume\")"},{"line_number":1523,"context_line":"            LOG.exception(msg)"},{"line_number":1524,"context_line":"            raise exception.CinderException(msg)"},{"line_number":1525,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_4269468b","line":1522,"updated":"2015-12-11 20:17:17.000000000","message":"\".\" at EOL","commit_id":"7ff3dc70e33e05f477ed545b9cf02e0c09e89d6a"},{"author":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"change_message_id":"b04dd798888efa42c9bde03803def4ea6988dd23","unresolved":false,"context_lines":[{"line_number":1520,"context_line":"            volume.update(status_update)"},{"line_number":1521,"context_line":"            volume.save()"},{"line_number":1522,"context_line":"            msg \u003d _(\"Failed to update quota usage while retyping volume\")"},{"line_number":1523,"context_line":"            LOG.exception(msg)"},{"line_number":1524,"context_line":"            raise exception.CinderException(msg)"},{"line_number":1525,"context_line":""},{"line_number":1526,"context_line":"        self.update(context, volume, {\u0027status\u0027: \u0027retyping\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_a6dca1e4","line":1523,"updated":"2015-12-13 13:54:41.000000000","message":"LOG.exception(msg, resource\u003dvolume)  Please use the resource tag for the message.","commit_id":"7ff3dc70e33e05f477ed545b9cf02e0c09e89d6a"}],"cinder/volume/manager.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"1bd8cc3038e044a6965da87fecad439f2b99a6a2","unresolved":false,"context_lines":[{"line_number":2064,"context_line":""},{"line_number":2065,"context_line":"    def retype(self, ctxt, volume_id, new_type_id, host,"},{"line_number":2066,"context_line":"               migration_policy\u003d\u0027never\u0027, reservations\u003dNone,"},{"line_number":2067,"context_line":"               old_reservations\u003dNone, volume\u003dNone):"},{"line_number":2068,"context_line":""},{"line_number":2069,"context_line":"        def _retype_error(context, volume, old_reservations,"},{"line_number":2070,"context_line":"                          new_reservations, status_update):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_350af979","line":2067,"updated":"2015-12-14 14:24:42.000000000","message":"-1: This should be added after volume argument.","commit_id":"7ff3dc70e33e05f477ed545b9cf02e0c09e89d6a"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"a2d193268c76761f5095879c54ab001ab3cc251f","unresolved":false,"context_lines":[{"line_number":2120,"context_line":"            except Exception:"},{"line_number":2121,"context_line":"                volume.update(status_update)"},{"line_number":2122,"context_line":"                volume.save()"},{"line_number":2123,"context_line":"                msg \u003d _(\"Failed to update quota usage while retyping volume\")"},{"line_number":2124,"context_line":"                LOG.exception(msg)"},{"line_number":2125,"context_line":"                raise exception.CinderException(msg)"},{"line_number":2126,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_025fbee5","line":2123,"updated":"2015-12-11 20:17:17.000000000","message":"\".\" at EOL","commit_id":"7ff3dc70e33e05f477ed545b9cf02e0c09e89d6a"},{"author":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"change_message_id":"b04dd798888efa42c9bde03803def4ea6988dd23","unresolved":false,"context_lines":[{"line_number":2121,"context_line":"                volume.update(status_update)"},{"line_number":2122,"context_line":"                volume.save()"},{"line_number":2123,"context_line":"                msg \u003d _(\"Failed to update quota usage while retyping volume\")"},{"line_number":2124,"context_line":"                LOG.exception(msg)"},{"line_number":2125,"context_line":"                raise exception.CinderException(msg)"},{"line_number":2126,"context_line":""},{"line_number":2127,"context_line":"        # We already got the new reservations"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_667479fd","line":2124,"updated":"2015-12-13 13:54:41.000000000","message":"LOG.exception(msg, resource\u003dvolume)  Please use the resource tag for the message. That resource tag will give the output of the volume ID.","commit_id":"7ff3dc70e33e05f477ed545b9cf02e0c09e89d6a"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"f932cb9a6c8a22d7056bc084da0d22a4433357d2","unresolved":false,"context_lines":[{"line_number":2106,"context_line":"        # If old_reservations has been passed in from the API, we should"},{"line_number":2107,"context_line":"        # skip quotas."},{"line_number":2108,"context_line":"        # TODO(ntpttr): These reservation checks are left in to be backwards"},{"line_number":2109,"context_line":"        #               compatible with Liberty and can be removed in N."},{"line_number":2110,"context_line":"        if not old_reservations:"},{"line_number":2111,"context_line":"            # Get old reservations"},{"line_number":2112,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a7e1126_db75ed63","line":2109,"updated":"2015-12-21 16:44:15.000000000","message":"Wouldn\u0027t we want to leave these checks in, in case something is changed in the time before the manager does anything?","commit_id":"d78399e614a90b062bcc1ff10aa00a037b158cad"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"e6d3958e4c02438de1d2ac3c9af1af205a0f28a2","unresolved":false,"context_lines":[{"line_number":2106,"context_line":"        # If old_reservations has been passed in from the API, we should"},{"line_number":2107,"context_line":"        # skip quotas."},{"line_number":2108,"context_line":"        # TODO(ntpttr): These reservation checks are left in to be backwards"},{"line_number":2109,"context_line":"        #               compatible with Liberty and can be removed in N."},{"line_number":2110,"context_line":"        if not old_reservations:"},{"line_number":2111,"context_line":"            # Get old reservations"},{"line_number":2112,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a7e1126_61c0c050","line":2109,"in_reply_to":"3a7e1126_db75ed63","updated":"2015-12-21 21:58:01.000000000","message":"We could, but the only way that they\u0027ll be used is if old_reservations aren\u0027t passed in, so if they\u0027re checked in the API something changing wouldn\u0027t make them be checked again. What could change for the reservations between the API call and the manager that would require a recheck?","commit_id":"d78399e614a90b062bcc1ff10aa00a037b158cad"}],"cinder/volume/rpcapi.py":[{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"c0cd71e44c643545af108ed97b85fc6b551d758c","unresolved":false,"context_lines":[{"line_number":293,"context_line":"            version \u003d \u00271.37\u0027"},{"line_number":294,"context_line":"            msg_args[\u0027volume\u0027] \u003d volume"},{"line_number":295,"context_line":"        else:"},{"line_number":296,"context_line":"            msg_args.pop(\u0027reservations\u0027)"},{"line_number":297,"context_line":"            msg_args.pop(\u0027old_reservations\u0027)"},{"line_number":298,"context_line":"            if self.client.can_send_version(\u00271.34\u0027):"},{"line_number":299,"context_line":"                version \u003d \u00271.34\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_0611995d","line":296,"updated":"2015-12-09 18:42:53.000000000","message":"Are you sure you want to pop \u0027reservations\u0027 along with \u0027old_reservations\u0027?","commit_id":"d0a673527ff27b562ac70139e5159f33372571f2"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"d9da273654187ba631f8df2d13b2d4136401e28d","unresolved":false,"context_lines":[{"line_number":293,"context_line":"            version \u003d \u00271.37\u0027"},{"line_number":294,"context_line":"            msg_args[\u0027volume\u0027] \u003d volume"},{"line_number":295,"context_line":"        else:"},{"line_number":296,"context_line":"            msg_args.pop(\u0027reservations\u0027)"},{"line_number":297,"context_line":"            msg_args.pop(\u0027old_reservations\u0027)"},{"line_number":298,"context_line":"            if self.client.can_send_version(\u00271.34\u0027):"},{"line_number":299,"context_line":"                version \u003d \u00271.34\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_dccda45e","line":296,"in_reply_to":"7a740942_0611995d","updated":"2015-12-09 19:17:42.000000000","message":"Good catch, no I do not.","commit_id":"d0a673527ff27b562ac70139e5159f33372571f2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"1bd8cc3038e044a6965da87fecad439f2b99a6a2","unresolved":false,"context_lines":[{"line_number":288,"context_line":"        msg_args \u003d {\u0027volume_id\u0027: volume.id, \u0027new_type_id\u0027: new_type_id,"},{"line_number":289,"context_line":"                    \u0027host\u0027: host_p, \u0027migration_policy\u0027: migration_policy,"},{"line_number":290,"context_line":"                    \u0027reservations\u0027: reservations,"},{"line_number":291,"context_line":"                    \u0027old_reservations\u0027: old_reservations}"},{"line_number":292,"context_line":"        if self.client.can_send_version(\u00271.37\u0027):"},{"line_number":293,"context_line":"            version \u003d \u00271.37\u0027"},{"line_number":294,"context_line":"            msg_args[\u0027volume\u0027] \u003d volume"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_f08b1fc1","line":291,"updated":"2015-12-14 14:24:42.000000000","message":"nit: This should be added in line 294 together with the volume:\n\n msg_args.update(volume\u003dvolume, old_reservations\u003dold_reservations)\n\nAnd we can remove line 296","commit_id":"7ff3dc70e33e05f477ed545b9cf02e0c09e89d6a"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"c05e80e3b005637f0e6fe926eeed458a35f954b4","unresolved":false,"context_lines":[{"line_number":288,"context_line":"        msg_args \u003d {\u0027volume_id\u0027: volume.id, \u0027new_type_id\u0027: new_type_id,"},{"line_number":289,"context_line":"                    \u0027host\u0027: host_p, \u0027migration_policy\u0027: migration_policy,"},{"line_number":290,"context_line":"                    \u0027reservations\u0027: reservations,"},{"line_number":291,"context_line":"                    \u0027old_reservations\u0027: old_reservations}"},{"line_number":292,"context_line":"        if self.client.can_send_version(\u00271.37\u0027):"},{"line_number":293,"context_line":"            version \u003d \u00271.37\u0027"},{"line_number":294,"context_line":"            msg_args[\u0027volume\u0027] \u003d volume"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_4e4fef6a","line":291,"in_reply_to":"7a740942_f08b1fc1","updated":"2015-12-14 15:20:25.000000000","message":"Okay, I can make that change.","commit_id":"7ff3dc70e33e05f477ed545b9cf02e0c09e89d6a"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"444c88d186c83ca798918f06fee4dfe51d3d2776","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        if self.client.can_send_version(\u00271.37\u0027):"},{"line_number":292,"context_line":"            version \u003d \u00271.37\u0027"},{"line_number":293,"context_line":"            msg_args.update(volume\u003dvolume, old_reservations\u003dold_reservations)"},{"line_number":294,"context_line":"        else:"},{"line_number":295,"context_line":"            if self.client.can_send_version(\u00271.34\u0027):"},{"line_number":296,"context_line":"                version \u003d \u00271.34\u0027"},{"line_number":297,"context_line":"                msg_args[\u0027volume\u0027] \u003d volume"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a7b0d38_e810eaaa","line":294,"updated":"2015-12-22 19:11:28.000000000","message":"In case of this else - shouldn\u0027t we rollback old_reservations as we\u0027re not sending them and they will be done again in c-vol?","commit_id":"d78399e614a90b062bcc1ff10aa00a037b158cad"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"f6babd217fcf7d3731ed6d5db30a1c8c9964ee13","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        if self.client.can_send_version(\u00271.37\u0027):"},{"line_number":292,"context_line":"            version \u003d \u00271.37\u0027"},{"line_number":293,"context_line":"            msg_args.update(volume\u003dvolume, old_reservations\u003dold_reservations)"},{"line_number":294,"context_line":"        else:"},{"line_number":295,"context_line":"            if self.client.can_send_version(\u00271.34\u0027):"},{"line_number":296,"context_line":"                version \u003d \u00271.34\u0027"},{"line_number":297,"context_line":"                msg_args[\u0027volume\u0027] \u003d volume"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa69d971_9c91009c","line":294,"in_reply_to":"1a7b0d38_d5c5705b","updated":"2016-01-04 19:46:28.000000000","message":"So then, removing it in both the scheduler rpcapi and this one in case the version isn\u0027t up to date in either would be sufficient? Or would the case where c-sch is from L and c-vol is from M be weird, because old_reservations would be taken out in sch but then added back in here? Would that be possible?","commit_id":"d78399e614a90b062bcc1ff10aa00a037b158cad"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"48668a38c8668b1058584eed4927b5b35213824e","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        if self.client.can_send_version(\u00271.37\u0027):"},{"line_number":292,"context_line":"            version \u003d \u00271.37\u0027"},{"line_number":293,"context_line":"            msg_args.update(volume\u003dvolume, old_reservations\u003dold_reservations)"},{"line_number":294,"context_line":"        else:"},{"line_number":295,"context_line":"            if self.client.can_send_version(\u00271.34\u0027):"},{"line_number":296,"context_line":"                version \u003d \u00271.34\u0027"},{"line_number":297,"context_line":"                msg_args[\u0027volume\u0027] \u003d volume"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a7b0d38_d5c5705b","line":294,"in_reply_to":"1a7b0d38_d70ee2e4","updated":"2015-12-23 08:44:20.000000000","message":"I think that the order of upgrades we agreed on is top-\u003edown, so c-api, then c-sch, then c-vol. So as this is called by c-sch we can be sure.\n\nThis however may be a little more complicated - what if we have M\u0027s c-api and L\u0027s c-sch? We should remove it from request_spec also in scheduler\u0027s rpcapi when we have version pin in place. It would be easier if request_spec was an object instead of a dict, but should be still doable.","commit_id":"d78399e614a90b062bcc1ff10aa00a037b158cad"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"732c71ba291e18f607dbc13e7585c1007f68e378","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        if self.client.can_send_version(\u00271.37\u0027):"},{"line_number":292,"context_line":"            version \u003d \u00271.37\u0027"},{"line_number":293,"context_line":"            msg_args.update(volume\u003dvolume, old_reservations\u003dold_reservations)"},{"line_number":294,"context_line":"        else:"},{"line_number":295,"context_line":"            if self.client.can_send_version(\u00271.34\u0027):"},{"line_number":296,"context_line":"                version \u003d \u00271.34\u0027"},{"line_number":297,"context_line":"                msg_args[\u0027volume\u0027] \u003d volume"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a7b0d38_f7ce7eb3","line":294,"in_reply_to":"1a7b0d38_e810eaaa","updated":"2015-12-23 00:20:33.000000000","message":"Great catch, I think you\u0027re right - it looks like this patch was merged so I can push up another one quickly adding that and link to it in the comments here.","commit_id":"d78399e614a90b062bcc1ff10aa00a037b158cad"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"462d30a99dd925d5a763f64e5a75e4883b6988b2","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        if self.client.can_send_version(\u00271.37\u0027):"},{"line_number":292,"context_line":"            version \u003d \u00271.37\u0027"},{"line_number":293,"context_line":"            msg_args.update(volume\u003dvolume, old_reservations\u003dold_reservations)"},{"line_number":294,"context_line":"        else:"},{"line_number":295,"context_line":"            if self.client.can_send_version(\u00271.34\u0027):"},{"line_number":296,"context_line":"                version \u003d \u00271.34\u0027"},{"line_number":297,"context_line":"                msg_args[\u0027volume\u0027] \u003d volume"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a7b0d38_d70ee2e4","line":294,"in_reply_to":"1a7b0d38_f7ce7eb3","updated":"2015-12-23 00:26:15.000000000","message":"Just to clarify though, if the client can\u0027t send the version that includes old_reservations, then is it a given that the API is the version that includes the new check for old_reservations? How can we be sure that the reservations were checked based on the version the client can send?","commit_id":"d78399e614a90b062bcc1ff10aa00a037b158cad"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"ca856656da4acf854f2189e4fbf4801079718ac3","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        if self.client.can_send_version(\u00271.37\u0027):"},{"line_number":292,"context_line":"            version \u003d \u00271.37\u0027"},{"line_number":293,"context_line":"            msg_args.update(volume\u003dvolume, old_reservations\u003dold_reservations)"},{"line_number":294,"context_line":"        else:"},{"line_number":295,"context_line":"            if self.client.can_send_version(\u00271.34\u0027):"},{"line_number":296,"context_line":"                version \u003d \u00271.34\u0027"},{"line_number":297,"context_line":"                msg_args[\u0027volume\u0027] \u003d volume"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa69d971_19d73eee","line":294,"in_reply_to":"fa69d971_4012b20a","updated":"2016-01-05 13:28:46.000000000","message":"On your first comment - we don\u0027t expect to have L\u0027s c-sch and M\u0027s c-vol.\n\nAbout the second one - imagine such situation:\n\n* We have M\u0027s c-api, L\u0027s c-sch, L\u0027s c-vol.\n* c-api does the old_reservations and sends it over to c-sch in request_spec.\n* L\u0027s c-sch doesn\u0027t know that old_reservations are there and passes request_spec over to c-vol.\n* L\u0027s c-vol doens\u0027t have a notion that old_reservations are in request_spec or anywhere. It simply does the same reservation.\n* We have two reservations for the same action active.\n\nThe reservation done in c-api will eventually timeout, but if we have an opportunity to fix it when backporting the request - then why not?","commit_id":"d78399e614a90b062bcc1ff10aa00a037b158cad"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"ee2409ff37c4b4d401bb5fd16403d89ec6b91a57","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        if self.client.can_send_version(\u00271.37\u0027):"},{"line_number":292,"context_line":"            version \u003d \u00271.37\u0027"},{"line_number":293,"context_line":"            msg_args.update(volume\u003dvolume, old_reservations\u003dold_reservations)"},{"line_number":294,"context_line":"        else:"},{"line_number":295,"context_line":"            if self.client.can_send_version(\u00271.34\u0027):"},{"line_number":296,"context_line":"                version \u003d \u00271.34\u0027"},{"line_number":297,"context_line":"                msg_args[\u0027volume\u0027] \u003d volume"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa69d971_4012b20a","line":294,"in_reply_to":"fa69d971_9c91009c","updated":"2016-01-04 22:30:38.000000000","message":"I guess I\u0027m not sure why we would need to touch the c-sch rpcapi, basically it gets the request_spec dict and passes it along, if it\u0027s the L or M version shouldn\u0027t matter because it will do the same thing if old_reservations is in it or not. Couldn\u0027t we just handle rolling back old_reservations here if it wasn\u0027t passed in and not make any changes to c-sch?","commit_id":"d78399e614a90b062bcc1ff10aa00a037b158cad"}]}
