)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"293f467e629e8f5b81552771f786b0509ff23faf","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The server group tests needed a bit of fix as now the previous tests sets"},{"line_number":14,"context_line":"only the ComputeFilter as enabled filter and scheduler.utils caches this"},{"line_number":15,"context_line":"information. So now we invalidate that cache as well."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I12de2e195022593ea2a3e2894f2c3b5226930d4f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f436f4f_ee23ba04","line":15,"range":{"start_line":15,"start_character":13,"end_line":15,"end_character":53},"updated":"2017-08-08 09:43:06.000000000","message":"but the server group tests were mocking the cache, right?","commit_id":"6a4f849d11b12ae9a4f633aa47428852296399b4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4eab93ff54a8deb1dfa2961950ccd620f5975936","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The server group tests needed a bit of fix as now the previous tests sets"},{"line_number":14,"context_line":"only the ComputeFilter as enabled filter and scheduler.utils caches this"},{"line_number":15,"context_line":"information. So now we invalidate that cache as well."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I12de2e195022593ea2a3e2894f2c3b5226930d4f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f436f4f_ce9116f4","line":15,"range":{"start_line":15,"start_character":13,"end_line":15,"end_character":53},"in_reply_to":"9f436f4f_ee23ba04","updated":"2017-08-08 09:47:57.000000000","message":"Yes, that is the only change in the server group test to mock (and therefore invalidate) the cache. Before this patch only the conf tests was mocking the test as that test wanted to remove filters but now every server group tests needs to mock it as other tests only set ComputeFilter","commit_id":"6a4f849d11b12ae9a4f633aa47428852296399b4"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"71fdf0f3a6512c4730292de0d56df4bde0b8475c","unresolved":false,"context_lines":[{"line_number":10,"context_line":"with placement api so this patch changes the functional test environment"},{"line_number":11,"context_line":"to use the FilterScheduler instead of the ChanceScheduler."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The amount of vcpu the SmallFakeDriver reports need to be bumped to 2"},{"line_number":14,"context_line":"as during resize to same host the filter scheduler doubles the"},{"line_number":15,"context_line":"allocation on the host. Simply relying on the 16.0 default allocation"},{"line_number":16,"context_line":"ratio does not work as the max_unit of the vcpu does not use the"},{"line_number":17,"context_line":"allocation ratio to avoid that a single server overallocates the cpu."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"The only change in unit test is"},{"line_number":20,"context_line":"test_create_instance_with_oversubscribed_cpu which also loads the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"9f436f4f_df63b9dc","line":17,"range":{"start_line":13,"start_character":0,"end_line":17,"end_character":69},"updated":"2017-08-21 13:33:38.000000000","message":"So this is a bug?","commit_id":"cc833359870d3962326c35094adea2f525ec8141"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d5ff5bbff9be736e39502a82a0df86a754875aa7","unresolved":false,"context_lines":[{"line_number":14,"context_line":"as during resize to same host the filter scheduler doubles the"},{"line_number":15,"context_line":"allocation on the host. Simply relying on the 16.0 default allocation"},{"line_number":16,"context_line":"ratio does not work as the max_unit of the vcpu does not use the"},{"line_number":17,"context_line":"allocation ratio to avoid that a single server overallocates the cpu."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"The only change in unit test is"},{"line_number":20,"context_line":"test_create_instance_with_oversubscribed_cpu which also loads the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"9f436f4f_9ff7715a","line":17,"in_reply_to":"9f436f4f_3fdc0545","updated":"2017-08-21 13:55:55.000000000","message":"Also described a bit here:\n\nhttps://docs.openstack.org/nova/latest/user/placement.html#pike-16-0-0","commit_id":"cc833359870d3962326c35094adea2f525ec8141"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"4538d4354a49d2c0b696f843958d5c057513d254","unresolved":false,"context_lines":[{"line_number":14,"context_line":"as during resize to same host the filter scheduler doubles the"},{"line_number":15,"context_line":"allocation on the host. Simply relying on the 16.0 default allocation"},{"line_number":16,"context_line":"ratio does not work as the max_unit of the vcpu does not use the"},{"line_number":17,"context_line":"allocation ratio to avoid that a single server overallocates the cpu."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"The only change in unit test is"},{"line_number":20,"context_line":"test_create_instance_with_oversubscribed_cpu which also loads the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"9f436f4f_3fdc0545","line":17,"in_reply_to":"9f436f4f_df63b9dc","updated":"2017-08-21 13:41:53.000000000","message":"No, it is the expected behaviour at this point. Ah, looks like gibi is answering this in irc. http://p.anticdent.org/2QTa","commit_id":"cc833359870d3962326c35094adea2f525ec8141"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"254ab2b2ed2b1c5771e816f5e55c5a53557da24a","unresolved":false,"context_lines":[{"line_number":10,"context_line":"with placement api so this patch changes the functional test environment"},{"line_number":11,"context_line":"to use the FilterScheduler instead of the ChanceScheduler."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The amount of vcpu the SmallFakeDriver reports need to be bumped to 2"},{"line_number":14,"context_line":"as during resize to same host the filter scheduler doubles the"},{"line_number":15,"context_line":"allocation on the host. Simply relying on the 16.0 default allocation"},{"line_number":16,"context_line":"ratio does not work as the max_unit of the vcpu does not use the"},{"line_number":17,"context_line":"allocation ratio to avoid that a single server overallocates the cpu."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"The only change in unit test is"},{"line_number":20,"context_line":"test_create_instance_with_oversubscribed_cpu which also loads the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"9f436f4f_bf1a3514","line":17,"range":{"start_line":13,"start_character":0,"end_line":17,"end_character":69},"in_reply_to":"9f436f4f_df63b9dc","updated":"2017-08-21 13:41:47.000000000","message":"no it is not. It was discussed on IRC and recorded the result in PatchSet 4 by Chris.","commit_id":"cc833359870d3962326c35094adea2f525ec8141"}],"nova/tests/functional/integrated_helpers.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"a531df9b5cafdaf9b43b63c77f7eeeeda396c905","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    # Override this in subclasses the tests there want to test the filter"},{"line_number":74,"context_line":"    # scheduler behavior"},{"line_number":75,"context_line":"    ENABLED_FILTERS \u003d [\u0027ComputeFilter\u0027]"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def setUp(self):"},{"line_number":78,"context_line":"        super(_IntegratedTestBase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_fd092a31","line":75,"updated":"2017-08-08 13:02:47.000000000","message":"Looks like there\u0027s lots more default enabled filters:\n\nhttps://github.com/openstack/nova/blob/master/nova/conf/scheduler.py#L247-L258\n\nI think we should be testing with the default set of filters.\n\nOtherwise we\u0027re just not getting the same coverage that we probably should be and we\u0027re probably masking bugs. With the possible exception of RetryFilter, since that\u0027s not a filter but a behavioral configuration :(","commit_id":"16a67d4981c912412de4f075adca2e332131b81b"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"62a7506e719b6bd3062341a530a28a65484b9c37","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    # Override this in subclasses the tests there want to test the filter"},{"line_number":74,"context_line":"    # scheduler behavior"},{"line_number":75,"context_line":"    ENABLED_FILTERS \u003d [\u0027ComputeFilter\u0027]"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def setUp(self):"},{"line_number":78,"context_line":"        super(_IntegratedTestBase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_a1670026","line":75,"in_reply_to":"9f436f4f_01924cf7","updated":"2017-08-08 13:27:47.000000000","message":"Sure, but all filters are optional, just Placement is needed ;)","commit_id":"16a67d4981c912412de4f075adca2e332131b81b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"841a8876a334a926dba45d8769b5d5f00b877c71","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    # Override this in subclasses the tests there want to test the filter"},{"line_number":74,"context_line":"    # scheduler behavior"},{"line_number":75,"context_line":"    ENABLED_FILTERS \u003d [\u0027ComputeFilter\u0027]"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def setUp(self):"},{"line_number":78,"context_line":"        super(_IntegratedTestBase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_4335ddd9","line":75,"in_reply_to":"9f436f4f_70b55cee","updated":"2017-08-09 09:26:27.000000000","message":"@Sylvain: As soon as I moved this patch to top of the patch that removes RamFilter and DiskFilter from the enabled_filters we can run the functional test with FilterScheduler without any real test modifications. Samples still needs to be changed due to the double allocation in the resize to same host. However that does not depend on the number of filters loaded","commit_id":"16a67d4981c912412de4f075adca2e332131b81b"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"f3b94a71382f35f9eb6f482b6e4f0f44ab123a86","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    # Override this in subclasses the tests there want to test the filter"},{"line_number":74,"context_line":"    # scheduler behavior"},{"line_number":75,"context_line":"    ENABLED_FILTERS \u003d [\u0027ComputeFilter\u0027]"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def setUp(self):"},{"line_number":78,"context_line":"        super(_IntegratedTestBase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_c4621217","line":75,"in_reply_to":"9f436f4f_a1670026","updated":"2017-08-08 14:00:16.000000000","message":"Since the idea with functional tests is to be...functional, I think we should turn on the default filters. The idea is to make the tests useful, not to get the tests to pass with the bare minimums.","commit_id":"16a67d4981c912412de4f075adca2e332131b81b"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3c5b90e3aa159f398f48d642d562efd50e2632c6","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    # Override this in subclasses the tests there want to test the filter"},{"line_number":74,"context_line":"    # scheduler behavior"},{"line_number":75,"context_line":"    ENABLED_FILTERS \u003d [\u0027ComputeFilter\u0027]"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def setUp(self):"},{"line_number":78,"context_line":"        super(_IntegratedTestBase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_01924cf7","line":75,"in_reply_to":"9f436f4f_c11324b8","updated":"2017-08-08 13:26:31.000000000","message":"Because that\u0027s how Nova is installed by default. :)","commit_id":"16a67d4981c912412de4f075adca2e332131b81b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"2c6808fc90a96ed97bf8c6ac2ec0e214951fbd73","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    # Override this in subclasses the tests there want to test the filter"},{"line_number":74,"context_line":"    # scheduler behavior"},{"line_number":75,"context_line":"    ENABLED_FILTERS \u003d [\u0027ComputeFilter\u0027]"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def setUp(self):"},{"line_number":78,"context_line":"        super(_IntegratedTestBase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_ca1339b8","line":75,"in_reply_to":"9f436f4f_c4621217","updated":"2017-08-08 14:56:49.000000000","message":"I\u0027m fighting with DiskFilter locally as that is still in the default of the enabled_filters conf. It is somehow sees 0 disk. http://paste.openstack.org/show/617796/\nI will need to get back to this tomorrow","commit_id":"16a67d4981c912412de4f075adca2e332131b81b"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"bd90eeba75963ddf3ec45a5ce5fa96a597a60d62","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    # Override this in subclasses the tests there want to test the filter"},{"line_number":74,"context_line":"    # scheduler behavior"},{"line_number":75,"context_line":"    ENABLED_FILTERS \u003d [\u0027ComputeFilter\u0027]"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def setUp(self):"},{"line_number":78,"context_line":"        super(_IntegratedTestBase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_70b55cee","line":75,"in_reply_to":"9f436f4f_ca1339b8","updated":"2017-08-08 15:55:48.000000000","message":"Eventually, I agree with Chris and Jay about using all the default filters for functional testing. The real problem I see here is that I think adding all the filters *now* would pop up problems with existing tests needing to be updated that would create a lot of modifications.\n\nInstead of that, I prefer to just use the FilterScheduler with only one ComputeFilter so it\u0027s just needing a few modifications and then just adding more follow-ups if needed for the other filters (and finally just cut ENABLED_FILTERS to not asking specific filters or a specific driver... just asking to run the scheduler for a test, that\u0027s it).","commit_id":"16a67d4981c912412de4f075adca2e332131b81b"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2537dd53fd301c2a8cb259251d393c9c108abcbc","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    # Override this in subclasses the tests there want to test the filter"},{"line_number":74,"context_line":"    # scheduler behavior"},{"line_number":75,"context_line":"    ENABLED_FILTERS \u003d [\u0027ComputeFilter\u0027]"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def setUp(self):"},{"line_number":78,"context_line":"        super(_IntegratedTestBase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_c11324b8","line":75,"in_reply_to":"9f436f4f_fd092a31","updated":"2017-08-08 13:23:26.000000000","message":"Well, I\u0027m sure we should verify all the filters for only one compute node honestly. Like I said in IRC, if you just want to get an instance when you have one node, why should we check all the filters ?","commit_id":"16a67d4981c912412de4f075adca2e332131b81b"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"a531df9b5cafdaf9b43b63c77f7eeeeda396c905","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        self.useFixture(cast_as_call.CastAsCall(self))"},{"line_number":86,"context_line":"        self.useFixture(nova_fixtures.PlacementFixture())"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        self._setup_services()"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        self.addCleanup(nova.tests.unit.image.fake.FakeImageService_reset)"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_41405436","line":88,"updated":"2017-08-08 13:02:47.000000000","message":"I presume this move was necessary in order to ensure placement was set up before scheduler?","commit_id":"16a67d4981c912412de4f075adca2e332131b81b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"2c6808fc90a96ed97bf8c6ac2ec0e214951fbd73","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        self.useFixture(cast_as_call.CastAsCall(self))"},{"line_number":86,"context_line":"        self.useFixture(nova_fixtures.PlacementFixture())"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        self._setup_services()"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        self.addCleanup(nova.tests.unit.image.fake.FakeImageService_reset)"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_2100b034","line":88,"in_reply_to":"9f436f4f_41405436","updated":"2017-08-08 14:56:49.000000000","message":"Exactly. We need this as the periodic tasks are not enabled in the func test by default so we have to rely on the startup of the compute to post the inventory to placement","commit_id":"16a67d4981c912412de4f075adca2e332131b81b"}],"nova/tests/functional/notification_sample_tests/notification_sample_base.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"a531df9b5cafdaf9b43b63c77f7eeeeda396c905","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        self.start_service(\u0027conductor\u0027)"},{"line_number":87,"context_line":"        self.flags(enabled_filters\u003d[\u0027ComputeFilter\u0027],"},{"line_number":88,"context_line":"                   group\u003d\u0027filter_scheduler\u0027)"},{"line_number":89,"context_line":"        self.flags"},{"line_number":90,"context_line":"        self.start_service(\u0027scheduler\u0027)"},{"line_number":91,"context_line":"        self.start_service(\u0027network\u0027, manager\u003dCONF.network_manager)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_e1462850","line":88,"updated":"2017-08-08 13:02:47.000000000","message":"same comment here about the enabled filters..","commit_id":"16a67d4981c912412de4f075adca2e332131b81b"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"a531df9b5cafdaf9b43b63c77f7eeeeda396c905","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.start_service(\u0027conductor\u0027)"},{"line_number":87,"context_line":"        self.flags(enabled_filters\u003d[\u0027ComputeFilter\u0027],"},{"line_number":88,"context_line":"                   group\u003d\u0027filter_scheduler\u0027)"},{"line_number":89,"context_line":"        self.flags"},{"line_number":90,"context_line":"        self.start_service(\u0027scheduler\u0027)"},{"line_number":91,"context_line":"        self.start_service(\u0027network\u0027, manager\u003dCONF.network_manager)"},{"line_number":92,"context_line":"        self.compute \u003d self.start_service(\u0027compute\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_014a4c54","line":89,"updated":"2017-08-08 13:02:47.000000000","message":"oops :)","commit_id":"16a67d4981c912412de4f075adca2e332131b81b"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2537dd53fd301c2a8cb259251d393c9c108abcbc","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.start_service(\u0027conductor\u0027)"},{"line_number":87,"context_line":"        self.flags(enabled_filters\u003d[\u0027ComputeFilter\u0027],"},{"line_number":88,"context_line":"                   group\u003d\u0027filter_scheduler\u0027)"},{"line_number":89,"context_line":"        self.flags"},{"line_number":90,"context_line":"        self.start_service(\u0027scheduler\u0027)"},{"line_number":91,"context_line":"        self.start_service(\u0027network\u0027, manager\u003dCONF.network_manager)"},{"line_number":92,"context_line":"        self.compute \u003d self.start_service(\u0027compute\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_e14bc8ad","line":89,"in_reply_to":"9f436f4f_014a4c54","updated":"2017-08-08 13:23:26.000000000","message":"What Jay said :p","commit_id":"16a67d4981c912412de4f075adca2e332131b81b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"2c6808fc90a96ed97bf8c6ac2ec0e214951fbd73","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.start_service(\u0027conductor\u0027)"},{"line_number":87,"context_line":"        self.flags(enabled_filters\u003d[\u0027ComputeFilter\u0027],"},{"line_number":88,"context_line":"                   group\u003d\u0027filter_scheduler\u0027)"},{"line_number":89,"context_line":"        self.flags"},{"line_number":90,"context_line":"        self.start_service(\u0027scheduler\u0027)"},{"line_number":91,"context_line":"        self.start_service(\u0027network\u0027, manager\u003dCONF.network_manager)"},{"line_number":92,"context_line":"        self.compute \u003d self.start_service(\u0027compute\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_2400be34","line":89,"in_reply_to":"9f436f4f_e14bc8ad","updated":"2017-08-08 14:56:49.000000000","message":"I blame the lack of caffeine","commit_id":"16a67d4981c912412de4f075adca2e332131b81b"}],"nova/tests/functional/regressions/test_bug_1595962.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"50362d335200ba903666469b41714d67db754901","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        self.flags(host\u003d\"test_compute1\")"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        self.start_service(\u0027conductor\u0027)"},{"line_number":70,"context_line":"        self.flags(enabled_filters\u003d[\u0027ComputeFilter\u0027, \u0027RetryFilter\u0027],"},{"line_number":71,"context_line":"                   group\u003d\u0027filter_scheduler\u0027)"},{"line_number":72,"context_line":"        self.start_service(\u0027scheduler\u0027)"},{"line_number":73,"context_line":"        self.compute \u003d self.start_service(\u0027compute\u0027, host\u003d\u0027test_compute1\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf3e73b7_46e1729a","line":70,"range":{"start_line":70,"start_character":53,"end_line":70,"end_character":66},"updated":"2017-08-07 15:57:34.000000000","message":"we even don\u0027t need to run this filter if we are single-host","commit_id":"a98413a1bf83f0bee0e2ec72741d515cc9bb7c97"}],"nova/tests/functional/test_server_group.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"293f467e629e8f5b81552771f786b0509ff23faf","unresolved":false,"context_lines":[{"line_number":496,"context_line":"    # Load only anti-affinity filter so affinity will be missing"},{"line_number":497,"context_line":"    _enabled_filters \u003d [\u0027ServerGroupAntiAffinityFilter\u0027]"},{"line_number":498,"context_line":""},{"line_number":499,"context_line":"    @mock.patch(\u0027nova.scheduler.utils._SUPPORTS_AFFINITY\u0027, None)"},{"line_number":500,"context_line":"    def test_affinity_no_filter(self):"},{"line_number":501,"context_line":"        created_group \u003d self.api.post_server_groups(self.affinity)"},{"line_number":502,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_8e61ce3c","side":"PARENT","line":499,"updated":"2017-08-08 09:43:06.000000000","message":"that cache was already mocked FWIW.","commit_id":"f742baa4c3bd54995237387e5f4ef0710977ebe6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4eab93ff54a8deb1dfa2961950ccd620f5975936","unresolved":false,"context_lines":[{"line_number":496,"context_line":"    # Load only anti-affinity filter so affinity will be missing"},{"line_number":497,"context_line":"    _enabled_filters \u003d [\u0027ServerGroupAntiAffinityFilter\u0027]"},{"line_number":498,"context_line":""},{"line_number":499,"context_line":"    @mock.patch(\u0027nova.scheduler.utils._SUPPORTS_AFFINITY\u0027, None)"},{"line_number":500,"context_line":"    def test_affinity_no_filter(self):"},{"line_number":501,"context_line":"        created_group \u003d self.api.post_server_groups(self.affinity)"},{"line_number":502,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_aea7f24f","side":"PARENT","line":499,"in_reply_to":"9f436f4f_8e61ce3c","updated":"2017-08-08 09:47:57.000000000","message":"But only for the Conf test","commit_id":"f742baa4c3bd54995237387e5f4ef0710977ebe6"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"293f467e629e8f5b81552771f786b0509ff23faf","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        self.stub_out(\u0027nova.scheduler.utils._SUPPORTS_ANTI_AFFINITY\u0027, None)"},{"line_number":98,"context_line":"        self.stub_out(\u0027nova.scheduler.utils._SUPPORTS_SOFT_AFFINITY\u0027, None)"},{"line_number":99,"context_line":"        self.stub_out(\u0027nova.scheduler.utils._SUPPORTS_SOFT_ANTI_AFFINITY\u0027,"},{"line_number":100,"context_line":"                      None)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def _boot_a_server_to_group(self, group,"},{"line_number":103,"context_line":"                                expected_status\u003d\u0027ACTIVE\u0027, flavor\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_2ed542ba","line":100,"updated":"2017-08-08 09:43:06.000000000","message":"AFAICT, that cache was already mocked so I don\u0027t understand why you need to invalidate it on a setUp basis. I suspect it\u0027s maybe because some tests in that module weren\u0027t mocking?","commit_id":"6a4f849d11b12ae9a4f633aa47428852296399b4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4eab93ff54a8deb1dfa2961950ccd620f5975936","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        self.stub_out(\u0027nova.scheduler.utils._SUPPORTS_ANTI_AFFINITY\u0027, None)"},{"line_number":98,"context_line":"        self.stub_out(\u0027nova.scheduler.utils._SUPPORTS_SOFT_AFFINITY\u0027, None)"},{"line_number":99,"context_line":"        self.stub_out(\u0027nova.scheduler.utils._SUPPORTS_SOFT_ANTI_AFFINITY\u0027,"},{"line_number":100,"context_line":"                      None)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def _boot_a_server_to_group(self, group,"},{"line_number":103,"context_line":"                                expected_status\u003d\u0027ACTIVE\u0027, flavor\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_ceaa3618","line":100,"in_reply_to":"9f436f4f_2ed542ba","updated":"2017-08-08 09:47:57.000000000","message":"only the Conf tests are mocked the cache. But now we need to mock it for every server group test. Before this patch the affinity filters was configured by default but now only the ComputeFilter is configured by default","commit_id":"6a4f849d11b12ae9a4f633aa47428852296399b4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"25263d2d182329553959a3cc6c13407036a1c015","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        self.stub_out(\u0027nova.scheduler.utils._SUPPORTS_ANTI_AFFINITY\u0027, None)"},{"line_number":98,"context_line":"        self.stub_out(\u0027nova.scheduler.utils._SUPPORTS_SOFT_AFFINITY\u0027, None)"},{"line_number":99,"context_line":"        self.stub_out(\u0027nova.scheduler.utils._SUPPORTS_SOFT_ANTI_AFFINITY\u0027,"},{"line_number":100,"context_line":"                      None)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def _boot_a_server_to_group(self, group,"},{"line_number":103,"context_line":"                                expected_status\u003d\u0027ACTIVE\u0027, flavor\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_d149b760","line":100,"in_reply_to":"9f436f4f_ceaa3618","updated":"2017-08-08 09:53:47.000000000","message":"I see, you could clarify that in the commit msg IMHO.","commit_id":"6a4f849d11b12ae9a4f633aa47428852296399b4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"72ca889b38a408c1009031bdcb4fc90fb360c92d","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        self.stub_out(\u0027nova.scheduler.utils._SUPPORTS_ANTI_AFFINITY\u0027, None)"},{"line_number":98,"context_line":"        self.stub_out(\u0027nova.scheduler.utils._SUPPORTS_SOFT_AFFINITY\u0027, None)"},{"line_number":99,"context_line":"        self.stub_out(\u0027nova.scheduler.utils._SUPPORTS_SOFT_ANTI_AFFINITY\u0027,"},{"line_number":100,"context_line":"                      None)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def _boot_a_server_to_group(self, group,"},{"line_number":103,"context_line":"                                expected_status\u003d\u0027ACTIVE\u0027, flavor\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_c750d9d7","line":100,"in_reply_to":"9f436f4f_d149b760","updated":"2017-08-08 11:34:51.000000000","message":"Done","commit_id":"6a4f849d11b12ae9a4f633aa47428852296399b4"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"a531df9b5cafdaf9b43b63c77f7eeeeda396c905","unresolved":false,"context_lines":[{"line_number":1700,"context_line":""},{"line_number":1701,"context_line":"        # get total memory as reported by virt driver:"},{"line_number":1702,"context_line":"        resources \u003d self.compute.driver.get_available_resource(NODENAME)"},{"line_number":1703,"context_line":"        self.assertEqual(2, resources[\u0027vcpus\u0027])"},{"line_number":1704,"context_line":""},{"line_number":1705,"context_line":"        # build an instance, specifying an amount of memory that exceeds"},{"line_number":1706,"context_line":"        # total_mem_mb, but is less than the oversubscribed limit:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_a19f00b3","line":1703,"updated":"2017-08-08 13:02:47.000000000","message":"was this just missed from that earlier patch with the resize bug?","commit_id":"16a67d4981c912412de4f075adca2e332131b81b"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2537dd53fd301c2a8cb259251d393c9c108abcbc","unresolved":false,"context_lines":[{"line_number":1700,"context_line":""},{"line_number":1701,"context_line":"        # get total memory as reported by virt driver:"},{"line_number":1702,"context_line":"        resources \u003d self.compute.driver.get_available_resource(NODENAME)"},{"line_number":1703,"context_line":"        self.assertEqual(2, resources[\u0027vcpus\u0027])"},{"line_number":1704,"context_line":""},{"line_number":1705,"context_line":"        # build an instance, specifying an amount of memory that exceeds"},{"line_number":1706,"context_line":"        # total_mem_mb, but is less than the oversubscribed limit:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_a1cb801c","line":1703,"in_reply_to":"9f436f4f_a19f00b3","updated":"2017-08-08 13:23:26.000000000","message":"+1","commit_id":"16a67d4981c912412de4f075adca2e332131b81b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"2c6808fc90a96ed97bf8c6ac2ec0e214951fbd73","unresolved":false,"context_lines":[{"line_number":1700,"context_line":""},{"line_number":1701,"context_line":"        # get total memory as reported by virt driver:"},{"line_number":1702,"context_line":"        resources \u003d self.compute.driver.get_available_resource(NODENAME)"},{"line_number":1703,"context_line":"        self.assertEqual(2, resources[\u0027vcpus\u0027])"},{"line_number":1704,"context_line":""},{"line_number":1705,"context_line":"        # build an instance, specifying an amount of memory that exceeds"},{"line_number":1706,"context_line":"        # total_mem_mb, but is less than the oversubscribed limit:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_c1620417","line":1703,"in_reply_to":"9f436f4f_a1cb801c","updated":"2017-08-08 14:56:49.000000000","message":"that is weird I don\u0027t remember making this change and it is not needed based on the test results","commit_id":"16a67d4981c912412de4f075adca2e332131b81b"}],"nova/virt/fake.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"293f467e629e8f5b81552771f786b0509ff23faf","unresolved":false,"context_lines":[{"line_number":596,"context_line":"    # instead of requiring new samples every time those"},{"line_number":597,"context_line":"    # values are adjusted allow them to be overwritten here."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"    vcpus \u003d 2"},{"line_number":600,"context_line":"    memory_mb \u003d 8192"},{"line_number":601,"context_line":"    local_gb \u003d 1028"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_eef5fa84","line":599,"updated":"2017-08-08 09:43:06.000000000","message":"Why do you need to update that resource attribute ? It then needs to update a lot of API samples for an unknown reason not left in the commit msg and when looking at the other modifications, can\u0027t find a good reason for that.","commit_id":"6a4f849d11b12ae9a4f633aa47428852296399b4"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"007b20aa1f64e52483fbf7e39ffd6a47dc698e4d","unresolved":false,"context_lines":[{"line_number":596,"context_line":"    # instead of requiring new samples every time those"},{"line_number":597,"context_line":"    # values are adjusted allow them to be overwritten here."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"    vcpus \u003d 2"},{"line_number":600,"context_line":"    memory_mb \u003d 8192"},{"line_number":601,"context_line":"    local_gb \u003d 1028"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_a13b809a","line":599,"in_reply_to":"9f436f4f_3d39f240","updated":"2017-08-08 13:06:33.000000000","message":"The limits part of the resource request in the legacy resource tracking system and the new max_unit/min_unit/step_size part of the new placement resource tracking system  are both meant to constrain the guest\u0027s usage of an over-allocated system so that no guest can ever consume more vCPU than pCPUs on the box. This is why the limits in the legacy system \u003d\u003d the max pCPUs on the box and the max_unit value for VCPU resources in the new placement system is the same.","commit_id":"6a4f849d11b12ae9a4f633aa47428852296399b4"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"d4fa1b269ecac43e7c4890a7cb459212f56c8e53","unresolved":false,"context_lines":[{"line_number":596,"context_line":"    # instead of requiring new samples every time those"},{"line_number":597,"context_line":"    # values are adjusted allow them to be overwritten here."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"    vcpus \u003d 2"},{"line_number":600,"context_line":"    memory_mb \u003d 8192"},{"line_number":601,"context_line":"    local_gb \u003d 1028"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_fdd6cac3","line":599,"in_reply_to":"9f436f4f_3d39f240","updated":"2017-08-08 12:49:52.000000000","message":"bauzas and I talked about this at length in irc: http://p.anticdent.org/15Hv\n\nit comes down to contention","commit_id":"6a4f849d11b12ae9a4f633aa47428852296399b4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"ef533cf49d9067879b75349bce759a8d03fa0d61","unresolved":false,"context_lines":[{"line_number":596,"context_line":"    # instead of requiring new samples every time those"},{"line_number":597,"context_line":"    # values are adjusted allow them to be overwritten here."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"    vcpus \u003d 2"},{"line_number":600,"context_line":"    memory_mb \u003d 8192"},{"line_number":601,"context_line":"    local_gb \u003d 1028"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_b169938c","line":599,"in_reply_to":"9f436f4f_8e4b0e86","updated":"2017-08-08 10:01:10.000000000","message":"Well, CPU allocation ratio is by default 16.0. So even if you only have 1 pCPU, it will give you at least 16 vCPUs (yeah I know, crazy) so probably enough for a very small flavor to be doubled in terms of resource usage.\n\nThe real problem I see with that now is that you introduce a major change in all our API samples for just a small issue with a specific resize test. I\u0027d suggest you to try circunvene the resize test to make sure it uses CPU ratios.","commit_id":"6a4f849d11b12ae9a4f633aa47428852296399b4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"72ca889b38a408c1009031bdcb4fc90fb360c92d","unresolved":false,"context_lines":[{"line_number":596,"context_line":"    # instead of requiring new samples every time those"},{"line_number":597,"context_line":"    # values are adjusted allow them to be overwritten here."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"    vcpus \u003d 2"},{"line_number":600,"context_line":"    memory_mb \u003d 8192"},{"line_number":601,"context_line":"    local_gb \u003d 1028"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_c7d699f2","line":599,"in_reply_to":"9f436f4f_b169938c","updated":"2017-08-08 11:34:51.000000000","message":"Based on Chris comment, allocation ratio cannot help us as max_unit is set to the number of pcpus be design","commit_id":"6a4f849d11b12ae9a4f633aa47428852296399b4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"192e384c50b21db7d7d44bc7df4a35c42d168595","unresolved":false,"context_lines":[{"line_number":596,"context_line":"    # instead of requiring new samples every time those"},{"line_number":597,"context_line":"    # values are adjusted allow them to be overwritten here."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"    vcpus \u003d 2"},{"line_number":600,"context_line":"    memory_mb \u003d 8192"},{"line_number":601,"context_line":"    local_gb \u003d 1028"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_3d39f240","line":599,"in_reply_to":"9f436f4f_c7d699f2","updated":"2017-08-08 12:43:09.000000000","message":"I still don\u0027t get why we can\u0027t request a flavor of 2vCPUs on a single host that is running only one pCPU.\nIn other words, doubling the usage is fine by me if we respect the maximum size the host can fit, the maximum host being expressed in terms of virtual resources, not physical.","commit_id":"6a4f849d11b12ae9a4f633aa47428852296399b4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4eab93ff54a8deb1dfa2961950ccd620f5975936","unresolved":false,"context_lines":[{"line_number":596,"context_line":"    # instead of requiring new samples every time those"},{"line_number":597,"context_line":"    # values are adjusted allow them to be overwritten here."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"    vcpus \u003d 2"},{"line_number":600,"context_line":"    memory_mb \u003d 8192"},{"line_number":601,"context_line":"    local_gb \u003d 1028"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_8e4b0e86","line":599,"in_reply_to":"9f436f4f_eef5fa84","updated":"2017-08-08 09:47:57.000000000","message":"There is resize to same host in api sample tests and the current scheduler double up the claim during resize to same host. So the minimum vcpu to resize to same host is 2","commit_id":"6a4f849d11b12ae9a4f633aa47428852296399b4"}]}
