)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"51d57da525b2740685c14ad97c99f511d9a6e80a","unresolved":false,"context_lines":[{"line_number":10,"context_line":"of ``allocation_requests`` and ``provider_summaries``. The callers,"},{"line_number":11,"context_line":"like the filter scheduler in nova, would use information in"},{"line_number":12,"context_line":"``provider_summaries`` in sorting or filtering providers to allocate"},{"line_number":13,"context_line":"consumers. However, currently ``provider_summaries`` doesn\u0027t contain"},{"line_number":14,"context_line":"resources that aren\u0027t requested."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"With this patch, ``GET /allocation_candidates`` API returns all"},{"line_number":17,"context_line":"resource classes with a new microversion."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":22,"id":"5f7c97a3_f3dcfee4","line":14,"range":{"start_line":13,"start_character":11,"end_line":14,"end_character":32},"updated":"2018-05-16 09:30:00.000000000","message":"I think this could be explained a bit more clearly. Perhaps \"resource classes\" instead of \"resources\".","commit_id":"c9e79d1dec15579251f881365fa54fb5a8291815"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"e281ace714c0a51823cc56ed5a371eec59c9bf21","unresolved":false,"context_lines":[{"line_number":10,"context_line":"of ``allocation_requests`` and ``provider_summaries``. The callers,"},{"line_number":11,"context_line":"like the filter scheduler in nova, would use information in"},{"line_number":12,"context_line":"``provider_summaries`` in sorting or filtering providers to allocate"},{"line_number":13,"context_line":"consumers. However, currently ``provider_summaries`` doesn\u0027t contain"},{"line_number":14,"context_line":"resources that aren\u0027t requested."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"With this patch, ``GET /allocation_candidates`` API returns all"},{"line_number":17,"context_line":"resource classes with a new microversion."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":22,"id":"5f7c97a3_9cdbbbeb","line":14,"range":{"start_line":13,"start_character":11,"end_line":14,"end_character":32},"in_reply_to":"5f7c97a3_f3dcfee4","updated":"2018-05-27 07:19:49.000000000","message":"Done","commit_id":"c9e79d1dec15579251f881365fa54fb5a8291815"}],"nova/api/openstack/placement/handlers/allocation_candidate.py":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"1c997bc58dc048b28abefc622e443b82b58ed2cf","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    The traits only show up when `include_traits` is `True`."},{"line_number":122,"context_line":"    When `include_all_resources` is `True`, all the resources are shown"},{"line_number":123,"context_line":"    while only requested resources are included in the provider_summaries"},{"line_number":124,"context_line":"    when `include_all_resources` is `False`,"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    {"},{"line_number":127,"context_line":"       RP_UUID_1: {"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_bfc3db88","line":124,"range":{"start_line":124,"start_character":42,"end_line":124,"end_character":44},"updated":"2018-04-02 09:03:57.000000000","message":".","commit_id":"1356f819093ffdd2774a40f87b05752f2f5e3ce8"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"f17a087665e238d560636034e5a49a0d4faec56c","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    The traits only show up when `include_traits` is `True`."},{"line_number":122,"context_line":"    When `include_all_resources` is `True`, all the resources are shown"},{"line_number":123,"context_line":"    while only requested resources are included in the provider_summaries"},{"line_number":124,"context_line":"    when `include_all_resources` is `False`,"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    {"},{"line_number":127,"context_line":"       RP_UUID_1: {"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_4455cbf9","line":124,"range":{"start_line":124,"start_character":42,"end_line":124,"end_character":44},"in_reply_to":"bf659307_bfc3db88","updated":"2018-04-05 05:43:22.000000000","message":"Done","commit_id":"1356f819093ffdd2774a40f87b05752f2f5e3ce8"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c8d7801990a109d7fdcf8fbdfd4f5a3dc0c13207","unresolved":false,"context_lines":[{"line_number":173,"context_line":"                \u0027capacity\u0027: psr.capacity,"},{"line_number":174,"context_line":"                \u0027used\u0027: psr.used,"},{"line_number":175,"context_line":"            } for psr in ps.resources if ("},{"line_number":176,"context_line":"                psr.resource_class in requested_resources or"},{"line_number":177,"context_line":"                include_all_resources)"},{"line_number":178,"context_line":"        }"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        ret[ps.resource_provider.uuid] \u003d {\u0027resources\u0027: resources}"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f6a8fd7_643d21dc","line":177,"range":{"start_line":176,"start_character":16,"end_line":177,"end_character":37},"updated":"2018-05-01 22:35:38.000000000","message":"nit: more efficient if you reverse these","commit_id":"0434a4de9a7cb052a0198532035c354360e4f605"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"f5d618b375422ed171bb756794cec7512a60030c","unresolved":false,"context_lines":[{"line_number":173,"context_line":"                \u0027capacity\u0027: psr.capacity,"},{"line_number":174,"context_line":"                \u0027used\u0027: psr.used,"},{"line_number":175,"context_line":"            } for psr in ps.resources if ("},{"line_number":176,"context_line":"                psr.resource_class in requested_resources or"},{"line_number":177,"context_line":"                include_all_resources)"},{"line_number":178,"context_line":"        }"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        ret[ps.resource_provider.uuid] \u003d {\u0027resources\u0027: resources}"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f6a8fd7_dadcf847","line":177,"range":{"start_line":176,"start_character":16,"end_line":177,"end_character":37},"in_reply_to":"9f6a8fd7_643d21dc","updated":"2018-05-02 12:56:07.000000000","message":"Cool.","commit_id":"0434a4de9a7cb052a0198532035c354360e4f605"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"51d57da525b2740685c14ad97c99f511d9a6e80a","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    \"\"\"Turn supplied list of ProviderSummary objects into a dict, keyed by"},{"line_number":120,"context_line":"    resource provider UUID, of dicts of provider and inventory information."},{"line_number":121,"context_line":"    The traits only show up when `include_traits` is `True`."},{"line_number":122,"context_line":"    When `include_all_resources` is `True`, all the resources are shown"},{"line_number":123,"context_line":"    while only requested resources are included in the provider_summaries"},{"line_number":124,"context_line":"    when `include_all_resources` is `False`."},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"5f7c97a3_13017a38","line":122,"range":{"start_line":122,"start_character":44,"end_line":122,"end_character":61},"updated":"2018-05-16 09:30:00.000000000","message":"see my comment on the commit message\n\n\"all the resources\" is unbounded and could mean a lot of different things\n\nSince resources is such a vague word, especially in the context of an HTTP API, better to be specific and say \"resource classes\"","commit_id":"c9e79d1dec15579251f881365fa54fb5a8291815"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"e281ace714c0a51823cc56ed5a371eec59c9bf21","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    \"\"\"Turn supplied list of ProviderSummary objects into a dict, keyed by"},{"line_number":120,"context_line":"    resource provider UUID, of dicts of provider and inventory information."},{"line_number":121,"context_line":"    The traits only show up when `include_traits` is `True`."},{"line_number":122,"context_line":"    When `include_all_resources` is `True`, all the resources are shown"},{"line_number":123,"context_line":"    while only requested resources are included in the provider_summaries"},{"line_number":124,"context_line":"    when `include_all_resources` is `False`."},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"5f7c97a3_fcd2efd0","line":122,"range":{"start_line":122,"start_character":44,"end_line":122,"end_character":61},"in_reply_to":"5f7c97a3_13017a38","updated":"2018-05-27 07:19:49.000000000","message":"Done","commit_id":"c9e79d1dec15579251f881365fa54fb5a8291815"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2df51871ee63ae34fbba3db40d9a7b0e4551db5b","unresolved":false,"context_lines":[{"line_number":116,"context_line":"    return results"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"def _transform_provider_summaries(p_sums, requests, include_traits\u003dFalse,"},{"line_number":120,"context_line":"                                  include_all_resources\u003dFalse):"},{"line_number":121,"context_line":"    \"\"\"Turn supplied list of ProviderSummary objects into a dict, keyed by"},{"line_number":122,"context_line":"    resource provider UUID, of dicts of provider and inventory information."},{"line_number":123,"context_line":"    The traits only show up when `include_traits` is `True`."}],"source_content_type":"text/x-python","patch_set":27,"id":"5f7c97a3_40655f1c","line":120,"range":{"start_line":119,"start_character":52,"end_line":120,"end_character":61},"updated":"2018-06-07 17:20:25.000000000","message":"would be nicer to just pass want_version as a parameter instead of adding one parameter for each of these microversion changes...\n\nThen inside this function you can do:\n\n include_traits \u003d want_version.matches(...)\n include_all_resources \u003d want_version.matches(...)\n\nand add yet more booleans as we inevitably add yet more microversions that change the behaviour of the response over time.","commit_id":"4c6038aac7c58160c727d9001b4610304da8991e"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2df51871ee63ae34fbba3db40d9a7b0e4551db5b","unresolved":false,"context_lines":[{"line_number":165,"context_line":"    requested_resources \u003d set()"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    for requested_group in requests.values():"},{"line_number":168,"context_line":"        requested_resources |\u003d set(requested_group.resources.keys())"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    # if include_all_resources is false, only requested resources are"},{"line_number":171,"context_line":"    # included in the provider_summaries."}],"source_content_type":"text/x-python","patch_set":27,"id":"5f7c97a3_607f3bab","line":168,"range":{"start_line":168,"start_character":60,"end_line":168,"end_character":67},"updated":"2018-06-07 17:20:25.000000000","message":"nit: .keys() isn\u0027t necessary. calling set() on a dict returns a set of the keys.","commit_id":"4c6038aac7c58160c727d9001b4610304da8991e"}],"nova/api/openstack/placement/microversion.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e5562769f5a7b141ce639eb0c0c6baaa1b50c0a5","unresolved":false,"context_lines":[{"line_number":63,"context_line":"             # GET /allocation_candidates"},{"line_number":64,"context_line":"    \u00271.22\u0027,  # Include all resource classes in provider_summaries, response of"},{"line_number":65,"context_line":"             # GET /allocation_candidates API, even if the resource classes are"},{"line_number":66,"context_line":"             # not in the requested resources"},{"line_number":67,"context_line":"]"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_d26cef9d","line":66,"updated":"2018-04-09 17:53:31.000000000","message":"This blurb could probably be stated more clearly.\n\nFor each of the resource providers presented in the provider_summaries section of the response to GET /allocations_candidates, include information on all their resource classes, even if a resource class is not in the requested resources.","commit_id":"10b3b0e7d79a181c01ac61edf163e8ff51ca4705"}],"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":"cd014164b7f7c6d54fd19df484ea9cf89fb216b1","unresolved":false,"context_lines":[{"line_number":2675,"context_line":"    #   SELECT resource_provider_id, resource_class_id, SUM(used) as used"},{"line_number":2676,"context_line":"    #   FROM allocations"},{"line_number":2677,"context_line":"    #   WHERE resource_provider_id IN ($rp_ids)"},{"line_number":2678,"context_line":"    #   AND resource_class_id IN ($rc_ids)"},{"line_number":2679,"context_line":"    #   GROUP BY resource_provider_id, resource_class_id"},{"line_number":2680,"context_line":"    # )"},{"line_number":2681,"context_line":"    # AS usages"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf659307_c1799f2f","line":2678,"range":{"start_line":2678,"start_character":0,"end_line":2678,"end_character":42},"updated":"2018-04-07 09:28:37.000000000","message":"nix","commit_id":"f0167a2830930204c3f454e61d766ca222ad1778"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"cd014164b7f7c6d54fd19df484ea9cf89fb216b1","unresolved":false,"context_lines":[{"line_number":2682,"context_line":"    #   ON inv.resource_provider_id \u003d usage.resource_provider_id"},{"line_number":2683,"context_line":"    #   AND inv.resource_class_id \u003d usage.resource_class_id"},{"line_number":2684,"context_line":"    # WHERE rp.id IN ($rp_ids)"},{"line_number":2685,"context_line":"    # AND inv.resource_class_id IN ($rc_ids)"},{"line_number":2686,"context_line":"    rpt \u003d sa.alias(_RP_TBL, name\u003d\"rp\")"},{"line_number":2687,"context_line":"    inv \u003d sa.alias(_INV_TBL, name\u003d\"inv\")"},{"line_number":2688,"context_line":"    # Build our derived table (subquery in the FROM clause) that sums used"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf659307_8173a74d","line":2685,"range":{"start_line":2685,"start_character":0,"end_line":2685,"end_character":44},"updated":"2018-04-07 09:28:37.000000000","message":"nix","commit_id":"f0167a2830930204c3f454e61d766ca222ad1778"},{"author":{"_account_id":25638,"name":"Naichuan Sun","email":"naichuan.sun@citrix.com","username":"naichuans"},"change_message_id":"4880607941066dd70cc1e20edc195d48e9610d43","unresolved":false,"context_lines":[{"line_number":3267,"context_line":"        return [], []"},{"line_number":3268,"context_line":""},{"line_number":3269,"context_line":"    # Grab usage summaries for each provider (local or sharing)"},{"line_number":3270,"context_line":"    usages \u003d _get_usages_by_provider(ctx, all_rp_ids)"},{"line_number":3271,"context_line":""},{"line_number":3272,"context_line":"    # Get a dict, keyed by resource provider internal ID, of trait string names"},{"line_number":3273,"context_line":"    # that provider has associated with it"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_d50d673e","line":3270,"updated":"2018-04-12 08:33:37.000000000","message":"Hi, Tetsuro, looks there are some little difference between your code and Jay\u0027s:https://review.openstack.org/#/c/554529/3/nova/api/openstack/placement/objects/resource_provider.py\nWhich one should I apply if I want to test this feature?","commit_id":"10b3b0e7d79a181c01ac61edf163e8ff51ca4705"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"54ac901c94c8cc8b8fa99d82208f07a06f2480df","unresolved":false,"context_lines":[{"line_number":3267,"context_line":"        return [], []"},{"line_number":3268,"context_line":""},{"line_number":3269,"context_line":"    # Grab usage summaries for each provider (local or sharing)"},{"line_number":3270,"context_line":"    usages \u003d _get_usages_by_provider(ctx, all_rp_ids)"},{"line_number":3271,"context_line":""},{"line_number":3272,"context_line":"    # Get a dict, keyed by resource provider internal ID, of trait string names"},{"line_number":3273,"context_line":"    # that provider has associated with it"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f6a8fd7_ae600fa7","line":3270,"in_reply_to":"bf659307_1a477279","updated":"2018-04-18 03:17:52.000000000","message":"Rebased my \"bp: nested-resource-providers-allocation-candidates\" series on Jay\u0027s patches. And now the top of that branch is https://review.openstack.org/#/c/561842/. I think you can work on this branch.\n\n\nAnd I renamed this branch, starting with this patch, to \"bp: placement-return-all-resources\". (The change of this branch is now described in its own spec.)","commit_id":"10b3b0e7d79a181c01ac61edf163e8ff51ca4705"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"fe103d4531ae1edf08f5974c04f2854f3d8c04df","unresolved":false,"context_lines":[{"line_number":3267,"context_line":"        return [], []"},{"line_number":3268,"context_line":""},{"line_number":3269,"context_line":"    # Grab usage summaries for each provider (local or sharing)"},{"line_number":3270,"context_line":"    usages \u003d _get_usages_by_provider(ctx, all_rp_ids)"},{"line_number":3271,"context_line":""},{"line_number":3272,"context_line":"    # Get a dict, keyed by resource provider internal ID, of trait string names"},{"line_number":3273,"context_line":"    # that provider has associated with it"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_e56d44cc","line":3270,"in_reply_to":"bf659307_d50d673e","updated":"2018-04-13 00:11:47.000000000","message":"@Naichuan Sun\n\nThank you for the question. I\u0027m not sure what you meant by \"this feature\". But I try to explain.\n\nIf you mean \"nested provider allocation candidates\", this patch is not directly related to nested provider, that is, you don\u0027t yet get nested provider allocation candidates with this patch. This patch enables returning all resources in the response of allocation request.\n\nHowever, the following patches I\u0027m submitting on top of this patch enables getting nested provider candidates for cases where sharing storage is in your environment.\n\nJay\u0027s patches looks to me for cases where sharing storage is not in your environment, IIUC.\n\nThis is because the path is different so far [1].\n\n(To be honest, I\u0027m not sure the performance benefit warrants having the separate code path over the situation that we should maintain the two code paths respectively when adding new functions. I\u0027d like to try to merge them before too long if that makes sense.)\n\n[1] https://github.com/openstack/nova/blob/master/nova/api/openstack/placement/objects/resource_provider.py#L3570-#L3577","commit_id":"10b3b0e7d79a181c01ac61edf163e8ff51ca4705"},{"author":{"_account_id":25638,"name":"Naichuan Sun","email":"naichuan.sun@citrix.com","username":"naichuans"},"change_message_id":"d314487ed40de1f733fbb47281101ae84943765f","unresolved":false,"context_lines":[{"line_number":3267,"context_line":"        return [], []"},{"line_number":3268,"context_line":""},{"line_number":3269,"context_line":"    # Grab usage summaries for each provider (local or sharing)"},{"line_number":3270,"context_line":"    usages \u003d _get_usages_by_provider(ctx, all_rp_ids)"},{"line_number":3271,"context_line":""},{"line_number":3272,"context_line":"    # Get a dict, keyed by resource provider internal ID, of trait string names"},{"line_number":3273,"context_line":"    # that provider has associated with it"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_1a477279","line":3270,"in_reply_to":"bf659307_e56d44cc","updated":"2018-04-13 02:26:16.000000000","message":"Hi, Tetsuro. Really appreciate your explanation. I\u0027m trying to add n-rp function for vgpu, so I depend on your and Jay\u0027s patches, that\u0027s why I ask. Your comment is very clear, will follow up :)","commit_id":"10b3b0e7d79a181c01ac61edf163e8ff51ca4705"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"0a39326c4c6fe6bb488ce407a10c65229d50525c","unresolved":false,"context_lines":[{"line_number":3690,"context_line":""},{"line_number":3691,"context_line":"    # Now we have to produce provider summaries.  The provider summaries in"},{"line_number":3692,"context_line":"    # the candidates input contain all the information; we just need to"},{"line_number":3693,"context_line":"    # filter it down to only the providers in our merged list of allocation"},{"line_number":3694,"context_line":"    # requests."},{"line_number":3695,"context_line":"    rps_in_areq \u003d set()"},{"line_number":3696,"context_line":"    for areq in areqs:"}],"source_content_type":"text/x-python","patch_set":25,"id":"5f7c97a3_56500033","line":3693,"updated":"2018-05-18 21:57:39.000000000","message":"This doesn\u0027t seem right.  It seems like this will only include providers that provide resource - which is the opposite of what we want to do.  What am I missing?\n\n[Later] Well, given the test cases, this is clearly working.\n\nIs it because the provider summaries start off with all the resources?  I guess that must be it.","commit_id":"a5923f0263f43229e33d8f9588bf94bc41b20864"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"e281ace714c0a51823cc56ed5a371eec59c9bf21","unresolved":false,"context_lines":[{"line_number":3690,"context_line":""},{"line_number":3691,"context_line":"    # Now we have to produce provider summaries.  The provider summaries in"},{"line_number":3692,"context_line":"    # the candidates input contain all the information; we just need to"},{"line_number":3693,"context_line":"    # filter it down to only the providers in our merged list of allocation"},{"line_number":3694,"context_line":"    # requests."},{"line_number":3695,"context_line":"    rps_in_areq \u003d set()"},{"line_number":3696,"context_line":"    for areq in areqs:"}],"source_content_type":"text/x-python","patch_set":25,"id":"5f7c97a3_3c68671b","line":3693,"in_reply_to":"5f7c97a3_56500033","updated":"2018-05-27 07:19:49.000000000","message":"This patch changes just to return all resources of resource providers in ``allocation_request``. This patch doesn\u0027t do any such thing as \"returning resource providers in tree even that doesn\u0027t provide resource.\" That is done in https://review.openstack.org/#/c/559480/. I separated them.","commit_id":"a5923f0263f43229e33d8f9588bf94bc41b20864"}],"nova/api/openstack/placement/rest_api_version_history.rst":[{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"3ff6a7507ee33cb05b314014c9a84195155a64d3","unresolved":false,"context_lines":[{"line_number":262,"context_line":"will be those in one of the specified aggregates that meet the other parts of"},{"line_number":263,"context_line":"the request."},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"1.22 Include all resouce class inventories in provider_summaries"},{"line_number":266,"context_line":"----------------------------------------------------------------"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"Include all resource class inventories in `provider_summaries` field in"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf659307_3f06d621","line":265,"range":{"start_line":265,"start_character":17,"end_line":265,"end_character":24},"updated":"2018-04-03 10:01:17.000000000","message":"resource","commit_id":"1356f819093ffdd2774a40f87b05752f2f5e3ce8"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"f17a087665e238d560636034e5a49a0d4faec56c","unresolved":false,"context_lines":[{"line_number":262,"context_line":"will be those in one of the specified aggregates that meet the other parts of"},{"line_number":263,"context_line":"the request."},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"1.22 Include all resouce class inventories in provider_summaries"},{"line_number":266,"context_line":"----------------------------------------------------------------"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"Include all resource class inventories in `provider_summaries` field in"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf659307_645a4f2b","line":265,"range":{"start_line":265,"start_character":17,"end_line":265,"end_character":24},"in_reply_to":"bf659307_3f06d621","updated":"2018-04-05 05:43:22.000000000","message":"Done","commit_id":"1356f819093ffdd2774a40f87b05752f2f5e3ce8"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e5562769f5a7b141ce639eb0c0c6baaa1b50c0a5","unresolved":false,"context_lines":[{"line_number":267,"context_line":""},{"line_number":268,"context_line":"Include all resource class inventories in `provider_summaries` field in"},{"line_number":269,"context_line":"response of `GET /allocation_candidates` API even if the resource class"},{"line_number":270,"context_line":"is not in the requested resources."}],"source_content_type":"text/x-rst","patch_set":7,"id":"bf659307_d2014fb1","line":270,"updated":"2018-04-09 17:53:31.000000000","message":"Or use this summary where I\u0027ve said the one in rest_api_history is unclear. This one is pretty good.","commit_id":"10b3b0e7d79a181c01ac61edf163e8ff51ca4705"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"0a39326c4c6fe6bb488ce407a10c65229d50525c","unresolved":false,"context_lines":[{"line_number":327,"context_line":"1.26 Include all resource class inventories in provider_summaries"},{"line_number":328,"context_line":"-----------------------------------------------------------------"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"Include all resource class inventories in `provider_summaries` field in"},{"line_number":331,"context_line":"response of `GET /allocation_candidates` API even if the resource class"},{"line_number":332,"context_line":"is not in the requested resources."}],"source_content_type":"text/x-rst","patch_set":25,"id":"5f7c97a3_96553820","line":331,"range":{"start_line":330,"start_character":39,"end_line":331,"end_character":40},"updated":"2018-05-18 21:57:39.000000000","message":"in the ``provider_summaries`` field in the response of the ``GET /allocation_candidates`` API\n\n(add \u0027the\u0027 a few times, use double backticks)","commit_id":"a5923f0263f43229e33d8f9588bf94bc41b20864"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"e281ace714c0a51823cc56ed5a371eec59c9bf21","unresolved":false,"context_lines":[{"line_number":327,"context_line":"1.26 Include all resource class inventories in provider_summaries"},{"line_number":328,"context_line":"-----------------------------------------------------------------"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"Include all resource class inventories in `provider_summaries` field in"},{"line_number":331,"context_line":"response of `GET /allocation_candidates` API even if the resource class"},{"line_number":332,"context_line":"is not in the requested resources."}],"source_content_type":"text/x-rst","patch_set":25,"id":"5f7c97a3_dc58538b","line":331,"range":{"start_line":330,"start_character":39,"end_line":331,"end_character":40},"in_reply_to":"5f7c97a3_96553820","updated":"2018-05-27 07:19:49.000000000","message":"Done","commit_id":"a5923f0263f43229e33d8f9588bf94bc41b20864"}],"nova/tests/functional/api/openstack/placement/gabbits/allocation-candidates.yaml":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e5562769f5a7b141ce639eb0c0c6baaa1b50c0a5","unresolved":false,"context_lines":[{"line_number":249,"context_line":"      $.provider_summaries.`len`: 0"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"# Bug#1760276: provider_summaries should include all the resources that the"},{"line_number":252,"context_line":"# resource provider has, ut currently it includes only resources that are requested."},{"line_number":253,"context_line":"- name: get allocation candidates provider summaries with requested resource"},{"line_number":254,"context_line":"  GET: /allocation_candidates?resources\u003dVCPU:1"},{"line_number":255,"context_line":"  status: 200"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"bf659307_f21573e6","side":"PARENT","line":252,"updated":"2018-04-09 17:53:31.000000000","message":"I would leave a version of this comment to explain the difference between the 1.21 and 1.22 requests.","commit_id":"8b081453c5ab065932da7ca0b1f663263a3134fe"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c8d7801990a109d7fdcf8fbdfd4f5a3dc0c13207","unresolved":false,"context_lines":[{"line_number":299,"context_line":"  response_json_paths:"},{"line_number":300,"context_line":"      $.allocation_requests.`len`: 2"},{"line_number":301,"context_line":"      $.provider_summaries.`len`: 2"},{"line_number":302,"context_line":"      $.provider_summaries[\"$ENVIRON[\u0027CN1_UUID\u0027]\"].resources.`len`: 2"},{"line_number":303,"context_line":"      $.provider_summaries[\"$ENVIRON[\u0027CN2_UUID\u0027]\"].resources.`len`: 2"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"9f6a8fd7_9f019c07","line":303,"range":{"start_line":302,"start_character":0,"end_line":303,"end_character":69},"updated":"2018-05-01 22:35:38.000000000","message":"May as well expand on this and assert the specific resource classes.\n\n $.provider_summaries[\"$ENVIRON[\u0027CN1_UUID\u0027]\"].resources:\n     VCPU:\n         capacity: xxxx\n         used: xxxx\n     MEMORY_MB:\n         capacity: xxxx\n         used: xxxx","commit_id":"0434a4de9a7cb052a0198532035c354360e4f605"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"f5d618b375422ed171bb756794cec7512a60030c","unresolved":false,"context_lines":[{"line_number":299,"context_line":"  response_json_paths:"},{"line_number":300,"context_line":"      $.allocation_requests.`len`: 2"},{"line_number":301,"context_line":"      $.provider_summaries.`len`: 2"},{"line_number":302,"context_line":"      $.provider_summaries[\"$ENVIRON[\u0027CN1_UUID\u0027]\"].resources.`len`: 2"},{"line_number":303,"context_line":"      $.provider_summaries[\"$ENVIRON[\u0027CN2_UUID\u0027]\"].resources.`len`: 2"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"9f6a8fd7_fadf7c37","line":303,"range":{"start_line":302,"start_character":0,"end_line":303,"end_character":69},"in_reply_to":"9f6a8fd7_9f019c07","updated":"2018-05-02 12:56:07.000000000","message":"Done","commit_id":"0434a4de9a7cb052a0198532035c354360e4f605"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"0a39326c4c6fe6bb488ce407a10c65229d50525c","unresolved":false,"context_lines":[{"line_number":277,"context_line":"      $.allocation_requests.`len`: 0"},{"line_number":278,"context_line":"      $.provider_summaries.`len`: 0"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"# From microversion 1.26, the ``provider_summaries`` field in the"},{"line_number":281,"context_line":"# response of ``GET /allocation_candidates`` API includes all the"},{"line_number":282,"context_line":"# resource class inventories regardless of whether it is requested."},{"line_number":283,"context_line":"- name: get allocation candidates provider summaries with requested resource"},{"line_number":284,"context_line":"  GET: /allocation_candidates?resources\u003dVCPU:1"},{"line_number":285,"context_line":"  status: 200"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"5f7c97a3_f6390cf2","line":282,"range":{"start_line":280,"start_character":0,"end_line":282,"end_character":67},"updated":"2018-05-18 21:57:39.000000000","message":"This comment should go with the next test case (and/or this one should read \"Before microversion 1.26... ...only includes the requested resource classes.\")","commit_id":"a5923f0263f43229e33d8f9588bf94bc41b20864"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"e281ace714c0a51823cc56ed5a371eec59c9bf21","unresolved":false,"context_lines":[{"line_number":277,"context_line":"      $.allocation_requests.`len`: 0"},{"line_number":278,"context_line":"      $.provider_summaries.`len`: 0"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"# From microversion 1.26, the ``provider_summaries`` field in the"},{"line_number":281,"context_line":"# response of ``GET /allocation_candidates`` API includes all the"},{"line_number":282,"context_line":"# resource class inventories regardless of whether it is requested."},{"line_number":283,"context_line":"- name: get allocation candidates provider summaries with requested resource"},{"line_number":284,"context_line":"  GET: /allocation_candidates?resources\u003dVCPU:1"},{"line_number":285,"context_line":"  status: 200"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"5f7c97a3_7c49ffb4","line":282,"range":{"start_line":280,"start_character":0,"end_line":282,"end_character":67},"in_reply_to":"5f7c97a3_f6390cf2","updated":"2018-05-27 07:19:49.000000000","message":"Done","commit_id":"a5923f0263f43229e33d8f9588bf94bc41b20864"}],"releasenotes/notes/placement-return-all-resources-bfc7e3f8b5151e28.yaml":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"147fa993d4ffba3f9ff66d6471f2c73800efe188","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    From microversion 1.22, the ``provider_summaries`` field in the"},{"line_number":5,"context_line":"    response of ``GET /allocation_candidates`` API includes all the"},{"line_number":6,"context_line":"    resource class inventories, while it had only requested resource"},{"line_number":7,"context_line":"    class inventories with older microversion."},{"line_number":8,"context_line":"    Now callers (like the filter scheduler in nova) can use this"},{"line_number":9,"context_line":"    additional inventory information in making further sorting or"},{"line_number":10,"context_line":"    filtering decisions."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"bf659307_d27c0b74","line":7,"range":{"start_line":7,"start_character":33,"end_line":7,"end_character":45},"updated":"2018-04-07 23:52:14.000000000","message":"microversions","commit_id":"f0167a2830930204c3f454e61d766ca222ad1778"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"b901f81619c5a386eabb45afe4fcda14b0b66108","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    From microversion 1.22, the ``provider_summaries`` field in the"},{"line_number":5,"context_line":"    response of ``GET /allocation_candidates`` API includes all the"},{"line_number":6,"context_line":"    resource class inventories, while it had only requested resource"},{"line_number":7,"context_line":"    class inventories with older microversion."},{"line_number":8,"context_line":"    Now callers (like the filter scheduler in nova) can use this"},{"line_number":9,"context_line":"    additional inventory information in making further sorting or"},{"line_number":10,"context_line":"    filtering decisions."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"bf659307_0a21e4fb","line":7,"range":{"start_line":7,"start_character":33,"end_line":7,"end_character":45},"in_reply_to":"bf659307_d27c0b74","updated":"2018-04-09 06:33:35.000000000","message":"Done","commit_id":"f0167a2830930204c3f454e61d766ca222ad1778"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"147fa993d4ffba3f9ff66d6471f2c73800efe188","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    response of ``GET /allocation_candidates`` API includes all the"},{"line_number":6,"context_line":"    resource class inventories, while it had only requested resource"},{"line_number":7,"context_line":"    class inventories with older microversion."},{"line_number":8,"context_line":"    Now callers (like the filter scheduler in nova) can use this"},{"line_number":9,"context_line":"    additional inventory information in making further sorting or"},{"line_number":10,"context_line":"    filtering decisions."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"bf659307_f2810f4c","line":8,"range":{"start_line":8,"start_character":16,"end_line":8,"end_character":51},"updated":"2018-04-07 23:52:14.000000000","message":"Strike this.\n\nYou could probably do away with this whole sentence; but at least remove references to Nova.","commit_id":"f0167a2830930204c3f454e61d766ca222ad1778"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"b901f81619c5a386eabb45afe4fcda14b0b66108","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    response of ``GET /allocation_candidates`` API includes all the"},{"line_number":6,"context_line":"    resource class inventories, while it had only requested resource"},{"line_number":7,"context_line":"    class inventories with older microversion."},{"line_number":8,"context_line":"    Now callers (like the filter scheduler in nova) can use this"},{"line_number":9,"context_line":"    additional inventory information in making further sorting or"},{"line_number":10,"context_line":"    filtering decisions."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"bf659307_2a1ce8bf","line":8,"range":{"start_line":8,"start_character":16,"end_line":8,"end_character":51},"in_reply_to":"bf659307_f2810f4c","updated":"2018-04-09 06:33:35.000000000","message":"Done","commit_id":"f0167a2830930204c3f454e61d766ca222ad1778"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"0a39326c4c6fe6bb488ce407a10c65229d50525c","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    From microversion 1.26, the ``provider_summaries`` field in the"},{"line_number":5,"context_line":"    response of ``GET /allocation_candidates`` API includes all the"},{"line_number":6,"context_line":"    resource class inventories, while it had only requested resource"},{"line_number":7,"context_line":"    class inventories with older microversions."},{"line_number":8,"context_line":"    Now callers can use this additional inventory information in"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"5f7c97a3_d62090b3","line":5,"range":{"start_line":5,"start_character":13,"end_line":5,"end_character":16},"updated":"2018-05-18 21:57:39.000000000","message":"of the","commit_id":"a5923f0263f43229e33d8f9588bf94bc41b20864"}]}
