)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"8066ea4f681ced3e43306e51334065cc180b76ef","unresolved":false,"context_lines":[{"line_number":40,"context_line":"work, since we are passing a list to the update method as the values to"},{"line_number":41,"context_line":"update and that is not acceptable until that feature lands. This patch"},{"line_number":42,"context_line":"assumes that feature is already present."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Depends On: https://github.com/zzzeek/sqlalchemy/pull/200"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Change-Id: Ic3a42a5bd2c7436328dc3bf449d463e170d9f807"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7a2fa921_cb2cb904","line":43,"updated":"2015-10-07 13:01:55.000000000","message":"I think this needs an API Impact since you are adding arguments to methods in the api.py file.","commit_id":"8e2b1a6b1c14152aae9097f0ad8c70c1075544ee"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"20749663d853f8a53356868c8ce9899d61551bb8","unresolved":false,"context_lines":[{"line_number":40,"context_line":"work, since we are passing a list to the update method as the values to"},{"line_number":41,"context_line":"update and that is not acceptable until that feature lands. This patch"},{"line_number":42,"context_line":"assumes that feature is already present."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Depends On: https://github.com/zzzeek/sqlalchemy/pull/200"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Change-Id: Ic3a42a5bd2c7436328dc3bf449d463e170d9f807"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7a2fa921_92c329ed","line":43,"in_reply_to":"7a2fa921_cb2cb904","updated":"2015-10-08 09:16:20.000000000","message":"That\u0027s not what API Impact refers to, please read the documentation and the patch properly.","commit_id":"8e2b1a6b1c14152aae9097f0ad8c70c1075544ee"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"b148a628ddcd11ac00029458b8a84e30bd08d5d1","unresolved":false,"context_lines":[{"line_number":10,"context_line":"depending on the order of the values, example on a volume with"},{"line_number":11,"context_line":"\u0027available\u0027 status:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"   UPDATE volumes SET previous_status\u003dstatus, status\u003d\u0027reyping\u0027"},{"line_number":14,"context_line":"       WHERE id\u003d\u002744f284f9-877d-4fce-9eb4-67a052410054\u0027;"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Will result in a volume with \u0027retyping\u0027 status and \u0027available\u0027"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":22,"id":"5a18252c_587298e6","line":13,"updated":"2016-04-12 16:06:31.000000000","message":"retyping ?","commit_id":"e2be72dd8fd0b2e831da9425fbd03df1cc87afa7"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"ad2c6c939151e116eb84bd8c9e33b2de1e70bb4b","unresolved":false,"context_lines":[{"line_number":10,"context_line":"depending on the order of the values, example on a volume with"},{"line_number":11,"context_line":"\u0027available\u0027 status:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"   UPDATE volumes SET previous_status\u003dstatus, status\u003d\u0027reyping\u0027"},{"line_number":14,"context_line":"       WHERE id\u003d\u002744f284f9-877d-4fce-9eb4-67a052410054\u0027;"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Will result in a volume with \u0027retyping\u0027 status and \u0027available\u0027"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":22,"id":"5a18252c_4b1b60ca","line":13,"in_reply_to":"5a18252c_587298e6","updated":"2016-04-14 15:39:17.000000000","message":"Who knows what I meant to say!  ;-)","commit_id":"e2be72dd8fd0b2e831da9425fbd03df1cc87afa7"}],"cinder/db/api.py":[{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"7a73d3183244b46fdedcc00898fa92bf9948fb48","unresolved":false,"context_lines":[{"line_number":1194,"context_line":"                               for the update to be executed."},{"line_number":1195,"context_line":"       :param filters: Iterable with additional filters"},{"line_number":1196,"context_line":"       :param include_deleted: Should the update include deleted items, this"},{"line_number":1197,"context_line":"                               is equivalent to read_deleted"},{"line_number":1198,"context_line":"       :param project_only: Should the query be limited to context\u0027s project."},{"line_number":1199,"context_line":"       :param order: Specific order of fields in which to update the values"},{"line_number":1200,"context_line":"       :returns number of db rows that were updated"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_3fa97a90","line":1197,"updated":"2015-12-14 13:41:59.000000000","message":"Dot at the end.","commit_id":"f4652538db6a07840da26597df256ff7c734b8ea"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6408444effcaff24b2d3a5771dadc1a601b9d64c","unresolved":false,"context_lines":[{"line_number":1194,"context_line":"                               for the update to be executed."},{"line_number":1195,"context_line":"       :param filters: Iterable with additional filters"},{"line_number":1196,"context_line":"       :param include_deleted: Should the update include deleted items, this"},{"line_number":1197,"context_line":"                               is equivalent to read_deleted"},{"line_number":1198,"context_line":"       :param project_only: Should the query be limited to context\u0027s project."},{"line_number":1199,"context_line":"       :param order: Specific order of fields in which to update the values"},{"line_number":1200,"context_line":"       :returns number of db rows that were updated"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a7e1126_54104ea8","line":1197,"in_reply_to":"7a740942_3fa97a90","updated":"2015-12-18 11:23:10.000000000","message":"Done","commit_id":"f4652538db6a07840da26597df256ff7c734b8ea"},{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"7a73d3183244b46fdedcc00898fa92bf9948fb48","unresolved":false,"context_lines":[{"line_number":1196,"context_line":"       :param include_deleted: Should the update include deleted items, this"},{"line_number":1197,"context_line":"                               is equivalent to read_deleted"},{"line_number":1198,"context_line":"       :param project_only: Should the query be limited to context\u0027s project."},{"line_number":1199,"context_line":"       :param order: Specific order of fields in which to update the values"},{"line_number":1200,"context_line":"       :returns number of db rows that were updated"},{"line_number":1201,"context_line":"    \"\"\""},{"line_number":1202,"context_line":"    return IMPL.conditional_update(context, model, values, expected_values,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_1f935e5c","line":1199,"updated":"2015-12-14 13:41:59.000000000","message":"Dot at the end.","commit_id":"f4652538db6a07840da26597df256ff7c734b8ea"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6408444effcaff24b2d3a5771dadc1a601b9d64c","unresolved":false,"context_lines":[{"line_number":1196,"context_line":"       :param include_deleted: Should the update include deleted items, this"},{"line_number":1197,"context_line":"                               is equivalent to read_deleted"},{"line_number":1198,"context_line":"       :param project_only: Should the query be limited to context\u0027s project."},{"line_number":1199,"context_line":"       :param order: Specific order of fields in which to update the values"},{"line_number":1200,"context_line":"       :returns number of db rows that were updated"},{"line_number":1201,"context_line":"    \"\"\""},{"line_number":1202,"context_line":"    return IMPL.conditional_update(context, model, values, expected_values,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a7e1126_d41c3ec3","line":1199,"in_reply_to":"7a740942_1f935e5c","updated":"2015-12-18 11:23:10.000000000","message":"Done","commit_id":"f4652538db6a07840da26597df256ff7c734b8ea"}],"cinder/db/sqlalchemy/api.py":[{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"7a73d3183244b46fdedcc00898fa92bf9948fb48","unresolved":false,"context_lines":[{"line_number":4276,"context_line":"    # Add updates first by requested order"},{"line_number":4277,"context_line":"    if order:"},{"line_number":4278,"context_line":"        for key in order:"},{"line_number":4279,"context_line":"            updates.append((key, values.pop(key)))"},{"line_number":4280,"context_line":""},{"line_number":4281,"context_line":"    # Then those that have an orm field or value"},{"line_number":4282,"context_line":"    for key, value in tuple(values.items()):"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_5aa01442","line":4279,"updated":"2015-12-14 13:41:59.000000000","message":"If one of values is Case clause, it won\u0027t be processed.","commit_id":"f4652538db6a07840da26597df256ff7c734b8ea"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6408444effcaff24b2d3a5771dadc1a601b9d64c","unresolved":false,"context_lines":[{"line_number":4276,"context_line":"    # Add updates first by requested order"},{"line_number":4277,"context_line":"    if order:"},{"line_number":4278,"context_line":"        for key in order:"},{"line_number":4279,"context_line":"            updates.append((key, values.pop(key)))"},{"line_number":4280,"context_line":""},{"line_number":4281,"context_line":"    # Then those that have an orm field or value"},{"line_number":4282,"context_line":"    for key, value in tuple(values.items()):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a7e1126_b4e652b2","line":4279,"in_reply_to":"7a740942_5aa01442","updated":"2015-12-18 11:23:10.000000000","message":"Great catch!!!","commit_id":"f4652538db6a07840da26597df256ff7c734b8ea"},{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"7a73d3183244b46fdedcc00898fa92bf9948fb48","unresolved":false,"context_lines":[{"line_number":4279,"context_line":"            updates.append((key, values.pop(key)))"},{"line_number":4280,"context_line":""},{"line_number":4281,"context_line":"    # Then those that have an orm field or value"},{"line_number":4282,"context_line":"    for key, value in tuple(values.items()):"},{"line_number":4283,"context_line":"        if is_orm_value(value):"},{"line_number":4284,"context_line":"            updates.append((key, values.pop(key)))"},{"line_number":4285,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_1acccc87","line":4282,"updated":"2015-12-14 13:41:59.000000000","message":"Why convert it to tuple when for loop will work identically both in Python 2 when list is returned and in Python 3 when iterable dict_items is returned.","commit_id":"f4652538db6a07840da26597df256ff7c734b8ea"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6408444effcaff24b2d3a5771dadc1a601b9d64c","unresolved":false,"context_lines":[{"line_number":4279,"context_line":"            updates.append((key, values.pop(key)))"},{"line_number":4280,"context_line":""},{"line_number":4281,"context_line":"    # Then those that have an orm field or value"},{"line_number":4282,"context_line":"    for key, value in tuple(values.items()):"},{"line_number":4283,"context_line":"        if is_orm_value(value):"},{"line_number":4284,"context_line":"            updates.append((key, values.pop(key)))"},{"line_number":4285,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3a7e1126_b4abb21c","line":4282,"in_reply_to":"7a740942_1acccc87","updated":"2015-12-18 11:23:10.000000000","message":"Because we are deleting a key in line 4284. On python 2 this is ok, but on python 3, where we get an iterable, we would be modifying the object while it is being iterated, which is a big no-no.","commit_id":"f4652538db6a07840da26597df256ff7c734b8ea"},{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"7a73d3183244b46fdedcc00898fa92bf9948fb48","unresolved":false,"context_lines":[{"line_number":4284,"context_line":"            updates.append((key, values.pop(key)))"},{"line_number":4285,"context_line":""},{"line_number":4286,"context_line":"    # Then those that have a Case clause"},{"line_number":4287,"context_line":"    for key, value in tuple(values.items()):"},{"line_number":4288,"context_line":"        if isinstance(value, db.Case):"},{"line_number":4289,"context_line":"            updates.append((key, case(value.whens, value.value, value.else_)))"},{"line_number":4290,"context_line":"            del values[key]"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_baab3874","line":4287,"updated":"2015-12-14 13:41:59.000000000","message":"Ditto","commit_id":"f4652538db6a07840da26597df256ff7c734b8ea"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6408444effcaff24b2d3a5771dadc1a601b9d64c","unresolved":false,"context_lines":[{"line_number":4284,"context_line":"            updates.append((key, values.pop(key)))"},{"line_number":4285,"context_line":""},{"line_number":4286,"context_line":"    # Then those that have a Case clause"},{"line_number":4287,"context_line":"    for key, value in tuple(values.items()):"},{"line_number":4288,"context_line":"        if isinstance(value, db.Case):"},{"line_number":4289,"context_line":"            updates.append((key, case(value.whens, value.value, value.else_)))"},{"line_number":4290,"context_line":"            del values[key]"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a7e1126_d4a67e52","line":4287,"in_reply_to":"7a740942_baab3874","updated":"2015-12-18 11:23:10.000000000","message":"Same as above, but here we delete the key on line 4290","commit_id":"f4652538db6a07840da26597df256ff7c734b8ea"},{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"7a73d3183244b46fdedcc00898fa92bf9948fb48","unresolved":false,"context_lines":[{"line_number":4298,"context_line":"    else:"},{"line_number":4299,"context_line":"        # If we are doing an update with ordered parameters, we need to add"},{"line_number":4300,"context_line":"        # remaining values to the list"},{"line_number":4301,"context_line":"        updates.extend((k, v) for k, v in values.items())"},{"line_number":4302,"context_line":""},{"line_number":4303,"context_line":"        # And we have to tell SQLAlchemy that we want to preserve the order"},{"line_number":4304,"context_line":"        update_args[\u0027update_args\u0027] \u003d {\u0027preserve_parameter_order\u0027: True}"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_1a3fecb4","line":4301,"updated":"2015-12-14 13:41:59.000000000","message":"No need for generator, same result with\n\n  updates.extend(values.items())","commit_id":"f4652538db6a07840da26597df256ff7c734b8ea"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6408444effcaff24b2d3a5771dadc1a601b9d64c","unresolved":false,"context_lines":[{"line_number":4298,"context_line":"    else:"},{"line_number":4299,"context_line":"        # If we are doing an update with ordered parameters, we need to add"},{"line_number":4300,"context_line":"        # remaining values to the list"},{"line_number":4301,"context_line":"        updates.extend((k, v) for k, v in values.items())"},{"line_number":4302,"context_line":""},{"line_number":4303,"context_line":"        # And we have to tell SQLAlchemy that we want to preserve the order"},{"line_number":4304,"context_line":"        update_args[\u0027update_args\u0027] \u003d {\u0027preserve_parameter_order\u0027: True}"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a7e1126_ef4087a7","line":4301,"in_reply_to":"7a740942_1a3fecb4","updated":"2015-12-18 11:23:10.000000000","message":"Here you are totally right, I probably got caught in the moment of having to use tuple in the previous 2 cases.","commit_id":"f4652538db6a07840da26597df256ff7c734b8ea"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"40e2868a5539e57a3bef4268c495fff8bdb297f5","unresolved":false,"context_lines":[{"line_number":4367,"context_line":"    #     like size + 10)"},{"line_number":4368,"context_line":"    #  3- Values that use Case clause (since they may be using fields as well)"},{"line_number":4369,"context_line":"    #  4- All other values"},{"line_number":4370,"context_line":"    order \u003d list(order) if order else tuple()"},{"line_number":4371,"context_line":"    orm_field_list \u003d []"},{"line_number":4372,"context_line":"    case_list \u003d []"},{"line_number":4373,"context_line":"    unordered_list \u003d []"}],"source_content_type":"text/x-python","patch_set":15,"id":"9aed3d3a_88907b97","line":4370,"range":{"start_line":4370,"start_character":12,"end_line":4370,"end_character":45},"updated":"2016-02-25 18:00:01.000000000","message":"Nothing harmless here, it\u0027s both iterable, but why mix list and empty tuple?","commit_id":"c23c74c4e6045de875b7bc6bc0513f7554d28537"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"40e2868a5539e57a3bef4268c495fff8bdb297f5","unresolved":false,"context_lines":[{"line_number":4387,"context_line":"            value_list \u003d unordered_list"},{"line_number":4388,"context_line":"        value_list.append((key, value))"},{"line_number":4389,"context_line":""},{"line_number":4390,"context_line":"    update_args \u003d {\u0027synchronize_session\u0027: False}"},{"line_number":4391,"context_line":""},{"line_number":4392,"context_line":"    # If we don\u0027t have to enforce any kind of order just pass along the values"},{"line_number":4393,"context_line":"    # dictionary since it will be a little more efficient."}],"source_content_type":"text/x-python","patch_set":15,"id":"9aed3d3a_b32a107d","line":4390,"range":{"start_line":4390,"start_character":4,"end_line":4390,"end_character":48},"updated":"2016-02-25 18:00:01.000000000","message":"Why not pass it simply in line 4403?","commit_id":"c23c74c4e6045de875b7bc6bc0513f7554d28537"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"40e2868a5539e57a3bef4268c495fff8bdb297f5","unresolved":false,"context_lines":[{"line_number":4397,"context_line":"        values \u003d itertools.chain(order, orm_field_list, case_list,"},{"line_number":4398,"context_line":"                                 unordered_list)"},{"line_number":4399,"context_line":"        # And we have to tell SQLAlchemy that we want to preserve the order"},{"line_number":4400,"context_line":"        update_args[\u0027update_args\u0027] \u003d {\u0027preserve_parameter_order\u0027: True}"},{"line_number":4401,"context_line":""},{"line_number":4402,"context_line":"    # Return True if we were able to change any DB entry, False otherwise"},{"line_number":4403,"context_line":"    result \u003d query.update(values, **update_args)"}],"source_content_type":"text/x-python","patch_set":15,"id":"9aed3d3a_b3785091","line":4400,"range":{"start_line":4400,"start_character":8,"end_line":4400,"end_character":71},"updated":"2016-02-25 18:00:01.000000000","message":"I haven\u0027t checked SQLAlchemy code, but you want call on 4403 to look:\n\n result \u003d query.update(values, synchronize_session\u003dFalse, update_args\u003d{\u0027preserve_parameter_order\u0027: True})\n\n? Looking at the tests I assume - \"yes\", but it seemed strange to me.","commit_id":"c23c74c4e6045de875b7bc6bc0513f7554d28537"}],"cinder/objects/base.py":[{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"7a73d3183244b46fdedcc00898fa92bf9948fb48","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def conditional_update(self, values, expected_values\u003dNone, filters\u003d(),"},{"line_number":100,"context_line":"                           save_all\u003dFalse, session\u003dNone, reflect_changes\u003dTrue,"},{"line_number":101,"context_line":"                           order\u003dNone):"},{"line_number":102,"context_line":"        \"\"\"Compare-and-swap update."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"           A conditional object update that, unlike normal update, will SAVE"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_3f7ada77","line":101,"updated":"2015-12-14 13:41:59.000000000","message":"Missing doc string for order parameter","commit_id":"f4652538db6a07840da26597df256ff7c734b8ea"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6408444effcaff24b2d3a5771dadc1a601b9d64c","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def conditional_update(self, values, expected_values\u003dNone, filters\u003d(),"},{"line_number":100,"context_line":"                           save_all\u003dFalse, session\u003dNone, reflect_changes\u003dTrue,"},{"line_number":101,"context_line":"                           order\u003dNone):"},{"line_number":102,"context_line":"        \"\"\"Compare-and-swap update."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"           A conditional object update that, unlike normal update, will SAVE"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a7e1126_b58c0980","line":101,"in_reply_to":"7a740942_3f7ada77","updated":"2015-12-18 11:23:10.000000000","message":"Done","commit_id":"f4652538db6a07840da26597df256ff7c734b8ea"},{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"7a73d3183244b46fdedcc00898fa92bf9948fb48","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                           order\u003dNone):"},{"line_number":102,"context_line":"        \"\"\"Compare-and-swap update."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"           A conditional object update that, unlike normal update, will SAVE"},{"line_number":105,"context_line":"           the contents of the update to the DB."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"           Update will only occur in the DB and the object if conditions are"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_dfe07628","line":104,"updated":"2015-12-14 13:41:59.000000000","message":"Unnecessary indentation.","commit_id":"f4652538db6a07840da26597df256ff7c734b8ea"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6408444effcaff24b2d3a5771dadc1a601b9d64c","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                           order\u003dNone):"},{"line_number":102,"context_line":"        \"\"\"Compare-and-swap update."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"           A conditional object update that, unlike normal update, will SAVE"},{"line_number":105,"context_line":"           the contents of the update to the DB."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"           Update will only occur in the DB and the object if conditions are"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a7e1126_35ced9b4","line":104,"in_reply_to":"7a740942_dfe07628","updated":"2015-12-18 11:23:10.000000000","message":"Thanks!\n\nWhile this issue is not from this patch, I was the one who made the mistake, so I\u0027ll gladly fix it. :-)","commit_id":"f4652538db6a07840da26597df256ff7c734b8ea"},{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"7a73d3183244b46fdedcc00898fa92bf9948fb48","unresolved":false,"context_lines":[{"line_number":130,"context_line":"                                     else_\u003d\u0027no-snapshot\u0027)"},{"line_number":131,"context_line":"           volume.conditional_update({\u0027status\u0027: case_values},"},{"line_number":132,"context_line":"                                     {\u0027status\u0027: \u0027available\u0027}))"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"            And we can use DB fields using model class attribute for example to"},{"line_number":135,"context_line":"            store previous status in the corresponding field even though we"},{"line_number":136,"context_line":"            don\u0027t know which value is in the db from those we allowed:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a740942_df4e3637","line":133,"updated":"2015-12-14 13:41:59.000000000","message":"Unnecessary 1 space indentation.","commit_id":"f4652538db6a07840da26597df256ff7c734b8ea"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6408444effcaff24b2d3a5771dadc1a601b9d64c","unresolved":false,"context_lines":[{"line_number":130,"context_line":"                                     else_\u003d\u0027no-snapshot\u0027)"},{"line_number":131,"context_line":"           volume.conditional_update({\u0027status\u0027: case_values},"},{"line_number":132,"context_line":"                                     {\u0027status\u0027: \u0027available\u0027}))"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"            And we can use DB fields using model class attribute for example to"},{"line_number":135,"context_line":"            store previous status in the corresponding field even though we"},{"line_number":136,"context_line":"            don\u0027t know which value is in the db from those we allowed:"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a7e1126_d54c3544","line":133,"in_reply_to":"7a740942_df4e3637","updated":"2015-12-18 11:23:10.000000000","message":"Done","commit_id":"f4652538db6a07840da26597df256ff7c734b8ea"}],"cinder/tests/unit/objects/test_base.py":[{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"b148a628ddcd11ac00029458b8a84e30bd08d5d1","unresolved":false,"context_lines":[{"line_number":658,"context_line":"                values, {\u0027status\u0027: \u0027available\u0027}))"},{"line_number":659,"context_line":""},{"line_number":660,"context_line":"        # We check that we are passing values to update to SQLAlchemy in the"},{"line_number":661,"context_line":"        # right order"},{"line_number":662,"context_line":"        self.assertEqual(1, update.call_count)"},{"line_number":663,"context_line":"        arg \u003d update.call_args[0][0]"},{"line_number":664,"context_line":"        self.assertTrue(isinstance(arg, dict))"}],"source_content_type":"text/x-python","patch_set":22,"id":"5a18252c_1b9ada14","line":661,"updated":"2016-04-12 16:06:31.000000000","message":"Aren\u0027t we checking that the values are there, without regard for the order?","commit_id":"e2be72dd8fd0b2e831da9425fbd03df1cc87afa7"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"ad2c6c939151e116eb84bd8c9e33b2de1e70bb4b","unresolved":false,"context_lines":[{"line_number":658,"context_line":"                values, {\u0027status\u0027: \u0027available\u0027}))"},{"line_number":659,"context_line":""},{"line_number":660,"context_line":"        # We check that we are passing values to update to SQLAlchemy in the"},{"line_number":661,"context_line":"        # right order"},{"line_number":662,"context_line":"        self.assertEqual(1, update.call_count)"},{"line_number":663,"context_line":"        arg \u003d update.call_args[0][0]"},{"line_number":664,"context_line":"        self.assertTrue(isinstance(arg, dict))"}],"source_content_type":"text/x-python","patch_set":22,"id":"5a18252c_8b69f8fb","line":661,"in_reply_to":"5a18252c_1b9ada14","updated":"2016-04-14 15:39:17.000000000","message":"Yes, it\u0027s a bad comment (copied from previous test) since this test is \"no_order\".","commit_id":"e2be72dd8fd0b2e831da9425fbd03df1cc87afa7"}],"requirements.txt":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8f12801ec260976a73881a4d8e615b6d4cc33729","unresolved":false,"context_lines":[{"line_number":43,"context_line":"taskflow\u003e\u003d1.16.0"},{"line_number":44,"context_line":"rtslib-fb\u003e\u003d2.1.41"},{"line_number":45,"context_line":"six\u003e\u003d1.9.0"},{"line_number":46,"context_line":"SQLAlchemy\u003c1.1.0,\u003e\u003d1.0.10"},{"line_number":47,"context_line":"sqlalchemy-migrate\u003e\u003d0.9.6"},{"line_number":48,"context_line":"stevedore\u003e\u003d1.5.0 # Apache-2.0"},{"line_number":49,"context_line":"suds-jurko\u003e\u003d0.6"}],"source_content_type":"text/plain","patch_set":9,"id":"3a7e1126_40b35350","line":46,"range":{"start_line":46,"start_character":21,"end_line":46,"end_character":22},"updated":"2015-12-21 14:02:00.000000000","message":"This doesn\u0027t match what is in global requirements.\n\nhttps://github.com/openstack/requirements/blob/master/global-requirements.txt#L209","commit_id":"6d16ad7ecfc6c57ff0d82e5221c23e751eb87bdb"}]}
