)]}'
{"nova/api/openstack/placement/handlers/allocation.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"93e633222b8a994ad3572e8379e27e1339c0928e","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    # NOTE(cdent): There is no way for a 404 to be returned here,"},{"line_number":143,"context_line":"    # only an empty result. We do not have a way to validate a"},{"line_number":144,"context_line":"    # consumer id."},{"line_number":145,"context_line":"    allocations \u003d rp_obj.AllocationList.get_all_by_consumer_id("},{"line_number":146,"context_line":"        context, consumer_id)"},{"line_number":147,"context_line":"    consumer_generation \u003d None"},{"line_number":148,"context_line":"    if want_version.matches((1, 22)):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_4d8284ca","line":145,"updated":"2018-04-09 18:32:36.000000000","message":"Is your plan to eventually make it so the objects in this allocations list eventually have their generation filled, and then let the serializer do the right thing depending on microversion?\n\nAdding the generation as below is part of the spiking?","commit_id":"6f2bc5a595362c12d69539711d043f9e2ff88967"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"f13769de4c5a14fb1152c53c4dd8502119413700","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    # NOTE(cdent): There is no way for a 404 to be returned here,"},{"line_number":143,"context_line":"    # only an empty result. We do not have a way to validate a"},{"line_number":144,"context_line":"    # consumer id."},{"line_number":145,"context_line":"    allocations \u003d rp_obj.AllocationList.get_all_by_consumer_id("},{"line_number":146,"context_line":"        context, consumer_id)"},{"line_number":147,"context_line":"    consumer_generation \u003d None"},{"line_number":148,"context_line":"    if want_version.matches((1, 22)):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_68597633","line":145,"in_reply_to":"bf659307_4d8284ca","updated":"2018-04-09 19:03:04.000000000","message":"I didn\u0027t think that the serializer should be doing anything other than serializing; that\u0027s why I placed the call to fetch the current gen here. The serializer just determines if the value should be in the output or not. I *could* combine them, but thought reviewers would object.","commit_id":"6f2bc5a595362c12d69539711d043f9e2ff88967"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"761d8121e5e468957ce73809acaf285fb4953fff","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    # NOTE(cdent): There is no way for a 404 to be returned here,"},{"line_number":143,"context_line":"    # only an empty result. We do not have a way to validate a"},{"line_number":144,"context_line":"    # consumer id."},{"line_number":145,"context_line":"    allocations \u003d rp_obj.AllocationList.get_all_by_consumer_id("},{"line_number":146,"context_line":"        context, consumer_id)"},{"line_number":147,"context_line":"    consumer_generation \u003d None"},{"line_number":148,"context_line":"    if want_version.matches((1, 22)):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_288ffe2e","line":145,"in_reply_to":"bf659307_68597633","updated":"2018-04-09 19:05:15.000000000","message":"I agree the serializer shouldn\u0027t be doing any fetching, I mean that the generation should already be in the allocation object, you should need to fetch separately.","commit_id":"6f2bc5a595362c12d69539711d043f9e2ff88967"}],"nova/api/openstack/placement/objects/resource_provider.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9ed3810c3c1198cbb4fdc5558e263483f0298688","unresolved":false,"context_lines":[{"line_number":302,"context_line":"    \"\"\""},{"line_number":303,"context_line":"    ct \u003d _CONSUMER_TBL"},{"line_number":304,"context_line":"    consumer_generation \u003d consumer_dict.get(\"generation\")"},{"line_number":305,"context_line":"    enforce_cgen \u003d consumer_dict.get(\"enforce_cgen\")"},{"line_number":306,"context_line":"    project_id \u003d consumer_dict.get(\"project_id\")"},{"line_number":307,"context_line":"    user_id \u003d consumer_dict.get(\"user_id\")"},{"line_number":308,"context_line":"    enforce_cgen \u003d consumer_dict.get(\"enforce_cgen\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_7a6ef896","line":305,"range":{"start_line":305,"start_character":0,"end_line":305,"end_character":52},"updated":"2018-04-10 22:08:36.000000000","message":"duplicates L308","commit_id":"cd94ed1c0b205c55a289264677fdc500922cccc3"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"10203c5161646daac2cb88b8a3d274197461c4f1","unresolved":false,"context_lines":[{"line_number":302,"context_line":"    \"\"\""},{"line_number":303,"context_line":"    ct \u003d _CONSUMER_TBL"},{"line_number":304,"context_line":"    consumer_generation \u003d consumer_dict.get(\"generation\")"},{"line_number":305,"context_line":"    enforce_cgen \u003d consumer_dict.get(\"enforce_cgen\")"},{"line_number":306,"context_line":"    project_id \u003d consumer_dict.get(\"project_id\")"},{"line_number":307,"context_line":"    user_id \u003d consumer_dict.get(\"user_id\")"},{"line_number":308,"context_line":"    enforce_cgen \u003d consumer_dict.get(\"enforce_cgen\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_eb679d4c","line":305,"range":{"start_line":305,"start_character":0,"end_line":305,"end_character":52},"in_reply_to":"bf659307_7a6ef896","updated":"2018-04-10 23:17:53.000000000","message":"Done","commit_id":"cd94ed1c0b205c55a289264677fdc500922cccc3"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9ed3810c3c1198cbb4fdc5558e263483f0298688","unresolved":false,"context_lines":[{"line_number":323,"context_line":"    if not result:"},{"line_number":324,"context_line":"        # If the user supplied a non-None generation and there are no consumer"},{"line_number":325,"context_line":"        # records, some other thread has deleted them."},{"line_number":326,"context_line":"        if enforce_cgen and consumer_generation is not None:"},{"line_number":327,"context_line":"            raise exception.ConcurrentUpdateDetected"},{"line_number":328,"context_line":"        else:"},{"line_number":329,"context_line":"            # We don\u0027t enforce any checking for older microversions. So just"},{"line_number":330,"context_line":"            # add the consumer record and return."}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_5af8d4c2","line":327,"range":{"start_line":326,"start_character":0,"end_line":327,"end_character":52},"updated":"2018-04-10 22:08:36.000000000","message":"This should have been done in the previous change in the series.","commit_id":"cd94ed1c0b205c55a289264677fdc500922cccc3"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9ed3810c3c1198cbb4fdc5558e263483f0298688","unresolved":false,"context_lines":[{"line_number":343,"context_line":"            raise exception.ConcurrentUpdateDetected"},{"line_number":344,"context_line":"        # We don\u0027t enforce this for older microversions. Just return the"},{"line_number":345,"context_line":"        # current generation."},{"line_number":346,"context_line":"        return result[0][\"generation\"]"},{"line_number":347,"context_line":"    else:"},{"line_number":348,"context_line":"        if consumer_generation is None:"},{"line_number":349,"context_line":"            new_generation \u003d 0"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_5a21b44c","line":346,"range":{"start_line":346,"start_character":8,"end_line":346,"end_character":38},"updated":"2018-04-10 22:08:36.000000000","message":"No, this condition should still increment the generation.","commit_id":"cd94ed1c0b205c55a289264677fdc500922cccc3"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"10203c5161646daac2cb88b8a3d274197461c4f1","unresolved":false,"context_lines":[{"line_number":343,"context_line":"            raise exception.ConcurrentUpdateDetected"},{"line_number":344,"context_line":"        # We don\u0027t enforce this for older microversions. Just return the"},{"line_number":345,"context_line":"        # current generation."},{"line_number":346,"context_line":"        return result[0][\"generation\"]"},{"line_number":347,"context_line":"    else:"},{"line_number":348,"context_line":"        if consumer_generation is None:"},{"line_number":349,"context_line":"            new_generation \u003d 0"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_2b8cb5d5","line":346,"range":{"start_line":346,"start_character":8,"end_line":346,"end_character":38},"in_reply_to":"bf659307_5a21b44c","updated":"2018-04-10 23:17:53.000000000","message":"Yeah, makes sense. Done.","commit_id":"cd94ed1c0b205c55a289264677fdc500922cccc3"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9ed3810c3c1198cbb4fdc5558e263483f0298688","unresolved":false,"context_lines":[{"line_number":2323,"context_line":"                \"user_id\": user_id,"},{"line_number":2324,"context_line":"                \"enforce_cgen\": enforce_cgen}"},{"line_number":2325,"context_line":"        _delete_allocations_for_consumer(ctx, consumer_uuid)"},{"line_number":2326,"context_line":"        # TODO(edleafe): add has_gen"},{"line_number":2327,"context_line":"        _increment_consumer_generation(ctx, consumer_uuid, consumer_dict)"},{"line_number":2328,"context_line":""},{"line_number":2329,"context_line":"    def __repr__(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_48224f54","line":2326,"range":{"start_line":2326,"start_character":25,"end_line":2326,"end_character":36},"updated":"2018-04-10 22:08:36.000000000","message":"Whazzat?","commit_id":"cd94ed1c0b205c55a289264677fdc500922cccc3"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"10203c5161646daac2cb88b8a3d274197461c4f1","unresolved":false,"context_lines":[{"line_number":2323,"context_line":"                \"user_id\": user_id,"},{"line_number":2324,"context_line":"                \"enforce_cgen\": enforce_cgen}"},{"line_number":2325,"context_line":"        _delete_allocations_for_consumer(ctx, consumer_uuid)"},{"line_number":2326,"context_line":"        # TODO(edleafe): add has_gen"},{"line_number":2327,"context_line":"        _increment_consumer_generation(ctx, consumer_uuid, consumer_dict)"},{"line_number":2328,"context_line":""},{"line_number":2329,"context_line":"    def __repr__(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_ebc31dec","line":2326,"range":{"start_line":2326,"start_character":25,"end_line":2326,"end_character":36},"in_reply_to":"bf659307_48224f54","updated":"2018-04-10 23:17:53.000000000","message":"An old note to myself. Deleted.","commit_id":"cd94ed1c0b205c55a289264677fdc500922cccc3"}]}
