)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"11a6fa03abce2a717448cce31d0cd15307e98be6","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Disable limit if affinity(anti)/same(different)host is requested"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When using max_placement_results it is not possible to use the affinity,"},{"line_number":10,"context_line":"anti-affinity, same host or different host filters as there is no guarantee"},{"line_number":11,"context_line":"for placement to return the expected hosts under such situations. This"},{"line_number":12,"context_line":"patch disables the max_placement_results parameter when nova queries"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"dfbec78f_c0e349d8","line":9,"range":{"start_line":9,"start_character":33,"end_line":9,"end_character":51},"updated":"2019-05-14 21:14:37.000000000","message":"Well, this is arguable, right? You could set max_placement_results really high if you have more than 1000 nodes, or it\u0027s just not a problem for a cloud that has fewer than max_placement_results. I realize this isn\u0027t the case for CERN with 14K nodes or whatever and max_placement_results set to 20. I think the point is if max_placement_results \u003c number of nodes in your deployment, there is chance the affinity type filters might not work properly because we aren\u0027t getting the total set of nodes to process in the scheduler.","commit_id":"34f6f664c35836c1fbd062c2220ab3e1d13b0240"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"eb6fc00e07ccbcdbd7b4acb3fc21467481fcd7be","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Disable limit if affinity(anti)/same(different)host is requested"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When using max_placement_results it is not possible to use the affinity,"},{"line_number":10,"context_line":"anti-affinity, same host or different host filters as there is no guarantee"},{"line_number":11,"context_line":"for placement to return the expected hosts under such situations. This"},{"line_number":12,"context_line":"patch disables the max_placement_results parameter when nova queries"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"dfbec78f_4023d9bd","line":9,"range":{"start_line":9,"start_character":33,"end_line":9,"end_character":51},"in_reply_to":"dfbec78f_c0e349d8","updated":"2019-05-14 21:29:41.000000000","message":"Done","commit_id":"34f6f664c35836c1fbd062c2220ab3e1d13b0240"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"99b49c90e826e1172543fcbfa7b13a267125e7b5","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Disable limit if affinity(anti)/same(different)host is requested"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When max_placement_results is less than the total number of nodes in"},{"line_number":10,"context_line":"a deployment it may not be possible to use the affinity, anti-affinity,"},{"line_number":11,"context_line":"same host or different host filters as there is no guarantee"},{"line_number":12,"context_line":"for placement to return the expected hosts under such situations. This"},{"line_number":13,"context_line":"patch disables the max_placement_results parameter when nova queries"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"dfbec78f_bb052813","line":10,"range":{"start_line":9,"start_character":30,"end_line":10,"end_character":12},"updated":"2019-05-14 21:35:52.000000000","message":"Even this isn\u0027t really accurate. If you have VGPUs or QoS ports (or future NUMA nodes, accelerators, etc.), you can get multiple candidates per host.","commit_id":"caa4e810ce5fa51942e5e3e936fbdf149ebf55fd"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d711917217cb138d11fef34c142b79d1fb9cc096","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Disable limit if affinity(anti)/same(different)host is requested"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When max_placement_results is less than the total number of nodes in"},{"line_number":10,"context_line":"a deployment it may not be possible to use the affinity, anti-affinity,"},{"line_number":11,"context_line":"same host or different host filters as there is no guarantee"},{"line_number":12,"context_line":"for placement to return the expected hosts under such situations. This"},{"line_number":13,"context_line":"patch disables the max_placement_results parameter when nova queries"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"dfbec78f_3b493830","line":10,"range":{"start_line":9,"start_character":30,"end_line":10,"end_character":12},"in_reply_to":"dfbec78f_1bdeb46c","updated":"2019-05-14 21:49:40.000000000","message":"sho","commit_id":"caa4e810ce5fa51942e5e3e936fbdf149ebf55fd"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"4add9b54986c2d6dd58b99ee5d7b7bf8281fd02f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Disable limit if affinity(anti)/same(different)host is requested"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When max_placement_results is less than the total number of nodes in"},{"line_number":10,"context_line":"a deployment it may not be possible to use the affinity, anti-affinity,"},{"line_number":11,"context_line":"same host or different host filters as there is no guarantee"},{"line_number":12,"context_line":"for placement to return the expected hosts under such situations. This"},{"line_number":13,"context_line":"patch disables the max_placement_results parameter when nova queries"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"dfbec78f_84dec0d7","line":10,"range":{"start_line":9,"start_character":30,"end_line":10,"end_character":12},"in_reply_to":"dfbec78f_3b493830","updated":"2019-05-15 07:12:25.000000000","message":"oh yea good angle of thought,","commit_id":"caa4e810ce5fa51942e5e3e936fbdf149ebf55fd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"81b4a80640608b42cc738e6c27f573b1ad0c902b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Disable limit if affinity(anti)/same(different)host is requested"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When max_placement_results is less than the total number of nodes in"},{"line_number":10,"context_line":"a deployment it may not be possible to use the affinity, anti-affinity,"},{"line_number":11,"context_line":"same host or different host filters as there is no guarantee"},{"line_number":12,"context_line":"for placement to return the expected hosts under such situations. This"},{"line_number":13,"context_line":"patch disables the max_placement_results parameter when nova queries"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"dfbec78f_1bdeb46c","line":10,"range":{"start_line":9,"start_character":30,"end_line":10,"end_character":12},"in_reply_to":"dfbec78f_bb052813","updated":"2019-05-14 21:46:16.000000000","message":"Well, I could say \u0027nested providers\u0027 in here somewhere but those weren\u0027t supported as far back as this is going (queens).","commit_id":"caa4e810ce5fa51942e5e3e936fbdf149ebf55fd"}],"nova/scheduler/utils.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"aa35fce14bdce6074bbc8c6ecf578e324a339278","unresolved":false,"context_lines":[{"line_number":538,"context_line":"            res_req._limit \u003d None"},{"line_number":539,"context_line":""},{"line_number":540,"context_line":"    # Don\u0027t limit allocation candidates when using affinity/anti-affinity."},{"line_number":541,"context_line":"    if \u0027scheduler_hints\u0027 in spec_obj and \u0027group\u0027 in spec_obj.scheduler_hints:"},{"line_number":542,"context_line":"        res_req._limit \u003d None"},{"line_number":543,"context_line":""},{"line_number":544,"context_line":"    return res_req"}],"source_content_type":"text/x-python","patch_set":1,"id":"dfbec78f_1907f284","line":541,"range":{"start_line":541,"start_character":42,"end_line":541,"end_character":47},"updated":"2019-05-09 14:58:46.000000000","message":"Note that the same_host and different_host hints would suffer from the same problem. Do we fix that now or in a follow up?\n\nAlso, for the \u0027group\u0027 hint you could just check spec_obj.instance_group right? But if you need to also check for same_host/different_host hints, then you might as well just do some kind of any() processing.","commit_id":"f0cad33d107340f991219bfa798455395115e87d"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"b23493c1bbaccff6553451790a758769cac48690","unresolved":false,"context_lines":[{"line_number":538,"context_line":"            res_req._limit \u003d None"},{"line_number":539,"context_line":""},{"line_number":540,"context_line":"    # Don\u0027t limit allocation candidates when using affinity/anti-affinity."},{"line_number":541,"context_line":"    if \u0027scheduler_hints\u0027 in spec_obj and \u0027group\u0027 in spec_obj.scheduler_hints:"},{"line_number":542,"context_line":"        res_req._limit \u003d None"},{"line_number":543,"context_line":""},{"line_number":544,"context_line":"    return res_req"}],"source_content_type":"text/x-python","patch_set":1,"id":"dfbec78f_7955ce1c","line":541,"range":{"start_line":541,"start_character":42,"end_line":541,"end_character":47},"in_reply_to":"dfbec78f_1907f284","updated":"2019-05-09 15:34:57.000000000","message":"\u003e Note that the same_host and different_host hints would suffer from\n \u003e the same problem. Do we fix that now or in a follow up?\n \u003e \n\nwell I could just update the bug to report these two filters also and then do this in the same fix, specially since we have to backport it all the way to queens ?\n\n \u003e Also, for the \u0027group\u0027 hint you could just check spec_obj.instance_group\n \u003e right? But if you need to also check for same_host/different_host\n \u003e hints, then you might as well just do some kind of any()\n \u003e processing.\n\ntrue that for the group hint I can aslo check the instance_group, I was just torn between the two and picked group instead.","commit_id":"f0cad33d107340f991219bfa798455395115e87d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"aa35fce14bdce6074bbc8c6ecf578e324a339278","unresolved":false,"context_lines":[{"line_number":539,"context_line":""},{"line_number":540,"context_line":"    # Don\u0027t limit allocation candidates when using affinity/anti-affinity."},{"line_number":541,"context_line":"    if \u0027scheduler_hints\u0027 in spec_obj and \u0027group\u0027 in spec_obj.scheduler_hints:"},{"line_number":542,"context_line":"        res_req._limit \u003d None"},{"line_number":543,"context_line":""},{"line_number":544,"context_line":"    return res_req"},{"line_number":545,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"dfbec78f_79738e4e","line":542,"updated":"2019-05-09 14:58:46.000000000","message":"OK so if we set in_tree above because the user is targeting a specific host/node, we should still be OK because placement wouldn\u0027t really care about the limit anyway since it should return a specific set of providers from the same tree (just one in most cases).","commit_id":"f0cad33d107340f991219bfa798455395115e87d"}],"nova/tests/unit/scheduler/test_utils.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"11a6fa03abce2a717448cce31d0cd15307e98be6","unresolved":false,"context_lines":[{"line_number":624,"context_line":"        )"},{"line_number":625,"context_line":"        self.assertEqual(expected_querystring, resources.to_querystring())"},{"line_number":626,"context_line":""},{"line_number":627,"context_line":"    def test_process_use_same_different_hosts(self):"},{"line_number":628,"context_line":"        flavor \u003d objects.Flavor(vcpus\u003d1,"},{"line_number":629,"context_line":"                                memory_mb\u003d1024,"},{"line_number":630,"context_line":"                                root_gb\u003d15,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfbec78f_60329d60","line":627,"range":{"start_line":627,"start_character":8,"end_line":627,"end_character":45},"updated":"2019-05-14 21:14:37.000000000","message":"This is 99% the same as the other test. Can\u0027t we just use ddt to have a single test with different hint keys?","commit_id":"34f6f664c35836c1fbd062c2220ab3e1d13b0240"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"eb6fc00e07ccbcdbd7b4acb3fc21467481fcd7be","unresolved":false,"context_lines":[{"line_number":624,"context_line":"        )"},{"line_number":625,"context_line":"        self.assertEqual(expected_querystring, resources.to_querystring())"},{"line_number":626,"context_line":""},{"line_number":627,"context_line":"    def test_process_use_same_different_hosts(self):"},{"line_number":628,"context_line":"        flavor \u003d objects.Flavor(vcpus\u003d1,"},{"line_number":629,"context_line":"                                memory_mb\u003d1024,"},{"line_number":630,"context_line":"                                root_gb\u003d15,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfbec78f_e02bed91","line":627,"range":{"start_line":627,"start_character":8,"end_line":627,"end_character":45},"in_reply_to":"dfbec78f_60329d60","updated":"2019-05-14 21:29:41.000000000","message":"Done","commit_id":"34f6f664c35836c1fbd062c2220ab3e1d13b0240"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"99b49c90e826e1172543fcbfa7b13a267125e7b5","unresolved":false,"context_lines":[{"line_number":612,"context_line":"                                ephemeral_gb\u003d0,"},{"line_number":613,"context_line":"                                swap\u003d0)"},{"line_number":614,"context_line":"        fake_spec \u003d objects.RequestSpec("},{"line_number":615,"context_line":"            flavor\u003dflavor, scheduler_hints\u003d{hint: [uuids.fake]})"},{"line_number":616,"context_line":"        expected \u003d utils.ResourceRequest()"},{"line_number":617,"context_line":"        expected._rg_by_id[None] \u003d objects.RequestGroup("},{"line_number":618,"context_line":"            use_same_provider\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":3,"id":"dfbec78f_fb440049","line":615,"updated":"2019-05-14 21:35:52.000000000","message":"We lost the case where multiple hints are specified at once. Considering the twiddliness of the `any` logic, that\u0027s not a great thing. Could ddt the whole scheduler hints dict to get that coverage.","commit_id":"caa4e810ce5fa51942e5e3e936fbdf149ebf55fd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"81b4a80640608b42cc738e6c27f573b1ad0c902b","unresolved":false,"context_lines":[{"line_number":612,"context_line":"                                ephemeral_gb\u003d0,"},{"line_number":613,"context_line":"                                swap\u003d0)"},{"line_number":614,"context_line":"        fake_spec \u003d objects.RequestSpec("},{"line_number":615,"context_line":"            flavor\u003dflavor, scheduler_hints\u003d{hint: [uuids.fake]})"},{"line_number":616,"context_line":"        expected \u003d utils.ResourceRequest()"},{"line_number":617,"context_line":"        expected._rg_by_id[None] \u003d objects.RequestGroup("},{"line_number":618,"context_line":"            use_same_provider\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":3,"id":"dfbec78f_5bf0acfd","line":615,"in_reply_to":"dfbec78f_fb440049","updated":"2019-05-14 21:46:16.000000000","message":"OK this didn\u0027t come up before (unless it was in IRC) but I\u0027ll add those permutations in the ddt list.","commit_id":"caa4e810ce5fa51942e5e3e936fbdf149ebf55fd"}]}
