)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"864a076927270d759046e4504332aaaa5e2d9650","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Return resources of entire trees in Placement"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This spec aims to extend the placement ``GET /allocation_candidates``"},{"line_number":10,"context_line":"API to include all resource class inventories of etire tree in"},{"line_number":11,"context_line":"``provider_summaries`` field in the response body."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I7992e16dd63cc2c5d22c3c3ce58adae9ad741569"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf659307_9ac3b057","line":10,"range":{"start_line":10,"start_character":49,"end_line":10,"end_character":54},"updated":"2018-04-11 17:41:04.000000000","message":"entire","commit_id":"10e0b502312e232a97beb30070a3afbb266d33a1"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"6459c234c9cf102fe6b7847d0b11c405555ac980","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Return resources of entire trees in Placement"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This spec aims to extend the placement ``GET /allocation_candidates``"},{"line_number":10,"context_line":"API to include all resource class inventories of etire tree in"},{"line_number":11,"context_line":"``provider_summaries`` field in the response body."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I7992e16dd63cc2c5d22c3c3ce58adae9ad741569"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"9f6a8fd7_f8c65f68","line":10,"range":{"start_line":10,"start_character":49,"end_line":10,"end_character":54},"updated":"2018-04-23 12:33:03.000000000","message":"entire","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6199292dd1206cea498a3c83b57794542c558bb2","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Return resources of entire trees in Placement"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This spec aims to extend the placement ``GET /allocation_candidates``"},{"line_number":10,"context_line":"API to include all resource class inventories of etire tree in"},{"line_number":11,"context_line":"``provider_summaries`` field in the response body."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I7992e16dd63cc2c5d22c3c3ce58adae9ad741569"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"9f6a8fd7_330d483e","line":10,"range":{"start_line":10,"start_character":49,"end_line":10,"end_character":54},"updated":"2018-04-30 19:16:58.000000000","message":"entire","commit_id":"96e36b3f8e2277ce0750cfaa0c829ccb7205102c"}],"specs/rocky/approved/nested-resource-providers-allocation-candidates.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b00a18595f49ff5341f823381f9a2c5399d6cc9","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                \"traits\": []"},{"line_number":137,"context_line":"                },"},{"line_number":138,"context_line":"            },"},{"line_number":139,"context_line":"            \"7d2590ae-fb85-4080-9306-058b4c915e3f\": {"},{"line_number":140,"context_line":"                \"resources\": {"},{"line_number":141,"context_line":"                    \"SRIOV_NET_VF\": {"},{"line_number":142,"context_line":"                        \"used\": 0,"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_6da6d811","line":139,"range":{"start_line":139,"start_character":13,"end_line":139,"end_character":49},"updated":"2018-04-25 14:51:02.000000000","message":"99c09379-6e52-4ef8-9a95-b9ce6f68452e","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"dbce65ddfa3a5765fd9901cedc9fef45f74eb64c","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                \"traits\": []"},{"line_number":137,"context_line":"                },"},{"line_number":138,"context_line":"            },"},{"line_number":139,"context_line":"            \"7d2590ae-fb85-4080-9306-058b4c915e3f\": {"},{"line_number":140,"context_line":"                \"resources\": {"},{"line_number":141,"context_line":"                    \"SRIOV_NET_VF\": {"},{"line_number":142,"context_line":"                        \"used\": 0,"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_8ced498d","line":139,"range":{"start_line":139,"start_character":13,"end_line":139,"end_character":49},"in_reply_to":"9f6a8fd7_6da6d811","updated":"2018-04-27 02:11:02.000000000","message":"Done. Thanks","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b00a18595f49ff5341f823381f9a2c5399d6cc9","unresolved":false,"context_lines":[{"line_number":230,"context_line":"Dependencies"},{"line_number":231,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"None"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"Testing"},{"line_number":236,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_4df19400","line":233,"updated":"2018-04-25 14:51:02.000000000","message":"So is this spec dependent on blueprint placement-return-all-resources then? If so, that should be listed here.\n\nOr are the two blueprints basically co-dependent and we should just merge them so we have a single microversion change for both? Not that microversions are expensive so we could keep them separate if needed.\n\n\u003clater\u003e\n\nNow I see that blueprint placement-return-all-resources is dependent on this change, per:\n\nhttps://review.openstack.org/#/c/559466/9/specs/rocky/approved/placement-return-all-resources.rst@613","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"dbce65ddfa3a5765fd9901cedc9fef45f74eb64c","unresolved":false,"context_lines":[{"line_number":230,"context_line":"Dependencies"},{"line_number":231,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"None"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"Testing"},{"line_number":236,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_6f26a76b","line":233,"in_reply_to":"9f6a8fd7_4df19400","updated":"2018-04-27 02:11:02.000000000","message":"Yup, separating them would be clearer to sort out things to make sure where we are, IMO.","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b00a18595f49ff5341f823381f9a2c5399d6cc9","unresolved":false,"context_lines":[{"line_number":249,"context_line":""},{"line_number":250,"context_line":"* `Return resources of entire trees in Placement`_ spec"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":".. _`Return resources of entire trees in Placement`: https://specs.openstack.org/openstack/nova-specs/specs/rocky/approved/placement-return-all-resources.html"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_cd8fe472","line":252,"range":{"start_line":252,"start_character":53,"end_line":252,"end_character":158},"updated":"2018-04-25 14:51:02.000000000","message":"This link doesn\u0027t yet exist, so it\u0027s probably better to refer to the review change in gerrit, or the blueprint.","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"dbce65ddfa3a5765fd9901cedc9fef45f74eb64c","unresolved":false,"context_lines":[{"line_number":249,"context_line":""},{"line_number":250,"context_line":"* `Return resources of entire trees in Placement`_ spec"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":".. _`Return resources of entire trees in Placement`: https://specs.openstack.org/openstack/nova-specs/specs/rocky/approved/placement-return-all-resources.html"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_af26ffb9","line":252,"range":{"start_line":252,"start_character":53,"end_line":252,"end_character":158},"in_reply_to":"9f6a8fd7_cd8fe472","updated":"2018-04-27 02:11:02.000000000","message":"The blueprint sounds better considering the possibility that an additional patch to amend is submitted in the future. Done.","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"}],"specs/rocky/approved/placement-return-all-resources.rst":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"57cf1fa63721f0694df12639882f263b0356bbc8","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/placement-api-error-handling"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This blueprint aims to extend the placement ``GET /allocation_candidates``"},{"line_number":14,"context_line":"API to include  all resource class inventories in ``provider_summaries``"},{"line_number":15,"context_line":"field in the response body."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf659307_72465f52","line":14,"range":{"start_line":14,"start_character":15,"end_line":14,"end_character":16},"updated":"2018-04-07 23:43:20.000000000","message":"extra space!","commit_id":"cfa89787056c15f4f2fac1dd501c1f2ded9d3025"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"d681e7fe168416907fd5e4cf8ba6d00339172264","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/placement-api-error-handling"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This blueprint aims to extend the placement ``GET /allocation_candidates``"},{"line_number":14,"context_line":"API to include  all resource class inventories in ``provider_summaries``"},{"line_number":15,"context_line":"field in the response body."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf659307_09681985","line":14,"range":{"start_line":14,"start_character":15,"end_line":14,"end_character":16},"in_reply_to":"bf659307_72465f52","updated":"2018-04-08 10:53:41.000000000","message":"Done","commit_id":"cfa89787056c15f4f2fac1dd501c1f2ded9d3025"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"57cf1fa63721f0694df12639882f263b0356bbc8","unresolved":false,"context_lines":[{"line_number":32,"context_line":"sorting and filtering decisions."},{"line_number":33,"context_line":"For example, when I deploy an instance with VCPU, MEMORY_MB, and DISK_GB,"},{"line_number":34,"context_line":"I don\u0027t want to deploy this instance to hosts with VGPU to save the resource"},{"line_number":35,"context_line":"for instances with VGPU."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Proposed change"},{"line_number":38,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf659307_327a2788","line":35,"updated":"2018-04-07 23:43:20.000000000","message":"++ Good use case.","commit_id":"cfa89787056c15f4f2fac1dd501c1f2ded9d3025"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"57cf1fa63721f0694df12639882f263b0356bbc8","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        }"},{"line_number":86,"context_line":"    }"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"With a new microverion, it now includes all the resource class inventories:"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":".. code-block:: javascript"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf659307_d26e4bc8","line":88,"range":{"start_line":88,"start_character":11,"end_line":88,"end_character":22},"updated":"2018-04-07 23:43:20.000000000","message":"microversion","commit_id":"cfa89787056c15f4f2fac1dd501c1f2ded9d3025"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"d681e7fe168416907fd5e4cf8ba6d00339172264","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        }"},{"line_number":86,"context_line":"    }"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"With a new microverion, it now includes all the resource class inventories:"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":".. code-block:: javascript"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf659307_a9048dc7","line":88,"range":{"start_line":88,"start_character":11,"end_line":88,"end_character":22},"in_reply_to":"bf659307_d26e4bc8","updated":"2018-04-08 10:53:41.000000000","message":"Done","commit_id":"cfa89787056c15f4f2fac1dd501c1f2ded9d3025"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"74bdce78b82087c17abaabd87a57bc6dd9169b0a","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Include all resource class inventories in provider_summaries"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/placement-api-error-handling"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This blueprint aims to extend the placement ``GET /allocation_candidates``"},{"line_number":14,"context_line":"API to include all resource class inventories in ``provider_summaries``"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_0c08152b","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":72},"updated":"2018-04-09 15:19:39.000000000","message":"This is the wrong blueprint, you should have a blueprint named \"placement-return-all-resources\".\n\nLooks like you do, so update the link:\n\nhttps://blueprints.launchpad.net/nova/+spec/placement-return-all-resources","commit_id":"39065edaec909da459a8fc6b09d9334c4d0664c8"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e9fbc6f4cb5a4c400986243ee8ea64374415a54f","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Include all resource class inventories in provider_summaries"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/placement-api-error-handling"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This blueprint aims to extend the placement ``GET /allocation_candidates``"},{"line_number":14,"context_line":"API to include all resource class inventories in ``provider_summaries``"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_27e9727f","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":72},"in_reply_to":"bf659307_0c08152b","updated":"2018-04-09 15:39:01.000000000","message":"Done","commit_id":"39065edaec909da459a8fc6b09d9334c4d0664c8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"74bdce78b82087c17abaabd87a57bc6dd9169b0a","unresolved":false,"context_lines":[{"line_number":31,"context_line":"information of the providers in ``allocation_requests`` for making further"},{"line_number":32,"context_line":"sorting and filtering decisions."},{"line_number":33,"context_line":"For example, when I deploy an instance with VCPU, MEMORY_MB, and DISK_GB,"},{"line_number":34,"context_line":"I don\u0027t want to deploy this instance to hosts with VGPU to save the resource"},{"line_number":35,"context_line":"for instances with VGPU."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Proposed change"},{"line_number":38,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_47590633","line":35,"range":{"start_line":34,"start_character":0,"end_line":35,"end_character":24},"updated":"2018-04-09 15:19:39.000000000","message":"Doesn\u0027t this overlap with the forbidden traits spec?\n\nDo you have more details on how you plan to leverage this? Are you also going to be writing a custom weighter so that only requests with flavors that have VGPUs required go to hosts that also have VGPU inventory? Sort of like the PCIWeigher?\n\nI would be more supportive of this spec if the actual usage of it was clear, and if the intent is to add a VGPU weighter, then that could also be added to nova and *that* would be the end goal of this spec, with the changes to the allocation candidates API being the *means* to that end.","commit_id":"39065edaec909da459a8fc6b09d9334c4d0664c8"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"5d0ec295a9307317008615c9afa45a6c4ee6a661","unresolved":false,"context_lines":[{"line_number":31,"context_line":"information of the providers in ``allocation_requests`` for making further"},{"line_number":32,"context_line":"sorting and filtering decisions."},{"line_number":33,"context_line":"For example, when I deploy an instance with VCPU, MEMORY_MB, and DISK_GB,"},{"line_number":34,"context_line":"I don\u0027t want to deploy this instance to hosts with VGPU to save the resource"},{"line_number":35,"context_line":"for instances with VGPU."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Proposed change"},{"line_number":38,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_47110604","line":35,"range":{"start_line":34,"start_character":0,"end_line":35,"end_character":24},"in_reply_to":"bf659307_47590633","updated":"2018-04-09 15:28:44.000000000","message":"\u003e Doesn\u0027t this overlap with the forbidden traits spec?\n\nThis is slightly different.  With forbidden traits, you can make sure that none of the providers *providing resource to the request* contain the forbidden traits.  In this case, we want to make sure that some *other* related provider (one not providing resources) doesn\u0027t have some characteristic.  That characteristic may be a trait, or it may be a resource class, or it may be an available inventory amount, etc.","commit_id":"39065edaec909da459a8fc6b09d9334c4d0664c8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"74bdce78b82087c17abaabd87a57bc6dd9169b0a","unresolved":false,"context_lines":[{"line_number":110,"context_line":"                        \"capacity\": 384"},{"line_number":111,"context_line":"                    },"},{"line_number":112,"context_line":"                    \"MEMORY_MB\": {"},{"line_number":113,"context_line":"                    \"used\": 0,"},{"line_number":114,"context_line":"                    \"capacity\": 196608"},{"line_number":115,"context_line":"                    }"},{"line_number":116,"context_line":"                    \"DISK_GB\": {"},{"line_number":117,"context_line":"                    \"used\": 0,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_276f32c6","line":114,"range":{"start_line":113,"start_character":20,"end_line":114,"end_character":38},"updated":"2018-04-09 15:19:39.000000000","message":"nit: fix the indent to match VCPU above","commit_id":"39065edaec909da459a8fc6b09d9334c4d0664c8"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e9fbc6f4cb5a4c400986243ee8ea64374415a54f","unresolved":false,"context_lines":[{"line_number":110,"context_line":"                        \"capacity\": 384"},{"line_number":111,"context_line":"                    },"},{"line_number":112,"context_line":"                    \"MEMORY_MB\": {"},{"line_number":113,"context_line":"                    \"used\": 0,"},{"line_number":114,"context_line":"                    \"capacity\": 196608"},{"line_number":115,"context_line":"                    }"},{"line_number":116,"context_line":"                    \"DISK_GB\": {"},{"line_number":117,"context_line":"                    \"used\": 0,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_47eca68e","line":114,"range":{"start_line":113,"start_character":20,"end_line":114,"end_character":38},"in_reply_to":"bf659307_276f32c6","updated":"2018-04-09 15:39:01.000000000","message":"Done","commit_id":"39065edaec909da459a8fc6b09d9334c4d0664c8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"74bdce78b82087c17abaabd87a57bc6dd9169b0a","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                    \"capacity\": 196608"},{"line_number":115,"context_line":"                    }"},{"line_number":116,"context_line":"                    \"DISK_GB\": {"},{"line_number":117,"context_line":"                    \"used\": 0,"},{"line_number":118,"context_line":"                    \"capacity\": 1900"},{"line_number":119,"context_line":"                    }"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"                }"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_477266af","line":118,"range":{"start_line":117,"start_character":20,"end_line":118,"end_character":36},"updated":"2018-04-09 15:19:39.000000000","message":"same","commit_id":"39065edaec909da459a8fc6b09d9334c4d0664c8"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e9fbc6f4cb5a4c400986243ee8ea64374415a54f","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                    \"capacity\": 196608"},{"line_number":115,"context_line":"                    }"},{"line_number":116,"context_line":"                    \"DISK_GB\": {"},{"line_number":117,"context_line":"                    \"used\": 0,"},{"line_number":118,"context_line":"                    \"capacity\": 1900"},{"line_number":119,"context_line":"                    }"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"                }"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_e7029a3e","line":118,"range":{"start_line":117,"start_character":20,"end_line":118,"end_character":36},"in_reply_to":"bf659307_477266af","updated":"2018-04-09 15:39:01.000000000","message":"Done","commit_id":"39065edaec909da459a8fc6b09d9334c4d0664c8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"74bdce78b82087c17abaabd87a57bc6dd9169b0a","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                    \"used\": 0,"},{"line_number":118,"context_line":"                    \"capacity\": 1900"},{"line_number":119,"context_line":"                    }"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"                }"},{"line_number":122,"context_line":"            }"},{"line_number":123,"context_line":"        }"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_e7685abb","line":120,"updated":"2018-04-09 15:19:39.000000000","message":"nit: remove this blank line","commit_id":"39065edaec909da459a8fc6b09d9334c4d0664c8"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e9fbc6f4cb5a4c400986243ee8ea64374415a54f","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                    \"used\": 0,"},{"line_number":118,"context_line":"                    \"capacity\": 1900"},{"line_number":119,"context_line":"                    }"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"                }"},{"line_number":122,"context_line":"            }"},{"line_number":123,"context_line":"        }"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_c7f75659","line":120,"in_reply_to":"bf659307_e7685abb","updated":"2018-04-09 15:39:01.000000000","message":"Done","commit_id":"39065edaec909da459a8fc6b09d9334c4d0664c8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"74bdce78b82087c17abaabd87a57bc6dd9169b0a","unresolved":false,"context_lines":[{"line_number":141,"context_line":"Performance Impact"},{"line_number":142,"context_line":"------------------"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"None"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Other deployer impact"},{"line_number":147,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_47802647","line":144,"updated":"2018-04-09 15:19:39.000000000","message":"Seems there would be a slight performance impact, but probably negligible.\n\nWould this also mean that we\u0027d be returning full provider trees in the summary if that is considered part of the inventory for a given provider? It wouldn\u0027t be much of a summary if we return the entire tree...but it seems like a slippery slope.","commit_id":"39065edaec909da459a8fc6b09d9334c4d0664c8"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"5d0ec295a9307317008615c9afa45a6c4ee6a661","unresolved":false,"context_lines":[{"line_number":141,"context_line":"Performance Impact"},{"line_number":142,"context_line":"------------------"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"None"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Other deployer impact"},{"line_number":147,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_e7ce1a82","line":144,"in_reply_to":"bf659307_47802647","updated":"2018-04-09 15:28:44.000000000","message":"\u003e Seems there would be a slight performance impact, but probably\n \u003e negligible.\n\nThe way the code is constructed, it may be a slightly higher memory footprint, but slightly less CPU load.  Certainly negligible either way.\n\n \u003e Would this also mean that we\u0027d be returning full provider trees in\n \u003e the summary if that is considered part of the inventory for a given\n \u003e provider?\n\nYes, for sure.  See my response above.\n\n \u003e It wouldn\u0027t be much of a summary if we return the entire\n \u003e tree...but it seems like a slippery slope.\n\nIt\u0027s a summary in the sense that we\u0027re only including providers relevant to the results in allocation_requests.","commit_id":"39065edaec909da459a8fc6b09d9334c4d0664c8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5a3dcd9df3c4be08aa6801c5b1e4012f4df8462e","unresolved":false,"context_lines":[{"line_number":141,"context_line":"Performance Impact"},{"line_number":142,"context_line":"------------------"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"None"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Other deployer impact"},{"line_number":147,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_e7237abd","line":144,"in_reply_to":"bf659307_e7ce1a82","updated":"2018-04-09 15:43:11.000000000","message":"\u003e \u003e Would this also mean that we\u0027d be returning full provider trees\n \u003e in\n \u003e \u003e the summary if that is considered part of the inventory for a\n \u003e given\n \u003e \u003e provider?\n \u003e \n \u003e Yes, for sure.  See my response above.\n \u003e \n\nYour reply above isn\u0027t immediately clear about provider trees, and the fact we\u0027d also now be returning those as a result of this spec - I think it should be noted clearly and explicitly in this spec that now provider_summaries would also include full trees, which warrants more discussion.\n\nI\u0027m not really keen on adding this, including the performance cost of that, if we don\u0027t actually have something sitting in the wings that actually plans to use this in-tree.","commit_id":"39065edaec909da459a8fc6b09d9334c4d0664c8"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7b40a6af9e5a91e758d80049617a5020d91621f6","unresolved":false,"context_lines":[{"line_number":30,"context_line":"As a user of the placement API, I want to be able to get all the resource"},{"line_number":31,"context_line":"information of the providers in ``allocation_requests`` for making further"},{"line_number":32,"context_line":"sorting and filtering decisions."},{"line_number":33,"context_line":"For example, when I deploy an instance with VCPU, MEMORY_MB, and DISK_GB,"},{"line_number":34,"context_line":"I don\u0027t want to deploy this instance to hosts with VGPU to save the resource"},{"line_number":35,"context_line":"for instances with VGPU."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Proposed change"},{"line_number":38,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bf659307_47482686","line":35,"range":{"start_line":33,"start_character":0,"end_line":35,"end_character":24},"updated":"2018-04-09 15:42:00.000000000","message":"Well, I\u0027m not really fine with scheduler filters using allocation requests for checking whether a host is good or not, just because the Placement API should do that already.\n\nI think we also agreed on having Placement checks not being custom and different between clouds, for interoperations. If we were passing the inventories back to the filters, then some operators would modify the scheduler behaviour for their own usage instead of trying to push upstream the proposed behaviour they\u0027d like to change.","commit_id":"25237d8a42f65737a6a6b84c556e2a5bbb259a0f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7c801adcce120aae9e33e656800997ee7745fe86","unresolved":false,"context_lines":[{"line_number":30,"context_line":"As a user of the placement API, I want to be able to get all the resource"},{"line_number":31,"context_line":"information of the providers in ``allocation_requests`` for making further"},{"line_number":32,"context_line":"sorting and filtering decisions."},{"line_number":33,"context_line":"For example, when I deploy an instance with VCPU, MEMORY_MB, and DISK_GB,"},{"line_number":34,"context_line":"I don\u0027t want to deploy this instance to hosts with VGPU to save the resource"},{"line_number":35,"context_line":"for instances with VGPU."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Proposed change"},{"line_number":38,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bf659307_396436e5","line":35,"range":{"start_line":33,"start_character":0,"end_line":35,"end_character":24},"in_reply_to":"bf659307_393bd6c8","updated":"2018-04-09 15:48:58.000000000","message":"If someone wants to add a VGPU weighter to nova, fine, then let\u0027s make that the spec including the details about what\u0027s needed to get there, but as this stands, it\u0027s totally open-ended so I\u0027m not interested in spending time adding this in and reviewing it.","commit_id":"25237d8a42f65737a6a6b84c556e2a5bbb259a0f"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"39ee0cb577b1dcac1af486ea32c1351ce1f3f6de","unresolved":false,"context_lines":[{"line_number":30,"context_line":"As a user of the placement API, I want to be able to get all the resource"},{"line_number":31,"context_line":"information of the providers in ``allocation_requests`` for making further"},{"line_number":32,"context_line":"sorting and filtering decisions."},{"line_number":33,"context_line":"For example, when I deploy an instance with VCPU, MEMORY_MB, and DISK_GB,"},{"line_number":34,"context_line":"I don\u0027t want to deploy this instance to hosts with VGPU to save the resource"},{"line_number":35,"context_line":"for instances with VGPU."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Proposed change"},{"line_number":38,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bf659307_5f9ea3b8","line":35,"range":{"start_line":33,"start_character":0,"end_line":35,"end_character":24},"in_reply_to":"bf659307_396436e5","updated":"2018-04-09 21:30:26.000000000","message":"I think the Use Cases section is too light on information to answer the question, \"why should we do this?\"\n\nI\u0027d like to understand a real use case where it explains why the current behavior does not meet the requirements of the use case and how the proposed behavior *does* meet the requirements of the use case.","commit_id":"25237d8a42f65737a6a6b84c556e2a5bbb259a0f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a043c3c32daf173b64dcd9db392958ddb90e17ae","unresolved":false,"context_lines":[{"line_number":30,"context_line":"As a user of the placement API, I want to be able to get all the resource"},{"line_number":31,"context_line":"information of the providers in ``allocation_requests`` for making further"},{"line_number":32,"context_line":"sorting and filtering decisions."},{"line_number":33,"context_line":"For example, when I deploy an instance with VCPU, MEMORY_MB, and DISK_GB,"},{"line_number":34,"context_line":"I don\u0027t want to deploy this instance to hosts with VGPU to save the resource"},{"line_number":35,"context_line":"for instances with VGPU."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Proposed change"},{"line_number":38,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bf659307_393bd6c8","line":35,"range":{"start_line":33,"start_character":0,"end_line":35,"end_character":24},"in_reply_to":"bf659307_47482686","updated":"2018-04-09 15:47:32.000000000","message":"Think of it as weighing, then, rather than filtering.  We\u0027ve said we want to do little or no weighing directly in placement (with the exception of \"preferred traits\" maybe).  The weigher doesn\u0027t say \"filter out hosts that have VGPUs\"; rather, it says \"if you can find a host without VGPUs, use that one first; otherwise, I\u0027ll take one with VGPUs if I have to.\"  Or even, \"First land me on a host with no VGPUs.  If that\u0027s not available, find me one with all of its VGPUs consumed.  If *that* isn\u0027t available, find me the one with the *most* of its VGPUs consumed.\"  It may also be more complex than just looking at one resource class.  Clearly this level of weighing logic would be way too complex to handle all in placement.","commit_id":"25237d8a42f65737a6a6b84c556e2a5bbb259a0f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ee7f539b1e52a3e38ebdfd9e1df88474066125f6","unresolved":false,"context_lines":[{"line_number":30,"context_line":"As a user of the placement API, I want to be able to get all the resource"},{"line_number":31,"context_line":"information of the providers in ``allocation_requests`` for making further"},{"line_number":32,"context_line":"sorting and filtering decisions."},{"line_number":33,"context_line":"For example, when I deploy an instance with VCPU, MEMORY_MB, and DISK_GB,"},{"line_number":34,"context_line":"I don\u0027t want to deploy this instance to hosts with VGPU to save the resource"},{"line_number":35,"context_line":"for instances with VGPU."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Proposed change"},{"line_number":38,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bf659307_687b9dbd","line":35,"range":{"start_line":33,"start_character":0,"end_line":35,"end_character":24},"in_reply_to":"bf659307_5c59c657","updated":"2018-04-10 15:39:49.000000000","message":"\u003e I wrote this spec (and implementation) because this change is needed to support \"full providers in tree in provider_summaries\" behavior. I updated the spec accordingly.\n\nThat is not a use case. There is no foreseeable end user / operator benefit to this spec, so I\u0027m -1 on it until that shows up.","commit_id":"25237d8a42f65737a6a6b84c556e2a5bbb259a0f"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"0facbd6b5d5bbb445d2a12d719a39248228c9505","unresolved":false,"context_lines":[{"line_number":30,"context_line":"As a user of the placement API, I want to be able to get all the resource"},{"line_number":31,"context_line":"information of the providers in ``allocation_requests`` for making further"},{"line_number":32,"context_line":"sorting and filtering decisions."},{"line_number":33,"context_line":"For example, when I deploy an instance with VCPU, MEMORY_MB, and DISK_GB,"},{"line_number":34,"context_line":"I don\u0027t want to deploy this instance to hosts with VGPU to save the resource"},{"line_number":35,"context_line":"for instances with VGPU."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Proposed change"},{"line_number":38,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bf659307_5c59c657","line":35,"range":{"start_line":33,"start_character":0,"end_line":35,"end_character":24},"in_reply_to":"bf659307_5f9ea3b8","updated":"2018-04-10 08:32:21.000000000","message":"I\u0027m not going to do with VGPU weigher work. I wrote this spec (and implementation) because this change is needed to support \"full providers in tree in provider_summaries\" behavior. \nI updated the spec accordingly.","commit_id":"25237d8a42f65737a6a6b84c556e2a5bbb259a0f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a043ea84e1ba955b7c1c0d6eb8eb166fa6e81858","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Alternatives"},{"line_number":45,"context_line":"------------"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"We can keep things as they are, but we take this to enable more advanced"},{"line_number":48,"context_line":"scheduling."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Data model impact"},{"line_number":51,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bf659307_f92f9e85","line":48,"range":{"start_line":47,"start_character":0,"end_line":48,"end_character":11},"updated":"2018-04-09 15:47:04.000000000","message":"To reiterate, if this spec were proposing something new for filtering/weighting that nova is going to leverage, then it\u0027s worth spending the time discussing this, but if this is just making a change to the placement API and nova-scheduler to enable out of tree filters and weighters, I\u0027m not interested in spending time on that - those out of tree things can query placement directly to get the full inventory view if they need.","commit_id":"25237d8a42f65737a6a6b84c556e2a5bbb259a0f"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"3e76e72fed16a1d81df21816e6e5baa776abd0e9","unresolved":false,"context_lines":[{"line_number":34,"context_line":"resource providers, but wouldn\u0027t receive their compute hosts\u0027 uuids,"},{"line_number":35,"context_line":"while it is lists of the compute hosts that should be passed to scheduling"},{"line_number":36,"context_line":"filters such as NUMATopologyFilter. Nova doesn\u0027t want to issue an additional"},{"line_number":37,"context_line":"REST query to get the root providers\u0027 information."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Proposed change"},{"line_number":40,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf659307_0e02260a","line":37,"updated":"2018-04-10 18:18:26.000000000","message":"This is a bit more descriptive than the last version, but is still too vague and/or assuming the reader has more context about NUMATopologyFilter, for example.\n\nThis is describing a scenario where the root provider (compute host) doesn\u0027t have inventory but the children do. So the children UUIDs would be returned, but their parents (compute hosts) UUIDs would *not* be returned. And the scheduler needs compute hosts UUIDs to act upon.\n\nQuestions: what is the current behavior if a child (example: NUMA) resource provider can fulfill the request but the compute host cannot? How does the caller know that the child provider can fulfill the request? Simply by its presence? So, if the filter scheduler calls placement and receives child providers as candidates in the response, the current behavior is that the filter scheduler must make a second (different?) REST query to placement in order to obtain the compute host UUIDs for the child providers returned in the previous call?\n\nIt might help to show an example request and returned provider_summaries that will lead to the problem of having to issue a second query. And also show an example of the second query, and the result that gets passed to the scheduling filters. And show the difference in the flow if we do this proposal.","commit_id":"0a451e8ff5c893fcca463e7693ee279258a1779a"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"248cb8251ba3aecab6891ac2c54382d8c7e4f966","unresolved":false,"context_lines":[{"line_number":39,"context_line":"Proposed change"},{"line_number":40,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"With a new microversion, change ``provider_summaries`` field to include all"},{"line_number":43,"context_line":"the resource providers with all the resource class inventories in trees."},{"line_number":44,"context_line":"The response body should include fields of ``root_provider_uuid`` and"},{"line_number":45,"context_line":"``parent_provider_uuid`` for each resource providers to expose the hierarchy."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Alternatives"},{"line_number":48,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf659307_1281f54a","line":45,"range":{"start_line":42,"start_character":0,"end_line":45,"end_character":77},"updated":"2018-04-10 09:15:36.000000000","message":"The code in the nova scheduler looks like assuming all the providers in the provider_summaries is root provider. So we need to let the nova scheduler realize that it needs to find out the root provider. \n\nAlso we need to take care the alternative we passed to the child-cell is the selected tree, not just the root provider.","commit_id":"0a451e8ff5c893fcca463e7693ee279258a1779a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"333bbc7b1bbff8ac99efb5d2d720981f9fee0272","unresolved":false,"context_lines":[{"line_number":56,"context_line":"want to deploy this instance to hosts with VGPU or SRIOV_NET_VF to save the"},{"line_number":57,"context_line":"resources for instances that need the devices."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Building the weighers or filters in nova is out of the scope of this spec,"},{"line_number":60,"context_line":"but it is good to prepare for these use cases in placement using this"},{"line_number":61,"context_line":"opportunity."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Data model impact"},{"line_number":64,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf659307_0831c10b","line":61,"range":{"start_line":59,"start_character":0,"end_line":61,"end_character":12},"updated":"2018-04-10 15:40:37.000000000","message":"I am -1 until we have a concrete proposal for something in-tree that requires this change.","commit_id":"0a451e8ff5c893fcca463e7693ee279258a1779a"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"474ee7bb2bd488676fcc071f80f8b6354ce66f36","unresolved":false,"context_lines":[{"line_number":56,"context_line":"want to deploy this instance to hosts with VGPU or SRIOV_NET_VF to save the"},{"line_number":57,"context_line":"resources for instances that need the devices."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Building the weighers or filters in nova is out of the scope of this spec,"},{"line_number":60,"context_line":"but it is good to prepare for these use cases in placement using this"},{"line_number":61,"context_line":"opportunity."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Data model impact"},{"line_number":64,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf659307_c5f4fdf3","line":61,"range":{"start_line":59,"start_character":0,"end_line":61,"end_character":12},"in_reply_to":"bf659307_0831c10b","updated":"2018-04-11 06:58:58.000000000","message":"As I wrote in the alternative section in the latest PS, at least we should change the API response to represent the hierarchy to let nova scheduler distinguish which is the root provider (compute host), I think, and if we have to enable this, it is effective to include in-tree work in the same spec not to spend additional time in the future, IMO.\n\nIn this point I\u0027d like Matt to explain why you think this in-tree work is \"sloppy slope\".","commit_id":"0a451e8ff5c893fcca463e7693ee279258a1779a"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"42686e7185ea379936fccb09902e6df9c91454cc","unresolved":false,"context_lines":[{"line_number":55,"context_line":".. code::"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    GET /allocation_candidates?resources1\u003dPCPU:4,MEMORY_MB\u003d2048"},{"line_number":58,"context_line":"                              \u0026resources2\u003dPCPU:4,MEMORY_MB\u003d2048"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"And nova would get the following json response, where there are NUMA resource"},{"line_number":61,"context_line":"providers but no compute host resource provider."}],"source_content_type":"text/x-rst","patch_set":6,"id":"bf659307_0643c914","line":58,"updated":"2018-04-11 19:57:08.000000000","message":"This is a great illustration of what the user is requesting, how the resources look in placement, and how the scheduler will ask placement for the resources.","commit_id":"10e0b502312e232a97beb30070a3afbb266d33a1"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"42686e7185ea379936fccb09902e6df9c91454cc","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                    }"},{"line_number":127,"context_line":"                }"},{"line_number":128,"context_line":"            }"},{"line_number":129,"context_line":"        }"},{"line_number":130,"context_line":"    }"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"bf659307_06118904","line":129,"updated":"2018-04-11 19:57:08.000000000","message":"This is also good, showing that the info we need to send to select_destinations (compute UUIDs) are missing.","commit_id":"10e0b502312e232a97beb30070a3afbb266d33a1"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"42686e7185ea379936fccb09902e6df9c91454cc","unresolved":false,"context_lines":[{"line_number":232,"context_line":"                    },"},{"line_number":233,"context_line":"                },"},{"line_number":234,"context_line":"                \"parent_provider_uuid\": \"7d2590ae-fb85-4080-9306-058b4c915e3f\","},{"line_number":235,"context_line":"                \"root_provider_uuid\": \"99c09379-6e52-4ef8-9a95-b9ce6f68452e\","},{"line_number":236,"context_line":"            },"},{"line_number":237,"context_line":"        },"},{"line_number":238,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bf659307_c692b157","line":235,"updated":"2018-04-11 19:57:08.000000000","message":"This looks reasonable to me.","commit_id":"10e0b502312e232a97beb30070a3afbb266d33a1"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"fd7c30ebb3f69b767053a871c7a222ea0f828d3e","unresolved":false,"context_lines":[{"line_number":340,"context_line":""},{"line_number":341,"context_line":"    GET /resource_providers?in_tree\u003d{uuid}"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"But querying a request for each resource provider candidate is not effective."},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"Data model impact"},{"line_number":346,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f6a8fd7_3691da9a","line":343,"range":{"start_line":343,"start_character":67,"end_line":343,"end_character":76},"updated":"2018-04-16 22:21:07.000000000","message":"efficient\n\nIt also doesn\u0027t satisfy the hypothetical case where all resources for a request are provided by sharing providers.  There may not be a legitimate use case for this scenario, but there\u0027s nothing in the API that prevents it from happening; and in that case it would be very difficult to ascertain where (which host) such an allocation request should land on.","commit_id":"10e0b502312e232a97beb30070a3afbb266d33a1"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3c5c5ef881be86dea4651504f8fd17a4a8ee48d7","unresolved":false,"context_lines":[{"line_number":401,"context_line":"Work Items"},{"line_number":402,"context_line":"----------"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"* Add fields of ``root_provider_uuid``, ``parent_provider_uuid``, and all"},{"line_number":405,"context_line":"  resource class inventories in ``provider_summaries`` with a new"},{"line_number":406,"context_line":"  microversion."},{"line_number":407,"context_line":"* Change codes to include all the providers in trees in"},{"line_number":408,"context_line":"  ``provider_summaries`` even if that are not in ``allocation_requests``."},{"line_number":409,"context_line":"* Change the nova scheduler to be aware of the hierarchy and to"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f6a8fd7_987d561e","line":406,"range":{"start_line":404,"start_character":0,"end_line":406,"end_character":15},"updated":"2018-04-17 20:35:00.000000000","message":"Oh, my bad, I didn\u0027t see this before.","commit_id":"10e0b502312e232a97beb30070a3afbb266d33a1"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3c5c5ef881be86dea4651504f8fd17a4a8ee48d7","unresolved":false,"context_lines":[{"line_number":405,"context_line":"  ``provider_summaries``. Namely, we need following changes to the current"},{"line_number":406,"context_line":"  behavior."},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"    * Include information on all their resource classes in"},{"line_number":409,"context_line":"      ``provider_summaries`` even if a resource class is not in the requested"},{"line_number":410,"context_line":"      resources. - See the `Return all resources in provider_summaries`_ patch"},{"line_number":411,"context_line":"      for details."},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"    * Include resource providers of entire tree in ``provider_summaries`` even"},{"line_number":414,"context_line":"      if a resource provider is not in the ``allocation_requests``. - See the"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9f6a8fd7_58ac9e8b","line":411,"range":{"start_line":408,"start_character":0,"end_line":411,"end_character":18},"updated":"2018-04-17 20:35:00.000000000","message":"So yeah, I\u0027m still totally in favor of this; but the text above doesn\u0027t really explain/justify why we need to do this part.","commit_id":"b143e99b3acac0d5dcd63a119394a618f9ae1611"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"0160256e84947b545196124cac7edb84f4261edb","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"If a user requests 4 PCPUs and 2048 MEMORY_MB for each NUMA node, under"},{"line_number":93,"context_line":"`Granular Resource Request Syntax`_ spec, nova would issue the following"},{"line_number":94,"context_line":"request to placement;"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":".. code::"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"9f6a8fd7_3fa5f004","line":94,"range":{"start_line":94,"start_character":20,"end_line":94,"end_character":21},"updated":"2018-04-18 23:07:01.000000000","message":":","commit_id":"ab191565b2edb4393b3ce70402f37e1a0796f055"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b00a18595f49ff5341f823381f9a2c5399d6cc9","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                        +-----------------+"},{"line_number":42,"context_line":"                        /                 \\"},{"line_number":43,"context_line":"     +------------------+                 +-----------------+"},{"line_number":44,"context_line":"     | \u003cNUMA_NODE_O\u003e    |                 | \u003cNUMA_NODE_1\u003e   |"},{"line_number":45,"context_line":"     | PCPU: 8          |                 | PCPU: 8         | (dedicated CPUs)"},{"line_number":46,"context_line":"     | MEMORY_MB: 4096  |                 | MEMORY_MB: 4096 |"},{"line_number":47,"context_line":"     +------------------+                 +-----------------+"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_cdbda402","line":44,"range":{"start_line":44,"start_character":18,"end_line":44,"end_character":19},"updated":"2018-04-25 14:51:02.000000000","message":"0 :)","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"dbce65ddfa3a5765fd9901cedc9fef45f74eb64c","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                        +-----------------+"},{"line_number":42,"context_line":"                        /                 \\"},{"line_number":43,"context_line":"     +------------------+                 +-----------------+"},{"line_number":44,"context_line":"     | \u003cNUMA_NODE_O\u003e    |                 | \u003cNUMA_NODE_1\u003e   |"},{"line_number":45,"context_line":"     | PCPU: 8          |                 | PCPU: 8         | (dedicated CPUs)"},{"line_number":46,"context_line":"     | MEMORY_MB: 4096  |                 | MEMORY_MB: 4096 |"},{"line_number":47,"context_line":"     +------------------+                 +-----------------+"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_8fe0dbfc","line":44,"range":{"start_line":44,"start_character":18,"end_line":44,"end_character":19},"in_reply_to":"9f6a8fd7_cdbda402","updated":"2018-04-27 02:11:02.000000000","message":"Good eye. Done throughout the document.","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b00a18595f49ff5341f823381f9a2c5399d6cc9","unresolved":false,"context_lines":[{"line_number":79,"context_line":".. note::"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    Whether the inventories belong to the compute node or NUMA depends on"},{"line_number":82,"context_line":"    the operator settings via ``[devices]numa_resource_classes`` in"},{"line_number":83,"context_line":"    ``nova.conf`` file. Namely, the operator can also set VCPU as NUMA nodes\u0027"},{"line_number":84,"context_line":"    inventories if strict NUMA affinity is required. This case described in"},{"line_number":85,"context_line":"    case2 happens when the operator wants to use shared CPUs effectively in"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_0d4ddc3c","line":82,"range":{"start_line":82,"start_character":30,"end_line":82,"end_character":64},"updated":"2018-04-25 14:51:02.000000000","message":"It\u0027s kind of risky referring to things which don\u0027t exist yet, but are still part of yet another related design spec, https://review.openstack.org/#/c/552924/. I assume that spec has to depend on this one.","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"dbce65ddfa3a5765fd9901cedc9fef45f74eb64c","unresolved":false,"context_lines":[{"line_number":79,"context_line":".. note::"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    Whether the inventories belong to the compute node or NUMA depends on"},{"line_number":82,"context_line":"    the operator settings via ``[devices]numa_resource_classes`` in"},{"line_number":83,"context_line":"    ``nova.conf`` file. Namely, the operator can also set VCPU as NUMA nodes\u0027"},{"line_number":84,"context_line":"    inventories if strict NUMA affinity is required. This case described in"},{"line_number":85,"context_line":"    case2 happens when the operator wants to use shared CPUs effectively in"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_6f822703","line":82,"range":{"start_line":82,"start_character":30,"end_line":82,"end_character":64},"in_reply_to":"9f6a8fd7_0d4ddc3c","updated":"2018-04-27 02:11:02.000000000","message":"Hmm... okay, this is just an example that placement assume how nova use this \"all providers in tree\" feature. In this point this note might be too descriptive in details. I delete this note.","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b00a18595f49ff5341f823381f9a2c5399d6cc9","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    ``nova.conf`` file. Namely, the operator can also set VCPU as NUMA nodes\u0027"},{"line_number":84,"context_line":"    inventories if strict NUMA affinity is required. This case described in"},{"line_number":85,"context_line":"    case2 happens when the operator wants to use shared CPUs effectively in"},{"line_number":86,"context_line":"    contrast to dedicated CPUs. For example, If you split the 8 VCPUs into"},{"line_number":87,"context_line":"    4 VCPUs for each NUMA nodes, placement API can\u0027t accept that host with"},{"line_number":88,"context_line":"    8 VCPU instances. See the `NUMA Topology with Resource Providers`_ spec"},{"line_number":89,"context_line":"    for details."}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_4d58b4f8","line":86,"range":{"start_line":86,"start_character":45,"end_line":86,"end_character":47},"updated":"2018-04-25 14:51:02.000000000","message":"if","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b00a18595f49ff5341f823381f9a2c5399d6cc9","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":".. code::"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    GET /allocation_candidates?resources1\u003dPCPU:4,MEMORY_MB\u003d2048"},{"line_number":99,"context_line":"                              \u0026resources2\u003dPCPU:4,MEMORY_MB\u003d2048"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"In both cases, case1 and case2, nova would get the following json response,"},{"line_number":102,"context_line":"where there are NUMA resource providers but no compute host resource provider."}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_4d0d14e6","line":99,"range":{"start_line":98,"start_character":4,"end_line":99,"end_character":63},"updated":"2018-04-25 14:51:02.000000000","message":"nit: doesn\u0027t this also require the group_policy query parameter now?","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"dbce65ddfa3a5765fd9901cedc9fef45f74eb64c","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":".. code::"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    GET /allocation_candidates?resources1\u003dPCPU:4,MEMORY_MB\u003d2048"},{"line_number":99,"context_line":"                              \u0026resources2\u003dPCPU:4,MEMORY_MB\u003d2048"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"In both cases, case1 and case2, nova would get the following json response,"},{"line_number":102,"context_line":"where there are NUMA resource providers but no compute host resource provider."}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_2fa18f96","line":99,"range":{"start_line":98,"start_character":4,"end_line":99,"end_character":63},"in_reply_to":"9f6a8fd7_4d0d14e6","updated":"2018-04-27 02:11:02.000000000","message":"Yup, updated accordingly. I believe that in this case nova uses group_policy\u003disolate.","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b00a18595f49ff5341f823381f9a2c5399d6cc9","unresolved":false,"context_lines":[{"line_number":121,"context_line":"                    },"},{"line_number":122,"context_line":"                },"},{"line_number":123,"context_line":"            },"},{"line_number":124,"context_line":"            {"},{"line_number":125,"context_line":"                \"allocations\": {"},{"line_number":126,"context_line":"                    \"35791f28-fb45-4717-9ea9-435b3ef7c3b3\": {"},{"line_number":127,"context_line":"                        \"resources\": {"},{"line_number":128,"context_line":"                            \"PCPU\": 8,"},{"line_number":129,"context_line":"                            \"MEMORY_MB\":4096"},{"line_number":130,"context_line":"                        },"},{"line_number":131,"context_line":"                    },"},{"line_number":132,"context_line":"                },"},{"line_number":133,"context_line":"            },"},{"line_number":134,"context_line":"            {"},{"line_number":135,"context_line":"                \"allocations\": {"},{"line_number":136,"context_line":"                    \"7d2590ae-fb85-4080-9306-058b4c915e3f\": {"},{"line_number":137,"context_line":"                        \"resources\": {"},{"line_number":138,"context_line":"                            \"PCPU\": 8,"},{"line_number":139,"context_line":"                            \"MEMORY_MB\":4096"},{"line_number":140,"context_line":"                        },"},{"line_number":141,"context_line":"                    },"},{"line_number":142,"context_line":"                },"},{"line_number":143,"context_line":"            },"},{"line_number":144,"context_line":"        ],"},{"line_number":145,"context_line":"        \"provider_summaries\": {"},{"line_number":146,"context_line":"            \"35791f28-fb45-4717-9ea9-435b3ef7c3b3\": {"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_4ddbd44d","line":143,"range":{"start_line":124,"start_character":12,"end_line":143,"end_character":14},"updated":"2018-04-25 14:51:02.000000000","message":"Why would we get these back if the numbered request groups were for 4 PCPU?","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"dbce65ddfa3a5765fd9901cedc9fef45f74eb64c","unresolved":false,"context_lines":[{"line_number":121,"context_line":"                    },"},{"line_number":122,"context_line":"                },"},{"line_number":123,"context_line":"            },"},{"line_number":124,"context_line":"            {"},{"line_number":125,"context_line":"                \"allocations\": {"},{"line_number":126,"context_line":"                    \"35791f28-fb45-4717-9ea9-435b3ef7c3b3\": {"},{"line_number":127,"context_line":"                        \"resources\": {"},{"line_number":128,"context_line":"                            \"PCPU\": 8,"},{"line_number":129,"context_line":"                            \"MEMORY_MB\":4096"},{"line_number":130,"context_line":"                        },"},{"line_number":131,"context_line":"                    },"},{"line_number":132,"context_line":"                },"},{"line_number":133,"context_line":"            },"},{"line_number":134,"context_line":"            {"},{"line_number":135,"context_line":"                \"allocations\": {"},{"line_number":136,"context_line":"                    \"7d2590ae-fb85-4080-9306-058b4c915e3f\": {"},{"line_number":137,"context_line":"                        \"resources\": {"},{"line_number":138,"context_line":"                            \"PCPU\": 8,"},{"line_number":139,"context_line":"                            \"MEMORY_MB\":4096"},{"line_number":140,"context_line":"                        },"},{"line_number":141,"context_line":"                    },"},{"line_number":142,"context_line":"                },"},{"line_number":143,"context_line":"            },"},{"line_number":144,"context_line":"        ],"},{"line_number":145,"context_line":"        \"provider_summaries\": {"},{"line_number":146,"context_line":"            \"35791f28-fb45-4717-9ea9-435b3ef7c3b3\": {"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_afb6ffdb","line":143,"range":{"start_line":124,"start_character":12,"end_line":143,"end_character":14},"in_reply_to":"9f6a8fd7_465ace82","updated":"2018-04-27 02:11:02.000000000","message":"Yup, but we don\u0027t want to get these back. We had got these back just because there was no such parameter like \"group_policy\" when I wrote this spec. Deleted accordingly.","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"19e8d6f99ada2ce17d04e54752b255acc0e65497","unresolved":false,"context_lines":[{"line_number":121,"context_line":"                    },"},{"line_number":122,"context_line":"                },"},{"line_number":123,"context_line":"            },"},{"line_number":124,"context_line":"            {"},{"line_number":125,"context_line":"                \"allocations\": {"},{"line_number":126,"context_line":"                    \"35791f28-fb45-4717-9ea9-435b3ef7c3b3\": {"},{"line_number":127,"context_line":"                        \"resources\": {"},{"line_number":128,"context_line":"                            \"PCPU\": 8,"},{"line_number":129,"context_line":"                            \"MEMORY_MB\":4096"},{"line_number":130,"context_line":"                        },"},{"line_number":131,"context_line":"                    },"},{"line_number":132,"context_line":"                },"},{"line_number":133,"context_line":"            },"},{"line_number":134,"context_line":"            {"},{"line_number":135,"context_line":"                \"allocations\": {"},{"line_number":136,"context_line":"                    \"7d2590ae-fb85-4080-9306-058b4c915e3f\": {"},{"line_number":137,"context_line":"                        \"resources\": {"},{"line_number":138,"context_line":"                            \"PCPU\": 8,"},{"line_number":139,"context_line":"                            \"MEMORY_MB\":4096"},{"line_number":140,"context_line":"                        },"},{"line_number":141,"context_line":"                    },"},{"line_number":142,"context_line":"                },"},{"line_number":143,"context_line":"            },"},{"line_number":144,"context_line":"        ],"},{"line_number":145,"context_line":"        \"provider_summaries\": {"},{"line_number":146,"context_line":"            \"35791f28-fb45-4717-9ea9-435b3ef7c3b3\": {"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_465ace82","line":143,"range":{"start_line":124,"start_character":12,"end_line":143,"end_character":14},"in_reply_to":"9f6a8fd7_4ddbd44d","updated":"2018-04-25 20:02:19.000000000","message":"These would come back with ?group_policy\u003dnone because that allows resources from different request groups to be satisfied by the same provider.  For like resource classes, that entails adding the amounts or duplicating dict keys.","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b00a18595f49ff5341f823381f9a2c5399d6cc9","unresolved":false,"context_lines":[{"line_number":202,"context_line":"0. Return all nested providers in tree"},{"line_number":203,"context_line":"--------------------------------------"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"At first, we need to change codes to not exclude resource providers that"},{"line_number":206,"context_line":"aren\u0027t in ``allocation_requests`` from ``provider_summaries``."},{"line_number":207,"context_line":"Alternatively, we take a logic to exclude resource providers *whose family*"},{"line_number":208,"context_line":"is not in ``allocation_requests``. Also, We add new fields of"},{"line_number":209,"context_line":"``root_provider_uuid`` and ``parent_provider_uuid`` for each resource provider"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_4d82f401","line":206,"range":{"start_line":205,"start_character":0,"end_line":206,"end_character":62},"updated":"2018-04-25 14:51:02.000000000","message":"nit: this is confusingly worded with the negatives, maybe re-word as, \"we need to change ``GET /allocation_candidates`` to include resources providers in ``provider_summaries`` that aren\u0027t in ``allocation_requests`` when those other resource providers are in the same provider tree.\"","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"dbce65ddfa3a5765fd9901cedc9fef45f74eb64c","unresolved":false,"context_lines":[{"line_number":202,"context_line":"0. Return all nested providers in tree"},{"line_number":203,"context_line":"--------------------------------------"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"At first, we need to change codes to not exclude resource providers that"},{"line_number":206,"context_line":"aren\u0027t in ``allocation_requests`` from ``provider_summaries``."},{"line_number":207,"context_line":"Alternatively, we take a logic to exclude resource providers *whose family*"},{"line_number":208,"context_line":"is not in ``allocation_requests``. Also, We add new fields of"},{"line_number":209,"context_line":"``root_provider_uuid`` and ``parent_provider_uuid`` for each resource provider"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_8fea1baa","line":206,"range":{"start_line":205,"start_character":0,"end_line":206,"end_character":62},"in_reply_to":"9f6a8fd7_4d82f401","updated":"2018-04-27 02:11:02.000000000","message":"Thanks for the help. Re-worded.","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b00a18595f49ff5341f823381f9a2c5399d6cc9","unresolved":false,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":"At first, we need to change codes to not exclude resource providers that"},{"line_number":206,"context_line":"aren\u0027t in ``allocation_requests`` from ``provider_summaries``."},{"line_number":207,"context_line":"Alternatively, we take a logic to exclude resource providers *whose family*"},{"line_number":208,"context_line":"is not in ``allocation_requests``. Also, We add new fields of"},{"line_number":209,"context_line":"``root_provider_uuid`` and ``parent_provider_uuid`` for each resource provider"},{"line_number":210,"context_line":"to expose the hierarchy."}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_ad94f037","line":207,"updated":"2018-04-25 14:51:02.000000000","message":"So as to not confuse things, I\u0027d prefer that alternatives are left in the alternatives section below.","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b00a18595f49ff5341f823381f9a2c5399d6cc9","unresolved":false,"context_lines":[{"line_number":205,"context_line":"At first, we need to change codes to not exclude resource providers that"},{"line_number":206,"context_line":"aren\u0027t in ``allocation_requests`` from ``provider_summaries``."},{"line_number":207,"context_line":"Alternatively, we take a logic to exclude resource providers *whose family*"},{"line_number":208,"context_line":"is not in ``allocation_requests``. Also, We add new fields of"},{"line_number":209,"context_line":"``root_provider_uuid`` and ``parent_provider_uuid`` for each resource provider"},{"line_number":210,"context_line":"to expose the hierarchy."},{"line_number":211,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_2d7b0028","line":208,"range":{"start_line":208,"start_character":41,"end_line":208,"end_character":43},"updated":"2018-04-25 14:51:02.000000000","message":"we","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"dbce65ddfa3a5765fd9901cedc9fef45f74eb64c","unresolved":false,"context_lines":[{"line_number":205,"context_line":"At first, we need to change codes to not exclude resource providers that"},{"line_number":206,"context_line":"aren\u0027t in ``allocation_requests`` from ``provider_summaries``."},{"line_number":207,"context_line":"Alternatively, we take a logic to exclude resource providers *whose family*"},{"line_number":208,"context_line":"is not in ``allocation_requests``. Also, We add new fields of"},{"line_number":209,"context_line":"``root_provider_uuid`` and ``parent_provider_uuid`` for each resource provider"},{"line_number":210,"context_line":"to expose the hierarchy."},{"line_number":211,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_eff15797","line":208,"range":{"start_line":208,"start_character":41,"end_line":208,"end_character":43},"in_reply_to":"9f6a8fd7_2d7b0028","updated":"2018-04-27 02:11:02.000000000","message":"Done","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b00a18595f49ff5341f823381f9a2c5399d6cc9","unresolved":false,"context_lines":[{"line_number":281,"context_line":"                \"traits\": [],"},{"line_number":282,"context_line":"                \"parent_provider_uuid\": \"99c09379-6e52-4ef8-9a95-b9ce6f68452e\","},{"line_number":283,"context_line":"                \"root_provider_uuid\": \"99c09379-6e52-4ef8-9a95-b9ce6f68452e\""},{"line_number":284,"context_line":"            }"},{"line_number":285,"context_line":"            \"7d2590ae-fb85-4080-9306-058b4c915e3f\": {"},{"line_number":286,"context_line":"                \"resources\": {"},{"line_number":287,"context_line":"                    \"PCPU\": {"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_4db0b4dd","line":284,"range":{"start_line":284,"start_character":12,"end_line":284,"end_character":13},"updated":"2018-04-25 14:51:02.000000000","message":"nit: },","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"dbce65ddfa3a5765fd9901cedc9fef45f74eb64c","unresolved":false,"context_lines":[{"line_number":281,"context_line":"                \"traits\": [],"},{"line_number":282,"context_line":"                \"parent_provider_uuid\": \"99c09379-6e52-4ef8-9a95-b9ce6f68452e\","},{"line_number":283,"context_line":"                \"root_provider_uuid\": \"99c09379-6e52-4ef8-9a95-b9ce6f68452e\""},{"line_number":284,"context_line":"            }"},{"line_number":285,"context_line":"            \"7d2590ae-fb85-4080-9306-058b4c915e3f\": {"},{"line_number":286,"context_line":"                \"resources\": {"},{"line_number":287,"context_line":"                    \"PCPU\": {"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_0f44cbb6","line":284,"range":{"start_line":284,"start_character":12,"end_line":284,"end_character":13},"in_reply_to":"9f6a8fd7_4db0b4dd","updated":"2018-04-27 02:11:02.000000000","message":"Done","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b00a18595f49ff5341f823381f9a2c5399d6cc9","unresolved":false,"context_lines":[{"line_number":387,"context_line":"                \"traits\": [],"},{"line_number":388,"context_line":"                \"parent_provider_uuid\": \"99c09379-6e52-4ef8-9a95-b9ce6f68452e\","},{"line_number":389,"context_line":"                \"root_provider_uuid\": \"99c09379-6e52-4ef8-9a95-b9ce6f68452e\""},{"line_number":390,"context_line":"            }"},{"line_number":391,"context_line":"            \"7d2590ae-fb85-4080-9306-058b4c915e3f\": {"},{"line_number":392,"context_line":"                \"resources\": {"},{"line_number":393,"context_line":"                    \"PCPU\": {"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_edbe68ac","line":390,"range":{"start_line":390,"start_character":12,"end_line":390,"end_character":13},"updated":"2018-04-25 14:51:02.000000000","message":"},","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"dbce65ddfa3a5765fd9901cedc9fef45f74eb64c","unresolved":false,"context_lines":[{"line_number":387,"context_line":"                \"traits\": [],"},{"line_number":388,"context_line":"                \"parent_provider_uuid\": \"99c09379-6e52-4ef8-9a95-b9ce6f68452e\","},{"line_number":389,"context_line":"                \"root_provider_uuid\": \"99c09379-6e52-4ef8-9a95-b9ce6f68452e\""},{"line_number":390,"context_line":"            }"},{"line_number":391,"context_line":"            \"7d2590ae-fb85-4080-9306-058b4c915e3f\": {"},{"line_number":392,"context_line":"                \"resources\": {"},{"line_number":393,"context_line":"                    \"PCPU\": {"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_ef4637c1","line":390,"range":{"start_line":390,"start_character":12,"end_line":390,"end_character":13},"in_reply_to":"9f6a8fd7_edbe68ac","updated":"2018-04-27 02:11:02.000000000","message":"Done","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b00a18595f49ff5341f823381f9a2c5399d6cc9","unresolved":false,"context_lines":[{"line_number":425,"context_line":""},{"line_number":426,"context_line":"We can just add ``root_provider_uuid`` field in ``provider_summaries``"},{"line_number":427,"context_line":"instead of exposing the whole tree. For both cases, case1 and case2,"},{"line_number":428,"context_line":"the response would be;"},{"line_number":429,"context_line":""},{"line_number":430,"context_line":".. code-block:: javascript"},{"line_number":431,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_cd74c400","line":428,"range":{"start_line":428,"start_character":21,"end_line":428,"end_character":22},"updated":"2018-04-25 14:51:02.000000000","message":":","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"dbce65ddfa3a5765fd9901cedc9fef45f74eb64c","unresolved":false,"context_lines":[{"line_number":425,"context_line":""},{"line_number":426,"context_line":"We can just add ``root_provider_uuid`` field in ``provider_summaries``"},{"line_number":427,"context_line":"instead of exposing the whole tree. For both cases, case1 and case2,"},{"line_number":428,"context_line":"the response would be;"},{"line_number":429,"context_line":""},{"line_number":430,"context_line":".. code-block:: javascript"},{"line_number":431,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_4f23a306","line":428,"range":{"start_line":428,"start_character":21,"end_line":428,"end_character":22},"in_reply_to":"9f6a8fd7_cd74c400","updated":"2018-04-27 02:11:02.000000000","message":"Done","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b00a18595f49ff5341f823381f9a2c5399d6cc9","unresolved":false,"context_lines":[{"line_number":504,"context_line":""},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"However, putting all the resources in trees enables further weighing and"},{"line_number":507,"context_line":"filtering in the following use cases for example;"},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"As a user deploying an instance with VCPU, MEMORY_MB, and DISK_GB, I don\u0027t"},{"line_number":510,"context_line":"want to deploy this instance to hosts with VGPU or SRIOV_NET_VF to save the"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_cd4604c1","line":507,"range":{"start_line":507,"start_character":48,"end_line":507,"end_character":49},"updated":"2018-04-25 14:51:02.000000000","message":".","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"dbce65ddfa3a5765fd9901cedc9fef45f74eb64c","unresolved":false,"context_lines":[{"line_number":504,"context_line":""},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"However, putting all the resources in trees enables further weighing and"},{"line_number":507,"context_line":"filtering in the following use cases for example;"},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"As a user deploying an instance with VCPU, MEMORY_MB, and DISK_GB, I don\u0027t"},{"line_number":510,"context_line":"want to deploy this instance to hosts with VGPU or SRIOV_NET_VF to save the"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_af77df08","line":507,"range":{"start_line":507,"start_character":48,"end_line":507,"end_character":49},"in_reply_to":"9f6a8fd7_cd4604c1","updated":"2018-04-27 02:11:02.000000000","message":"Done","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b00a18595f49ff5341f823381f9a2c5399d6cc9","unresolved":false,"context_lines":[{"line_number":506,"context_line":"However, putting all the resources in trees enables further weighing and"},{"line_number":507,"context_line":"filtering in the following use cases for example;"},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"As a user deploying an instance with VCPU, MEMORY_MB, and DISK_GB, I don\u0027t"},{"line_number":510,"context_line":"want to deploy this instance to hosts with VGPU or SRIOV_NET_VF to save the"},{"line_number":511,"context_line":"resources for instances that need the devices."},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"Building the weighers or filters in nova is out of the scope of this spec,"},{"line_number":514,"context_line":"but it is good to prepare for these use cases in placement using this"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_0d2abcd9","line":511,"range":{"start_line":509,"start_character":0,"end_line":511,"end_character":46},"updated":"2018-04-25 14:51:02.000000000","message":"So like the PCIWeigher we have today, which can be configured to weigh hosts that have PCI slot inventory when scheduling an instance that isn\u0027t requesting PCI devices, correct?","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"dbce65ddfa3a5765fd9901cedc9fef45f74eb64c","unresolved":false,"context_lines":[{"line_number":506,"context_line":"However, putting all the resources in trees enables further weighing and"},{"line_number":507,"context_line":"filtering in the following use cases for example;"},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"As a user deploying an instance with VCPU, MEMORY_MB, and DISK_GB, I don\u0027t"},{"line_number":510,"context_line":"want to deploy this instance to hosts with VGPU or SRIOV_NET_VF to save the"},{"line_number":511,"context_line":"resources for instances that need the devices."},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"Building the weighers or filters in nova is out of the scope of this spec,"},{"line_number":514,"context_line":"but it is good to prepare for these use cases in placement using this"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_cf657347","line":511,"range":{"start_line":509,"start_character":0,"end_line":511,"end_character":46},"in_reply_to":"9f6a8fd7_0d2abcd9","updated":"2018-04-27 02:11:02.000000000","message":"Correct. And if I understand correctly, enabling more scheduling functionalities such like that is one of the purposes of placement service.","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b00a18595f49ff5341f823381f9a2c5399d6cc9","unresolved":false,"context_lines":[{"line_number":554,"context_line":"Performance Impact"},{"line_number":555,"context_line":"------------------"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"None"},{"line_number":558,"context_line":""},{"line_number":559,"context_line":"Other deployer impact"},{"line_number":560,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_6d6ed800","line":557,"updated":"2018-04-25 14:51:02.000000000","message":"Clearly there will be a performance impact to this change since it\u0027s going to be building much more data to send back to the client. How noticeable that will be, I don\u0027t know, it probably depends on the number of compute nodes in the deployment and how many of those have nested resource provider trees.","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"dbce65ddfa3a5765fd9901cedc9fef45f74eb64c","unresolved":false,"context_lines":[{"line_number":554,"context_line":"Performance Impact"},{"line_number":555,"context_line":"------------------"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"None"},{"line_number":558,"context_line":""},{"line_number":559,"context_line":"Other deployer impact"},{"line_number":560,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f6a8fd7_cf98131d","line":557,"in_reply_to":"9f6a8fd7_6d6ed800","updated":"2018-04-27 02:11:02.000000000","message":"Updated.","commit_id":"8222bb321ea325afd316209bb17e1f8b40f7c6d6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6199292dd1206cea498a3c83b57794542c558bb2","unresolved":false,"context_lines":[{"line_number":523,"context_line":"Performance Impact"},{"line_number":524,"context_line":"------------------"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"It\u0027s going to be slower to get evaluate allocation candidates since it\u0027s going"},{"line_number":527,"context_line":"to be building much more data to send back to the client."},{"line_number":528,"context_line":"There\u0027s just no way around this, so in implementation we should at least take"},{"line_number":529,"context_line":"care not to increase the numbers of SQL queries to enable this feature."}],"source_content_type":"text/x-rst","patch_set":10,"id":"9f6a8fd7_4e0db333","line":526,"range":{"start_line":526,"start_character":27,"end_line":526,"end_character":30},"updated":"2018-04-30 19:16:58.000000000","message":"s/get//","commit_id":"96e36b3f8e2277ce0750cfaa0c829ccb7205102c"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"98bb24cae6bb4f69eaf1a1d034d90859ecd6844b","unresolved":false,"context_lines":[{"line_number":171,"context_line":"0. Return all nested providers in tree"},{"line_number":172,"context_line":"--------------------------------------"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"At first, we need to change ``GET /allocation_candidates`` to include"},{"line_number":175,"context_line":"resource providers in ``provider_summaries`` that aren\u0027t in"},{"line_number":176,"context_line":"``allocation_requests`` when those other resource providers are in"},{"line_number":177,"context_line":"the same provider tree."},{"line_number":178,"context_line":"Also, we add new fields of ``root_provider_uuid`` and ``parent_provider_uuid``"},{"line_number":179,"context_line":"for each resource provider to expose the hierarchy."},{"line_number":180,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"3f79a3b5_2f9c325a","line":177,"range":{"start_line":174,"start_character":0,"end_line":177,"end_character":23},"updated":"2018-09-10 18:05:13.000000000","message":"I realize this is already approved, but do we really need to include *child* resource providers where the parent is the one that provides the requested resource?\n\nIn the example above, do we need to report the SRIOV resource provider if no SRIOV devices were requested?\n\nI see the reasoning further down that this could be useful when doing further filtering/weighing in nova.  Are we planning on using the data returned from placement in those filters/weighers?  (Because currently I think that data is retrieved again outside of placement.)","commit_id":"2d963dce21cd23117e53ff88c6d00b271b996462"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"59f694f9b8b0835d30a056ea3aebff03ea14a8c0","unresolved":false,"context_lines":[{"line_number":171,"context_line":"0. Return all nested providers in tree"},{"line_number":172,"context_line":"--------------------------------------"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"At first, we need to change ``GET /allocation_candidates`` to include"},{"line_number":175,"context_line":"resource providers in ``provider_summaries`` that aren\u0027t in"},{"line_number":176,"context_line":"``allocation_requests`` when those other resource providers are in"},{"line_number":177,"context_line":"the same provider tree."},{"line_number":178,"context_line":"Also, we add new fields of ``root_provider_uuid`` and ``parent_provider_uuid``"},{"line_number":179,"context_line":"for each resource provider to expose the hierarchy."},{"line_number":180,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"3f79a3b5_8010b3ad","line":177,"range":{"start_line":174,"start_character":0,"end_line":177,"end_character":23},"in_reply_to":"3f79a3b5_2f9c325a","updated":"2018-09-10 20:09:21.000000000","message":"Yes, that\u0027s precisely the idea. Some weighers want this information apparently.","commit_id":"2d963dce21cd23117e53ff88c6d00b271b996462"}]}
