)]}'
{"specs/rocky/approved/nested-resource-providers-allocation-candidates.rst":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"81036d410432803972e275960058c8a84d42f7bd","unresolved":false,"context_lines":[{"line_number":72,"context_line":"understands that when provider trees are present, that a resource may be"},{"line_number":73,"context_line":"provided by a child provider. When evaluating required traits, the placement"},{"line_number":74,"context_line":"service must ensure that traits are associated with the providers that are"},{"line_number":75,"context_line":"actually supplying the inventory to meet the allocation request."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Alternatives"},{"line_number":78,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf659307_066554e1","line":75,"updated":"2018-03-27 15:06:41.000000000","message":"Looks like it\u0027s just a specific implementation detail. Why do you think it requires a spec ?\nDo you expect to change the Placement API for that ?","commit_id":"1ad813799a84746942c8045f5a25649656fff1cb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0b7174653d8bb7668493b535b1ba58a53b109812","unresolved":false,"context_lines":[{"line_number":87,"context_line":"REST API impact"},{"line_number":88,"context_line":"---------------"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"None"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Security impact"},{"line_number":93,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf659307_e6970090","line":90,"updated":"2018-03-27 15:07:02.000000000","message":"There is a behavior change here right?","commit_id":"1ad813799a84746942c8045f5a25649656fff1cb"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5616e41835fc0fd8a685a0903c2a37c5d733a92a","unresolved":false,"context_lines":[{"line_number":87,"context_line":"REST API impact"},{"line_number":88,"context_line":"---------------"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"None"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Security impact"},{"line_number":93,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf659307_6660d0a6","line":90,"in_reply_to":"bf659307_e6970090","updated":"2018-03-27 15:09:31.000000000","message":"Per the IRC discussion, the consensus looks like it requires a microversion to signal the fact we now support nested RPs.","commit_id":"1ad813799a84746942c8045f5a25649656fff1cb"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"81036d410432803972e275960058c8a84d42f7bd","unresolved":false,"context_lines":[{"line_number":140,"context_line":"* Add a function to retrieve provider trees that meet a set of requested"},{"line_number":141,"context_line":"  resource amounts and required traits"},{"line_number":142,"context_line":"* Integrate the function into the ``AllocationCandidates.get_by_requests()``"},{"line_number":143,"context_line":"  method"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Dependencies"},{"line_number":146,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf659307_e6ae20e6","line":143,"updated":"2018-03-27 15:06:41.000000000","message":"I\u0027d also love to see a work item about the scheduler passing the compute node instead of the allocated RP to the filters.","commit_id":"1ad813799a84746942c8045f5a25649656fff1cb"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e960a65a9272e1d905638cd1d02940aa9c902130","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Problem description"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"With the `update_provider_tree`_ work, the resource tracker and virt drivers"},{"line_number":24,"context_line":"are now capable of constructing a tree of nested resource providers, each"},{"line_number":25,"context_line":"decorated with various traits and containing inventory records of various"},{"line_number":26,"context_line":"resource classes."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_6f0c203b","line":23,"range":{"start_line":23,"start_character":9,"end_line":23,"end_character":32},"updated":"2018-03-27 17:46:13.000000000","message":"this needs a target (that\u0027s your build failure)","commit_id":"340a5988cf494d648c0314280b90f6b67f36b314"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1d7d4ae140ab0cd5ac798be432480bd8fcc39bce","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Problem description"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"With the `update_provider_tree`_ work, the resource tracker and virt drivers"},{"line_number":24,"context_line":"are now capable of constructing a tree of nested resource providers, each"},{"line_number":25,"context_line":"decorated with various traits and containing inventory records of various"},{"line_number":26,"context_line":"resource classes."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_61f49ef1","line":23,"range":{"start_line":23,"start_character":9,"end_line":23,"end_character":32},"in_reply_to":"bf659307_6f0c203b","updated":"2018-04-04 03:18:57.000000000","message":"Done","commit_id":"340a5988cf494d648c0314280b90f6b67f36b314"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e960a65a9272e1d905638cd1d02940aa9c902130","unresolved":false,"context_lines":[{"line_number":30,"context_line":"used in calculating the set of allocation requests returned to nova scheduler"},{"line_number":31,"context_line":"during pre-filtering compute hosts."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"The placement service needs to evaluate a provider\u0027s location within a tree in"},{"line_number":34,"context_line":"determining whether a provider can supply the resources in a particular"},{"line_number":35,"context_line":"request."},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_4f7efc6b","line":33,"range":{"start_line":33,"start_character":53,"end_line":33,"end_character":75},"updated":"2018-03-27 17:46:13.000000000","message":"I first read \"location within a tree\" as \"position within a tree\" - which (I hope) isn\u0027t something we\u0027re going to be considering yet.  What I hope you meant was just \"the fact that it\u0027s part of a tree\".","commit_id":"340a5988cf494d648c0314280b90f6b67f36b314"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1d7d4ae140ab0cd5ac798be432480bd8fcc39bce","unresolved":false,"context_lines":[{"line_number":30,"context_line":"used in calculating the set of allocation requests returned to nova scheduler"},{"line_number":31,"context_line":"during pre-filtering compute hosts."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"The placement service needs to evaluate a provider\u0027s location within a tree in"},{"line_number":34,"context_line":"determining whether a provider can supply the resources in a particular"},{"line_number":35,"context_line":"request."},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_e1df4e63","line":33,"range":{"start_line":33,"start_character":53,"end_line":33,"end_character":75},"in_reply_to":"bf659307_4f7efc6b","updated":"2018-04-04 03:18:57.000000000","message":"Done","commit_id":"340a5988cf494d648c0314280b90f6b67f36b314"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e960a65a9272e1d905638cd1d02940aa9c902130","unresolved":false,"context_lines":[{"line_number":47,"context_line":"                           |              |"},{"line_number":48,"context_line":"                         PF 0           PF 1 -- HW_NIC_OFFLOAD_GRO"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"I we request 1 ``SRIOV_NET_VF`` resource, we would expect to get"},{"line_number":51,"context_line":"back 2 allocation requests, one for each PF that has inventory of VFs. However,"},{"line_number":52,"context_line":"currently, we will get 0 results back from ``GET /allocation_candidates``."},{"line_number":53,"context_line":"Similarly, if we request 1 ``SRIOV_NET_VF`` along with ``HW_NIC_OFFLOAD_GRO``"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_cf91ac9b","line":50,"range":{"start_line":50,"start_character":0,"end_line":50,"end_character":1},"updated":"2018-03-27 17:46:13.000000000","message":"If","commit_id":"340a5988cf494d648c0314280b90f6b67f36b314"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1d7d4ae140ab0cd5ac798be432480bd8fcc39bce","unresolved":false,"context_lines":[{"line_number":47,"context_line":"                           |              |"},{"line_number":48,"context_line":"                         PF 0           PF 1 -- HW_NIC_OFFLOAD_GRO"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"I we request 1 ``SRIOV_NET_VF`` resource, we would expect to get"},{"line_number":51,"context_line":"back 2 allocation requests, one for each PF that has inventory of VFs. However,"},{"line_number":52,"context_line":"currently, we will get 0 results back from ``GET /allocation_candidates``."},{"line_number":53,"context_line":"Similarly, if we request 1 ``SRIOV_NET_VF`` along with ``HW_NIC_OFFLOAD_GRO``"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_41cabaa0","line":50,"range":{"start_line":50,"start_character":0,"end_line":50,"end_character":1},"in_reply_to":"bf659307_cf91ac9b","updated":"2018-04-04 03:18:57.000000000","message":"Done","commit_id":"340a5988cf494d648c0314280b90f6b67f36b314"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e960a65a9272e1d905638cd1d02940aa9c902130","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"I we request 1 ``SRIOV_NET_VF`` resource, we would expect to get"},{"line_number":51,"context_line":"back 2 allocation requests, one for each PF that has inventory of VFs. However,"},{"line_number":52,"context_line":"currently, we will get 0 results back from ``GET /allocation_candidates``."},{"line_number":53,"context_line":"Similarly, if we request 1 ``SRIOV_NET_VF`` along with ``HW_NIC_OFFLOAD_GRO``"},{"line_number":54,"context_line":"as a required trait, we would expect to get back 1 allocation request"},{"line_number":55,"context_line":"containing the PF which has the required trait.  However, we currently get 0"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_8fd2d45b","line":52,"range":{"start_line":52,"start_character":11,"end_line":52,"end_character":37},"updated":"2018-03-27 17:46:13.000000000","message":"Even if the request was *just* for the VFs?  Perhaps to clarify and keep the focus on the problem we\u0027re actually dealing with, say that we\u0027re requesting VCPU as well as VF.  Then we can explain that we get back 0 results because there\u0027s no *single* provider that provides both.","commit_id":"340a5988cf494d648c0314280b90f6b67f36b314"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1d7d4ae140ab0cd5ac798be432480bd8fcc39bce","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"I we request 1 ``SRIOV_NET_VF`` resource, we would expect to get"},{"line_number":51,"context_line":"back 2 allocation requests, one for each PF that has inventory of VFs. However,"},{"line_number":52,"context_line":"currently, we will get 0 results back from ``GET /allocation_candidates``."},{"line_number":53,"context_line":"Similarly, if we request 1 ``SRIOV_NET_VF`` along with ``HW_NIC_OFFLOAD_GRO``"},{"line_number":54,"context_line":"as a required trait, we would expect to get back 1 allocation request"},{"line_number":55,"context_line":"containing the PF which has the required trait.  However, we currently get 0"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_21c3068b","line":52,"range":{"start_line":52,"start_character":11,"end_line":52,"end_character":37},"in_reply_to":"bf659307_8fd2d45b","updated":"2018-04-04 03:18:57.000000000","message":"ack, done.","commit_id":"340a5988cf494d648c0314280b90f6b67f36b314"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"fa7a8579ee786d2e6721818bc5895dd1a0605a69","unresolved":false,"context_lines":[{"line_number":55,"context_line":"containing the PF which has the required trait.  However, we currently get 0"},{"line_number":56,"context_line":"results since the calculation of allocation candidates is not \"nested aware\"."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"In addition, we need to adapt the placement service to return all providers in"},{"line_number":59,"context_line":"a particular provider tree that match the search criteria. This is so that"},{"line_number":60,"context_line":"callers -- like the filter scheduler in nova -- can use this hierarchy"},{"line_number":61,"context_line":"information in making further sorting or filtering decisions."},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_63e2de31","line":59,"range":{"start_line":58,"start_character":0,"end_line":59,"end_character":58},"updated":"2018-03-28 13:52:36.000000000","message":"Does \u0027all providers\u0027 mean that the request resources: {SRIOV_NET_VF: 1}, requires\u003d[HW_NIC_OFFLOAD] will result in the response with the RP summaries: \na) only PF 1\nb) compute node, NUMA NODE 1, PF1\nc) compute node, NUMA NODE 0, PF0 , NUMA NODE 1, PF1","commit_id":"340a5988cf494d648c0314280b90f6b67f36b314"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"fbbd9f69f6efe205f08c2bc530d50134c873a392","unresolved":false,"context_lines":[{"line_number":55,"context_line":"containing the PF which has the required trait.  However, we currently get 0"},{"line_number":56,"context_line":"results since the calculation of allocation candidates is not \"nested aware\"."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"In addition, we need to adapt the placement service to return all providers in"},{"line_number":59,"context_line":"a particular provider tree that match the search criteria. This is so that"},{"line_number":60,"context_line":"callers -- like the filter scheduler in nova -- can use this hierarchy"},{"line_number":61,"context_line":"information in making further sorting or filtering decisions."},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_90b5bd34","line":59,"range":{"start_line":58,"start_character":0,"end_line":59,"end_character":58},"in_reply_to":"bf659307_63e2de31","updated":"2018-03-30 13:46:06.000000000","message":"c","commit_id":"340a5988cf494d648c0314280b90f6b67f36b314"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e960a65a9272e1d905638cd1d02940aa9c902130","unresolved":false,"context_lines":[{"line_number":69,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Update the ``AllocationCandidates.get_by_requests()`` method so that it"},{"line_number":72,"context_line":"understands that when provider trees are present, that a resource may be"},{"line_number":73,"context_line":"provided by a child provider. When evaluating required traits, the placement"},{"line_number":74,"context_line":"service must ensure that traits are associated with the providers that are"},{"line_number":75,"context_line":"actually supplying the inventory to meet the allocation request."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_efba7008","line":72,"range":{"start_line":72,"start_character":50,"end_line":72,"end_character":54},"updated":"2018-03-27 17:46:13.000000000","message":"strike","commit_id":"340a5988cf494d648c0314280b90f6b67f36b314"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1d7d4ae140ab0cd5ac798be432480bd8fcc39bce","unresolved":false,"context_lines":[{"line_number":69,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Update the ``AllocationCandidates.get_by_requests()`` method so that it"},{"line_number":72,"context_line":"understands that when provider trees are present, that a resource may be"},{"line_number":73,"context_line":"provided by a child provider. When evaluating required traits, the placement"},{"line_number":74,"context_line":"service must ensure that traits are associated with the providers that are"},{"line_number":75,"context_line":"actually supplying the inventory to meet the allocation request."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_a10ab6ce","line":72,"range":{"start_line":72,"start_character":50,"end_line":72,"end_character":54},"in_reply_to":"bf659307_efba7008","updated":"2018-04-04 03:18:57.000000000","message":"Done","commit_id":"340a5988cf494d648c0314280b90f6b67f36b314"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"fa7a8579ee786d2e6721818bc5895dd1a0605a69","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Update the ``AllocationCandidates.get_by_requests()`` method so that it"},{"line_number":72,"context_line":"understands that when provider trees are present, that a resource may be"},{"line_number":73,"context_line":"provided by a child provider. When evaluating required traits, the placement"},{"line_number":74,"context_line":"service must ensure that traits are associated with the providers that are"},{"line_number":75,"context_line":"actually supplying the inventory to meet the allocation request."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Alternatives"},{"line_number":78,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_8374d269","line":75,"range":{"start_line":73,"start_character":63,"end_line":75,"end_character":32},"updated":"2018-03-28 13:52:36.000000000","message":"Does it mean that if NUMA NODE 1 has a trait but does not provide inventory then that trait will not match to any request? In other words adding traits to RPs that are not providing inventory is useless.","commit_id":"340a5988cf494d648c0314280b90f6b67f36b314"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"fbbd9f69f6efe205f08c2bc530d50134c873a392","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Update the ``AllocationCandidates.get_by_requests()`` method so that it"},{"line_number":72,"context_line":"understands that when provider trees are present, that a resource may be"},{"line_number":73,"context_line":"provided by a child provider. When evaluating required traits, the placement"},{"line_number":74,"context_line":"service must ensure that traits are associated with the providers that are"},{"line_number":75,"context_line":"actually supplying the inventory to meet the allocation request."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Alternatives"},{"line_number":78,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_f0951988","line":75,"range":{"start_line":73,"start_character":63,"end_line":75,"end_character":32},"in_reply_to":"bf659307_8374d269","updated":"2018-03-30 13:46:06.000000000","message":"\u003e Does it mean that if NUMA NODE 1 has a trait but does not provide\n \u003e inventory then that trait will not match to any request?\n\nCorrect\n\n \u003e In other\n \u003e words adding traits to RPs that are not providing inventory is\n \u003e useless.\n\nFor now, yes.  We\u0027ve discussed a future syntax that would allow me to say, \"Limit results to providers in a *subtree* whose common ancestor is marked with trait XXX,\" in which case that common ancestor need not be providing inventory.","commit_id":"340a5988cf494d648c0314280b90f6b67f36b314"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"75dee86dc57ccfe07c4001c8df93a266bcc461d7","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Update the ``AllocationCandidates.get_by_requests()`` method so that it"},{"line_number":72,"context_line":"understands that when provider trees are present, that a resource may be"},{"line_number":73,"context_line":"provided by a child provider. When evaluating required traits, the placement"},{"line_number":74,"context_line":"service must ensure that traits are associated with the providers that are"},{"line_number":75,"context_line":"actually supplying the inventory to meet the allocation request."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Alternatives"},{"line_number":78,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_96d49d49","line":75,"range":{"start_line":73,"start_character":63,"end_line":75,"end_character":32},"in_reply_to":"bf659307_f0951988","updated":"2018-04-03 19:01:43.000000000","message":"Based on tangentially listening in on some of the many NUMA-related discussions, it has sound like the \"parent has trait\" concept is pretty important. While putting that off to later is probably a good idea, if it means a significant difference in how the code will be structured, we might consider it now.","commit_id":"340a5988cf494d648c0314280b90f6b67f36b314"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e960a65a9272e1d905638cd1d02940aa9c902130","unresolved":false,"context_lines":[{"line_number":109,"context_line":"------------------"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"It\u0027s going to be slower to evaluate allocation candidates when provider trees"},{"line_number":112,"context_line":"are present. There\u0027s just no way around this."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Other deployer impact"},{"line_number":115,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_0f4b242b","line":112,"updated":"2018-03-27 17:46:13.000000000","message":"However, we have yet to see a setup where placement requests are coming close to bottlenecking performance, so the overall impact (wall clock time for e.g. a deploy) should be negligible.","commit_id":"340a5988cf494d648c0314280b90f6b67f36b314"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"6780053ad7b349b8f1b346b23ccf558f3446757c","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/nested-resource-providers-allocation-candidates"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Nested resource providers functionality was added to nova and placement in the"},{"line_number":14,"context_line":"Queens and Pike releases, however there remain a numer of pieces of"},{"line_number":15,"context_line":"functionality that need to be completed for the feature to be wholly useful."},{"line_number":16,"context_line":"One of these pieces is the full integration of nested resource providers in the"},{"line_number":17,"context_line":"allocation requests returned by the ``GET /allocation_candidates`` HTTP"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bf659307_bc1fc26e","line":14,"range":{"start_line":14,"start_character":49,"end_line":14,"end_character":54},"updated":"2018-04-10 09:01:34.000000000","message":"number?","commit_id":"2657b1cee8887b2f9bd317005a4496b324b4cb0f"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"aeb8e55b9a45ce2e105bbd01512d7dd81ca73cbc","unresolved":false,"context_lines":[{"line_number":39,"context_line":"Consider the following arrangement, with a compute node that has some VCPU and"},{"line_number":40,"context_line":"MEMORY_MB inventory as well as two SR-IOV physical functions with inventory of"},{"line_number":41,"context_line":"SR-IOV virtual functions. Only one of those physical functions is decorated"},{"line_number":42,"context_line":"with a trait representing different a type of offload::"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"                             compute node  -- VCPU: 16, MEMORY_MB: 16384"},{"line_number":45,"context_line":"                             /           \\"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f6a8fd7_2591b553","line":42,"range":{"start_line":42,"start_character":26,"end_line":42,"end_character":42},"updated":"2018-04-16 10:57:26.000000000","message":"a different type?","commit_id":"2657b1cee8887b2f9bd317005a4496b324b4cb0f"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"6780053ad7b349b8f1b346b23ccf558f3446757c","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                             compute node  -- VCPU: 16, MEMORY_MB: 16384"},{"line_number":45,"context_line":"                             /           \\"},{"line_number":46,"context_line":"                            /             \\"},{"line_number":47,"context_line":"                       NUMA NODE 0    NUMA NODE 1"},{"line_number":48,"context_line":"                           |              |"},{"line_number":49,"context_line":"                           |              |"},{"line_number":50,"context_line":"      SRIOV_NET_VF:4 --  PF 0           PF 1 -- SRIOV_NET_VF:4"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bf659307_b7035b42","line":47,"range":{"start_line":47,"start_character":23,"end_line":47,"end_character":49},"updated":"2018-04-10 09:01:34.000000000","message":"If we have NUMA_VCPU and NUMA_MEMORY in the RP of NUMA NODE 0, then when we request VCPU and NUMA_VCPU and PF, are we ensure they are in the same path?","commit_id":"2657b1cee8887b2f9bd317005a4496b324b4cb0f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"37f3e691a3c448f7716f0d5dc6152329d0b3d749","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                             compute node  -- VCPU: 16, MEMORY_MB: 16384"},{"line_number":45,"context_line":"                             /           \\"},{"line_number":46,"context_line":"                            /             \\"},{"line_number":47,"context_line":"                       NUMA NODE 0    NUMA NODE 1"},{"line_number":48,"context_line":"                           |              |"},{"line_number":49,"context_line":"                           |              |"},{"line_number":50,"context_line":"      SRIOV_NET_VF:4 --  PF 0           PF 1 -- SRIOV_NET_VF:4"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f6a8fd7_d612deb1","line":47,"range":{"start_line":47,"start_character":23,"end_line":47,"end_character":49},"in_reply_to":"9f6a8fd7_8a4c4e77","updated":"2018-04-16 22:29:17.000000000","message":"Common \"ancestor\".  It need not be a direct parent.","commit_id":"2657b1cee8887b2f9bd317005a4496b324b4cb0f"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"afe01aa1dd8f5dc5a48137b1f333fc338f169353","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                             compute node  -- VCPU: 16, MEMORY_MB: 16384"},{"line_number":45,"context_line":"                             /           \\"},{"line_number":46,"context_line":"                            /             \\"},{"line_number":47,"context_line":"                       NUMA NODE 0    NUMA NODE 1"},{"line_number":48,"context_line":"                           |              |"},{"line_number":49,"context_line":"                           |              |"},{"line_number":50,"context_line":"      SRIOV_NET_VF:4 --  PF 0           PF 1 -- SRIOV_NET_VF:4"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f6a8fd7_8a4c4e77","line":47,"range":{"start_line":47,"start_character":23,"end_line":47,"end_character":49},"in_reply_to":"9f6a8fd7_e3fe5dad","updated":"2018-04-16 09:50:52.000000000","message":"second think, I guess it isn\u0027t common \u0027subtree\u0027, it should be common \u0027parent\u0027","commit_id":"2657b1cee8887b2f9bd317005a4496b324b4cb0f"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"bf67a91f8c251612b13ba896ba9d707315b9f965","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                             compute node  -- VCPU: 16, MEMORY_MB: 16384"},{"line_number":45,"context_line":"                             /           \\"},{"line_number":46,"context_line":"                            /             \\"},{"line_number":47,"context_line":"                       NUMA NODE 0    NUMA NODE 1"},{"line_number":48,"context_line":"                           |              |"},{"line_number":49,"context_line":"                           |              |"},{"line_number":50,"context_line":"      SRIOV_NET_VF:4 --  PF 0           PF 1 -- SRIOV_NET_VF:4"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f6a8fd7_e3fe5dad","line":47,"range":{"start_line":47,"start_character":23,"end_line":47,"end_character":49},"in_reply_to":"bf659307_40f66dd9","updated":"2018-04-16 06:11:11.000000000","message":"thanks, got it, sounds like we have very simple semantic at here.","commit_id":"2657b1cee8887b2f9bd317005a4496b324b4cb0f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c2a9d254e236cc636a4da52307629bda1afa0848","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                             compute node  -- VCPU: 16, MEMORY_MB: 16384"},{"line_number":45,"context_line":"                             /           \\"},{"line_number":46,"context_line":"                            /             \\"},{"line_number":47,"context_line":"                       NUMA NODE 0    NUMA NODE 1"},{"line_number":48,"context_line":"                           |              |"},{"line_number":49,"context_line":"                           |              |"},{"line_number":50,"context_line":"      SRIOV_NET_VF:4 --  PF 0           PF 1 -- SRIOV_NET_VF:4"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bf659307_40f66dd9","line":47,"range":{"start_line":47,"start_character":23,"end_line":47,"end_character":49},"in_reply_to":"bf659307_b7035b42","updated":"2018-04-12 15:14:16.000000000","message":"Nope, that is not covered by this spec, or any spec we have proposed at this time.  In Dublin we discussed ideas for implementing a \"common subtree\" semantic, but nothing has been written down yet.","commit_id":"2657b1cee8887b2f9bd317005a4496b324b4cb0f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"1b3226e0434fd667c22204d8fd95cc1272a7f706","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                           |              |"},{"line_number":50,"context_line":"      SRIOV_NET_VF:4 --  PF 0           PF 1 -- SRIOV_NET_VF:4"},{"line_number":51,"context_line":"                                                HW_NIC_OFFLOAD_GRO"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"If we request 2 ``VCPU`` and 1 ``SRIOV_NET_VF`` resource, we would expect to"},{"line_number":54,"context_line":"get back 2 allocation requests, with each allocation request containing the"},{"line_number":55,"context_line":"compute node resource provider for the ``VCPU`` resources and one of the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f6a8fd7_fa21d34e","line":52,"updated":"2018-04-18 14:36:52.000000000","message":"Maybe we shouldn\u0027t provide a NUMA topology given we already have a specific spec about discussing how to use nested RPs for that, but meh.","commit_id":"2657b1cee8887b2f9bd317005a4496b324b4cb0f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a4ae63f9aae1204de7721820afdda3b834905fc6","unresolved":false,"context_lines":[{"line_number":62,"context_line":"required trait.  However, we currently get 0 results since the calculation of"},{"line_number":63,"context_line":"allocation candidates is not \"nested aware\"."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"In addition, we need to adapt the placement service to return all providers in"},{"line_number":66,"context_line":"a particular provider tree that match the search criteria. This is so that"},{"line_number":67,"context_line":"callers -- like the filter scheduler in nova -- can use this hierarchy"},{"line_number":68,"context_line":"information in making further sorting or filtering decisions."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Use Cases"},{"line_number":71,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f6a8fd7_70f63ffc","line":68,"range":{"start_line":65,"start_character":0,"end_line":68,"end_character":61},"updated":"2018-04-18 18:48:34.000000000","message":"a la https://review.openstack.org/#/c/559466/ right? So is this spec/blueprint/change going to also cover what is proposed in that spec, or are they going to be handled separately? Can they even be handled separately?","commit_id":"2657b1cee8887b2f9bd317005a4496b324b4cb0f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"754b4bb22b8d877ac445cdc021accdd6e9927d7c","unresolved":false,"context_lines":[{"line_number":62,"context_line":"required trait.  However, we currently get 0 results since the calculation of"},{"line_number":63,"context_line":"allocation candidates is not \"nested aware\"."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"In addition, we need to adapt the placement service to return all providers in"},{"line_number":66,"context_line":"a particular provider tree that match the search criteria. This is so that"},{"line_number":67,"context_line":"callers -- like the filter scheduler in nova -- can use this hierarchy"},{"line_number":68,"context_line":"information in making further sorting or filtering decisions."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Use Cases"},{"line_number":71,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f6a8fd7_339e9154","line":68,"range":{"start_line":65,"start_character":0,"end_line":68,"end_character":61},"in_reply_to":"9f6a8fd7_70f63ffc","updated":"2018-04-18 19:54:42.000000000","message":"Good point about the overlap.\n\nYes, they can (and arguably should) be handled separately, because 559466 theoretically also applies to non-nested scenarios (namely sharing-only allocation requests).\n\nEither way, the above paragraph should be changed to refer to the other spec as a dependency; it has a lot more detail on what the change will actually look like.","commit_id":"2657b1cee8887b2f9bd317005a4496b324b4cb0f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a4ae63f9aae1204de7721820afdda3b834905fc6","unresolved":false,"context_lines":[{"line_number":94,"context_line":"REST API impact"},{"line_number":95,"context_line":"---------------"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Introduce a new microversion to signal that provider trees are now properly"},{"line_number":98,"context_line":"handled in the return of ``GET /allocation_candidates``."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f6a8fd7_90d2f35b","line":97,"updated":"2018-04-18 18:48:34.000000000","message":"If this change is also superseding https://review.openstack.org/#/c/559466/ then it\u0027s more than just a signal, it\u0027s that the response will also change, right?","commit_id":"2657b1cee8887b2f9bd317005a4496b324b4cb0f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"754b4bb22b8d877ac445cdc021accdd6e9927d7c","unresolved":false,"context_lines":[{"line_number":94,"context_line":"REST API impact"},{"line_number":95,"context_line":"---------------"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Introduce a new microversion to signal that provider trees are now properly"},{"line_number":98,"context_line":"handled in the return of ``GET /allocation_candidates``."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f6a8fd7_d3c5d53d","line":97,"in_reply_to":"9f6a8fd7_90d2f35b","updated":"2018-04-18 19:54:42.000000000","message":"Technically the response changes regardless - from returning no results for tree-shaped hosts to returning results.","commit_id":"2657b1cee8887b2f9bd317005a4496b324b4cb0f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"1b3226e0434fd667c22204d8fd95cc1272a7f706","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Introduce a new microversion to signal that provider trees are now properly"},{"line_number":98,"context_line":"handled in the return of ``GET /allocation_candidates``."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Security impact"},{"line_number":101,"context_line":"---------------"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f6a8fd7_bac91b79","line":99,"updated":"2018-04-18 14:36:52.000000000","message":"Yup, this.","commit_id":"2657b1cee8887b2f9bd317005a4496b324b4cb0f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a4ae63f9aae1204de7721820afdda3b834905fc6","unresolved":false,"context_lines":[{"line_number":131,"context_line":"Upgrade impact"},{"line_number":132,"context_line":"--------------"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"None"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Implementation"},{"line_number":137,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f6a8fd7_d0bf0bf9","line":134,"updated":"2018-04-18 18:48:34.000000000","message":"nova-scheduler will require the newer version of placement for the new microversion unless we graceful version handling, but per https://review.openstack.org/#/c/556633/ we aren\u0027t doing that. We\u0027ll just need to remember to make the change in nova-status:\n\nhttps://github.com/openstack/nova/blob/324899c621ee02d877122ba3412712ebb92831f2/nova/cmd/status.py#L205","commit_id":"2657b1cee8887b2f9bd317005a4496b324b4cb0f"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"aeb8e55b9a45ce2e105bbd01512d7dd81ca73cbc","unresolved":false,"context_lines":[{"line_number":158,"context_line":"Testing"},{"line_number":159,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Lots of functional tests required for various levels of nesting"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Documentation Impact"},{"line_number":164,"context_line":"\u003d\u003d\u003d\u003d\u003d\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":"9f6a8fd7_e5c17d30","line":161,"updated":"2018-04-16 10:57:26.000000000","message":"lots is the correct technical term here","commit_id":"2657b1cee8887b2f9bd317005a4496b324b4cb0f"}]}
