)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"b8f8dfa721e6eb14916640b59428b87957c199cc","unresolved":true,"context_lines":[{"line_number":13,"context_line":"I also removed old mocking at test_driver.py in favor of the fixture from above."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Partial-Bug: #2008102"},{"line_number":16,"context_line":"Resolves: rhbz#2118968"},{"line_number":17,"context_line":"Change-Id: I99b57c27c8a4425389bec2b7f05af660bab85610"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"245c2be7_103810a8","line":16,"updated":"2023-04-18 17:20:04.000000000","message":"Do not link downstream trackers upstream please.","commit_id":"733515a9cfa0146cc7f6882d6d311aabb1d80f92"},{"author":{"_account_id":34443,"name":"Jorge San Emeterio","display_name":"jsanemet","email":"jsanemet@redhat.com","username":"jsanemet"},"change_message_id":"d67f10fb81aeb9ee5c07ccf542ddf2104c549d45","unresolved":true,"context_lines":[{"line_number":13,"context_line":"I also removed old mocking at test_driver.py in favor of the fixture from above."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Partial-Bug: #2008102"},{"line_number":16,"context_line":"Resolves: rhbz#2118968"},{"line_number":17,"context_line":"Change-Id: I99b57c27c8a4425389bec2b7f05af660bab85610"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"3d612396_bac39df5","line":16,"in_reply_to":"245c2be7_103810a8","updated":"2023-04-24 15:08:15.000000000","message":"Fixed.","commit_id":"733515a9cfa0146cc7f6882d6d311aabb1d80f92"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"38698d80fcfc8183b518d41e2b15a09ee215e8a2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"65c36d2f_4a11d467","updated":"2023-02-13 17:05:55.000000000","message":"Oh, and I\u0027ve already mentioned this to you but a Tempest test here with a real cgroups would really increase confidence here.","commit_id":"8dbc0b222c77d6a2bed440791d79930eb091f974"},{"author":{"_account_id":34443,"name":"Jorge San Emeterio","display_name":"jsanemet","email":"jsanemet@redhat.com","username":"jsanemet"},"change_message_id":"3524014fb20971b3a1730444dcec9728c7512cd0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"c7de2684_5ba1fdb9","in_reply_to":"65c36d2f_4a11d467","updated":"2023-02-16 14:10:32.000000000","message":"Sure, working on it here: https://review.opendev.org/c/openstack/tempest/+/873706","commit_id":"8dbc0b222c77d6a2bed440791d79930eb091f974"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"fa2408af1859f1b2a21375d4f3c62d5280f2b277","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"14c4d861_6c9bb8a7","updated":"2023-02-28 16:52:35.000000000","message":"This is pretty good as is, I just left small nits and comments inline.\n\nI also wonder if we can\u0027t simplify using the new fixture a bit by having it accept the return values as optional args? Something like:\n\n  class CGroupsFixture(fixtures.Fixture):\n  \n    def __init__(self, has_v1\u003dNone, has_v2\u003dNone):\n        \u003ccall to super\u003e\n        self.has_v1 \u003d has_v1\n        self.has_v2 \u003d has_2\n       \n    def setUp(self):\n        super().setUp()                                                                                               \n        self.cpuv1 \u003d self.useFixture(fixtures.MockPatch(\n            \u0027nova.virt.libvirt.host.Host._has_cgroupsv1_cpu_controller\u0027)).mock\n        self.cpuv2 \u003d self.useFixture(fixtures.MockPatch(\n            \u0027nova.virt.libvirt.host.Host._has_cgroupsv2_cpu_controller\u0027)).mock\n        if self.has_v1 is not None:\n           self.cpuv1.return_value \u003d self.has_v1\n        \u003csame for v2\u003e\n        \nAnd then it can be used with a single line:\n\n    self.useFixture(nova_fixtures.CGroupsFixture(True, False))\n    \n","commit_id":"dcd172d97c2ce00e81344f0cec1c3db0c46fd057"},{"author":{"_account_id":34443,"name":"Jorge San Emeterio","display_name":"jsanemet","email":"jsanemet@redhat.com","username":"jsanemet"},"change_message_id":"37ad34c777c00106fa72ddcd514622a834f04ed2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"0d94ae02_4bb31f67","updated":"2023-02-23 09:48:19.000000000","message":"recheck see if failing tests are deterministic","commit_id":"dcd172d97c2ce00e81344f0cec1c3db0c46fd057"},{"author":{"_account_id":34443,"name":"Jorge San Emeterio","display_name":"jsanemet","email":"jsanemet@redhat.com","username":"jsanemet"},"change_message_id":"9705deff1d43ad6583820ac3c458df107d74f84c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"01372218_63fa8c15","updated":"2023-03-28 08:14:38.000000000","message":"I had the bug ticket for this fix marked as a blocker, is there any way we could move its reviews forward?","commit_id":"e7eaa4395c47d59d104d7db94db4b4410300bbde"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9cf86313b178c4c498859fe62c14fb3e618865c7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"13a1c1d3_56cdc017","in_reply_to":"01372218_63fa8c15","updated":"2023-03-28 10:48:19.000000000","message":"you started working on this during the upstream feature/RC code freeze where it could not be merged as it was not a release regression.\n\nwe exitied that freeze last week and we just have not reviewd it yet.\nso until monday last week there was not operturnity for thsi too merge\n\nThe best way to get reviews on this is to ask on irc or leave comments like this\nirc is the perfered way","commit_id":"e7eaa4395c47d59d104d7db94db4b4410300bbde"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"abd626222e4e33a5475ddf18b7960ac96eba6f78","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"54e56f61_aafcd199","updated":"2023-04-18 17:19:36.000000000","message":"recheck pep8 errors in files not touched by this patch","commit_id":"733515a9cfa0146cc7f6882d6d311aabb1d80f92"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a8c01ba93876deca24a832344c3548b059754842","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"8633cb51_ab7f61e6","updated":"2023-05-03 22:00:34.000000000","message":"I dunno why pep8 isn\u0027t catching the space around the operator thing.","commit_id":"b9c8ac189b4877e6a409859d94fe5b682ccdadf2"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f174dc39906c53f3a1587547dd32b9ba663e1c0c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"efe999cc_5ab923eb","updated":"2023-05-03 21:46:02.000000000","message":"recheck ssh timeout","commit_id":"b9c8ac189b4877e6a409859d94fe5b682ccdadf2"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"ae8777ff954dda8838f8a90b659e0ea768bbf91f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"13b259c0_b8c0ea7e","updated":"2023-05-02 17:21:07.000000000","message":"recheck tooz and ceph","commit_id":"b9c8ac189b4877e6a409859d94fe5b682ccdadf2"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e4c5924b034e50002d99e266b27a5d729c413df6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"410d096a_ef184bae","updated":"2023-05-03 20:56:58.000000000","message":"recheck volume detach timeout","commit_id":"b9c8ac189b4877e6a409859d94fe5b682ccdadf2"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9db98f5c1ae424bb312ffb82f2e25a9907c50279","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"7b4561d1_cc1e79d5","updated":"2023-05-03 22:04:26.000000000","message":"I just fixed my style nit. Seems good to me otherwise.","commit_id":"973ff4fc1a0586937d13f2b39e517422713b1003"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b718e78cb7c58f62903476b6be31037a0f085f69","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"295303ef_9e85ae6b","updated":"2023-05-04 08:17:01.000000000","message":"Looks good. Thanks for adding a separate fixture.","commit_id":"973ff4fc1a0586937d13f2b39e517422713b1003"}],"nova/tests/fixtures/nova.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"d09bf433d16f29b43cdeee69e27349b69b7bd6f2","unresolved":true,"context_lines":[{"line_number":1318,"context_line":"            nova.privsep.sys_admin_pctxt, \u0027client_mode\u0027, False))"},{"line_number":1319,"context_line":""},{"line_number":1320,"context_line":""},{"line_number":1321,"context_line":"class CGroupsFixture(fixtures.Fixture):"},{"line_number":1322,"context_line":"    def setUp(self):"},{"line_number":1323,"context_line":"        super().setUp()"},{"line_number":1324,"context_line":"        self.useFixture(fixtures.MockPatch("}],"source_content_type":"text/x-python","patch_set":6,"id":"e18f65f6_03cdcdd7","line":1321,"updated":"2023-02-13 17:05:20.000000000","message":"If you\u0027re using this new fixture (which is a good idea, btw, and should remain and be changed to reflect the inlining suggestion from my other comment), we would ideally also get rid of all the places where we currently mock out is_cpu_control_policy_capable() entirely in unit tests.","commit_id":"8dbc0b222c77d6a2bed440791d79930eb091f974"},{"author":{"_account_id":34443,"name":"Jorge San Emeterio","display_name":"jsanemet","email":"jsanemet@redhat.com","username":"jsanemet"},"change_message_id":"3524014fb20971b3a1730444dcec9728c7512cd0","unresolved":true,"context_lines":[{"line_number":1318,"context_line":"            nova.privsep.sys_admin_pctxt, \u0027client_mode\u0027, False))"},{"line_number":1319,"context_line":""},{"line_number":1320,"context_line":""},{"line_number":1321,"context_line":"class CGroupsFixture(fixtures.Fixture):"},{"line_number":1322,"context_line":"    def setUp(self):"},{"line_number":1323,"context_line":"        super().setUp()"},{"line_number":1324,"context_line":"        self.useFixture(fixtures.MockPatch("}],"source_content_type":"text/x-python","patch_set":6,"id":"8750b8de_8445f74b","line":1321,"in_reply_to":"e18f65f6_03cdcdd7","updated":"2023-02-16 14:10:32.000000000","message":"I will take a look, although I expect it will be easier to leave it as is if the return value of the function is mocked too.","commit_id":"8dbc0b222c77d6a2bed440791d79930eb091f974"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"fa2408af1859f1b2a21375d4f3c62d5280f2b277","unresolved":true,"context_lines":[{"line_number":1321,"context_line":"class CGroupsFixture(fixtures.Fixture):"},{"line_number":1322,"context_line":"    def setUp(self):"},{"line_number":1323,"context_line":"        super().setUp()"},{"line_number":1324,"context_line":"        self.cpuv1 \u003d self.useFixture(fixtures.MockPatch("},{"line_number":1325,"context_line":"            \u0027nova.virt.libvirt.host.Host._has_cgroupsv1_cpu_controller\u0027)).mock"},{"line_number":1326,"context_line":"        self.cpuv2 \u003d self.useFixture(fixtures.MockPatch("},{"line_number":1327,"context_line":"            \u0027nova.virt.libvirt.host.Host._has_cgroupsv2_cpu_controller\u0027)).mock"}],"source_content_type":"text/x-python","patch_set":10,"id":"d525fbed_e2e659e0","line":1324,"updated":"2023-02-28 16:52:35.000000000","message":"Maybe add a comment here explaining that tests need to set return_value according to what they need, if they need one.","commit_id":"dcd172d97c2ce00e81344f0cec1c3db0c46fd057"},{"author":{"_account_id":34443,"name":"Jorge San Emeterio","display_name":"jsanemet","email":"jsanemet@redhat.com","username":"jsanemet"},"change_message_id":"4f5aa0bc1cc29e269656a0792218874abe30873f","unresolved":true,"context_lines":[{"line_number":1321,"context_line":"class CGroupsFixture(fixtures.Fixture):"},{"line_number":1322,"context_line":"    def setUp(self):"},{"line_number":1323,"context_line":"        super().setUp()"},{"line_number":1324,"context_line":"        self.cpuv1 \u003d self.useFixture(fixtures.MockPatch("},{"line_number":1325,"context_line":"            \u0027nova.virt.libvirt.host.Host._has_cgroupsv1_cpu_controller\u0027)).mock"},{"line_number":1326,"context_line":"        self.cpuv2 \u003d self.useFixture(fixtures.MockPatch("},{"line_number":1327,"context_line":"            \u0027nova.virt.libvirt.host.Host._has_cgroupsv2_cpu_controller\u0027)).mock"}],"source_content_type":"text/x-python","patch_set":10,"id":"f724db1f_de8f21ec","line":1324,"in_reply_to":"d525fbed_e2e659e0","updated":"2023-03-02 08:52:14.000000000","message":"I went ahead and documented the fixture itself to make things clearer.","commit_id":"dcd172d97c2ce00e81344f0cec1c3db0c46fd057"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5d842b68fe9ec0a2c32006d087718e23c2e65a52","unresolved":true,"context_lines":[{"line_number":1327,"context_line":"    such."},{"line_number":1328,"context_line":""},{"line_number":1329,"context_line":"    Use sample:"},{"line_number":1330,"context_line":"    \u003e\u003e\u003e cgroups \u003d self.useFixture(CGroupsFixture())"},{"line_number":1331,"context_line":"    ... cgroups.cpuv1.return_value \u003d False"},{"line_number":1332,"context_line":"    ... cgroups.cpuv2.return_value \u003d True"},{"line_number":1333,"context_line":""},{"line_number":1334,"context_line":"    :attr cpuv1: Mock on the check for the CPU controller through CGroupsV1."},{"line_number":1335,"context_line":"    :attr cpuv2: Mock on the check for the CPU controller through CGroupsV2."}],"source_content_type":"text/x-python","patch_set":12,"id":"4b9910bf_f46310de","line":1332,"range":{"start_line":1330,"start_character":2,"end_line":1332,"end_character":41},"updated":"2023-03-28 10:56:21.000000000","message":"i do not like the fact you could have \n\ncgroups.cpuv1.return_value \u003d True\ncgroups.cpuv2.return_value \u003d True\n\n\nplease rewite this to something like this\n\nCGroupsFixture(version\u003d2)\n\nyou cannot have both  cgroups v2 and cgroups v1 enabled at the same time\n\ni also feel like requrieing you to use .return_value like that is not really following normal fixture useage conventions.","commit_id":"e7eaa4395c47d59d104d7db94db4b4410300bbde"},{"author":{"_account_id":34443,"name":"Jorge San Emeterio","display_name":"jsanemet","email":"jsanemet@redhat.com","username":"jsanemet"},"change_message_id":"95c9c4f5fef4f9daf06fd6fd1fb8358ee9fe50a4","unresolved":true,"context_lines":[{"line_number":1327,"context_line":"    such."},{"line_number":1328,"context_line":""},{"line_number":1329,"context_line":"    Use sample:"},{"line_number":1330,"context_line":"    \u003e\u003e\u003e cgroups \u003d self.useFixture(CGroupsFixture())"},{"line_number":1331,"context_line":"    ... cgroups.cpuv1.return_value \u003d False"},{"line_number":1332,"context_line":"    ... cgroups.cpuv2.return_value \u003d True"},{"line_number":1333,"context_line":""},{"line_number":1334,"context_line":"    :attr cpuv1: Mock on the check for the CPU controller through CGroupsV1."},{"line_number":1335,"context_line":"    :attr cpuv2: Mock on the check for the CPU controller through CGroupsV2."}],"source_content_type":"text/x-python","patch_set":12,"id":"978e3e5d_76bd9c78","line":1332,"range":{"start_line":1330,"start_character":2,"end_line":1332,"end_character":41},"in_reply_to":"4b9910bf_f46310de","updated":"2023-03-28 14:34:27.000000000","message":"I agree, exposing the raw mocks through the fixture may not make the best sense. I have rearranged the fixture so that these are hidden and everything turns around a \"version\" variable.","commit_id":"e7eaa4395c47d59d104d7db94db4b4410300bbde"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5d842b68fe9ec0a2c32006d087718e23c2e65a52","unresolved":true,"context_lines":[{"line_number":1335,"context_line":"    :attr cpuv2: Mock on the check for the CPU controller through CGroupsV2."},{"line_number":1336,"context_line":"    \"\"\""},{"line_number":1337,"context_line":""},{"line_number":1338,"context_line":"    def setUp(self):"},{"line_number":1339,"context_line":"        super().setUp()"},{"line_number":1340,"context_line":"        self.cpuv1 \u003d self.useFixture(fixtures.MockPatch("},{"line_number":1341,"context_line":"            \u0027nova.virt.libvirt.host.Host._has_cgroupsv1_cpu_controller\u0027)).mock"}],"source_content_type":"text/x-python","patch_set":12,"id":"a0f01139_1d8bd12d","line":1338,"range":{"start_line":1338,"start_character":3,"end_line":1338,"end_character":20},"updated":"2023-03-28 10:56:21.000000000","message":"def setUp(self,version\u003d2):\n        super().setUp()\n        self.cpuv1 \u003d self.useFixture(fixtures.MockPatch(\n            \u0027nova.virt.libvirt.host.Host._has_cgroupsv1_cpu_controller\u0027)).mock\n        self.cpuv2 \u003d self.useFixture(fixtures.MockPatch(\n            \u0027nova.virt.libvirt.host.Host._has_cgroupsv2_cpu_controller\u0027)).mock\n        if version \u003d\u003d 1:\n          self.cpuv1.retrun_value \u003d True\n          self.cpuv2.retrun_value \u003d False\n        elif version \u003d\u003d 2:\n          self.cpuv1.retrun_value \u003d False\n          self.cpuv2.retrun_value \u003d True\n        else:\n            raise ValueError(f\"invalid version {version}\")","commit_id":"e7eaa4395c47d59d104d7db94db4b4410300bbde"},{"author":{"_account_id":34443,"name":"Jorge San Emeterio","display_name":"jsanemet","email":"jsanemet@redhat.com","username":"jsanemet"},"change_message_id":"95c9c4f5fef4f9daf06fd6fd1fb8358ee9fe50a4","unresolved":true,"context_lines":[{"line_number":1335,"context_line":"    :attr cpuv2: Mock on the check for the CPU controller through CGroupsV2."},{"line_number":1336,"context_line":"    \"\"\""},{"line_number":1337,"context_line":""},{"line_number":1338,"context_line":"    def setUp(self):"},{"line_number":1339,"context_line":"        super().setUp()"},{"line_number":1340,"context_line":"        self.cpuv1 \u003d self.useFixture(fixtures.MockPatch("},{"line_number":1341,"context_line":"            \u0027nova.virt.libvirt.host.Host._has_cgroupsv1_cpu_controller\u0027)).mock"}],"source_content_type":"text/x-python","patch_set":12,"id":"13df4696_f26b1c38","line":1338,"range":{"start_line":1338,"start_character":3,"end_line":1338,"end_character":20},"in_reply_to":"a0f01139_1d8bd12d","updated":"2023-03-28 14:34:27.000000000","message":"Done.","commit_id":"e7eaa4395c47d59d104d7db94db4b4410300bbde"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"039c10b6fe2f447e1a87866e8b1d94eae8ca78ff","unresolved":true,"context_lines":[{"line_number":1387,"context_line":"            return"},{"line_number":1388,"context_line":""},{"line_number":1389,"context_line":"        raise ValueError(f\"Unknown cgroups version: \u0027{self.version}\u0027.\")"},{"line_number":1390,"context_line":""},{"line_number":1391,"context_line":"class NoopQuotaDriverFixture(fixtures.Fixture):"},{"line_number":1392,"context_line":"    \"\"\"A fixture to run tests using the NoopQuotaDriver."},{"line_number":1393,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"ccff73a5_ee98ccb6","line":1390,"updated":"2023-04-18 19:26:20.000000000","message":"The Zuul job result isn\u0027t obvious, but running `tox -e fast8` locally turns up this spot (and only this spot) where you need to add a newline.","commit_id":"733515a9cfa0146cc7f6882d6d311aabb1d80f92"},{"author":{"_account_id":34443,"name":"Jorge San Emeterio","display_name":"jsanemet","email":"jsanemet@redhat.com","username":"jsanemet"},"change_message_id":"799482a637d7d7e2a38d207cda0777a43081d459","unresolved":true,"context_lines":[{"line_number":1387,"context_line":"            return"},{"line_number":1388,"context_line":""},{"line_number":1389,"context_line":"        raise ValueError(f\"Unknown cgroups version: \u0027{self.version}\u0027.\")"},{"line_number":1390,"context_line":""},{"line_number":1391,"context_line":"class NoopQuotaDriverFixture(fixtures.Fixture):"},{"line_number":1392,"context_line":"    \"\"\"A fixture to run tests using the NoopQuotaDriver."},{"line_number":1393,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9feef4d0_a875b566","line":1390,"in_reply_to":"ccff73a5_ee98ccb6","updated":"2023-04-19 09:10:33.000000000","message":"Fixed.","commit_id":"733515a9cfa0146cc7f6882d6d311aabb1d80f92"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a8c01ba93876deca24a832344c3548b059754842","unresolved":true,"context_lines":[{"line_number":1341,"context_line":"                   Defaults to 1."},{"line_number":1342,"context_line":"    \"\"\""},{"line_number":1343,"context_line":""},{"line_number":1344,"context_line":"    def __init__(self, version \u003d 1):"},{"line_number":1345,"context_line":"        self._cpuv1 \u003d None"},{"line_number":1346,"context_line":"        self._cpuv2 \u003d None"},{"line_number":1347,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"d221af88_c956e78c","line":1344,"range":{"start_line":1344,"start_character":30,"end_line":1344,"end_character":33},"updated":"2023-05-03 22:00:34.000000000","message":"Should be no spaces around the \u003d here.","commit_id":"b9c8ac189b4877e6a409859d94fe5b682ccdadf2"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"fa2408af1859f1b2a21375d4f3c62d5280f2b277","unresolved":true,"context_lines":[{"line_number":741,"context_line":""},{"line_number":742,"context_line":"        self.libvirt \u003d self.useFixture(nova_fixtures.LibvirtFixture())"},{"line_number":743,"context_line":"        self.cgroups \u003d self.useFixture(nova_fixtures.CGroupsFixture())"},{"line_number":744,"context_line":"        self.cgroups.cpuv1.return_value \u003d True"},{"line_number":745,"context_line":"        self.cgroups.cpuv2.return_value \u003d True"},{"line_number":746,"context_line":""},{"line_number":747,"context_line":"        # ensure tests perform the same on all host architectures; this is"}],"source_content_type":"text/x-python","patch_set":10,"id":"27a9cc68_0bd593c2","line":744,"updated":"2023-02-28 16:52:35.000000000","message":"Oh, OK, you set the return_value as needed for each test, now I understand why the fixture itself doesn\u0027t define it.","commit_id":"dcd172d97c2ce00e81344f0cec1c3db0c46fd057"},{"author":{"_account_id":34443,"name":"Jorge San Emeterio","display_name":"jsanemet","email":"jsanemet@redhat.com","username":"jsanemet"},"change_message_id":"4f5aa0bc1cc29e269656a0792218874abe30873f","unresolved":false,"context_lines":[{"line_number":741,"context_line":""},{"line_number":742,"context_line":"        self.libvirt \u003d self.useFixture(nova_fixtures.LibvirtFixture())"},{"line_number":743,"context_line":"        self.cgroups \u003d self.useFixture(nova_fixtures.CGroupsFixture())"},{"line_number":744,"context_line":"        self.cgroups.cpuv1.return_value \u003d True"},{"line_number":745,"context_line":"        self.cgroups.cpuv2.return_value \u003d True"},{"line_number":746,"context_line":""},{"line_number":747,"context_line":"        # ensure tests perform the same on all host architectures; this is"}],"source_content_type":"text/x-python","patch_set":10,"id":"cde45c9a_1d035520","line":744,"in_reply_to":"27a9cc68_0bd593c2","updated":"2023-03-02 08:52:14.000000000","message":"Ack","commit_id":"dcd172d97c2ce00e81344f0cec1c3db0c46fd057"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5d842b68fe9ec0a2c32006d087718e23c2e65a52","unresolved":true,"context_lines":[{"line_number":742,"context_line":"        self.libvirt \u003d self.useFixture(nova_fixtures.LibvirtFixture())"},{"line_number":743,"context_line":"        self.cgroups \u003d self.useFixture(nova_fixtures.CGroupsFixture())"},{"line_number":744,"context_line":"        self.cgroups.cpuv1.return_value \u003d True"},{"line_number":745,"context_line":"        self.cgroups.cpuv2.return_value \u003d True"},{"line_number":746,"context_line":""},{"line_number":747,"context_line":"        # ensure tests perform the same on all host architectures; this is"},{"line_number":748,"context_line":"        # already done by the fakelibvirt fixture but we want to change the"}],"source_content_type":"text/x-python","patch_set":12,"id":"064ef220_4e375ec2","line":745,"updated":"2023-03-28 10:56:21.000000000","message":"this is not somethign that can happen","commit_id":"e7eaa4395c47d59d104d7db94db4b4410300bbde"},{"author":{"_account_id":34443,"name":"Jorge San Emeterio","display_name":"jsanemet","email":"jsanemet@redhat.com","username":"jsanemet"},"change_message_id":"95c9c4f5fef4f9daf06fd6fd1fb8358ee9fe50a4","unresolved":true,"context_lines":[{"line_number":742,"context_line":"        self.libvirt \u003d self.useFixture(nova_fixtures.LibvirtFixture())"},{"line_number":743,"context_line":"        self.cgroups \u003d self.useFixture(nova_fixtures.CGroupsFixture())"},{"line_number":744,"context_line":"        self.cgroups.cpuv1.return_value \u003d True"},{"line_number":745,"context_line":"        self.cgroups.cpuv2.return_value \u003d True"},{"line_number":746,"context_line":""},{"line_number":747,"context_line":"        # ensure tests perform the same on all host architectures; this is"},{"line_number":748,"context_line":"        # already done by the fakelibvirt fixture but we want to change the"}],"source_content_type":"text/x-python","patch_set":12,"id":"8166d8ac_d9455c00","line":745,"in_reply_to":"064ef220_4e375ec2","updated":"2023-03-28 14:34:27.000000000","message":"Done.","commit_id":"e7eaa4395c47d59d104d7db94db4b4410300bbde"}],"nova/tests/unit/virt/libvirt/test_host.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"fa2408af1859f1b2a21375d4f3c62d5280f2b277","unresolved":true,"context_lines":[{"line_number":1615,"context_line":""},{"line_number":1616,"context_line":"    @mock.patch(\"nova.virt.libvirt.host.Host._has_cgroupsv1_cpu_controller\")"},{"line_number":1617,"context_line":"    @mock.patch(\"nova.virt.libvirt.host.Host._has_cgroupsv2_cpu_controller\")"},{"line_number":1618,"context_line":"    def test_is_cpu_control_policy_capable_via_cgroupsv1(self, v1, v2):"},{"line_number":1619,"context_line":"        v1.return_value \u003d True"},{"line_number":1620,"context_line":"        v2.return_value \u003d False"},{"line_number":1621,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"d47223a0_fa82c593","line":1618,"updated":"2023-02-28 16:52:35.000000000","message":"nit: for consistency, you can use the new fixture here as well:\n\n      def test_is_cpu_control_policy_capable_via_cgroupsv1(self):\n        cgroups \u003d self.useFixture(nova_fixtures.CGroupsFixture())\n        cgroups.cpuv1.return_value \u003d True\n        cgroups.cpuv2.return_value \u003d False                                                                            \n        self.assertTrue(self.host.is_cpu_control_policy_capable())","commit_id":"dcd172d97c2ce00e81344f0cec1c3db0c46fd057"},{"author":{"_account_id":34443,"name":"Jorge San Emeterio","display_name":"jsanemet","email":"jsanemet@redhat.com","username":"jsanemet"},"change_message_id":"4f5aa0bc1cc29e269656a0792218874abe30873f","unresolved":true,"context_lines":[{"line_number":1615,"context_line":""},{"line_number":1616,"context_line":"    @mock.patch(\"nova.virt.libvirt.host.Host._has_cgroupsv1_cpu_controller\")"},{"line_number":1617,"context_line":"    @mock.patch(\"nova.virt.libvirt.host.Host._has_cgroupsv2_cpu_controller\")"},{"line_number":1618,"context_line":"    def test_is_cpu_control_policy_capable_via_cgroupsv1(self, v1, v2):"},{"line_number":1619,"context_line":"        v1.return_value \u003d True"},{"line_number":1620,"context_line":"        v2.return_value \u003d False"},{"line_number":1621,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"28742441_e9fe0860","line":1618,"in_reply_to":"d47223a0_fa82c593","updated":"2023-03-02 08:52:14.000000000","message":"Done.","commit_id":"dcd172d97c2ce00e81344f0cec1c3db0c46fd057"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"fa2408af1859f1b2a21375d4f3c62d5280f2b277","unresolved":true,"context_lines":[{"line_number":1618,"context_line":"    def test_is_cpu_control_policy_capable_via_cgroupsv1(self, v1, v2):"},{"line_number":1619,"context_line":"        v1.return_value \u003d True"},{"line_number":1620,"context_line":"        v2.return_value \u003d False"},{"line_number":1621,"context_line":""},{"line_number":1622,"context_line":"        self.assertTrue(self.host.is_cpu_control_policy_capable())"},{"line_number":1623,"context_line":""},{"line_number":1624,"context_line":"    @mock.patch(\"nova.virt.libvirt.host.Host._has_cgroupsv1_cpu_controller\")"}],"source_content_type":"text/x-python","patch_set":10,"id":"f5fb959d_65dfab00","line":1621,"updated":"2023-02-28 16:52:35.000000000","message":"nit: I\u0027d probably get rid of this blank line, here and below.","commit_id":"dcd172d97c2ce00e81344f0cec1c3db0c46fd057"},{"author":{"_account_id":34443,"name":"Jorge San Emeterio","display_name":"jsanemet","email":"jsanemet@redhat.com","username":"jsanemet"},"change_message_id":"4f5aa0bc1cc29e269656a0792218874abe30873f","unresolved":true,"context_lines":[{"line_number":1618,"context_line":"    def test_is_cpu_control_policy_capable_via_cgroupsv1(self, v1, v2):"},{"line_number":1619,"context_line":"        v1.return_value \u003d True"},{"line_number":1620,"context_line":"        v2.return_value \u003d False"},{"line_number":1621,"context_line":""},{"line_number":1622,"context_line":"        self.assertTrue(self.host.is_cpu_control_policy_capable())"},{"line_number":1623,"context_line":""},{"line_number":1624,"context_line":"    @mock.patch(\"nova.virt.libvirt.host.Host._has_cgroupsv1_cpu_controller\")"}],"source_content_type":"text/x-python","patch_set":10,"id":"b69e699c_a44e36cc","line":1621,"in_reply_to":"f5fb959d_65dfab00","updated":"2023-03-02 08:52:14.000000000","message":"Done.","commit_id":"dcd172d97c2ce00e81344f0cec1c3db0c46fd057"}],"nova/virt/libvirt/host.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"d09bf433d16f29b43cdeee69e27349b69b7bd6f2","unresolved":true,"context_lines":[{"line_number":1637,"context_line":"        CONFIG_CGROUP_SCHED may be disabled in some kernel configs to"},{"line_number":1638,"context_line":"        improve scheduler latency."},{"line_number":1639,"context_line":"        \"\"\""},{"line_number":1640,"context_line":"        return cgroupsv1.host_has_cpu_controller() or \\"},{"line_number":1641,"context_line":"               cgroupsv2.host_has_cpu_controller()"},{"line_number":1642,"context_line":""},{"line_number":1643,"context_line":"    def get_canonical_machine_type(self, arch, machine) -\u003e str:"}],"source_content_type":"text/x-python","patch_set":6,"id":"42209773_b02fa300","line":1640,"updated":"2023-02-13 17:05:20.000000000","message":"I think you can simplify by just inlining the two methods as host_has_cgroupsv1_cpu_controller() and host_has_cgroupsv2_cpu_controller(). I\u0027m not sure what value we gain from having them encapsulated away in a different class.","commit_id":"8dbc0b222c77d6a2bed440791d79930eb091f974"},{"author":{"_account_id":34443,"name":"Jorge San Emeterio","display_name":"jsanemet","email":"jsanemet@redhat.com","username":"jsanemet"},"change_message_id":"3524014fb20971b3a1730444dcec9728c7512cd0","unresolved":true,"context_lines":[{"line_number":1637,"context_line":"        CONFIG_CGROUP_SCHED may be disabled in some kernel configs to"},{"line_number":1638,"context_line":"        improve scheduler latency."},{"line_number":1639,"context_line":"        \"\"\""},{"line_number":1640,"context_line":"        return cgroupsv1.host_has_cpu_controller() or \\"},{"line_number":1641,"context_line":"               cgroupsv2.host_has_cpu_controller()"},{"line_number":1642,"context_line":""},{"line_number":1643,"context_line":"    def get_canonical_machine_type(self, arch, machine) -\u003e str:"}],"source_content_type":"text/x-python","patch_set":6,"id":"60c35c67_da03e211","line":1640,"in_reply_to":"42209773_b02fa300","updated":"2023-02-16 14:10:32.000000000","message":"I will try to, but I am not sure if I will be able to patch from the same class that I am testing. I have a couple of unit tests for \"is_cpu_control_policy_capable\" too.","commit_id":"8dbc0b222c77d6a2bed440791d79930eb091f974"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a8c01ba93876deca24a832344c3548b059754842","unresolved":true,"context_lines":[{"line_number":1650,"context_line":"                        LOG.debug(\"CPU controller found on host.\")"},{"line_number":1651,"context_line":"                        return True"},{"line_number":1652,"context_line":"                LOG.debug(\"CPU controller missing on host.\")"},{"line_number":1653,"context_line":"                return False"},{"line_number":1654,"context_line":"        except IOError as ex:"},{"line_number":1655,"context_line":"            LOG.debug(f\"Search failed due to: \u0027{ex}\u0027. \""},{"line_number":1656,"context_line":"                      \"Maybe the host is not running under CGroups V1. \""}],"source_content_type":"text/x-python","patch_set":16,"id":"053e4b10_03050231","line":1653,"updated":"2023-05-03 22:00:34.000000000","message":"If you removed this and de-dented L1658, you could have a common exit from this function for any but the True cases. Not critical, but it\u0027d be a little cleaner (IMHO).","commit_id":"b9c8ac189b4877e6a409859d94fe5b682ccdadf2"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a8c01ba93876deca24a832344c3548b059754842","unresolved":true,"context_lines":[{"line_number":1666,"context_line":"                    bits \u003d line.split()"},{"line_number":1667,"context_line":"                    if \"cpu\" in bits:"},{"line_number":1668,"context_line":"                        LOG.debug(\"CPU controller found on host.\")"},{"line_number":1669,"context_line":"                        return True"},{"line_number":1670,"context_line":"                LOG.debug(\"CPU controller missing on host.\")"},{"line_number":1671,"context_line":"                return False"},{"line_number":1672,"context_line":"        except IOError as ex:"}],"source_content_type":"text/x-python","patch_set":16,"id":"07e7e79d_1c69ce1e","line":1669,"updated":"2023-05-03 22:00:34.000000000","message":"Same here.","commit_id":"b9c8ac189b4877e6a409859d94fe5b682ccdadf2"}]}
