)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9dbd29531cc260be65b8d96c3b77e1087859af28","unresolved":true,"context_lines":[{"line_number":14,"context_line":"  ThreadPoolExecutor in the future"},{"line_number":15,"context_line":"* we can get rid of the explicit pass_context call and centralize that"},{"line_number":16,"context_line":"  instead to spawn_*"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I15297fd7869ed5f8a58f0ca599ef11df91e04de6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"cbaf603c_57150a90","line":17,"updated":"2025-07-01 15:41:16.000000000","message":"can you please tell us why we can\u0027t have a unittest either modified or created for checking that we no longer use eventlet ?","commit_id":"cc7238fe228b0308ca3c69bb01dd3116f24ddb38"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7304593a5b49eac9ad83d2c49a931f6e2dc9d7e5","unresolved":false,"context_lines":[{"line_number":14,"context_line":"  ThreadPoolExecutor in the future"},{"line_number":15,"context_line":"* we can get rid of the explicit pass_context call and centralize that"},{"line_number":16,"context_line":"  instead to spawn_*"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I15297fd7869ed5f8a58f0ca599ef11df91e04de6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"f986e6a8_d18214ab","line":17,"in_reply_to":"6194ab15_8c16efdc","updated":"2025-07-11 13:49:50.000000000","message":"I\u0027ve added extra words to the commit message.","commit_id":"cc7238fe228b0308ca3c69bb01dd3116f24ddb38"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a345b7e29a5c8f67a3e80f0792c4e667757eea07","unresolved":true,"context_lines":[{"line_number":14,"context_line":"  ThreadPoolExecutor in the future"},{"line_number":15,"context_line":"* we can get rid of the explicit pass_context call and centralize that"},{"line_number":16,"context_line":"  instead to spawn_*"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I15297fd7869ed5f8a58f0ca599ef11df91e04de6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"6194ab15_8c16efdc","line":17,"in_reply_to":"9f98e7b5_b0f88ff9","updated":"2025-07-10 09:51:07.000000000","message":"sorry, I was unclear, I was mentioning that usually we ask owerns to add some paragraph in the commit msg for explaining why we don\u0027t need UTs.\nIndeed, I understand the fact that we changed the interface and given we only check the behaviour and not the things that are called, we\u0027re good with the existing UTs.\n\nAlso, thanks, I was wrong with my quick comment, of course we continue to use eventlet inside the executor.","commit_id":"cc7238fe228b0308ca3c69bb01dd3116f24ddb38"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"4845de1413ce3e262ac68a590895fb4bfea70f05","unresolved":true,"context_lines":[{"line_number":14,"context_line":"  ThreadPoolExecutor in the future"},{"line_number":15,"context_line":"* we can get rid of the explicit pass_context call and centralize that"},{"line_number":16,"context_line":"  instead to spawn_*"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I15297fd7869ed5f8a58f0ca599ef11df91e04de6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"9f98e7b5_b0f88ff9","line":17,"in_reply_to":"bb8d48e4_b07bb2c3","updated":"2025-07-02 17:03:52.000000000","message":"It\u0027s helpful to explain in the commit message that \"it\u0027s a good thing we don\u0027t have any test coverage change\". It helps a git historian from the future understand, without having to dig up the gerrit comments.\n\nI think it\u0027s right to react to a patch with no test changes with extreme skepticism :) I was about to make the same comment before I realized Sylvain had already done so here...","commit_id":"cc7238fe228b0308ca3c69bb01dd3116f24ddb38"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e2243e4faaf5595bd5cf07133c162d1782a6c931","unresolved":true,"context_lines":[{"line_number":14,"context_line":"  ThreadPoolExecutor in the future"},{"line_number":15,"context_line":"* we can get rid of the explicit pass_context call and centralize that"},{"line_number":16,"context_line":"  instead to spawn_*"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I15297fd7869ed5f8a58f0ca599ef11df91e04de6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"bb8d48e4_b07bb2c3","line":17,"in_reply_to":"cbaf603c_57150a90","updated":"2025-07-02 12:13:20.000000000","message":"We don\u0027t have unit test changes as we have good unit tests that are asserting behavior not asserting implementation. So when the implementation changes (like in this refactor patch) but the behavior does not, we don\u0027t need to change the existing unit test coverage.\n\nIn other words if you start injecting mistakes into the current patch then either:\n* the existing\n```\ntox -e py312 -- nova.tests.unit.conductor.test_conductor.ConductorTaskAPITestCase.test_cache_image \n```\nunit test coverage is catching it or\n* the same mistake is slipped by the tests without this refactor.\n\n\n\u003e can you please tell us why we can\u0027t have a unittest either modified or created for checking that we no longer use eventlet ?\n\nNote that we still use eventlet via the GreenThreadPoolExecutor. Only the way how we consume eventlet is changed. We changed to an interface (the futurist lib) that allows easy switching between the GreenThreadPoolExecutor and eventlet and ThreadPoolExecutor and native thread.","commit_id":"cc7238fe228b0308ca3c69bb01dd3116f24ddb38"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8751187f11995de7a24d2d4fd4d915c65c9903f3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"92fbfb8f_c682da25","updated":"2025-05-19 14:51:14.000000000","message":"recheck bug/2109428 (nova-ceph-multistore)","commit_id":"b879608e26bb0ef074117ce7bda9801819cf33c2"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"1d2c29273cf8f297f709c9083e47913858870b7f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"fcf14e49_3765bc2f","updated":"2025-06-10 15:31:46.000000000","message":"Straight forward patch.\nTests are still passing. So it looks good to me.","commit_id":"5456377a48bbc1b8db40f8809e277cf7f2c81774"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"606608e11198acf2b5ee59f89d93033226664236","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"fd4f8da1_237cf410","updated":"2025-05-27 16:52:18.000000000","message":"recheck grenade timed out while dumping databases\n\nhttps://zuul.opendev.org/t/openstack/build/a95111c82e0941d9972ef54f04753a0d/log/job-output.txt#21768-21769","commit_id":"5456377a48bbc1b8db40f8809e277cf7f2c81774"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"47de2b483c7c465c1160ac06743255229fffc0a3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"de34c62a_2f16d9bc","updated":"2025-06-16 11:53:31.000000000","message":"recheck py312 A very strange execution. It seems that there was a single CPU available in the executor so the test run single threaded and therefore timed out https://zuul.opendev.org/t/openstack/build/081e6fffbf5e4640b30d8bda74616562/log/job-output.txt","commit_id":"99f6f8a41184e96bc276a641c3dcfa5269ea0659"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9dbd29531cc260be65b8d96c3b77e1087859af28","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"7e04f09f_3b5daf00","updated":"2025-07-01 15:41:16.000000000","message":"a procedural -1 maybe but I feel we then need to tell in the commit msg why this patch doesn\u0027t need classic unittests at least.","commit_id":"cc7238fe228b0308ca3c69bb01dd3116f24ddb38"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"66314dc0d22b0d00edba1ff62c734c3e4eba6774","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"ff33714b_c9c69e8a","updated":"2025-07-11 12:54:42.000000000","message":"I\u0027m going to respin this to extend the commit message and to pick up independent changes from master.","commit_id":"946dd8c5cfd526d8edd4673aeba27d634e46245f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a345b7e29a5c8f67a3e80f0792c4e667757eea07","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"6301ce52_b30594cb","updated":"2025-07-10 09:51:07.000000000","message":"I\u0027m good with that patch, just +1 in case you can modify the commit msg if you need to rebase, please 😊","commit_id":"946dd8c5cfd526d8edd4673aeba27d634e46245f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e8659198c655a5e7a6ad182638d70d25dc351113","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":23,"id":"68d35aae_c250c3d6","updated":"2025-07-08 12:39:40.000000000","message":"given there is test coverage fo all the changed code and no one has actually objected to the change i done see a reason to hold a +2\n\nif gibi wants to update the commit thats ok but i don\u0027t think its required but im happy to re review if the patch is updated","commit_id":"946dd8c5cfd526d8edd4673aeba27d634e46245f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"48820701c6ad3b4556dc49575854f6660c3971e8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"1825cf81_7b029464","updated":"2025-07-17 13:39:04.000000000","message":"Thanks for the commit msg update, lgtm.","commit_id":"bf04b66b4a5f924311268aa3b8b9e85afdd33809"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"114f478816ce2e5a443c6a35faedb589c2e1c8b2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"f45d4fb1_cd6e00c5","updated":"2025-07-16 11:55:28.000000000","message":"recheck gate blocker fixed","commit_id":"bf04b66b4a5f924311268aa3b8b9e85afdd33809"}],"nova/conductor/manager.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dedcd118fabd2234e5ed556caeb24bdb3af0ed2e","unresolved":true,"context_lines":[{"line_number":2072,"context_line":""},{"line_number":2073,"context_line":"        clock \u003d timeutils.StopWatch()"},{"line_number":2074,"context_line":"        threads \u003d CONF.image_cache.precache_concurrency"},{"line_number":2075,"context_line":"        fetch_executor \u003d futurist.GreenThreadPoolExecutor(max_workers\u003dthreads)"},{"line_number":2076,"context_line":""},{"line_number":2077,"context_line":"        hosts_by_cell \u003d {}"},{"line_number":2078,"context_line":"        cells_by_uuid \u003d {}"}],"source_content_type":"text/x-python","patch_set":13,"id":"78c5e6bb_0dde1964","line":2075,"updated":"2025-05-26 15:01:42.000000000","message":"same comment as the previous path i would perfer to hide this behind a funtion in nova.utils.","commit_id":"b879608e26bb0ef074117ce7bda9801819cf33c2"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"933ad15954121b6796e185cb28a1df9928ea097c","unresolved":false,"context_lines":[{"line_number":2072,"context_line":""},{"line_number":2073,"context_line":"        clock \u003d timeutils.StopWatch()"},{"line_number":2074,"context_line":"        threads \u003d CONF.image_cache.precache_concurrency"},{"line_number":2075,"context_line":"        fetch_executor \u003d futurist.GreenThreadPoolExecutor(max_workers\u003dthreads)"},{"line_number":2076,"context_line":""},{"line_number":2077,"context_line":"        hosts_by_cell \u003d {}"},{"line_number":2078,"context_line":"        cells_by_uuid \u003d {}"}],"source_content_type":"text/x-python","patch_set":13,"id":"177b2fb4_be3891a4","line":2075,"in_reply_to":"78c5e6bb_0dde1964","updated":"2025-05-27 11:53:57.000000000","message":"Here I\u0027m very much support to use the default executor for this. And as I wrote in the previous patch we will get to this when we start transforming the nova-conductor to threading. Which will be pretty soon, after we landed nova-scheduler. cc @ksambor@redhat.com for visibility.","commit_id":"b879608e26bb0ef074117ce7bda9801819cf33c2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e8659198c655a5e7a6ad182638d70d25dc351113","unresolved":false,"context_lines":[{"line_number":2072,"context_line":""},{"line_number":2073,"context_line":"        clock \u003d timeutils.StopWatch()"},{"line_number":2074,"context_line":"        threads \u003d CONF.image_cache.precache_concurrency"},{"line_number":2075,"context_line":"        fetch_executor \u003d futurist.GreenThreadPoolExecutor(max_workers\u003dthreads)"},{"line_number":2076,"context_line":""},{"line_number":2077,"context_line":"        hosts_by_cell \u003d {}"},{"line_number":2078,"context_line":"        cells_by_uuid \u003d {}"}],"source_content_type":"text/x-python","patch_set":23,"id":"9286755b_abc7cd39","line":2075,"updated":"2025-07-08 12:39:40.000000000","message":"since the question of coveraage was raised \n\nhttps://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_3d0/openstack/3d0b71c2459e41498a681782db5ebdb9/cover/z_a8a268ae5ea41da1_manager_py.html#t2075","commit_id":"946dd8c5cfd526d8edd4673aeba27d634e46245f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a345b7e29a5c8f67a3e80f0792c4e667757eea07","unresolved":false,"context_lines":[{"line_number":2072,"context_line":""},{"line_number":2073,"context_line":"        clock \u003d timeutils.StopWatch()"},{"line_number":2074,"context_line":"        threads \u003d CONF.image_cache.precache_concurrency"},{"line_number":2075,"context_line":"        fetch_executor \u003d futurist.GreenThreadPoolExecutor(max_workers\u003dthreads)"},{"line_number":2076,"context_line":""},{"line_number":2077,"context_line":"        hosts_by_cell \u003d {}"},{"line_number":2078,"context_line":"        cells_by_uuid \u003d {}"}],"source_content_type":"text/x-python","patch_set":23,"id":"036dfd08_7a208956","line":2075,"in_reply_to":"9286755b_abc7cd39","updated":"2025-07-10 09:51:07.000000000","message":"well, OK, thanks.","commit_id":"946dd8c5cfd526d8edd4673aeba27d634e46245f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e8659198c655a5e7a6ad182638d70d25dc351113","unresolved":false,"context_lines":[{"line_number":2144,"context_line":"                        skipped_host(target_ctxt, host, image_ids)"},{"line_number":2145,"context_line":"                        continue"},{"line_number":2146,"context_line":"                    utils.spawn_on(fetch_executor, wrap_cache_images,"},{"line_number":2147,"context_line":"                                   target_ctxt, host, image_ids)"},{"line_number":2148,"context_line":""},{"line_number":2149,"context_line":"        # Wait until all those things finish"},{"line_number":2150,"context_line":"        fetch_executor.shutdown(wait\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":23,"id":"75bb219b_faead747","line":2147,"updated":"2025-07-08 12:39:40.000000000","message":"https://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_3d0/openstack/3d0b71c2459e41498a681782db5ebdb9/cover/z_a8a268ae5ea41da1_manager_py.html#t2146","commit_id":"946dd8c5cfd526d8edd4673aeba27d634e46245f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e8659198c655a5e7a6ad182638d70d25dc351113","unresolved":true,"context_lines":[{"line_number":2147,"context_line":"                                   target_ctxt, host, image_ids)"},{"line_number":2148,"context_line":""},{"line_number":2149,"context_line":"        # Wait until all those things finish"},{"line_number":2150,"context_line":"        fetch_executor.shutdown(wait\u003dTrue)"},{"line_number":2151,"context_line":""},{"line_number":2152,"context_line":"        overall_stats \u003d {\u0027cached\u0027: 0, \u0027existing\u0027: 0, \u0027error\u0027: 0,"},{"line_number":2153,"context_line":"                         \u0027unsupported\u0027: 0}"}],"source_content_type":"text/x-python","patch_set":23,"id":"31da38d6_1adfa1e2","line":2150,"updated":"2025-07-08 12:39:40.000000000","message":"https://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_3d0/openstack/3d0b71c2459e41498a681782db5ebdb9/cover/z_a8a268ae5ea41da1_manager_py.html#t2150","commit_id":"946dd8c5cfd526d8edd4673aeba27d634e46245f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a345b7e29a5c8f67a3e80f0792c4e667757eea07","unresolved":false,"context_lines":[{"line_number":2147,"context_line":"                                   target_ctxt, host, image_ids)"},{"line_number":2148,"context_line":""},{"line_number":2149,"context_line":"        # Wait until all those things finish"},{"line_number":2150,"context_line":"        fetch_executor.shutdown(wait\u003dTrue)"},{"line_number":2151,"context_line":""},{"line_number":2152,"context_line":"        overall_stats \u003d {\u0027cached\u0027: 0, \u0027existing\u0027: 0, \u0027error\u0027: 0,"},{"line_number":2153,"context_line":"                         \u0027unsupported\u0027: 0}"}],"source_content_type":"text/x-python","patch_set":23,"id":"64b27003_953feb1b","line":2150,"in_reply_to":"31da38d6_1adfa1e2","updated":"2025-07-10 09:51:07.000000000","message":"ack","commit_id":"946dd8c5cfd526d8edd4673aeba27d634e46245f"}]}
