)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a78b10aa935eb4fabbde6f46c6edbe19cbba7056","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"The reasoning behind this change: If more than one numbered request"},{"line_number":19,"context_line":"group is coming from the flavor extra_spec then the creator of the"},{"line_number":20,"context_line":"falvor is responsible to add a group_policy to the falvor. So in this"},{"line_number":21,"context_line":"nova only warns but let the request fail in placement to force the"},{"line_number":22,"context_line":"fixing of the flavor. However when numbered groups are coming from"},{"line_number":23,"context_line":"other sources (like neutron ports) then the creator of the flavor"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"dfbec78f_0f665bc2","line":20,"range":{"start_line":20,"start_character":51,"end_line":20,"end_character":57},"updated":"2019-05-16 22:13:46.000000000","message":"flavor","commit_id":"ab36638a3b2f5d04bc1cd18650b0e61951da5557"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a78b10aa935eb4fabbde6f46c6edbe19cbba7056","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"The reasoning behind this change: If more than one numbered request"},{"line_number":19,"context_line":"group is coming from the flavor extra_spec then the creator of the"},{"line_number":20,"context_line":"falvor is responsible to add a group_policy to the falvor. So in this"},{"line_number":21,"context_line":"nova only warns but let the request fail in placement to force the"},{"line_number":22,"context_line":"fixing of the flavor. However when numbered groups are coming from"},{"line_number":23,"context_line":"other sources (like neutron ports) then the creator of the flavor"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"dfbec78f_ef62e7ad","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":6},"updated":"2019-05-16 22:13:46.000000000","message":"flavor","commit_id":"ab36638a3b2f5d04bc1cd18650b0e61951da5557"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4413d0434630ff75cb31782ae78e5f94c0037361","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"The reasoning behind this change: If more than one numbered request"},{"line_number":19,"context_line":"group is coming from the flavor extra_spec then the creator of the"},{"line_number":20,"context_line":"falvor is responsible to add a group_policy to the falvor. So in this"},{"line_number":21,"context_line":"nova only warns but let the request fail in placement to force the"},{"line_number":22,"context_line":"fixing of the flavor. However when numbered groups are coming from"},{"line_number":23,"context_line":"other sources (like neutron ports) then the creator of the flavor"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"bfb3d3c7_6abffeaf","line":20,"range":{"start_line":20,"start_character":51,"end_line":20,"end_character":57},"in_reply_to":"dfbec78f_0f665bc2","updated":"2019-05-27 08:13:31.000000000","message":"Done","commit_id":"ab36638a3b2f5d04bc1cd18650b0e61951da5557"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4413d0434630ff75cb31782ae78e5f94c0037361","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"The reasoning behind this change: If more than one numbered request"},{"line_number":19,"context_line":"group is coming from the flavor extra_spec then the creator of the"},{"line_number":20,"context_line":"falvor is responsible to add a group_policy to the falvor. So in this"},{"line_number":21,"context_line":"nova only warns but let the request fail in placement to force the"},{"line_number":22,"context_line":"fixing of the flavor. However when numbered groups are coming from"},{"line_number":23,"context_line":"other sources (like neutron ports) then the creator of the flavor"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"bfb3d3c7_0ab0c2dc","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":6},"in_reply_to":"dfbec78f_ef62e7ad","updated":"2019-05-27 08:13:31.000000000","message":"Done","commit_id":"ab36638a3b2f5d04bc1cd18650b0e61951da5557"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a78b10aa935eb4fabbde6f46c6edbe19cbba7056","unresolved":false,"context_lines":[{"line_number":22,"context_line":"fixing of the flavor. However when numbered groups are coming from"},{"line_number":23,"context_line":"other sources (like neutron ports) then the creator of the flavor"},{"line_number":24,"context_line":"cannot know if additional group will be included so we don\u0027t want to"},{"line_number":25,"context_line":"force the flavor creator but simply default the group_policy."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"[1] http://lists.openstack.org/pipermail/openstack-discuss/2019-May/005807.html"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"dfbec78f_6f76f772","line":25,"updated":"2019-05-16 22:13:46.000000000","message":"++","commit_id":"ab36638a3b2f5d04bc1cd18650b0e61951da5557"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"2ecd05d123417dc55739fb197a9b0e76ab400a52","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Defaults missing group_policy to \u0027none\u0027"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If more that one numbered request group is in the placement a_c query"},{"line_number":10,"context_line":"then the group_policy is mandatory. Based on the PTG discussion [1]"},{"line_number":11,"context_line":"\u0027none\u0027 seems to be a good default policy from nova perspective. So this"},{"line_number":12,"context_line":"patch makes sure that if the group_policy is not provided in the flavor"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9fb8cfa7_34ce592e","line":9,"range":{"start_line":9,"start_character":17,"end_line":9,"end_character":25},"updated":"2019-06-10 10:40:14.000000000","message":"Is it worth changing this to \"suffixed\" throughout comments and code since we\u0027re in that world now with placement 1.33: https://docs.openstack.org/placement/latest/placement-api-microversion-history.html#support-string-request-group-suffixes\n\nI don\u0027t think we should block on it, but maybe something to be aware of for soonish.","commit_id":"bfe50ce7c829e293bad4f34d88eafa762a8b1f28"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"8c6013118f16e83dca0497d2857bbae0c4cdeb16","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Defaults missing group_policy to \u0027none\u0027"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If more that one numbered request group is in the placement a_c query"},{"line_number":10,"context_line":"then the group_policy is mandatory. Based on the PTG discussion [1]"},{"line_number":11,"context_line":"\u0027none\u0027 seems to be a good default policy from nova perspective. So this"},{"line_number":12,"context_line":"patch makes sure that if the group_policy is not provided in the flavor"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9fb8cfa7_f2b3ec08","line":9,"range":{"start_line":9,"start_character":17,"end_line":9,"end_character":25},"in_reply_to":"9fb8cfa7_34ce592e","updated":"2019-06-10 16:24:26.000000000","message":"Probably not worth doing until we\u0027re actually using 1.33+ in nova. But yes, soon.","commit_id":"bfe50ce7c829e293bad4f34d88eafa762a8b1f28"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"2ecd05d123417dc55739fb197a9b0e76ab400a52","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"The reasoning behind this change: If more than one numbered request"},{"line_number":19,"context_line":"group is coming from the flavor extra_spec then the creator of the"},{"line_number":20,"context_line":"flavor is responsible to add a group_policy to the flavor. So in this"},{"line_number":21,"context_line":"nova only warns but let the request fail in placement to force the"},{"line_number":22,"context_line":"fixing of the flavor. However when numbered groups are coming from"},{"line_number":23,"context_line":"other sources (like neutron ports) then the creator of the flavor"},{"line_number":24,"context_line":"cannot know if additional group will be included so we don\u0027t want to"},{"line_number":25,"context_line":"force the flavor creator but simply default the group_policy."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9fb8cfa7_54e2eda1","line":22,"range":{"start_line":20,"start_character":59,"end_line":22,"end_character":20},"updated":"2019-06-10 10:40:14.000000000","message":"Good, thank you!","commit_id":"bfe50ce7c829e293bad4f34d88eafa762a8b1f28"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"019de4af0e7b29d9b41b0c2d713f0f6aadb002ee","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Defaults missing group_policy to \u0027none\u0027"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If more that one numbered request group is in the placement a_c query"},{"line_number":10,"context_line":"then the group_policy is mandatory. Based on the PTG discussion [1]"},{"line_number":11,"context_line":"\u0027none\u0027 seems to be a good default policy from nova perspective. So this"},{"line_number":12,"context_line":"patch makes sure that if the group_policy is not provided in the flavor"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"9fb8cfa7_8d99b3d1","line":9,"range":{"start_line":9,"start_character":8,"end_line":9,"end_character":12},"updated":"2019-06-17 21:45:50.000000000","message":"than","commit_id":"2e549dd29ad83af739ac6183a95230a11094b943"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"444436530197f7427a4f3880e271733692aee701","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Defaults missing group_policy to \u0027none\u0027"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If more that one numbered request group is in the placement a_c query"},{"line_number":10,"context_line":"then the group_policy is mandatory. Based on the PTG discussion [1]"},{"line_number":11,"context_line":"\u0027none\u0027 seems to be a good default policy from nova perspective. So this"},{"line_number":12,"context_line":"patch makes sure that if the group_policy is not provided in the flavor"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"9fb8cfa7_f4230fbd","line":9,"range":{"start_line":9,"start_character":8,"end_line":9,"end_character":12},"in_reply_to":"9fb8cfa7_8d99b3d1","updated":"2019-06-21 08:13:05.000000000","message":"Done","commit_id":"2e549dd29ad83af739ac6183a95230a11094b943"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"019de4af0e7b29d9b41b0c2d713f0f6aadb002ee","unresolved":false,"context_lines":[{"line_number":15,"context_line":"other sources like neutron ports) then the group_policy is defaulted to"},{"line_number":16,"context_line":"\u0027none\u0027."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"The reasoning behind this change: If more than one numbered request"},{"line_number":19,"context_line":"group is coming from the flavor extra_spec then the creator of the"},{"line_number":20,"context_line":"flavor is responsible to add a group_policy to the flavor. So in this"},{"line_number":21,"context_line":"nova only warns but let the request fail in placement to force the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"9fb8cfa7_4d7c1b72","line":18,"updated":"2019-06-17 21:45:50.000000000","message":"This is a bug right? Why don\u0027t we have a bug for this change if it\u0027s really a bug (and something you\u0027d consider backporting)? The scenario is I try to create a server with two QoS ports having resource requests but using a flavor that doesn\u0027t define a group_policy, correct? In that case you\u0027re saying scheduling will always fail.\n\n(later)\n\nI guess this is really just a known limitation since we checked for this before and logged a warning but let it fail.","commit_id":"2e549dd29ad83af739ac6183a95230a11094b943"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"444436530197f7427a4f3880e271733692aee701","unresolved":false,"context_lines":[{"line_number":15,"context_line":"other sources like neutron ports) then the group_policy is defaulted to"},{"line_number":16,"context_line":"\u0027none\u0027."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"The reasoning behind this change: If more than one numbered request"},{"line_number":19,"context_line":"group is coming from the flavor extra_spec then the creator of the"},{"line_number":20,"context_line":"flavor is responsible to add a group_policy to the flavor. So in this"},{"line_number":21,"context_line":"nova only warns but let the request fail in placement to force the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"9fb8cfa7_346c4707","line":18,"in_reply_to":"9fb8cfa7_4d7c1b72","updated":"2019-06-21 08:13:05.000000000","message":"it is more a limitation to me than a bug","commit_id":"2e549dd29ad83af739ac6183a95230a11094b943"}],"doc/source/user/flavors.rst":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e3931fd2885d3428f6f9ada5b8628f8666874dee","unresolved":false,"context_lines":[{"line_number":799,"context_line":"    * ``none``: Different numbered request groups may be satisfied"},{"line_number":800,"context_line":"      by different providers *or* common providers."},{"line_number":801,"context_line":""},{"line_number":802,"context_line":".. note::"},{"line_number":803,"context_line":""},{"line_number":804,"context_line":"    If more than one group is specified then the ``group_policy`` is mandatory"},{"line_number":805,"context_line":"    in the request. However such groups might come from other sources than"},{"line_number":806,"context_line":"    flavor extra_spec (e.g. from Neutron ports with QoS minimum bandwidth"},{"line_number":807,"context_line":"    policy). If the flavor does not specify any groups and ``group_policy`` but"},{"line_number":808,"context_line":"    more than one group is coming from other sources then nova will default"},{"line_number":809,"context_line":"    the ``group_policy`` to ``none`` to avoid scheduler failure."},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"    For example, to create a server with the following VFs:"},{"line_number":812,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"7faddb67_4031ddeb","line":809,"range":{"start_line":802,"start_character":0,"end_line":809,"end_character":64},"updated":"2019-07-11 15:52:06.000000000","message":"This needs to be indented by the same four spaces as above and below, otherwise all the stuff below is included in this note. I don\u0027t think that\u0027s what you want","commit_id":"bb5194d42fd1887f2f7e4c0576284807c78ac433"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"75e34eb62f62bf259969126de8e74e88d32135b9","unresolved":false,"context_lines":[{"line_number":799,"context_line":"    * ``none``: Different numbered request groups may be satisfied"},{"line_number":800,"context_line":"      by different providers *or* common providers."},{"line_number":801,"context_line":""},{"line_number":802,"context_line":".. note::"},{"line_number":803,"context_line":""},{"line_number":804,"context_line":"    If more than one group is specified then the ``group_policy`` is mandatory"},{"line_number":805,"context_line":"    in the request. However such groups might come from other sources than"},{"line_number":806,"context_line":"    flavor extra_spec (e.g. from Neutron ports with QoS minimum bandwidth"},{"line_number":807,"context_line":"    policy). If the flavor does not specify any groups and ``group_policy`` but"},{"line_number":808,"context_line":"    more than one group is coming from other sources then nova will default"},{"line_number":809,"context_line":"    the ``group_policy`` to ``none`` to avoid scheduler failure."},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"    For example, to create a server with the following VFs:"},{"line_number":812,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"7faddb67_5bdd526e","line":809,"range":{"start_line":802,"start_character":0,"end_line":809,"end_character":64},"in_reply_to":"7faddb67_4031ddeb","updated":"2019-07-11 16:43:02.000000000","message":"True story [1] (scroll to bottom).\n\n[1] http://logs.openstack.org/96/657796/11/check/openstack-tox-docs/06b90c5/html/user/flavors.html","commit_id":"bb5194d42fd1887f2f7e4c0576284807c78ac433"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c0280fbf44de94f4025b35149c89aee286775b32","unresolved":false,"context_lines":[{"line_number":799,"context_line":"    * ``none``: Different numbered request groups may be satisfied"},{"line_number":800,"context_line":"      by different providers *or* common providers."},{"line_number":801,"context_line":""},{"line_number":802,"context_line":".. note::"},{"line_number":803,"context_line":""},{"line_number":804,"context_line":"    If more than one group is specified then the ``group_policy`` is mandatory"},{"line_number":805,"context_line":"    in the request. However such groups might come from other sources than"},{"line_number":806,"context_line":"    flavor extra_spec (e.g. from Neutron ports with QoS minimum bandwidth"},{"line_number":807,"context_line":"    policy). If the flavor does not specify any groups and ``group_policy`` but"},{"line_number":808,"context_line":"    more than one group is coming from other sources then nova will default"},{"line_number":809,"context_line":"    the ``group_policy`` to ``none`` to avoid scheduler failure."},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"    For example, to create a server with the following VFs:"},{"line_number":812,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"7faddb67_623dc429","line":809,"range":{"start_line":802,"start_character":0,"end_line":809,"end_character":64},"in_reply_to":"7faddb67_5bdd526e","updated":"2019-07-16 12:07:56.000000000","message":"Done","commit_id":"bb5194d42fd1887f2f7e4c0576284807c78ac433"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9980c421f26629001c40cd9636f50d9b7ca8dbe1","unresolved":false,"context_lines":[{"line_number":799,"context_line":"    * ``none``: Different numbered request groups may be satisfied"},{"line_number":800,"context_line":"      by different providers *or* common providers."},{"line_number":801,"context_line":""},{"line_number":802,"context_line":"    .. note::"},{"line_number":803,"context_line":""},{"line_number":804,"context_line":"        If more than one group is specified then the ``group_policy`` is"},{"line_number":805,"context_line":"        mandatory in the request. However such groups might come from other"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7faddb67_52cad74d","line":802,"updated":"2019-07-16 14:33:33.000000000","message":"better http://logs.openstack.org/96/657796/12/check/openstack-tox-docs/58b4f66/html/user/flavors.html (scroll to bottom)","commit_id":"ad4f79836264ec79068f087008367e2d2ae8cbea"}],"nova/scheduler/utils.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a78b10aa935eb4fabbde6f46c6edbe19cbba7056","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        return \u0027, \u0027.join(sorted("},{"line_number":67,"context_line":"            list(str(rg) for rg in list(self._rg_by_id.values()))))"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    @property"},{"line_number":70,"context_line":"    def group_policy(self):"},{"line_number":71,"context_line":"        return self._group_policy"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def get_request_group(self, ident):"},{"line_number":74,"context_line":"        if ident not in self._rg_by_id:"}],"source_content_type":"text/x-python","patch_set":3,"id":"bfb3d3c7_fc46f121","line":71,"range":{"start_line":69,"start_character":0,"end_line":71,"end_character":33},"updated":"2019-05-16 22:13:46.000000000","message":"Not sure why you made a @property out of this. If it was to avoid referencing a private member of an object, you should make a setter as well so you can fix L558 as well. Otherwise, just get rid of this and access res_req._group_policy on L536. Or just make ResourceRequest.group_policy public.","commit_id":"ab36638a3b2f5d04bc1cd18650b0e61951da5557"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4413d0434630ff75cb31782ae78e5f94c0037361","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        return \u0027, \u0027.join(sorted("},{"line_number":67,"context_line":"            list(str(rg) for rg in list(self._rg_by_id.values()))))"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    @property"},{"line_number":70,"context_line":"    def group_policy(self):"},{"line_number":71,"context_line":"        return self._group_policy"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def get_request_group(self, ident):"},{"line_number":74,"context_line":"        if ident not in self._rg_by_id:"}],"source_content_type":"text/x-python","patch_set":3,"id":"bfb3d3c7_6ad93e7d","line":71,"range":{"start_line":69,"start_character":0,"end_line":71,"end_character":33},"in_reply_to":"bfb3d3c7_fc46f121","updated":"2019-05-27 08:13:31.000000000","message":"Yeah, I wanted to fix L558 as well with a settable property but I guess I got distracted.\n\nDone.","commit_id":"ab36638a3b2f5d04bc1cd18650b0e61951da5557"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a78b10aa935eb4fabbde6f46c6edbe19cbba7056","unresolved":false,"context_lines":[{"line_number":539,"context_line":"            \"allocation candidate query but the flavor did not specify \""},{"line_number":540,"context_line":"            \"any group policy. This query would fail in placement due to \""},{"line_number":541,"context_line":"            \"the missing group policy. If you specified more than one \""},{"line_number":542,"context_line":"            \"numbered request group in the flavor extra_spec or booted \""},{"line_number":543,"context_line":"            \"with more than one neutron port that has resource request \""},{"line_number":544,"context_line":"            \"(i.e. the port has a QoS minimum bandwidth policy rule \""},{"line_number":545,"context_line":"            \"attached) then you need to specify the group policy in the \""},{"line_number":546,"context_line":"            \"flavor extra_spec. If it is OK to let these groups be satisfied \""},{"line_number":547,"context_line":"            \"by overlapping resource providers then use \u0027group_policy\u0027: \""},{"line_number":548,"context_line":"            \"\u0027none\u0027. If you want each group to be satisfied from a separate \""}],"source_content_type":"text/x-python","patch_set":3,"id":"bfb3d3c7_1c7d056e","line":545,"range":{"start_line":542,"start_character":60,"end_line":545,"end_character":22},"updated":"2019-05-16 22:13:46.000000000","message":"strike this","commit_id":"ab36638a3b2f5d04bc1cd18650b0e61951da5557"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4413d0434630ff75cb31782ae78e5f94c0037361","unresolved":false,"context_lines":[{"line_number":539,"context_line":"            \"allocation candidate query but the flavor did not specify \""},{"line_number":540,"context_line":"            \"any group policy. This query would fail in placement due to \""},{"line_number":541,"context_line":"            \"the missing group policy. If you specified more than one \""},{"line_number":542,"context_line":"            \"numbered request group in the flavor extra_spec or booted \""},{"line_number":543,"context_line":"            \"with more than one neutron port that has resource request \""},{"line_number":544,"context_line":"            \"(i.e. the port has a QoS minimum bandwidth policy rule \""},{"line_number":545,"context_line":"            \"attached) then you need to specify the group policy in the \""},{"line_number":546,"context_line":"            \"flavor extra_spec. If it is OK to let these groups be satisfied \""},{"line_number":547,"context_line":"            \"by overlapping resource providers then use \u0027group_policy\u0027: \""},{"line_number":548,"context_line":"            \"\u0027none\u0027. If you want each group to be satisfied from a separate \""}],"source_content_type":"text/x-python","patch_set":3,"id":"bfb3d3c7_cad14a25","line":545,"range":{"start_line":542,"start_character":60,"end_line":545,"end_character":22},"in_reply_to":"bfb3d3c7_1c7d056e","updated":"2019-05-27 08:13:31.000000000","message":"Done","commit_id":"ab36638a3b2f5d04bc1cd18650b0e61951da5557"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"0ad1a34347b29f784997fcf09032b99ab5632ecd","unresolved":false,"context_lines":[{"line_number":552,"context_line":"        LOG.warning("},{"line_number":553,"context_line":"            \"There is more than one numbered request group in the \""},{"line_number":554,"context_line":"            \"allocation candidate query but the flavor did not specify \""},{"line_number":555,"context_line":"            \"any group policy. This query would fail in placement due to \""},{"line_number":556,"context_line":"            \"the missing group policy. If you specified more than one \""},{"line_number":557,"context_line":"            \"numbered request group in the flavor extra_spec then you need to \""},{"line_number":558,"context_line":"            \"specify the group policy in the flavor extra_spec. If it is OK \""}],"source_content_type":"text/x-python","patch_set":5,"id":"bfb3d3c7_d7d78ded","line":555,"range":{"start_line":555,"start_character":42,"end_line":555,"end_character":52},"updated":"2019-05-29 08:05:11.000000000","message":"s/would fail/may fail/, if those group doesn\u0027t come from the flavor, then we may not fail based on the check at line 564.\n\nAnother question about whether we need this warning, if the request groups coming from other services, then the user shouldn\u0027t know what group policy is right also.","commit_id":"f48d6f5aa1112f9234b472cf4ef1500262e68e5f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ff7751d4bfb78aa96086ee2ca66fb719764218d2","unresolved":false,"context_lines":[{"line_number":552,"context_line":"        LOG.warning("},{"line_number":553,"context_line":"            \"There is more than one numbered request group in the \""},{"line_number":554,"context_line":"            \"allocation candidate query but the flavor did not specify \""},{"line_number":555,"context_line":"            \"any group policy. This query would fail in placement due to \""},{"line_number":556,"context_line":"            \"the missing group policy. If you specified more than one \""},{"line_number":557,"context_line":"            \"numbered request group in the flavor extra_spec then you need to \""},{"line_number":558,"context_line":"            \"specify the group policy in the flavor extra_spec. If it is OK \""}],"source_content_type":"text/x-python","patch_set":5,"id":"bfb3d3c7_6326fd6a","line":555,"range":{"start_line":555,"start_character":42,"end_line":555,"end_character":52},"in_reply_to":"bfb3d3c7_47fc36b4","updated":"2019-05-30 23:00:13.000000000","message":"\u0027would\u0027 is correct. The implication is, \"if we let this go through as is, placement will definitely choke on it, but we are fixing it for you.\"\n\nAnd yes, two flavors for two different policies, if in fact two different policies are required. We acknowledge that that sucks, so rather than forcing them to do that, we\u0027re defaulting to the more lenient option (i.e. more likely to land, but possibly less performant). That\u0027s the point of this patch.","commit_id":"f48d6f5aa1112f9234b472cf4ef1500262e68e5f"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"d3487b3cbdc69cd4bdbc75faf071f9928877294f","unresolved":false,"context_lines":[{"line_number":552,"context_line":"        LOG.warning("},{"line_number":553,"context_line":"            \"There is more than one numbered request group in the \""},{"line_number":554,"context_line":"            \"allocation candidate query but the flavor did not specify \""},{"line_number":555,"context_line":"            \"any group policy. This query would fail in placement due to \""},{"line_number":556,"context_line":"            \"the missing group policy. If you specified more than one \""},{"line_number":557,"context_line":"            \"numbered request group in the flavor extra_spec then you need to \""},{"line_number":558,"context_line":"            \"specify the group policy in the flavor extra_spec. If it is OK \""}],"source_content_type":"text/x-python","patch_set":5,"id":"bfb3d3c7_e7868a66","line":555,"range":{"start_line":555,"start_character":42,"end_line":555,"end_character":52},"in_reply_to":"bfb3d3c7_89449948","updated":"2019-05-30 08:48:19.000000000","message":"\u003e I think \u0027would\u0027 express the conditional. But I let a native English\n \u003e speaker decide.\n\nYea, I may be wrong. Anyway, you get my point.\n\n \n \u003e These groups are coming from other service _because_ the user\n \u003e specified a special port in the boot request (or referred to the\n \u003e device profile in cyborg in the flavor). So the user should know\n \u003e about the reason of these groups and therefore should be able to\n \u003e decide what to do.\n\nIf I need two ports, then I boot the server with cmd like \u0027nova boot --nic xxx --nic xxx\u0027. Then I get this warning about the request group, then I need to ask the operator to modify the flavor to include the group policy, and operator needs to take a look at the what request group generated from this request(kind of exposing the implementation detail?), then fill a group policy in the flavor.","commit_id":"f48d6f5aa1112f9234b472cf4ef1500262e68e5f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d762941376a15244b1b83078937fbe3eb6357826","unresolved":false,"context_lines":[{"line_number":552,"context_line":"        LOG.warning("},{"line_number":553,"context_line":"            \"There is more than one numbered request group in the \""},{"line_number":554,"context_line":"            \"allocation candidate query but the flavor did not specify \""},{"line_number":555,"context_line":"            \"any group policy. This query would fail in placement due to \""},{"line_number":556,"context_line":"            \"the missing group policy. If you specified more than one \""},{"line_number":557,"context_line":"            \"numbered request group in the flavor extra_spec then you need to \""},{"line_number":558,"context_line":"            \"specify the group policy in the flavor extra_spec. If it is OK \""}],"source_content_type":"text/x-python","patch_set":5,"id":"bfb3d3c7_89449948","line":555,"range":{"start_line":555,"start_character":42,"end_line":555,"end_character":52},"in_reply_to":"bfb3d3c7_d7d78ded","updated":"2019-05-29 12:28:56.000000000","message":"\u003e s/would fail/may fail/, if those group doesn\u0027t come from the\n \u003e flavor, then we may not fail based on the check at line 564.\n \u003e \n\nI think \u0027would\u0027 express the conditional. But I let a native English speaker decide.\n\n\n \u003e Another question about whether we need this warning, if the request\n \u003e groups coming from other services, then the user shouldn\u0027t know\n \u003e what group policy is right also.\n\nThese groups are coming from other service _because_ the user specified a special port in the boot request (or referred to the device profile in cyborg in the flavor). So the user should know about the reason of these groups and therefore should be able to decide what to do.","commit_id":"f48d6f5aa1112f9234b472cf4ef1500262e68e5f"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"436a622670475628167ef6b5232fd50b05fe8e42","unresolved":false,"context_lines":[{"line_number":552,"context_line":"        LOG.warning("},{"line_number":553,"context_line":"            \"There is more than one numbered request group in the \""},{"line_number":554,"context_line":"            \"allocation candidate query but the flavor did not specify \""},{"line_number":555,"context_line":"            \"any group policy. This query would fail in placement due to \""},{"line_number":556,"context_line":"            \"the missing group policy. If you specified more than one \""},{"line_number":557,"context_line":"            \"numbered request group in the flavor extra_spec then you need to \""},{"line_number":558,"context_line":"            \"specify the group policy in the flavor extra_spec. If it is OK \""}],"source_content_type":"text/x-python","patch_set":5,"id":"bfb3d3c7_47fc36b4","line":555,"range":{"start_line":555,"start_character":42,"end_line":555,"end_character":52},"in_reply_to":"bfb3d3c7_e7868a66","updated":"2019-05-30 08:54:00.000000000","message":"\u003e \u003e I think \u0027would\u0027 express the conditional. But I let a native\n \u003e English\n \u003e \u003e speaker decide.\n \u003e \n \u003e Yea, I may be wrong. Anyway, you get my point.\n \u003e \n \u003e \n \u003e \u003e These groups are coming from other service _because_ the user\n \u003e \u003e specified a special port in the boot request (or referred to the\n \u003e \u003e device profile in cyborg in the flavor). So the user should know\n \u003e \u003e about the reason of these groups and therefore should be able to\n \u003e \u003e decide what to do.\n \u003e \n \u003e If I need two ports, then I boot the server with cmd like \u0027nova\n \u003e boot --nic xxx --nic xxx\u0027. Then I get this warning about the\n \u003e request group, then I need to ask the operator to modify the flavor\n\nI won\u0027t get the warning, the admin always gets this warning when the user requests two ports. The admin won\u0027t know the requirement for the end user,  some of the users may want two ports coming from same group, some of the users may want two ports coming from different group. Then admin needs to create two flavors for two different policy?","commit_id":"f48d6f5aa1112f9234b472cf4ef1500262e68e5f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"019de4af0e7b29d9b41b0c2d713f0f6aadb002ee","unresolved":false,"context_lines":[{"line_number":219,"context_line":"        for rg in self._rg_by_id.values():"},{"line_number":220,"context_line":"            yield rg.resources"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def get_nr_of_numbered_groups(self):"},{"line_number":223,"context_line":"        return len([ident for ident in self._rg_by_id.keys()"},{"line_number":224,"context_line":"                    if ident is not None])"},{"line_number":225,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9fb8cfa7_0d962396","line":222,"range":{"start_line":222,"start_character":12,"end_line":222,"end_character":14},"updated":"2019-06-17 21:45:50.000000000","message":"num?","commit_id":"2e549dd29ad83af739ac6183a95230a11094b943"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"444436530197f7427a4f3880e271733692aee701","unresolved":false,"context_lines":[{"line_number":219,"context_line":"        for rg in self._rg_by_id.values():"},{"line_number":220,"context_line":"            yield rg.resources"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def get_nr_of_numbered_groups(self):"},{"line_number":223,"context_line":"        return len([ident for ident in self._rg_by_id.keys()"},{"line_number":224,"context_line":"                    if ident is not None])"},{"line_number":225,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9fb8cfa7_6f4c2a76","line":222,"range":{"start_line":222,"start_character":12,"end_line":222,"end_character":14},"in_reply_to":"9fb8cfa7_0d962396","updated":"2019-06-21 08:13:05.000000000","message":"Done","commit_id":"2e549dd29ad83af739ac6183a95230a11094b943"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e3931fd2885d3428f6f9ada5b8628f8666874dee","unresolved":false,"context_lines":[{"line_number":546,"context_line":"        for key in spec_obj.scheduler_hints)):"},{"line_number":547,"context_line":"        res_req._limit \u003d None"},{"line_number":548,"context_line":""},{"line_number":549,"context_line":"    numbered_groups \u003d res_req.get_num_of_numbered_groups()"},{"line_number":550,"context_line":""},{"line_number":551,"context_line":"    if numbered_groups \u003e\u003d 2 and not res_req.group_policy:"},{"line_number":552,"context_line":"        LOG.warning("}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_7d09262f","line":549,"range":{"start_line":549,"start_character":22,"end_line":549,"end_character":58},"updated":"2019-07-11 15:52:06.000000000","message":"Just use this directly below?","commit_id":"bb5194d42fd1887f2f7e4c0576284807c78ac433"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c0280fbf44de94f4025b35149c89aee286775b32","unresolved":false,"context_lines":[{"line_number":546,"context_line":"        for key in spec_obj.scheduler_hints)):"},{"line_number":547,"context_line":"        res_req._limit \u003d None"},{"line_number":548,"context_line":""},{"line_number":549,"context_line":"    numbered_groups \u003d res_req.get_num_of_numbered_groups()"},{"line_number":550,"context_line":""},{"line_number":551,"context_line":"    if numbered_groups \u003e\u003d 2 and not res_req.group_policy:"},{"line_number":552,"context_line":"        LOG.warning("}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_021f30b7","line":549,"range":{"start_line":549,"start_character":22,"end_line":549,"end_character":58},"in_reply_to":"7faddb67_7d09262f","updated":"2019-07-16 12:07:56.000000000","message":"Done","commit_id":"bb5194d42fd1887f2f7e4c0576284807c78ac433"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e3931fd2885d3428f6f9ada5b8628f8666874dee","unresolved":false,"context_lines":[{"line_number":561,"context_line":"            \"group to be satisfied from a separate resource provider then \""},{"line_number":562,"context_line":"            \"use \u0027group_policy\u0027: \u0027isolate\u0027.\")"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"        if numbered_groups_from_flavor \u003c 2:"},{"line_number":565,"context_line":"            LOG.info("},{"line_number":566,"context_line":"                \"At least one numbered request group is defined outside of \""},{"line_number":567,"context_line":"                \"the flavor (e.g. in a port that has a QoS minimum bandwidth \""}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_3d2ace8f","line":564,"range":{"start_line":564,"start_character":39,"end_line":564,"end_character":42},"updated":"2019-07-11 15:52:06.000000000","message":"nit: IMO, \u0027\u003c\u003d 1\u0027 would be clearer since you are testing for 0 or 1","commit_id":"bb5194d42fd1887f2f7e4c0576284807c78ac433"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c0280fbf44de94f4025b35149c89aee286775b32","unresolved":false,"context_lines":[{"line_number":561,"context_line":"            \"group to be satisfied from a separate resource provider then \""},{"line_number":562,"context_line":"            \"use \u0027group_policy\u0027: \u0027isolate\u0027.\")"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"        if numbered_groups_from_flavor \u003c 2:"},{"line_number":565,"context_line":"            LOG.info("},{"line_number":566,"context_line":"                \"At least one numbered request group is defined outside of \""},{"line_number":567,"context_line":"                \"the flavor (e.g. in a port that has a QoS minimum bandwidth \""}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_221cacbf","line":564,"range":{"start_line":564,"start_character":39,"end_line":564,"end_character":42},"in_reply_to":"7faddb67_3d2ace8f","updated":"2019-07-16 12:07:56.000000000","message":"Done","commit_id":"bb5194d42fd1887f2f7e4c0576284807c78ac433"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e3931fd2885d3428f6f9ada5b8628f8666874dee","unresolved":false,"context_lines":[{"line_number":568,"context_line":"                \"policy rule attached) but the flavor did not specify any \""},{"line_number":569,"context_line":"                \"group policy. To avoid the placement failure nova defaults \""},{"line_number":570,"context_line":"                \"the group policy to \u0027none\u0027.\")"},{"line_number":571,"context_line":"            res_req.group_policy \u003d \u0027none\u0027"},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"    return res_req"},{"line_number":574,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_9d142250","line":571,"range":{"start_line":571,"start_character":36,"end_line":571,"end_character":40},"updated":"2019-07-11 15:52:06.000000000","message":"Could we not have used \u0027nova\u0027 instead? \u0027none\u0027 seems very generic and I\u0027d be concerned that another service could use this accidentally at some point","commit_id":"bb5194d42fd1887f2f7e4c0576284807c78ac433"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"75e34eb62f62bf259969126de8e74e88d32135b9","unresolved":false,"context_lines":[{"line_number":568,"context_line":"                \"policy rule attached) but the flavor did not specify any \""},{"line_number":569,"context_line":"                \"group policy. To avoid the placement failure nova defaults \""},{"line_number":570,"context_line":"                \"the group policy to \u0027none\u0027.\")"},{"line_number":571,"context_line":"            res_req.group_policy \u003d \u0027none\u0027"},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"    return res_req"},{"line_number":574,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_bb44861c","line":571,"range":{"start_line":571,"start_character":36,"end_line":571,"end_character":40},"in_reply_to":"7faddb67_9d142250","updated":"2019-07-11 16:43:02.000000000","message":"This is the group_policy query param to GET /allocation_candidates. It accepts one of two values, \u0027none\u0027 and \u0027isolate\u0027.","commit_id":"bb5194d42fd1887f2f7e4c0576284807c78ac433"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"94bc243b5db05dc22fb298830c1332b5e289dcac","unresolved":false,"context_lines":[{"line_number":568,"context_line":"                \"policy rule attached) but the flavor did not specify any \""},{"line_number":569,"context_line":"                \"group policy. To avoid the placement failure nova defaults \""},{"line_number":570,"context_line":"                \"the group policy to \u0027none\u0027.\")"},{"line_number":571,"context_line":"            res_req.group_policy \u003d \u0027none\u0027"},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"    return res_req"},{"line_number":574,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_bdb3100a","line":571,"range":{"start_line":571,"start_character":36,"end_line":571,"end_character":40},"in_reply_to":"7faddb67_bb44861c","updated":"2019-07-12 09:28:57.000000000","message":"Yup /o\\ My mistake","commit_id":"bb5194d42fd1887f2f7e4c0576284807c78ac433"}],"nova/tests/unit/scheduler/test_utils.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a78b10aa935eb4fabbde6f46c6edbe19cbba7056","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"bfb3d3c7_dc720d7d","line":1238,"updated":"2019-05-16 22:13:46.000000000","message":"++ good tests","commit_id":"ab36638a3b2f5d04bc1cd18650b0e61951da5557"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"9017115b6ca9b15ee6dd885f3dbe7773b6da790c","unresolved":false,"context_lines":[{"line_number":1201,"context_line":"            \"To avoid the placement failure nova defaults the group policy to \""},{"line_number":1202,"context_line":"            \"\u0027none\u0027.\","},{"line_number":1203,"context_line":"            log)"},{"line_number":1204,"context_line":"        self.assertIsNone(None, rr.group_policy)"},{"line_number":1205,"context_line":"        self.assertNotIn(\u0027group_policy\u003dnone\u0027, rr.to_querystring())"},{"line_number":1206,"context_line":""},{"line_number":1207,"context_line":"    def test_two_groups_from_flavor_only_warns(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfb3d3c7_a1297b8a","line":1204,"range":{"start_line":1204,"start_character":26,"end_line":1204,"end_character":32},"updated":"2019-05-29 04:12:02.000000000","message":"It should be removed.","commit_id":"f48d6f5aa1112f9234b472cf4ef1500262e68e5f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"3aae026d6625765285c8ebe2bc67361e5d92a15a","unresolved":false,"context_lines":[{"line_number":1201,"context_line":"            \"To avoid the placement failure nova defaults the group policy to \""},{"line_number":1202,"context_line":"            \"\u0027none\u0027.\","},{"line_number":1203,"context_line":"            log)"},{"line_number":1204,"context_line":"        self.assertIsNone(None, rr.group_policy)"},{"line_number":1205,"context_line":"        self.assertNotIn(\u0027group_policy\u003dnone\u0027, rr.to_querystring())"},{"line_number":1206,"context_line":""},{"line_number":1207,"context_line":"    def test_two_groups_from_flavor_only_warns(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfb3d3c7_0c950533","line":1204,"range":{"start_line":1204,"start_character":26,"end_line":1204,"end_character":32},"in_reply_to":"bfb3d3c7_a1297b8a","updated":"2019-05-30 07:56:40.000000000","message":"Good catch. Done.","commit_id":"f48d6f5aa1112f9234b472cf4ef1500262e68e5f"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"9017115b6ca9b15ee6dd885f3dbe7773b6da790c","unresolved":false,"context_lines":[{"line_number":1226,"context_line":"            \"To avoid the placement failure nova defaults the group policy to \""},{"line_number":1227,"context_line":"            \"\u0027none\u0027.\","},{"line_number":1228,"context_line":"            log)"},{"line_number":1229,"context_line":"        self.assertIsNone(None, rr.group_policy)"},{"line_number":1230,"context_line":"        self.assertNotIn(\u0027group_policy\u0027, rr.to_querystring())"},{"line_number":1231,"context_line":""},{"line_number":1232,"context_line":"    def test_one_group_from_flavor_one_from_port_policy_defaulted(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfb3d3c7_611f035b","line":1229,"range":{"start_line":1229,"start_character":26,"end_line":1229,"end_character":32},"updated":"2019-05-29 04:12:02.000000000","message":"ditto","commit_id":"f48d6f5aa1112f9234b472cf4ef1500262e68e5f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"3aae026d6625765285c8ebe2bc67361e5d92a15a","unresolved":false,"context_lines":[{"line_number":1226,"context_line":"            \"To avoid the placement failure nova defaults the group policy to \""},{"line_number":1227,"context_line":"            \"\u0027none\u0027.\","},{"line_number":1228,"context_line":"            log)"},{"line_number":1229,"context_line":"        self.assertIsNone(None, rr.group_policy)"},{"line_number":1230,"context_line":"        self.assertNotIn(\u0027group_policy\u0027, rr.to_querystring())"},{"line_number":1231,"context_line":""},{"line_number":1232,"context_line":"    def test_one_group_from_flavor_one_from_port_policy_defaulted(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfb3d3c7_ac97193a","line":1229,"range":{"start_line":1229,"start_character":26,"end_line":1229,"end_character":32},"in_reply_to":"bfb3d3c7_611f035b","updated":"2019-05-30 07:56:40.000000000","message":"Done","commit_id":"f48d6f5aa1112f9234b472cf4ef1500262e68e5f"}],"releasenotes/notes/defaulting_group_policy-36f584cd3920818c.yaml":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a78b10aa935eb4fabbde6f46c6edbe19cbba7056","unresolved":false,"context_lines":[{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Numbered request groups can be defined in the flavor extra_spec"},{"line_number":5,"context_line":"    but they can come from other source as well (e.g. neutron ports)."},{"line_number":6,"context_line":"    If there is more than one numbered request group in the"},{"line_number":7,"context_line":"    allocation candidate query and the flavor does not specify any"},{"line_number":8,"context_line":"    group policy the the query will fail in placement as group_policy"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bfb3d3c7_fc6fd18f","line":5,"range":{"start_line":5,"start_character":33,"end_line":5,"end_character":39},"updated":"2019-05-16 22:13:46.000000000","message":"sources","commit_id":"ab36638a3b2f5d04bc1cd18650b0e61951da5557"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4413d0434630ff75cb31782ae78e5f94c0037361","unresolved":false,"context_lines":[{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Numbered request groups can be defined in the flavor extra_spec"},{"line_number":5,"context_line":"    but they can come from other source as well (e.g. neutron ports)."},{"line_number":6,"context_line":"    If there is more than one numbered request group in the"},{"line_number":7,"context_line":"    allocation candidate query and the flavor does not specify any"},{"line_number":8,"context_line":"    group policy the the query will fail in placement as group_policy"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bfb3d3c7_4aa31ab3","line":5,"range":{"start_line":5,"start_character":33,"end_line":5,"end_character":39},"in_reply_to":"bfb3d3c7_fc6fd18f","updated":"2019-05-27 08:13:31.000000000","message":"Done","commit_id":"ab36638a3b2f5d04bc1cd18650b0e61951da5557"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a78b10aa935eb4fabbde6f46c6edbe19cbba7056","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    If there is more than one numbered request group in the"},{"line_number":7,"context_line":"    allocation candidate query and the flavor does not specify any"},{"line_number":8,"context_line":"    group policy the the query will fail in placement as group_policy"},{"line_number":9,"context_line":"    is mandatory in this case. Nova so far printed a warning to the"},{"line_number":10,"context_line":"    scheduler logs but let the request fail. However the creator of"},{"line_number":11,"context_line":"    the flavor cannot know if the flavor later on will be used in a boot"},{"line_number":12,"context_line":"    request that has other numbered request groups. So nova will start"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bfb3d3c7_bc69598c","line":9,"range":{"start_line":9,"start_character":36,"end_line":9,"end_character":42},"updated":"2019-05-16 22:13:46.000000000","message":"previously","commit_id":"ab36638a3b2f5d04bc1cd18650b0e61951da5557"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4413d0434630ff75cb31782ae78e5f94c0037361","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    If there is more than one numbered request group in the"},{"line_number":7,"context_line":"    allocation candidate query and the flavor does not specify any"},{"line_number":8,"context_line":"    group policy the the query will fail in placement as group_policy"},{"line_number":9,"context_line":"    is mandatory in this case. Nova so far printed a warning to the"},{"line_number":10,"context_line":"    scheduler logs but let the request fail. However the creator of"},{"line_number":11,"context_line":"    the flavor cannot know if the flavor later on will be used in a boot"},{"line_number":12,"context_line":"    request that has other numbered request groups. So nova will start"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bfb3d3c7_0aa9a28e","line":9,"range":{"start_line":9,"start_character":36,"end_line":9,"end_character":42},"in_reply_to":"bfb3d3c7_bc69598c","updated":"2019-05-27 08:13:31.000000000","message":"Done","commit_id":"ab36638a3b2f5d04bc1cd18650b0e61951da5557"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a78b10aa935eb4fabbde6f46c6edbe19cbba7056","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    request that has other numbered request groups. So nova will start"},{"line_number":13,"context_line":"    defaulting the group_policy to \u0027none\u0027 which means that the resource"},{"line_number":14,"context_line":"    providers fulfilling the numbered request groups can overlap."},{"line_number":15,"context_line":"    Nova will default the group_policy if it is not provided in the flavor"},{"line_number":16,"context_line":"    extra_spec, and there are more than one numbered request groups are"},{"line_number":17,"context_line":"    present in the final request, and the flavor only provided one or zero"},{"line_number":18,"context_line":"    of such groups."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bfb3d3c7_5c2dbd44","line":15,"range":{"start_line":15,"start_character":9,"end_line":15,"end_character":21},"updated":"2019-05-16 22:13:46.000000000","message":"I would say \"...will only default...\"","commit_id":"ab36638a3b2f5d04bc1cd18650b0e61951da5557"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4413d0434630ff75cb31782ae78e5f94c0037361","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    request that has other numbered request groups. So nova will start"},{"line_number":13,"context_line":"    defaulting the group_policy to \u0027none\u0027 which means that the resource"},{"line_number":14,"context_line":"    providers fulfilling the numbered request groups can overlap."},{"line_number":15,"context_line":"    Nova will default the group_policy if it is not provided in the flavor"},{"line_number":16,"context_line":"    extra_spec, and there are more than one numbered request groups are"},{"line_number":17,"context_line":"    present in the final request, and the flavor only provided one or zero"},{"line_number":18,"context_line":"    of such groups."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bfb3d3c7_2aaee697","line":15,"range":{"start_line":15,"start_character":9,"end_line":15,"end_character":21},"in_reply_to":"bfb3d3c7_5c2dbd44","updated":"2019-05-27 08:13:31.000000000","message":"Done","commit_id":"ab36638a3b2f5d04bc1cd18650b0e61951da5557"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a78b10aa935eb4fabbde6f46c6edbe19cbba7056","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    defaulting the group_policy to \u0027none\u0027 which means that the resource"},{"line_number":14,"context_line":"    providers fulfilling the numbered request groups can overlap."},{"line_number":15,"context_line":"    Nova will default the group_policy if it is not provided in the flavor"},{"line_number":16,"context_line":"    extra_spec, and there are more than one numbered request groups are"},{"line_number":17,"context_line":"    present in the final request, and the flavor only provided one or zero"},{"line_number":18,"context_line":"    of such groups."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bfb3d3c7_3c132910","line":16,"range":{"start_line":16,"start_character":61,"end_line":16,"end_character":67},"updated":"2019-05-16 22:13:46.000000000","message":"group","commit_id":"ab36638a3b2f5d04bc1cd18650b0e61951da5557"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a78b10aa935eb4fabbde6f46c6edbe19cbba7056","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    defaulting the group_policy to \u0027none\u0027 which means that the resource"},{"line_number":14,"context_line":"    providers fulfilling the numbered request groups can overlap."},{"line_number":15,"context_line":"    Nova will default the group_policy if it is not provided in the flavor"},{"line_number":16,"context_line":"    extra_spec, and there are more than one numbered request groups are"},{"line_number":17,"context_line":"    present in the final request, and the flavor only provided one or zero"},{"line_number":18,"context_line":"    of such groups."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bfb3d3c7_7c09a1db","line":16,"range":{"start_line":16,"start_character":26,"end_line":16,"end_character":29},"updated":"2019-05-16 22:13:46.000000000","message":"is","commit_id":"ab36638a3b2f5d04bc1cd18650b0e61951da5557"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a78b10aa935eb4fabbde6f46c6edbe19cbba7056","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    defaulting the group_policy to \u0027none\u0027 which means that the resource"},{"line_number":14,"context_line":"    providers fulfilling the numbered request groups can overlap."},{"line_number":15,"context_line":"    Nova will default the group_policy if it is not provided in the flavor"},{"line_number":16,"context_line":"    extra_spec, and there are more than one numbered request groups are"},{"line_number":17,"context_line":"    present in the final request, and the flavor only provided one or zero"},{"line_number":18,"context_line":"    of such groups."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bfb3d3c7_dcf76dd4","line":16,"range":{"start_line":16,"start_character":68,"end_line":16,"end_character":71},"updated":"2019-05-16 22:13:46.000000000","message":"strike","commit_id":"ab36638a3b2f5d04bc1cd18650b0e61951da5557"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4413d0434630ff75cb31782ae78e5f94c0037361","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    defaulting the group_policy to \u0027none\u0027 which means that the resource"},{"line_number":14,"context_line":"    providers fulfilling the numbered request groups can overlap."},{"line_number":15,"context_line":"    Nova will default the group_policy if it is not provided in the flavor"},{"line_number":16,"context_line":"    extra_spec, and there are more than one numbered request groups are"},{"line_number":17,"context_line":"    present in the final request, and the flavor only provided one or zero"},{"line_number":18,"context_line":"    of such groups."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bfb3d3c7_aa997679","line":16,"range":{"start_line":16,"start_character":61,"end_line":16,"end_character":67},"in_reply_to":"bfb3d3c7_3c132910","updated":"2019-05-27 08:13:31.000000000","message":"Done","commit_id":"ab36638a3b2f5d04bc1cd18650b0e61951da5557"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4413d0434630ff75cb31782ae78e5f94c0037361","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    defaulting the group_policy to \u0027none\u0027 which means that the resource"},{"line_number":14,"context_line":"    providers fulfilling the numbered request groups can overlap."},{"line_number":15,"context_line":"    Nova will default the group_policy if it is not provided in the flavor"},{"line_number":16,"context_line":"    extra_spec, and there are more than one numbered request groups are"},{"line_number":17,"context_line":"    present in the final request, and the flavor only provided one or zero"},{"line_number":18,"context_line":"    of such groups."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bfb3d3c7_4a8c7a35","line":16,"range":{"start_line":16,"start_character":26,"end_line":16,"end_character":29},"in_reply_to":"bfb3d3c7_7c09a1db","updated":"2019-05-27 08:13:31.000000000","message":"Done","commit_id":"ab36638a3b2f5d04bc1cd18650b0e61951da5557"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4413d0434630ff75cb31782ae78e5f94c0037361","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    defaulting the group_policy to \u0027none\u0027 which means that the resource"},{"line_number":14,"context_line":"    providers fulfilling the numbered request groups can overlap."},{"line_number":15,"context_line":"    Nova will default the group_policy if it is not provided in the flavor"},{"line_number":16,"context_line":"    extra_spec, and there are more than one numbered request groups are"},{"line_number":17,"context_line":"    present in the final request, and the flavor only provided one or zero"},{"line_number":18,"context_line":"    of such groups."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bfb3d3c7_6a913e4e","line":16,"range":{"start_line":16,"start_character":68,"end_line":16,"end_character":71},"in_reply_to":"bfb3d3c7_dcf76dd4","updated":"2019-05-27 08:13:31.000000000","message":"Done","commit_id":"ab36638a3b2f5d04bc1cd18650b0e61951da5557"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"2ecd05d123417dc55739fb197a9b0e76ab400a52","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Numbered request groups can be defined in the flavor extra_spec"},{"line_number":5,"context_line":"    but they can come from other sources as well (e.g. neutron ports)."},{"line_number":6,"context_line":"    If there is more than one numbered request group in the"},{"line_number":7,"context_line":"    allocation candidate query and the flavor does not specify any"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"9fb8cfa7_349c190e","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":27},"updated":"2019-06-10 10:40:14.000000000","message":"someone reading this out of context (which I assume is how release notes are read) may not know what a \"numbered request group\" is, can we remind them in some way here?","commit_id":"bfe50ce7c829e293bad4f34d88eafa762a8b1f28"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"8c6013118f16e83dca0497d2857bbae0c4cdeb16","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Numbered request groups can be defined in the flavor extra_spec"},{"line_number":5,"context_line":"    but they can come from other sources as well (e.g. neutron ports)."},{"line_number":6,"context_line":"    If there is more than one numbered request group in the"},{"line_number":7,"context_line":"    allocation candidate query and the flavor does not specify any"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"9fb8cfa7_5232f860","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":27},"in_reply_to":"9fb8cfa7_349c190e","updated":"2019-06-10 16:24:26.000000000","message":"Linking to\n\n extra-specs-numbered-resource-groupings_\n\nwill get you here: https://opendev.org/openstack/nova/blame/branch/master/doc/source/user/flavors.rst#L778\n\nwhich seems like a reasonable spot.","commit_id":"bfe50ce7c829e293bad4f34d88eafa762a8b1f28"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"cbda1c2e6072386f842dbb12521b987b1a5f3cec","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Numbered request groups can be defined in the flavor extra_spec"},{"line_number":5,"context_line":"    but they can come from other sources as well (e.g. neutron ports)."},{"line_number":6,"context_line":"    If there is more than one numbered request group in the"},{"line_number":7,"context_line":"    allocation candidate query and the flavor does not specify any"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"9fb8cfa7_7d17cd46","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":27},"in_reply_to":"9fb8cfa7_5232f860","updated":"2019-06-10 16:41:27.000000000","message":"Done","commit_id":"bfe50ce7c829e293bad4f34d88eafa762a8b1f28"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"019de4af0e7b29d9b41b0c2d713f0f6aadb002ee","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    extra_spec, and there is more than one numbered request group present in"},{"line_number":17,"context_line":"    the final request, and the flavor only provided one or zero of such groups."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    .. _`Numbered request groups`: https://docs.openstack.org/nova/latest/user/flavors.html#extra-specs-numbered-resource-groupings"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"9fb8cfa7_cd61ebd5","line":19,"updated":"2019-06-17 21:45:50.000000000","message":"Is there any value in mentioning something about this behavior in this doc as well?","commit_id":"2e549dd29ad83af739ac6183a95230a11094b943"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"444436530197f7427a4f3880e271733692aee701","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    extra_spec, and there is more than one numbered request group present in"},{"line_number":17,"context_line":"    the final request, and the flavor only provided one or zero of such groups."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    .. _`Numbered request groups`: https://docs.openstack.org/nova/latest/user/flavors.html#extra-specs-numbered-resource-groupings"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"9fb8cfa7_543d3bdb","line":19,"in_reply_to":"9fb8cfa7_cd61ebd5","updated":"2019-06-21 08:13:05.000000000","message":"Done","commit_id":"2e549dd29ad83af739ac6183a95230a11094b943"}]}
