)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":38360,"name":"Zachary Mark Raines","display_name":"Zachary Raines","email":"zachary.raines@canonical.com","username":"raineszm","status":"Sustaining Engineer @ Canonical"},"change_message_id":"985ddb540bec7b866272d229e455ef8d3f697e18","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"8c601293_f17c6c88","updated":"2026-02-11 23:47:02.000000000","message":"This latest patch adds unit tests for the behavior.\n\nI also considered whether the drivers should be rechecked when config is reloaded, e.g., https://docs.openstack.org/oslo.config/ocata/mutable.html, but none of the relevant octavia options are mutable. It seems that we don\u0027t have to rerun _init_drivers on SIGHUP then, although it\u0027s doable.","commit_id":"bd25421aecd60fbc49068ab2fe7d0ad27460955e"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"eca83bf01c2d2524de932a18a387af4301263778","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1b374ecd_5070b33b","updated":"2026-02-27 08:49:37.000000000","message":"can you add a releasenote? it\u0027s also important for the backports","commit_id":"bd25421aecd60fbc49068ab2fe7d0ad27460955e"},{"author":{"_account_id":38360,"name":"Zachary Mark Raines","display_name":"Zachary Raines","email":"zachary.raines@canonical.com","username":"raineszm","status":"Sustaining Engineer @ Canonical"},"change_message_id":"25f0ed292020a3dc101d49b7863cccec7859d945","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7cfaaee8_f0d2aa8c","in_reply_to":"1b374ecd_5070b33b","updated":"2026-02-27 14:53:02.000000000","message":"Ack. Will do.","commit_id":"bd25421aecd60fbc49068ab2fe7d0ad27460955e"},{"author":{"_account_id":38562,"name":"Richard Cruise","email":"rcruise@redhat.com","username":"rcruise"},"change_message_id":"df62e8b4fee0c2e0acdad3ba0a1f0a26cc6edaf7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e2344d28_030fbe9d","updated":"2026-03-02 13:19:14.000000000","message":"Forgot to +1 in my last review","commit_id":"6acaef1e47b610f1a8cd21d31b7000af960ff116"},{"author":{"_account_id":38562,"name":"Richard Cruise","email":"rcruise@redhat.com","username":"rcruise"},"change_message_id":"ffe124a96cc4104c086297eb12de6903225c6407","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"15be7d85_63d326b7","updated":"2026-03-02 13:18:48.000000000","message":"One small comment, but otherwise LGTM","commit_id":"6acaef1e47b610f1a8cd21d31b7000af960ff116"},{"author":{"_account_id":38360,"name":"Zachary Mark Raines","display_name":"Zachary Raines","email":"zachary.raines@canonical.com","username":"raineszm","status":"Sustaining Engineer @ Canonical"},"change_message_id":"6f356248ecc3e6e2a673db70984f6ef0ab809dbf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"17c31236_83a6ce06","updated":"2026-02-27 21:00:34.000000000","message":"recheck - grenade-skip-level neutron failed to start in devstack","commit_id":"6acaef1e47b610f1a8cd21d31b7000af960ff116"},{"author":{"_account_id":38360,"name":"Zachary Mark Raines","display_name":"Zachary Raines","email":"zachary.raines@canonical.com","username":"raineszm","status":"Sustaining Engineer @ Canonical"},"change_message_id":"6c9beb49ed411d0707622fe3afaf6414509f2741","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"52cdb4bb_19be9d63","updated":"2026-03-02 16:43:38.000000000","message":"recheck - timeout on octavia-v2-dsvm-scenario-non-traffic-ops","commit_id":"6acaef1e47b610f1a8cd21d31b7000af960ff116"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"72d61327d8a9b8a830cbb879c5643de8fa9dfc8c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"8fe44f57_74c927bb","updated":"2026-03-02 19:56:33.000000000","message":"recheck POST_FAILURE","commit_id":"6acaef1e47b610f1a8cd21d31b7000af960ff116"}],"octavia/tests/unit/api/test_app.py":[{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"b8946da0762eb942dedd808a069c1d41ab769752","unresolved":true,"context_lines":[{"line_number":29,"context_line":"    @mock.patch.object(driver_factory, \"get_driver\")"},{"line_number":30,"context_line":"    def test__init_drivers(self, mock_get_driver):"},{"line_number":31,"context_line":"        self.CONF \u003d self.useFixture(oslo_fixture.Config(cfg.CONF))"},{"line_number":32,"context_line":"        self.CONF.load_raw_values("},{"line_number":33,"context_line":"            group\u003d\"api_settings\","},{"line_number":34,"context_line":"            enabled_provider_drivers\u003d\"provider1:desc1,provider2:desc2\","},{"line_number":35,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":2,"id":"0a1fcdda_d0ae608b","line":32,"range":{"start_line":32,"start_character":18,"end_line":32,"end_character":33},"updated":"2026-02-27 08:48:59.000000000","message":"any reasons for this change? it doesnt\u0027 seem to change the behavior of the tests.\nconsistency with the new test maybe?","commit_id":"bd25421aecd60fbc49068ab2fe7d0ad27460955e"},{"author":{"_account_id":38360,"name":"Zachary Mark Raines","display_name":"Zachary Raines","email":"zachary.raines@canonical.com","username":"raineszm","status":"Sustaining Engineer @ Canonical"},"change_message_id":"25f0ed292020a3dc101d49b7863cccec7859d945","unresolved":true,"context_lines":[{"line_number":29,"context_line":"    @mock.patch.object(driver_factory, \"get_driver\")"},{"line_number":30,"context_line":"    def test__init_drivers(self, mock_get_driver):"},{"line_number":31,"context_line":"        self.CONF \u003d self.useFixture(oslo_fixture.Config(cfg.CONF))"},{"line_number":32,"context_line":"        self.CONF.load_raw_values("},{"line_number":33,"context_line":"            group\u003d\"api_settings\","},{"line_number":34,"context_line":"            enabled_provider_drivers\u003d\"provider1:desc1,provider2:desc2\","},{"line_number":35,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":2,"id":"b253e502_d266c08e","line":32,"range":{"start_line":32,"start_character":18,"end_line":32,"end_character":33},"in_reply_to":"0a1fcdda_d0ae608b","updated":"2026-02-27 14:53:02.000000000","message":"The reason is two-fold. First, yes, consistency with the new test. Secondly, verisimilitude with how octavia actually sets up the config in the wsgi application. It doesn\u0027t make a difference at the moment, but just in case in the future.","commit_id":"bd25421aecd60fbc49068ab2fe7d0ad27460955e"},{"author":{"_account_id":38562,"name":"Richard Cruise","email":"rcruise@redhat.com","username":"rcruise"},"change_message_id":"ffe124a96cc4104c086297eb12de6903225c6407","unresolved":true,"context_lines":[{"line_number":29,"context_line":"    @mock.patch.object(driver_factory, \"get_driver\")"},{"line_number":30,"context_line":"    def test__init_drivers(self, mock_get_driver):"},{"line_number":31,"context_line":"        self.CONF \u003d self.useFixture(oslo_fixture.Config(cfg.CONF))"},{"line_number":32,"context_line":"        self.CONF.load_raw_values("},{"line_number":33,"context_line":"            group\u003d\"api_settings\","},{"line_number":34,"context_line":"            enabled_provider_drivers\u003d\"provider1:desc1,provider2:desc2\","},{"line_number":35,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":2,"id":"6a2368ae_20e58afb","line":32,"range":{"start_line":32,"start_character":18,"end_line":32,"end_character":33},"in_reply_to":"b253e502_d266c08e","updated":"2026-03-02 13:18:48.000000000","message":"I\u0027d say you could copy the same comment block from L73, it\u0027s a good explanation and makes it clearer for anyone reading the code","commit_id":"bd25421aecd60fbc49068ab2fe7d0ad27460955e"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"b8946da0762eb942dedd808a069c1d41ab769752","unresolved":true,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @staticmethod"},{"line_number":42,"context_line":"    def _fail_get_driver(provider):"},{"line_number":43,"context_line":"        print(provider)"},{"line_number":44,"context_line":"        if provider \u003d\u003d \"provider2\":"},{"line_number":45,"context_line":"            raise Exception(\"Internal error\")"},{"line_number":46,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":2,"id":"e1c3c0cd_15f46a8b","line":43,"range":{"start_line":43,"start_character":8,"end_line":43,"end_character":23},"updated":"2026-02-27 08:48:59.000000000","message":"nit: extra print","commit_id":"bd25421aecd60fbc49068ab2fe7d0ad27460955e"},{"author":{"_account_id":38360,"name":"Zachary Mark Raines","display_name":"Zachary Raines","email":"zachary.raines@canonical.com","username":"raineszm","status":"Sustaining Engineer @ Canonical"},"change_message_id":"25f0ed292020a3dc101d49b7863cccec7859d945","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @staticmethod"},{"line_number":42,"context_line":"    def _fail_get_driver(provider):"},{"line_number":43,"context_line":"        print(provider)"},{"line_number":44,"context_line":"        if provider \u003d\u003d \"provider2\":"},{"line_number":45,"context_line":"            raise Exception(\"Internal error\")"},{"line_number":46,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":2,"id":"c25c5511_b255d35d","line":43,"range":{"start_line":43,"start_character":8,"end_line":43,"end_character":23},"in_reply_to":"e1c3c0cd_15f46a8b","updated":"2026-02-27 14:53:02.000000000","message":"Acknowledged","commit_id":"bd25421aecd60fbc49068ab2fe7d0ad27460955e"}]}
