)]}'
{"nova/objects/resource_provider.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"6d500c2787d70d5f0d60aa34749665b075526619","unresolved":false,"context_lines":[{"line_number":2568,"context_line":"    return summaries"},{"line_number":2569,"context_line":""},{"line_number":2570,"context_line":""},{"line_number":2571,"context_line":"def _shared_allocation_request_resources(ctx, requested_resources, sharing,"},{"line_number":2572,"context_line":"                                         summaries):"},{"line_number":2573,"context_line":"    \"\"\"Returns a dict, keyed by resource class ID, of lists of"},{"line_number":2574,"context_line":"    AllocationRequestResource objects that represent resources that are"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4b6375_823edd26","line":2571,"range":{"start_line":2571,"start_character":4,"end_line":2571,"end_character":40},"updated":"2017-11-01 22:35:37.000000000","message":"I don\u0027t see what about this is sharing RP-specific.  I get that that\u0027s what you\u0027re using it for in this change set, but it seems like it could just as well be used for building the AllocationRequestResources for non-sharing RPs.","commit_id":"2942340934d89f88807d1ac119c370047357c9f1"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"329a52e84a414d81e4af9ef3a31be929c63f4c44","unresolved":false,"context_lines":[{"line_number":2568,"context_line":"    return summaries"},{"line_number":2569,"context_line":""},{"line_number":2570,"context_line":""},{"line_number":2571,"context_line":"def _shared_allocation_request_resources(ctx, requested_resources, sharing,"},{"line_number":2572,"context_line":"                                         summaries):"},{"line_number":2573,"context_line":"    \"\"\"Returns a dict, keyed by resource class ID, of lists of"},{"line_number":2574,"context_line":"    AllocationRequestResource objects that represent resources that are"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4b6375_c656145d","line":2571,"range":{"start_line":2571,"start_character":4,"end_line":2571,"end_character":40},"in_reply_to":"3f4b6375_823edd26","updated":"2017-11-02 13:57:51.000000000","message":"Because this is producing a dict of AllocationRequestResource objects, keyed by resource class ID. Non-shared scenarios don\u0027t need this because all resources are provided by a single resource provider.\n\nThe results of this function are used in the \"Tetris\" code that constructs the permutations of resources that are supplied by non-sharing providers and resources that are supplied by sharing providers to create a full AllocationRequest that satisfies the request for resources.","commit_id":"2942340934d89f88807d1ac119c370047357c9f1"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"b6e3401f000ea4f42a3a15d216a76d1177a1e45a","unresolved":false,"context_lines":[{"line_number":2568,"context_line":"    return summaries"},{"line_number":2569,"context_line":""},{"line_number":2570,"context_line":""},{"line_number":2571,"context_line":"def _shared_allocation_request_resources(ctx, requested_resources, sharing,"},{"line_number":2572,"context_line":"                                         summaries):"},{"line_number":2573,"context_line":"    \"\"\"Returns a dict, keyed by resource class ID, of lists of"},{"line_number":2574,"context_line":"    AllocationRequestResource objects that represent resources that are"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4b6375_a9108b4f","line":2571,"range":{"start_line":2571,"start_character":4,"end_line":2571,"end_character":40},"in_reply_to":"3f4b6375_c656145d","updated":"2017-11-02 14:08:18.000000000","message":"This same method will be useful for nested trees; but I suppose we can rename it when we implement that.","commit_id":"2942340934d89f88807d1ac119c370047357c9f1"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"6d500c2787d70d5f0d60aa34749665b075526619","unresolved":false,"context_lines":[{"line_number":2585,"context_line":"                      resource providers involved in the overall request"},{"line_number":2586,"context_line":"    \"\"\""},{"line_number":2587,"context_line":"    res_requests \u003d collections.defaultdict(list)"},{"line_number":2588,"context_line":"    for rc_id in sharing.keys():"},{"line_number":2589,"context_line":"        for rp_id in sharing[rc_id]:"},{"line_number":2590,"context_line":"            summary \u003d summaries[rp_id]"},{"line_number":2591,"context_line":"            rp_uuid \u003d summary.resource_provider.uuid"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4b6375_22d5e9e5","line":2588,"range":{"start_line":2588,"start_character":24,"end_line":2588,"end_character":31},"updated":"2017-11-01 22:35:37.000000000","message":"strike","commit_id":"2942340934d89f88807d1ac119c370047357c9f1"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"b6e3401f000ea4f42a3a15d216a76d1177a1e45a","unresolved":false,"context_lines":[{"line_number":2585,"context_line":"                      resource providers involved in the overall request"},{"line_number":2586,"context_line":"    \"\"\""},{"line_number":2587,"context_line":"    res_requests \u003d collections.defaultdict(list)"},{"line_number":2588,"context_line":"    for rc_id in sharing.keys():"},{"line_number":2589,"context_line":"        for rp_id in sharing[rc_id]:"},{"line_number":2590,"context_line":"            summary \u003d summaries[rp_id]"},{"line_number":2591,"context_line":"            rp_uuid \u003d summary.resource_provider.uuid"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4b6375_29537b19","line":2588,"range":{"start_line":2588,"start_character":24,"end_line":2588,"end_character":31},"in_reply_to":"3f4b6375_06ce6c2c","updated":"2017-11-02 14:08:18.000000000","message":"In py2 this is less efficient because it actually constructs a new list in memory.  It\u0027s negligible unless the dict is huge; not worth the change if you really like the explicitness.","commit_id":"2942340934d89f88807d1ac119c370047357c9f1"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"329a52e84a414d81e4af9ef3a31be929c63f4c44","unresolved":false,"context_lines":[{"line_number":2585,"context_line":"                      resource providers involved in the overall request"},{"line_number":2586,"context_line":"    \"\"\""},{"line_number":2587,"context_line":"    res_requests \u003d collections.defaultdict(list)"},{"line_number":2588,"context_line":"    for rc_id in sharing.keys():"},{"line_number":2589,"context_line":"        for rp_id in sharing[rc_id]:"},{"line_number":2590,"context_line":"            summary \u003d summaries[rp_id]"},{"line_number":2591,"context_line":"            rp_uuid \u003d summary.resource_provider.uuid"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4b6375_06ce6c2c","line":2588,"range":{"start_line":2588,"start_character":24,"end_line":2588,"end_character":31},"in_reply_to":"3f4b6375_22d5e9e5","updated":"2017-11-02 13:57:51.000000000","message":"meh... prefer explicit, but whatevs. :)","commit_id":"2942340934d89f88807d1ac119c370047357c9f1"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5a7cd666735111be3292aafb34df3d00b5d29015","unresolved":false,"context_lines":[{"line_number":2585,"context_line":"                      resource providers involved in the overall request"},{"line_number":2586,"context_line":"    \"\"\""},{"line_number":2587,"context_line":"    res_requests \u003d collections.defaultdict(list)"},{"line_number":2588,"context_line":"    for rc_id in sharing.keys():"},{"line_number":2589,"context_line":"        for rp_id in sharing[rc_id]:"},{"line_number":2590,"context_line":"            summary \u003d summaries[rp_id]"},{"line_number":2591,"context_line":"            rp_uuid \u003d summary.resource_provider.uuid"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4b6375_53ce405a","line":2588,"range":{"start_line":2588,"start_character":24,"end_line":2588,"end_character":31},"in_reply_to":"3f4b6375_29537b19","updated":"2017-11-03 15:36:32.000000000","message":"Done","commit_id":"2942340934d89f88807d1ac119c370047357c9f1"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"67a94c04ef3554e5b24591d2a32e207330b376d9","unresolved":false,"context_lines":[{"line_number":2580,"context_line":"    :param ctx: nova.context.Context object"},{"line_number":2581,"context_line":"    :param requested_resources: dict, keyed by resource class ID, of amounts"},{"line_number":2582,"context_line":"                                being requested for that resource class"},{"line_number":2583,"context_line":"    :param sharing: dict, keyed by resource class ID, of sets of resource"},{"line_number":2584,"context_line":"                    provider IDs that share that resource class and can"},{"line_number":2585,"context_line":"                    contribute to the overall allocation request"},{"line_number":2586,"context_line":"    :param summaries: dict, keyed by resource provider ID, of ProviderSummary"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f485f77_d126c515","line":2583,"range":{"start_line":2583,"start_character":57,"end_line":2583,"end_character":61},"updated":"2017-11-16 06:10:16.000000000","message":"lists (see what _get_providers_with_shared_capacity() returns regarding L2675)","commit_id":"783a7bbaa8b3915f8d47e390e9345ff7710a87b5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c303956ce0fba74adf9f09309c6074f48231e40b","unresolved":false,"context_lines":[{"line_number":2580,"context_line":"    :param ctx: nova.context.Context object"},{"line_number":2581,"context_line":"    :param requested_resources: dict, keyed by resource class ID, of amounts"},{"line_number":2582,"context_line":"                                being requested for that resource class"},{"line_number":2583,"context_line":"    :param sharing: dict, keyed by resource class ID, of sets of resource"},{"line_number":2584,"context_line":"                    provider IDs that share that resource class and can"},{"line_number":2585,"context_line":"                    contribute to the overall allocation request"},{"line_number":2586,"context_line":"    :param summaries: dict, keyed by resource provider ID, of ProviderSummary"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f485f77_f0ee2420","line":2583,"range":{"start_line":2583,"start_character":57,"end_line":2583,"end_character":61},"in_reply_to":"1f485f77_96283197","updated":"2017-11-17 21:04:38.000000000","message":"https://review.openstack.org/#/c/521189/","commit_id":"783a7bbaa8b3915f8d47e390e9345ff7710a87b5"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"edf5fc69b29098d6c1f9c5ffe735fad57d507db7","unresolved":false,"context_lines":[{"line_number":2580,"context_line":"    :param ctx: nova.context.Context object"},{"line_number":2581,"context_line":"    :param requested_resources: dict, keyed by resource class ID, of amounts"},{"line_number":2582,"context_line":"                                being requested for that resource class"},{"line_number":2583,"context_line":"    :param sharing: dict, keyed by resource class ID, of sets of resource"},{"line_number":2584,"context_line":"                    provider IDs that share that resource class and can"},{"line_number":2585,"context_line":"                    contribute to the overall allocation request"},{"line_number":2586,"context_line":"    :param summaries: dict, keyed by resource provider ID, of ProviderSummary"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f485f77_96283197","line":2583,"range":{"start_line":2583,"start_character":57,"end_line":2583,"end_character":61},"in_reply_to":"1f485f77_d126c515","updated":"2017-11-16 15:43:12.000000000","message":"ack. if need be, I\u0027ll change in a future revision.","commit_id":"783a7bbaa8b3915f8d47e390e9345ff7710a87b5"}]}
