)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"51fd26b07e73ed6519ee6e6e1d88301b16dd092e","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Placement: support mixing required traits with any traits"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The previous spec I57c5611d7443070c176d213118857261b37eca0c proposed"},{"line_number":10,"context_line":"to allow querying traits in the form of required\u003dany:TRAIT1,TRAIT2."},{"line_number":11,"context_line":"This spec goes one step forward and propose to allow repeating the"},{"line_number":12,"context_line":"required query parameter to support mixing both"},{"line_number":13,"context_line":"required\u003dTRAIT1,TRAIT2,!TRAIT3 and required\u003dany:TRAIT1,TRAIT2 format"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5f7c97a3_67a0ed92","line":10,"range":{"start_line":10,"start_character":49,"end_line":10,"end_character":52},"updated":"2018-06-05 17:40:20.000000000","message":"in","commit_id":"60bbdbb58fde3cde3528b86651a15cb5fea3eb57"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5bd69cc31d54362130708a830589eafe3fc5aed1","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Placement: support mixing required traits with any traits"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The previous spec I57c5611d7443070c176d213118857261b37eca0c proposed"},{"line_number":10,"context_line":"to allow querying traits in the form of required\u003dany:TRAIT1,TRAIT2."},{"line_number":11,"context_line":"This spec goes one step forward and propose to allow repeating the"},{"line_number":12,"context_line":"required query parameter to support mixing both"},{"line_number":13,"context_line":"required\u003dTRAIT1,TRAIT2,!TRAIT3 and required\u003dany:TRAIT1,TRAIT2 format"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3f79a3b5_19b58732","line":10,"range":{"start_line":10,"start_character":49,"end_line":10,"end_character":52},"in_reply_to":"5f7c97a3_67a0ed92","updated":"2018-08-22 16:03:40.000000000","message":"Done","commit_id":"60bbdbb58fde3cde3528b86651a15cb5fea3eb57"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"51fd26b07e73ed6519ee6e6e1d88301b16dd092e","unresolved":false,"context_lines":[{"line_number":10,"context_line":"to allow querying traits in the form of required\u003dany:TRAIT1,TRAIT2."},{"line_number":11,"context_line":"This spec goes one step forward and propose to allow repeating the"},{"line_number":12,"context_line":"required query parameter to support mixing both"},{"line_number":13,"context_line":"required\u003dTRAIT1,TRAIT2,!TRAIT3 and required\u003dany:TRAIT1,TRAIT2 format"},{"line_number":14,"context_line":"in a single query. This is needed for Neutron to be able to express"},{"line_number":15,"context_line":"that a port needs a resource provider having a specific vnic_type"},{"line_number":16,"context_line":"trait but also having one of the physnet traits the port\u0027s network maps"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5f7c97a3_879d0959","line":13,"range":{"start_line":13,"start_character":44,"end_line":13,"end_character":47},"updated":"2018-06-05 17:40:20.000000000","message":"in","commit_id":"60bbdbb58fde3cde3528b86651a15cb5fea3eb57"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5bd69cc31d54362130708a830589eafe3fc5aed1","unresolved":false,"context_lines":[{"line_number":10,"context_line":"to allow querying traits in the form of required\u003dany:TRAIT1,TRAIT2."},{"line_number":11,"context_line":"This spec goes one step forward and propose to allow repeating the"},{"line_number":12,"context_line":"required query parameter to support mixing both"},{"line_number":13,"context_line":"required\u003dTRAIT1,TRAIT2,!TRAIT3 and required\u003dany:TRAIT1,TRAIT2 format"},{"line_number":14,"context_line":"in a single query. This is needed for Neutron to be able to express"},{"line_number":15,"context_line":"that a port needs a resource provider having a specific vnic_type"},{"line_number":16,"context_line":"trait but also having one of the physnet traits the port\u0027s network maps"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3f79a3b5_39b2c34a","line":13,"range":{"start_line":13,"start_character":44,"end_line":13,"end_character":47},"in_reply_to":"5f7c97a3_879d0959","updated":"2018-08-22 16:03:40.000000000","message":"Done","commit_id":"60bbdbb58fde3cde3528b86651a15cb5fea3eb57"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"c55556e848b91677f2b4b7334706e233d61bc8c7","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Placement: support mixing required traits with any traits"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The previous spec I57c5611d7443070c176d213118857261b37eca0c proposed"},{"line_number":10,"context_line":"to allow querying traits in the form of required\u003dany:TRAIT1,TRAIT2."},{"line_number":11,"context_line":"This spec goes one step forward and propose to allow repeating the"},{"line_number":12,"context_line":"required query parameter to support mixing both"},{"line_number":13,"context_line":"required\u003dTRAIT1,TRAIT2,!TRAIT3 and required\u003dany:TRAIT1,TRAIT2 format"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3f79a3b5_9983e6a9","line":10,"range":{"start_line":10,"start_character":49,"end_line":10,"end_character":52},"updated":"2018-08-22 07:26:47.000000000","message":"in the previous spec and in the rst it is required\u003din:TRAIT1,TRAIT2","commit_id":"19a8f643b0371f6beba9c4bf274cc03e7878205a"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5bd69cc31d54362130708a830589eafe3fc5aed1","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Placement: support mixing required traits with any traits"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The previous spec I57c5611d7443070c176d213118857261b37eca0c proposed"},{"line_number":10,"context_line":"to allow querying traits in the form of required\u003dany:TRAIT1,TRAIT2."},{"line_number":11,"context_line":"This spec goes one step forward and propose to allow repeating the"},{"line_number":12,"context_line":"required query parameter to support mixing both"},{"line_number":13,"context_line":"required\u003dTRAIT1,TRAIT2,!TRAIT3 and required\u003dany:TRAIT1,TRAIT2 format"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3f79a3b5_f989ab74","line":10,"range":{"start_line":10,"start_character":49,"end_line":10,"end_character":52},"in_reply_to":"3f79a3b5_9983e6a9","updated":"2018-08-22 16:03:40.000000000","message":"Done","commit_id":"19a8f643b0371f6beba9c4bf274cc03e7878205a"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"c55556e848b91677f2b4b7334706e233d61bc8c7","unresolved":false,"context_lines":[{"line_number":10,"context_line":"to allow querying traits in the form of required\u003dany:TRAIT1,TRAIT2."},{"line_number":11,"context_line":"This spec goes one step forward and propose to allow repeating the"},{"line_number":12,"context_line":"required query parameter to support mixing both"},{"line_number":13,"context_line":"required\u003dTRAIT1,TRAIT2,!TRAIT3 and required\u003dany:TRAIT1,TRAIT2 format"},{"line_number":14,"context_line":"in a single query. This is needed for Neutron to be able to express"},{"line_number":15,"context_line":"that a port needs a resource provider having a specific vnic_type"},{"line_number":16,"context_line":"trait but also having one of the physnet traits the port\u0027s network maps"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3f79a3b5_9c0d1437","line":13,"range":{"start_line":13,"start_character":44,"end_line":13,"end_character":47},"updated":"2018-08-22 07:26:47.000000000","message":"The same as above","commit_id":"19a8f643b0371f6beba9c4bf274cc03e7878205a"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5bd69cc31d54362130708a830589eafe3fc5aed1","unresolved":false,"context_lines":[{"line_number":10,"context_line":"to allow querying traits in the form of required\u003dany:TRAIT1,TRAIT2."},{"line_number":11,"context_line":"This spec goes one step forward and propose to allow repeating the"},{"line_number":12,"context_line":"required query parameter to support mixing both"},{"line_number":13,"context_line":"required\u003dTRAIT1,TRAIT2,!TRAIT3 and required\u003dany:TRAIT1,TRAIT2 format"},{"line_number":14,"context_line":"in a single query. This is needed for Neutron to be able to express"},{"line_number":15,"context_line":"that a port needs a resource provider having a specific vnic_type"},{"line_number":16,"context_line":"trait but also having one of the physnet traits the port\u0027s network maps"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3f79a3b5_997af774","line":13,"range":{"start_line":13,"start_character":44,"end_line":13,"end_character":47},"in_reply_to":"3f79a3b5_9c0d1437","updated":"2018-08-22 16:03:40.000000000","message":"Done","commit_id":"19a8f643b0371f6beba9c4bf274cc03e7878205a"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ff577bde249a656fdc89e8eebdc9195b480bbab5","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The previous spec I57c5611d7443070c176d213118857261b37eca0c proposed"},{"line_number":10,"context_line":"to allow querying traits in the form of required\u003din:TRAIT1,TRAIT2."},{"line_number":11,"context_line":"This spec goes one step forward and propose to allow repeating the"},{"line_number":12,"context_line":"required query parameter to support mixing both"},{"line_number":13,"context_line":"required\u003dTRAIT1,TRAIT2,!TRAIT3 and required\u003din:TRAIT1,TRAIT2 format"},{"line_number":14,"context_line":"in a single query. This is needed for Neutron to be able to express"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3f79a3b5_50a01f92","line":11,"range":{"start_line":11,"start_character":36,"end_line":11,"end_character":43},"updated":"2018-08-29 12:27:41.000000000","message":"proposes","commit_id":"33937522f92ce8551a6ad4a26a477407d506f9e4"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ff577bde249a656fdc89e8eebdc9195b480bbab5","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The previous spec I57c5611d7443070c176d213118857261b37eca0c proposed"},{"line_number":10,"context_line":"to allow querying traits in the form of required\u003din:TRAIT1,TRAIT2."},{"line_number":11,"context_line":"This spec goes one step forward and propose to allow repeating the"},{"line_number":12,"context_line":"required query parameter to support mixing both"},{"line_number":13,"context_line":"required\u003dTRAIT1,TRAIT2,!TRAIT3 and required\u003din:TRAIT1,TRAIT2 format"},{"line_number":14,"context_line":"in a single query. This is needed for Neutron to be able to express"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3f79a3b5_d0ed0f8f","line":11,"range":{"start_line":11,"start_character":36,"end_line":11,"end_character":43},"updated":"2018-08-29 12:27:41.000000000","message":"proposes","commit_id":"c684c5f2b607e1619b650216054698efee38b401"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ff577bde249a656fdc89e8eebdc9195b480bbab5","unresolved":false,"context_lines":[{"line_number":13,"context_line":"required\u003dTRAIT1,TRAIT2,!TRAIT3 and required\u003din:TRAIT1,TRAIT2 format"},{"line_number":14,"context_line":"in a single query. This is needed for Neutron to be able to express"},{"line_number":15,"context_line":"that a port needs a resource provider having a specific vnic_type"},{"line_number":16,"context_line":"trait but also having one of the physnet traits the port\u0027s network maps"},{"line_number":17,"context_line":"to."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"bp mixing-required-traits-with-any-traits"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3f79a3b5_f065ab1e","line":16,"range":{"start_line":16,"start_character":33,"end_line":16,"end_character":47},"updated":"2018-08-29 12:27:41.000000000","message":"been a while, but I thought the plan was to map resource provider aggregates to a physnet and do a placement request filter on the Nova side instead of doing custom physnet traits...","commit_id":"c684c5f2b607e1619b650216054698efee38b401"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ff577bde249a656fdc89e8eebdc9195b480bbab5","unresolved":false,"context_lines":[{"line_number":12,"context_line":"required query parameter to support mixing both"},{"line_number":13,"context_line":"required\u003dTRAIT1,TRAIT2,!TRAIT3 and required\u003din:TRAIT1,TRAIT2 format"},{"line_number":14,"context_line":"in a single query. This is needed for Neutron to be able to express"},{"line_number":15,"context_line":"that a port needs a resource provider having a specific vnic_type"},{"line_number":16,"context_line":"trait but also having one of the physnet traits the port\u0027s network maps"},{"line_number":17,"context_line":"to."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"bp mixing-required-traits-with-any-traits"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3f79a3b5_30f80348","line":16,"range":{"start_line":15,"start_character":38,"end_line":16,"end_character":5},"updated":"2018-08-29 12:27:41.000000000","message":"yikes, we\u0027re back to discussing vnic_type traits, hmm? :)","commit_id":"c684c5f2b607e1619b650216054698efee38b401"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a405c63741e30326459c817cc908b249d06665d6","unresolved":false,"context_lines":[{"line_number":12,"context_line":"required query parameter to support mixing both"},{"line_number":13,"context_line":"required\u003dTRAIT1,TRAIT2,!TRAIT3 and required\u003din:TRAIT1,TRAIT2 format"},{"line_number":14,"context_line":"in a single query. This is needed for Neutron to be able to express"},{"line_number":15,"context_line":"that a port needs a resource provider having a specific vnic_type"},{"line_number":16,"context_line":"trait but also having one of the physnet traits the port\u0027s network maps"},{"line_number":17,"context_line":"to."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"bp mixing-required-traits-with-any-traits"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3f79a3b5_1286cb66","line":16,"range":{"start_line":15,"start_character":38,"end_line":16,"end_character":5},"in_reply_to":"3f79a3b5_30f80348","updated":"2018-09-03 13:32:06.000000000","message":"I think we never said that Neutron cannot report CUSTOM_VNIC_TYPE_DIRECT to placement. :) I think the meaning of this trait is to distinguish between networking technologies (e.g. fast and slow or hw virtualized or sw based.). If it is about the naming of the trait then sure Neutron can translate the vnic_type value that is set by the end user on the API to some other string as trait name neutron internally and towards placement API.","commit_id":"c684c5f2b607e1619b650216054698efee38b401"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a405c63741e30326459c817cc908b249d06665d6","unresolved":false,"context_lines":[{"line_number":13,"context_line":"required\u003dTRAIT1,TRAIT2,!TRAIT3 and required\u003din:TRAIT1,TRAIT2 format"},{"line_number":14,"context_line":"in a single query. This is needed for Neutron to be able to express"},{"line_number":15,"context_line":"that a port needs a resource provider having a specific vnic_type"},{"line_number":16,"context_line":"trait but also having one of the physnet traits the port\u0027s network maps"},{"line_number":17,"context_line":"to."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"bp mixing-required-traits-with-any-traits"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3f79a3b5_8f07181e","line":16,"range":{"start_line":16,"start_character":33,"end_line":16,"end_character":47},"in_reply_to":"3f79a3b5_f065ab1e","updated":"2018-09-03 13:32:06.000000000","message":"That could be a viable alternative that neither Bence (rubasov) who wrote the neutron spec nor I looked at closely enough. I guess we missed that it was a plan before we jumped on the bandwidth work.","commit_id":"c684c5f2b607e1619b650216054698efee38b401"}],"specs/rocky/approved/placement-mixing-required-traits-with-any-traits.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7edfca2864f07d5dab1de76c946f553733171650","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Support mixing required traits with any traits"},{"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/any-traits-in-allocation-candidates-query"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The `any-traits-in-allocation-candidates-query`_ spec proposed to allow"},{"line_number":14,"context_line":"querying traits in the form of ``required\u003dany:TRAIT1,TRAIT2``. This spec goes"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9f6a8fd7_1a62703f","line":11,"updated":"2018-05-02 13:09:12.000000000","message":"Are you doing two blueprints and this should be placement-mixing-required-traits-with-any-traits? Because the spec name is placement-mixing-required-traits-with-any-traits.","commit_id":"ffdf035ee569dc409e152b98227cd606f83e9f50"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"3d9500429b394b1046ce2e37313e5991391a18e8","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Support mixing required traits with any traits"},{"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/any-traits-in-allocation-candidates-query"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The `any-traits-in-allocation-candidates-query`_ spec proposed to allow"},{"line_number":14,"context_line":"querying traits in the form of ``required\u003dany:TRAIT1,TRAIT2``. This spec goes"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9f6a8fd7_3a1df472","line":11,"in_reply_to":"9f6a8fd7_1a62703f","updated":"2018-05-02 13:17:51.000000000","message":"I\u0027ve filed a separate bp for this spec.","commit_id":"ffdf035ee569dc409e152b98227cd606f83e9f50"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a2179b84b3da435cd6786ecd072aea00dcdc709c","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The `any-traits-in-allocation-candidates-query`_ spec proposed to allow"},{"line_number":14,"context_line":"querying traits in the form of ``required\u003din:TRAIT1,TRAIT2``. This spec goes"},{"line_number":15,"context_line":"one step forward and propose to allow repeating the ``required`` query"},{"line_number":16,"context_line":"parameter to support mixing both  ``required\u003dTRAIT1,TRAIT2,!TRAIT3`` and"},{"line_number":17,"context_line":"``required\u003din:TRAIT1,TRAIT2`` format in a single query. This is needed for"},{"line_number":18,"context_line":"Neutron to be able to express that a port needs a resource provider having"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_56eec9b4","line":15,"range":{"start_line":15,"start_character":9,"end_line":15,"end_character":16},"updated":"2018-06-05 15:43:15.000000000","message":"further","commit_id":"60bbdbb58fde3cde3528b86651a15cb5fea3eb57"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a2179b84b3da435cd6786ecd072aea00dcdc709c","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The `any-traits-in-allocation-candidates-query`_ spec proposed to allow"},{"line_number":14,"context_line":"querying traits in the form of ``required\u003din:TRAIT1,TRAIT2``. This spec goes"},{"line_number":15,"context_line":"one step forward and propose to allow repeating the ``required`` query"},{"line_number":16,"context_line":"parameter to support mixing both  ``required\u003dTRAIT1,TRAIT2,!TRAIT3`` and"},{"line_number":17,"context_line":"``required\u003din:TRAIT1,TRAIT2`` format in a single query. This is needed for"},{"line_number":18,"context_line":"Neutron to be able to express that a port needs a resource provider having"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_b632bd5d","line":15,"range":{"start_line":15,"start_character":21,"end_line":15,"end_character":28},"updated":"2018-06-05 15:43:15.000000000","message":"proposes","commit_id":"60bbdbb58fde3cde3528b86651a15cb5fea3eb57"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f112863da184487b3ea7d31b943883dd41f36b57","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The `any-traits-in-allocation-candidates-query`_ spec proposed to allow"},{"line_number":14,"context_line":"querying traits in the form of ``required\u003din:TRAIT1,TRAIT2``. This spec goes"},{"line_number":15,"context_line":"one step forward and propose to allow repeating the ``required`` query"},{"line_number":16,"context_line":"parameter to support mixing both  ``required\u003dTRAIT1,TRAIT2,!TRAIT3`` and"},{"line_number":17,"context_line":"``required\u003din:TRAIT1,TRAIT2`` format in a single query. This is needed for"},{"line_number":18,"context_line":"Neutron to be able to express that a port needs a resource provider having"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_8d58e4fa","line":15,"range":{"start_line":15,"start_character":9,"end_line":15,"end_character":16},"in_reply_to":"5f7c97a3_56eec9b4","updated":"2018-08-17 09:26:03.000000000","message":"Done","commit_id":"60bbdbb58fde3cde3528b86651a15cb5fea3eb57"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f112863da184487b3ea7d31b943883dd41f36b57","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The `any-traits-in-allocation-candidates-query`_ spec proposed to allow"},{"line_number":14,"context_line":"querying traits in the form of ``required\u003din:TRAIT1,TRAIT2``. This spec goes"},{"line_number":15,"context_line":"one step forward and propose to allow repeating the ``required`` query"},{"line_number":16,"context_line":"parameter to support mixing both  ``required\u003dTRAIT1,TRAIT2,!TRAIT3`` and"},{"line_number":17,"context_line":"``required\u003din:TRAIT1,TRAIT2`` format in a single query. This is needed for"},{"line_number":18,"context_line":"Neutron to be able to express that a port needs a resource provider having"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_ad5da0ea","line":15,"range":{"start_line":15,"start_character":21,"end_line":15,"end_character":28},"in_reply_to":"5f7c97a3_b632bd5d","updated":"2018-08-17 09:26:03.000000000","message":"Done","commit_id":"60bbdbb58fde3cde3528b86651a15cb5fea3eb57"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a2179b84b3da435cd6786ecd072aea00dcdc709c","unresolved":false,"context_lines":[{"line_number":16,"context_line":"parameter to support mixing both  ``required\u003dTRAIT1,TRAIT2,!TRAIT3`` and"},{"line_number":17,"context_line":"``required\u003din:TRAIT1,TRAIT2`` format in a single query. This is needed for"},{"line_number":18,"context_line":"Neutron to be able to express that a port needs a resource provider having"},{"line_number":19,"context_line":"a specific vnic_type trait but also having one of the physnet traits the port\u0027s"},{"line_number":20,"context_line":"network maps to."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_1617f1a5","line":19,"range":{"start_line":19,"start_character":11,"end_line":19,"end_character":20},"updated":"2018-06-05 15:43:15.000000000","message":"``literal``","commit_id":"60bbdbb58fde3cde3528b86651a15cb5fea3eb57"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f112863da184487b3ea7d31b943883dd41f36b57","unresolved":false,"context_lines":[{"line_number":16,"context_line":"parameter to support mixing both  ``required\u003dTRAIT1,TRAIT2,!TRAIT3`` and"},{"line_number":17,"context_line":"``required\u003din:TRAIT1,TRAIT2`` format in a single query. This is needed for"},{"line_number":18,"context_line":"Neutron to be able to express that a port needs a resource provider having"},{"line_number":19,"context_line":"a specific vnic_type trait but also having one of the physnet traits the port\u0027s"},{"line_number":20,"context_line":"network maps to."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_2d69908a","line":19,"range":{"start_line":19,"start_character":11,"end_line":19,"end_character":20},"in_reply_to":"5f7c97a3_1617f1a5","updated":"2018-08-17 09:26:03.000000000","message":"Done","commit_id":"60bbdbb58fde3cde3528b86651a15cb5fea3eb57"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a2179b84b3da435cd6786ecd072aea00dcdc709c","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Neutron to be able to express that a port needs a resource provider having"},{"line_number":19,"context_line":"a specific vnic_type trait but also having one of the physnet traits the port\u0027s"},{"line_number":20,"context_line":"network maps to."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Problem description"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_564329b0","line":21,"updated":"2018-06-05 15:43:15.000000000","message":"An example in it\u0027s own (code)block here would be easier to read than the inline examples above","commit_id":"60bbdbb58fde3cde3528b86651a15cb5fea3eb57"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f112863da184487b3ea7d31b943883dd41f36b57","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Neutron to be able to express that a port needs a resource provider having"},{"line_number":19,"context_line":"a specific vnic_type trait but also having one of the physnet traits the port\u0027s"},{"line_number":20,"context_line":"network maps to."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Problem description"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_4d7c0c20","line":21,"in_reply_to":"5f7c97a3_564329b0","updated":"2018-08-17 09:26:03.000000000","message":"Done","commit_id":"60bbdbb58fde3cde3528b86651a15cb5fea3eb57"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"25976bbd388a5833746dd834f4afa7eaa7caa35a","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"The response body of the ``GET /allocation_candidates`` and"},{"line_number":81,"context_line":"``GET /resource_providers`` query are unchanged."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Security impact"},{"line_number":85,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_fe859ead","line":82,"updated":"2018-05-16 14:32:21.000000000","message":"To tetsuro\u0027s point at [1], just so I\u0027m clear:\n\n ?required\u003din:A,B,C\n \u0026required\u003dX\n \u0026required\u003dY\n \u0026required\u003dZ\n\nwould produce the exact same result as:\n\n ?required\u003din:A,B,C\n \u0026required\u003dX,Y,Z\n\nright?\n\n[1] https://review.openstack.org/#/c/565730/2/specs/rocky/approved/placement-any-traits-in-allocation_candidates-query.rst@52","commit_id":"60bbdbb58fde3cde3528b86651a15cb5fea3eb57"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f112863da184487b3ea7d31b943883dd41f36b57","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"The response body of the ``GET /allocation_candidates`` and"},{"line_number":81,"context_line":"``GET /resource_providers`` query are unchanged."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Security impact"},{"line_number":85,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_0d47f4be","line":82,"in_reply_to":"5f7c97a3_fe859ead","updated":"2018-08-17 09:26:03.000000000","message":"Yes, it does.\na repeated required key can be used to express AND and a required\u003din: key can be used to express OR relationship between TRAITs.","commit_id":"60bbdbb58fde3cde3528b86651a15cb5fea3eb57"}],"specs/stein/approved/placement-mixing-required-traits-with-any-traits.rst":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2a16f55a6f369837c80a359c744684a71e0623c8","unresolved":false,"context_lines":[{"line_number":25,"context_line":"                             required1\u003din:CUSTOM_PHYSNET_FOO,CUSTOM_PHYSNET_BAR"},{"line_number":26,"context_line":"                             ..."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"requests an networking device RP in the candidates that supports the ``direct``"},{"line_number":29,"context_line":"``vnic_type`` and connected either to ``physnet_foo`` or ``physnet_bar`` or"},{"line_number":30,"context_line":"both."},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_9d8a9c61","line":28,"range":{"start_line":28,"start_character":9,"end_line":28,"end_character":11},"updated":"2018-08-24 22:25:13.000000000","message":"a","commit_id":"33937522f92ce8551a6ad4a26a477407d506f9e4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"0918d8ff7fa064d589b4d0cc8e880510a951976d","unresolved":false,"context_lines":[{"line_number":25,"context_line":"                             required1\u003din:CUSTOM_PHYSNET_FOO,CUSTOM_PHYSNET_BAR"},{"line_number":26,"context_line":"                             ..."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"requests an networking device RP in the candidates that supports the ``direct``"},{"line_number":29,"context_line":"``vnic_type`` and connected either to ``physnet_foo`` or ``physnet_bar`` or"},{"line_number":30,"context_line":"both."},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_adce00b2","line":28,"range":{"start_line":28,"start_character":9,"end_line":28,"end_character":11},"in_reply_to":"3f79a3b5_9d8a9c61","updated":"2018-08-29 10:47:08.000000000","message":"Done","commit_id":"33937522f92ce8551a6ad4a26a477407d506f9e4"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2a16f55a6f369837c80a359c744684a71e0623c8","unresolved":false,"context_lines":[{"line_number":26,"context_line":"                             ..."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"requests an networking device RP in the candidates that supports the ``direct``"},{"line_number":29,"context_line":"``vnic_type`` and connected either to ``physnet_foo`` or ``physnet_bar`` or"},{"line_number":30,"context_line":"both."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_5dee4422","line":29,"range":{"start_line":29,"start_character":18,"end_line":29,"end_character":27},"updated":"2018-08-24 22:25:13.000000000","message":"is connected","commit_id":"33937522f92ce8551a6ad4a26a477407d506f9e4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"0918d8ff7fa064d589b4d0cc8e880510a951976d","unresolved":false,"context_lines":[{"line_number":26,"context_line":"                             ..."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"requests an networking device RP in the candidates that supports the ``direct``"},{"line_number":29,"context_line":"``vnic_type`` and connected either to ``physnet_foo`` or ``physnet_bar`` or"},{"line_number":30,"context_line":"both."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_4d488c2d","line":29,"range":{"start_line":29,"start_character":18,"end_line":29,"end_character":27},"in_reply_to":"3f79a3b5_5dee4422","updated":"2018-08-29 10:47:08.000000000","message":"Done","commit_id":"33937522f92ce8551a6ad4a26a477407d506f9e4"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2a16f55a6f369837c80a359c744684a71e0623c8","unresolved":false,"context_lines":[{"line_number":90,"context_line":"The response body of the ``GET /allocation_candidates`` and"},{"line_number":91,"context_line":"``GET /resource_providers`` query are unchanged."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Note the the above two queries express exactly the same requirements::"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"  ?required\u003din:A,B,C"},{"line_number":96,"context_line":"  \u0026required\u003dX"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_1df44cf0","line":93,"range":{"start_line":93,"start_character":13,"end_line":93,"end_character":18},"updated":"2018-08-24 22:25:13.000000000","message":"following?","commit_id":"33937522f92ce8551a6ad4a26a477407d506f9e4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"0918d8ff7fa064d589b4d0cc8e880510a951976d","unresolved":false,"context_lines":[{"line_number":90,"context_line":"The response body of the ``GET /allocation_candidates`` and"},{"line_number":91,"context_line":"``GET /resource_providers`` query are unchanged."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Note the the above two queries express exactly the same requirements::"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"  ?required\u003din:A,B,C"},{"line_number":96,"context_line":"  \u0026required\u003dX"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_6d454815","line":93,"range":{"start_line":93,"start_character":13,"end_line":93,"end_character":18},"in_reply_to":"3f79a3b5_1df44cf0","updated":"2018-08-29 10:47:08.000000000","message":"Done","commit_id":"33937522f92ce8551a6ad4a26a477407d506f9e4"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ff577bde249a656fdc89e8eebdc9195b480bbab5","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"For example::"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"  GET /allocation_candidates?required1\u003dCUSTOM_VNIC_TYPE_DIRECT\u0026"},{"line_number":25,"context_line":"                             required1\u003din:CUSTOM_PHYSNET_FOO,CUSTOM_PHYSNET_BAR"},{"line_number":26,"context_line":"                             ..."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"requests a networking device RP in the candidates that supports the ``direct``"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f79a3b5_10570729","line":25,"range":{"start_line":24,"start_character":2,"end_line":25,"end_character":79},"updated":"2018-08-29 12:27:41.000000000","message":"unless I\u0027m mistaken, isn\u0027t this use kind of backwards? Wouldn\u0027t it be more common that the port is required to be attached to a *single* physical network (or even multiple physical networks but not \"one of many\" physical networks) and that the host supports *either* DIRECT NIC attachments *or* it supports virtio NIC attachments?","commit_id":"c684c5f2b607e1619b650216054698efee38b401"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a405c63741e30326459c817cc908b249d06665d6","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"For example::"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"  GET /allocation_candidates?required1\u003dCUSTOM_VNIC_TYPE_DIRECT\u0026"},{"line_number":25,"context_line":"                             required1\u003din:CUSTOM_PHYSNET_FOO,CUSTOM_PHYSNET_BAR"},{"line_number":26,"context_line":"                             ..."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"requests a networking device RP in the candidates that supports the ``direct``"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f79a3b5_72493f30","line":25,"range":{"start_line":24,"start_character":2,"end_line":25,"end_character":79},"in_reply_to":"3f79a3b5_10570729","updated":"2018-09-03 13:32:06.000000000","message":"There are multisegment networks where two segments of the network can be mapped to two different physnet name depending on how the host is connected to that network.\n\nIn this example the CUSTOM_VNIC_TYPE_DIRECT is just there for completeness from Neutron perspective but not a mandatory piece to build this spec.\n\nI guess it is even possible that the two segments having different physnet names also support different VNIC_TYPEs but to validate  that I would need Bence or Sean as at this point I\u0027m lost in Neutron. :)","commit_id":"c684c5f2b607e1619b650216054698efee38b401"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0bb3e8d0338d780be34c22f1a408fe527f8098b2","unresolved":false,"context_lines":[{"line_number":114,"context_line":"---------------------"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"The osc-placement client plugin needs to be updated to support the new"},{"line_number":117,"context_line":"Placement API microversion. This means the the CLI should support providing"},{"line_number":118,"context_line":"the ``--required`` parameter more than once supporting both normal and any"},{"line_number":119,"context_line":"trait syntax."},{"line_number":120,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f79a3b5_8dee8beb","line":117,"range":{"start_line":117,"start_character":39,"end_line":117,"end_character":46},"updated":"2018-08-30 06:43:06.000000000","message":"nit: one less the","commit_id":"c684c5f2b607e1619b650216054698efee38b401"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"36f1807d133c864852b2797f8b67e57e7d8b0965","unresolved":false,"context_lines":[{"line_number":153,"context_line":"* Extend the resource provider and allocation candidate DB query to support"},{"line_number":154,"context_line":"  more than one set of required traits"},{"line_number":155,"context_line":"* Extend the Placement REST API with a new microversion that supports repeating"},{"line_number":156,"context_line":"  the ``required`` query param"},{"line_number":157,"context_line":"* Extend the osc-placement client plugin to support the new microversion"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f79a3b5_f0c6f249","line":156,"updated":"2018-08-30 07:02:38.000000000","message":"Speaking about multiple `member_of` query, in Rocky, as long as I can catch, we had supported the feature with the code raising 400 BadRequest for the multiple `member_of` query in *old* microversion [1]. But wait, afterthougt, wasn\u0027t that an API behavior change which could be sensitive?\n\n[1] https://github.com/openstack/nova/blob/eb4f6980f7ca0e0dc2bd5e6d87c115d718f16172/nova/api/openstack/placement/util.py#L374\n\nWhatever. I\u0027d like to see what this feature brings to the existing old microversion in this spec explicitly, to raise HTTPBadRequest or to preserve the current behavior that the second required query overwrites the first one?","commit_id":"c684c5f2b607e1619b650216054698efee38b401"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5fbd357ceccc98f5775373105383007b804abecb","unresolved":false,"context_lines":[{"line_number":153,"context_line":"* Extend the resource provider and allocation candidate DB query to support"},{"line_number":154,"context_line":"  more than one set of required traits"},{"line_number":155,"context_line":"* Extend the Placement REST API with a new microversion that supports repeating"},{"line_number":156,"context_line":"  the ``required`` query param"},{"line_number":157,"context_line":"* Extend the osc-placement client plugin to support the new microversion"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f79a3b5_ed26d4ba","line":156,"in_reply_to":"3f79a3b5_6f75dccb","updated":"2018-09-03 14:18:14.000000000","message":"Yes, as Balazs said, we should keep the old microversion behavior instact. It more sounds like the microversion 1.24 change the old version APi behavior, that should be a bug we can discuss separately.","commit_id":"c684c5f2b607e1619b650216054698efee38b401"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"66509166c19d2b809316e0f36a62b87f38a91711","unresolved":false,"context_lines":[{"line_number":153,"context_line":"* Extend the resource provider and allocation candidate DB query to support"},{"line_number":154,"context_line":"  more than one set of required traits"},{"line_number":155,"context_line":"* Extend the Placement REST API with a new microversion that supports repeating"},{"line_number":156,"context_line":"  the ``required`` query param"},{"line_number":157,"context_line":"* Extend the osc-placement client plugin to support the new microversion"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f79a3b5_69c58a5b","line":156,"in_reply_to":"3f79a3b5_ed26d4ba","updated":"2018-09-19 18:39:19.000000000","message":"I tried and failed to find the discussion around making multiple member_of params a failure in older microversions; but we should follow the same principle here. The previous behavior should be considered a bug that we fix by adding validation to the older microversions. That said, it may be prudent to add that validation in its own patch so we can debate it independently, and revert it later if somebody screams.","commit_id":"c684c5f2b607e1619b650216054698efee38b401"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"83f9d04c116b8b3243c17f845957c5f131a21640","unresolved":false,"context_lines":[{"line_number":153,"context_line":"* Extend the resource provider and allocation candidate DB query to support"},{"line_number":154,"context_line":"  more than one set of required traits"},{"line_number":155,"context_line":"* Extend the Placement REST API with a new microversion that supports repeating"},{"line_number":156,"context_line":"  the ``required`` query param"},{"line_number":157,"context_line":"* Extend the osc-placement client plugin to support the new microversion"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f79a3b5_6f75dccb","line":156,"in_reply_to":"3f79a3b5_f0c6f249","updated":"2018-09-03 13:16:57.000000000","message":"Your request totally make sense. Honestly I don\u0027t have hard opinion which way we should go. \n\nI\u0027d like to keep the old microversion behavior intact but that would make the API behavior inconsistent between member_of and required.","commit_id":"c684c5f2b607e1619b650216054698efee38b401"}]}
