)]}'
{"nova/api/openstack/placement/objects/resource_provider.py":[{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"a96ff704f92b42e9f0eda39a4634d7cb67bd888a","unresolved":false,"context_lines":[{"line_number":3759,"context_line":"                    # If there aren\u0027t any providers that have any of the"},{"line_number":3760,"context_line":"                    # required traits, just exit early..."},{"line_number":3761,"context_line":"                    return [], []"},{"line_number":3762,"context_line":""},{"line_number":3763,"context_line":"            nested_providers \u003d {"},{"line_number":3764,"context_line":"                rc_id: _get_providers_with_nested_capacity(context,"},{"line_number":3765,"context_line":"                                                           rc_id, amount)"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_29dcfd72","line":3762,"updated":"2018-04-08 10:31:36.000000000","message":"For optimization, it is good to change _get_providers_with_nested_capacity to accept rp_ids(root_ids) for its args and filter return values to have only descendents of the rp_ids(root_ids). Will note it.","commit_id":"cd5e54ceb7556109f211af868009637fb7b6ee25"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e55fc0457bbfcbad505dd3e934543fbd9b1a76cb","unresolved":false,"context_lines":[{"line_number":3437,"context_line":"                                         nested, summaries, rp_ref_dict):"},{"line_number":3438,"context_line":"    \"\"\"Returns a dict, keyed by resource class ID, of lists of"},{"line_number":3439,"context_line":"    AllocationRequestResource objects that represent resources that are"},{"line_number":3440,"context_line":"    provided by a nested provider."},{"line_number":3441,"context_line":""},{"line_number":3442,"context_line":"    :param ctx: nova.context.RequestContext object"},{"line_number":3443,"context_line":"    :param ns_rp_id: an internal ID of a non-sharing resource provider"}],"source_content_type":"text/x-python","patch_set":12,"id":"9f6a8fd7_84bdd569","line":3440,"range":{"start_line":3440,"start_character":18,"end_line":3440,"end_character":34},"updated":"2018-05-01 22:23:29.000000000","message":"Does this also exclude roots?","commit_id":"c11ad375150b4c553a1447dde508e1c9bbb95b37"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"26e732e003c3ec72a508de69aba9760c114f0c02","unresolved":false,"context_lines":[{"line_number":3437,"context_line":"                                         nested, summaries, rp_ref_dict):"},{"line_number":3438,"context_line":"    \"\"\"Returns a dict, keyed by resource class ID, of lists of"},{"line_number":3439,"context_line":"    AllocationRequestResource objects that represent resources that are"},{"line_number":3440,"context_line":"    provided by a nested provider."},{"line_number":3441,"context_line":""},{"line_number":3442,"context_line":"    :param ctx: nova.context.RequestContext object"},{"line_number":3443,"context_line":"    :param ns_rp_id: an internal ID of a non-sharing resource provider"}],"source_content_type":"text/x-python","patch_set":12,"id":"9f6a8fd7_01353246","line":3440,"range":{"start_line":3440,"start_character":18,"end_line":3440,"end_character":34},"in_reply_to":"9f6a8fd7_84bdd569","updated":"2018-05-02 05:26:03.000000000","message":"That depends on the argument \"nested\" include root providers or not, i.e. that depends on the caller. Today, looking at the way this function is used, \"nested\" don\u0027t include root providers, as a result this function returns no AllocReqRes objects with root providers.\nNoted.","commit_id":"c11ad375150b4c553a1447dde508e1c9bbb95b37"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e55fc0457bbfcbad505dd3e934543fbd9b1a76cb","unresolved":false,"context_lines":[{"line_number":3440,"context_line":"    provided by a nested provider."},{"line_number":3441,"context_line":""},{"line_number":3442,"context_line":"    :param ctx: nova.context.RequestContext object"},{"line_number":3443,"context_line":"    :param ns_rp_id: an internal ID of a non-sharing resource provider"},{"line_number":3444,"context_line":"    :param requested_resources: dict, keyed by resource class ID, of amounts"},{"line_number":3445,"context_line":"                                being requested for that resource class"},{"line_number":3446,"context_line":"    :param nested: dict, keyed by resource class ID, of tuples of resource"}],"source_content_type":"text/x-python","patch_set":12,"id":"9f6a8fd7_a4c019e2","line":3443,"range":{"start_line":3443,"start_character":21,"end_line":3443,"end_character":70},"updated":"2018-05-01 22:23:29.000000000","message":"Should this always be a root (i.e. the \"anchor\")?","commit_id":"c11ad375150b4c553a1447dde508e1c9bbb95b37"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"26e732e003c3ec72a508de69aba9760c114f0c02","unresolved":false,"context_lines":[{"line_number":3440,"context_line":"    provided by a nested provider."},{"line_number":3441,"context_line":""},{"line_number":3442,"context_line":"    :param ctx: nova.context.RequestContext object"},{"line_number":3443,"context_line":"    :param ns_rp_id: an internal ID of a non-sharing resource provider"},{"line_number":3444,"context_line":"    :param requested_resources: dict, keyed by resource class ID, of amounts"},{"line_number":3445,"context_line":"                                being requested for that resource class"},{"line_number":3446,"context_line":"    :param nested: dict, keyed by resource class ID, of tuples of resource"}],"source_content_type":"text/x-python","patch_set":12,"id":"9f6a8fd7_a11c86c1","line":3443,"range":{"start_line":3443,"start_character":21,"end_line":3443,"end_character":70},"in_reply_to":"9f6a8fd7_a4c019e2","updated":"2018-05-02 05:26:03.000000000","message":"No, not actually, as I put the explanation in _get_all_with_nested_and_shared in the patch right before this.","commit_id":"c11ad375150b4c553a1447dde508e1c9bbb95b37"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e55fc0457bbfcbad505dd3e934543fbd9b1a76cb","unresolved":false,"context_lines":[{"line_number":3454,"context_line":"                        and \"resource_provider_uuid\""},{"line_number":3455,"context_line":"    \"\"\""},{"line_number":3456,"context_line":"    res_requests \u003d collections.defaultdict(list)"},{"line_number":3457,"context_line":"    for rc_id in nested:"},{"line_number":3458,"context_line":"        for rp_id in nested[rc_id]:"},{"line_number":3459,"context_line":"            if rp_ref_dict[rp_id][\u0027root_provider_id\u0027] !\u003d ns_rp_id:"},{"line_number":3460,"context_line":"                continue"},{"line_number":3461,"context_line":"            summary \u003d summaries[rp_id]"}],"source_content_type":"text/x-python","patch_set":12,"id":"9f6a8fd7_64ba016f","line":3458,"range":{"start_line":3457,"start_character":0,"end_line":3458,"end_character":35},"updated":"2018-05-01 22:23:29.000000000","message":"or\n\n for rc_id, rp_ids in nested.items():\n     for rp_id in rp_ids:","commit_id":"c11ad375150b4c553a1447dde508e1c9bbb95b37"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"26e732e003c3ec72a508de69aba9760c114f0c02","unresolved":false,"context_lines":[{"line_number":3454,"context_line":"                        and \"resource_provider_uuid\""},{"line_number":3455,"context_line":"    \"\"\""},{"line_number":3456,"context_line":"    res_requests \u003d collections.defaultdict(list)"},{"line_number":3457,"context_line":"    for rc_id in nested:"},{"line_number":3458,"context_line":"        for rp_id in nested[rc_id]:"},{"line_number":3459,"context_line":"            if rp_ref_dict[rp_id][\u0027root_provider_id\u0027] !\u003d ns_rp_id:"},{"line_number":3460,"context_line":"                continue"},{"line_number":3461,"context_line":"            summary \u003d summaries[rp_id]"}],"source_content_type":"text/x-python","patch_set":12,"id":"9f6a8fd7_218636dd","line":3458,"range":{"start_line":3457,"start_character":0,"end_line":3458,"end_character":35},"in_reply_to":"9f6a8fd7_64ba016f","updated":"2018-05-02 05:26:03.000000000","message":"I like it! Thanks.","commit_id":"c11ad375150b4c553a1447dde508e1c9bbb95b37"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e55fc0457bbfcbad505dd3e934543fbd9b1a76cb","unresolved":false,"context_lines":[{"line_number":3458,"context_line":"        for rp_id in nested[rc_id]:"},{"line_number":3459,"context_line":"            if rp_ref_dict[rp_id][\u0027root_provider_id\u0027] !\u003d ns_rp_id:"},{"line_number":3460,"context_line":"                continue"},{"line_number":3461,"context_line":"            summary \u003d summaries[rp_id]"},{"line_number":3462,"context_line":"            rp_uuid \u003d summary.resource_provider.uuid"},{"line_number":3463,"context_line":"            res_req \u003d AllocationRequestResource("},{"line_number":3464,"context_line":"                ctx,"},{"line_number":3465,"context_line":"                resource_provider\u003dResourceProvider(ctx, uuid\u003drp_uuid),"}],"source_content_type":"text/x-python","patch_set":12,"id":"9f6a8fd7_24ac0934","line":3462,"range":{"start_line":3461,"start_character":0,"end_line":3462,"end_character":52},"updated":"2018-05-01 22:23:29.000000000","message":"or\n\n rp_uuid \u003d rp_ref_dict[rp_id][\u0027resource_provider_uuid\u0027]\n\n...and then you don\u0027t need the `summaries` arg","commit_id":"c11ad375150b4c553a1447dde508e1c9bbb95b37"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"26e732e003c3ec72a508de69aba9760c114f0c02","unresolved":false,"context_lines":[{"line_number":3458,"context_line":"        for rp_id in nested[rc_id]:"},{"line_number":3459,"context_line":"            if rp_ref_dict[rp_id][\u0027root_provider_id\u0027] !\u003d ns_rp_id:"},{"line_number":3460,"context_line":"                continue"},{"line_number":3461,"context_line":"            summary \u003d summaries[rp_id]"},{"line_number":3462,"context_line":"            rp_uuid \u003d summary.resource_provider.uuid"},{"line_number":3463,"context_line":"            res_req \u003d AllocationRequestResource("},{"line_number":3464,"context_line":"                ctx,"},{"line_number":3465,"context_line":"                resource_provider\u003dResourceProvider(ctx, uuid\u003drp_uuid),"}],"source_content_type":"text/x-python","patch_set":12,"id":"9f6a8fd7_015c527c","line":3462,"range":{"start_line":3461,"start_character":0,"end_line":3462,"end_character":52},"in_reply_to":"9f6a8fd7_24ac0934","updated":"2018-05-02 05:26:03.000000000","message":"I love it! Nice.","commit_id":"c11ad375150b4c553a1447dde508e1c9bbb95b37"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e55fc0457bbfcbad505dd3e934543fbd9b1a76cb","unresolved":false,"context_lines":[{"line_number":3536,"context_line":"    return alloc_requests, list(summaries.values())"},{"line_number":3537,"context_line":""},{"line_number":3538,"context_line":""},{"line_number":3539,"context_line":"def _alloc_candidates_with_shared(ctx, requested_resources, required_traits,"},{"line_number":3540,"context_line":"                                  forbidden_traits, ns_rp_ids, sharing,"},{"line_number":3541,"context_line":"                                  nested):"},{"line_number":3542,"context_line":"    \"\"\"Returns a tuple of (allocation requests, provider summaries) for a"}],"source_content_type":"text/x-python","patch_set":12,"id":"9f6a8fd7_a464994a","line":3539,"range":{"start_line":3539,"start_character":4,"end_line":3539,"end_character":33},"updated":"2018-05-01 22:23:29.000000000","message":"_alloc_candidates_with_nested_and_shared ?","commit_id":"c11ad375150b4c553a1447dde508e1c9bbb95b37"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"26e732e003c3ec72a508de69aba9760c114f0c02","unresolved":false,"context_lines":[{"line_number":3536,"context_line":"    return alloc_requests, list(summaries.values())"},{"line_number":3537,"context_line":""},{"line_number":3538,"context_line":""},{"line_number":3539,"context_line":"def _alloc_candidates_with_shared(ctx, requested_resources, required_traits,"},{"line_number":3540,"context_line":"                                  forbidden_traits, ns_rp_ids, sharing,"},{"line_number":3541,"context_line":"                                  nested):"},{"line_number":3542,"context_line":"    \"\"\"Returns a tuple of (allocation requests, provider summaries) for a"}],"source_content_type":"text/x-python","patch_set":12,"id":"9f6a8fd7_618d0e30","line":3539,"range":{"start_line":3539,"start_character":4,"end_line":3539,"end_character":33},"in_reply_to":"9f6a8fd7_a464994a","updated":"2018-05-02 05:26:03.000000000","message":"Done in https://review.openstack.org/#/c/561842/ because I wanted to rename this function in the patch where we can make clear the role of this function against _alloc_candidates_no_shared@3492.","commit_id":"c11ad375150b4c553a1447dde508e1c9bbb95b37"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"4c57db1d51696a07c65effd396507ac5d96eff4a","unresolved":false,"context_lines":[{"line_number":3435,"context_line":""},{"line_number":3436,"context_line":""},{"line_number":3437,"context_line":"def _nested_allocation_request_resources(ctx, ns_rp_id, requested_resources,"},{"line_number":3438,"context_line":"                                         nested, summaries, rp_ref_dict):"},{"line_number":3439,"context_line":"    \"\"\"Returns a dict, keyed by resource class ID, of lists of"},{"line_number":3440,"context_line":"    AllocationRequestResource objects that represent resources that are"},{"line_number":3441,"context_line":"    provided by a nested provider. If there is no root providers in the"}],"source_content_type":"text/x-python","patch_set":13,"id":"9f6a8fd7_fd48d687","line":3438,"range":{"start_line":3438,"start_character":49,"end_line":3438,"end_character":58},"updated":"2018-05-02 13:57:59.000000000","message":"This is unused now, right?","commit_id":"e9918ab8aef7b3dcc83e0d4ff4abefa7bb9424b3"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"91764d1e4104fc98c94edeef373d923e2b893a26","unresolved":false,"context_lines":[{"line_number":3435,"context_line":""},{"line_number":3436,"context_line":""},{"line_number":3437,"context_line":"def _nested_allocation_request_resources(ctx, ns_rp_id, requested_resources,"},{"line_number":3438,"context_line":"                                         nested, summaries, rp_ref_dict):"},{"line_number":3439,"context_line":"    \"\"\"Returns a dict, keyed by resource class ID, of lists of"},{"line_number":3440,"context_line":"    AllocationRequestResource objects that represent resources that are"},{"line_number":3441,"context_line":"    provided by a nested provider. If there is no root providers in the"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_2fe9957f","line":3438,"range":{"start_line":3438,"start_character":49,"end_line":3438,"end_character":58},"in_reply_to":"9f6a8fd7_fd48d687","updated":"2018-05-03 08:12:35.000000000","message":"Done","commit_id":"e9918ab8aef7b3dcc83e0d4ff4abefa7bb9424b3"}],"nova/tests/functional/api/openstack/placement/db/test_allocation_candidates.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e55fc0457bbfcbad505dd3e934543fbd9b1a76cb","unresolved":false,"context_lines":[{"line_number":2000,"context_line":"        #           |                    |"},{"line_number":2001,"context_line":"        #         pf 1_0               pf 1_1"},{"line_number":2002,"context_line":"        #"},{"line_number":2003,"context_line":"        #              compute node (cn2)      ----- shared storage (ss1)"},{"line_number":2004,"context_line":"        #             /                 \\       agg2       with 1000 DISK_GB"},{"line_number":2005,"context_line":"        #            /                   \\"},{"line_number":2006,"context_line":"        #       numa cell 2_0        numa cell 2_1"}],"source_content_type":"text/x-python","patch_set":12,"id":"9f6a8fd7_e4de11d9","line":2003,"range":{"start_line":2003,"start_character":69,"end_line":2003,"end_character":72},"updated":"2018-05-01 22:23:29.000000000","message":"ss2?","commit_id":"c11ad375150b4c553a1447dde508e1c9bbb95b37"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"26e732e003c3ec72a508de69aba9760c114f0c02","unresolved":false,"context_lines":[{"line_number":2000,"context_line":"        #           |                    |"},{"line_number":2001,"context_line":"        #         pf 1_0               pf 1_1"},{"line_number":2002,"context_line":"        #"},{"line_number":2003,"context_line":"        #              compute node (cn2)      ----- shared storage (ss1)"},{"line_number":2004,"context_line":"        #             /                 \\       agg2       with 1000 DISK_GB"},{"line_number":2005,"context_line":"        #            /                   \\"},{"line_number":2006,"context_line":"        #       numa cell 2_0        numa cell 2_1"}],"source_content_type":"text/x-python","patch_set":12,"id":"9f6a8fd7_61caee1a","line":2003,"range":{"start_line":2003,"start_character":69,"end_line":2003,"end_character":72},"in_reply_to":"9f6a8fd7_e4de11d9","updated":"2018-05-02 05:26:03.000000000","message":"Done","commit_id":"c11ad375150b4c553a1447dde508e1c9bbb95b37"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e55fc0457bbfcbad505dd3e934543fbd9b1a76cb","unresolved":false,"context_lines":[{"line_number":2008,"context_line":"        #           |                    |"},{"line_number":2009,"context_line":"        #         pf 2_0               pf 2_1"},{"line_number":2010,"context_line":"        #"},{"line_number":2011,"context_line":"        # The second physical function will be associated with the"},{"line_number":2012,"context_line":"        # HW_NIC_OFFLOAD_GENEVE trait, but not the first physical function."},{"line_number":2013,"context_line":"        #"},{"line_number":2014,"context_line":"        # We will issue a request to _get_allocation_candidates() for VCPU,"},{"line_number":2015,"context_line":"        # SRIOV_NET_VF and DISK_GB **without** required traits, then include"}],"source_content_type":"text/x-python","patch_set":12,"id":"9f6a8fd7_44e9fd7d","line":2012,"range":{"start_line":2011,"start_character":10,"end_line":2012,"end_character":75},"updated":"2018-05-01 22:23:29.000000000","message":"on both trees?  Maybe list the specific pf names.","commit_id":"c11ad375150b4c553a1447dde508e1c9bbb95b37"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"26e732e003c3ec72a508de69aba9760c114f0c02","unresolved":false,"context_lines":[{"line_number":2008,"context_line":"        #           |                    |"},{"line_number":2009,"context_line":"        #         pf 2_0               pf 2_1"},{"line_number":2010,"context_line":"        #"},{"line_number":2011,"context_line":"        # The second physical function will be associated with the"},{"line_number":2012,"context_line":"        # HW_NIC_OFFLOAD_GENEVE trait, but not the first physical function."},{"line_number":2013,"context_line":"        #"},{"line_number":2014,"context_line":"        # We will issue a request to _get_allocation_candidates() for VCPU,"},{"line_number":2015,"context_line":"        # SRIOV_NET_VF and DISK_GB **without** required traits, then include"}],"source_content_type":"text/x-python","patch_set":12,"id":"9f6a8fd7_c1dadae7","line":2012,"range":{"start_line":2011,"start_character":10,"end_line":2012,"end_character":75},"in_reply_to":"9f6a8fd7_44e9fd7d","updated":"2018-05-02 05:26:03.000000000","message":"Done","commit_id":"c11ad375150b4c553a1447dde508e1c9bbb95b37"}]}
