)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"b03cd7a21a0a9b544483330f9701a29ef7fe9b59","unresolved":true,"context_lines":[{"line_number":9,"context_line":"Use openstacksdk for sending os-server-external-events to"},{"line_number":10,"context_line":"Nova."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Depends-On: https://review.opendev.org/983904"},{"line_number":13,"context_line":"Change-Id: I6a4145a6bd95e1e8018e4373fef3f8998a644479"},{"line_number":14,"context_line":"Signed-off-by: lajoskatona \u003clajos.katona@est.tech\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"fd0d55ca_7865230c","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":45},"updated":"2026-05-05 10:21:05.000000000","message":"we need a release also for SDK when this one is merged","commit_id":"ef7e2e80cf1ea8239f41cf96cf965ececc1a0897"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"e82512e5c4ede136f529aa174c0a5a5a3cad96bf","unresolved":true,"context_lines":[{"line_number":9,"context_line":"Use openstacksdk for sending os-server-external-events to"},{"line_number":10,"context_line":"Nova."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Depends-On: https://review.opendev.org/983904"},{"line_number":13,"context_line":"Change-Id: I6a4145a6bd95e1e8018e4373fef3f8998a644479"},{"line_number":14,"context_line":"Signed-off-by: lajoskatona \u003clajos.katona@est.tech\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"6da7da72_30c177d0","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":45},"in_reply_to":"fd0d55ca_7865230c","updated":"2026-05-28 16:44:15.000000000","message":"the SDK patch seems to be progressing","commit_id":"ef7e2e80cf1ea8239f41cf96cf965ececc1a0897"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"e1f2a9940598c9fb0331c974a138e7d5a321aaed","unresolved":true,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Depends-On: https://review.opendev.org/983904"},{"line_number":13,"context_line":"Change-Id: I6a4145a6bd95e1e8018e4373fef3f8998a644479"},{"line_number":14,"context_line":"Signed-off-by: lajoskatona \u003clajos.katona@est.tech\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"7ee56740_5a62615e","line":14,"updated":"2026-06-19 11:51:17.000000000","message":"Mea Culpa... We need this from SDK: https://review.opendev.org/c/openstack/openstacksdk/+/994102 .\nI don\u0027t know how should I have messed it up....","commit_id":"f295534aa2b403aa363d271e30a7e754d68c48e2"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"61a615ffc796b0effc5c1d28c91b1edc6ee2badd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f14b2585_ea3697d0","updated":"2026-06-10 12:33:39.000000000","message":"The dependent patch is merged and released as SDK 4.15.0","commit_id":"16c40bad3a2d7e2f7fa243ea1d1d7ce3fa83c77f"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"7feab69315595843138176ed4e00913b00bcf4ca","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"54270db7_b8055570","updated":"2026-06-12 08:34:57.000000000","message":"recheck\nreq bump was also merged (I always forgot to check that also): https://review.opendev.org/c/openstack/requirements/+/992451","commit_id":"16c40bad3a2d7e2f7fa243ea1d1d7ce3fa83c77f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ea61c3aa9e28b904a8bced1563dcc90a7cdaf022","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"c8153bcb_e56cf7a4","updated":"2026-06-19 13:17:32.000000000","message":"for the dead code","commit_id":"f295534aa2b403aa363d271e30a7e754d68c48e2"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"6241f13af9d2cb751d9c6bcb72a41b6147d51638","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"9123207b_296f41da","updated":"2026-06-26 05:56:43.000000000","message":"recheck\npy313 timeout is not related, all tests passed","commit_id":"ff08487daa33e552c661c9fb359b17b348f918ea"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"a27c821539781a85280530a902bb7f360f9b33a2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"89e1299b_eb4457a9","updated":"2026-06-29 07:29:55.000000000","message":"recheck\nrally and dvr-ha tempest failures are not related","commit_id":"ff08487daa33e552c661c9fb359b17b348f918ea"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"d4931ad7ddbeb03774e5fb74e3ae5ece55563e1e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"4a8689ed_be6b969d","updated":"2026-07-27 15:15:23.000000000","message":"recheck\nneutron-ovs-tempest-dvr-ha-multinode-full failure is not related","commit_id":"a5b58114ef3187a482f3fd59bfc22db92ba19c39"}],"neutron/notifiers/nova.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"465088a177b8e092824aac2d385d105b6ced44b0","unresolved":true,"context_lines":[{"line_number":283,"context_line":"            rsp \u003d self.nova_client.post("},{"line_number":284,"context_line":"                \u0027/os-server-external-events\u0027,"},{"line_number":285,"context_line":"                json\u003d{\u0027events\u0027: batched_events})"},{"line_number":286,"context_line":"            response \u003d rsp.json()[\u0027events\u0027]"},{"line_number":287,"context_line":"        except ks_exceptions.EndpointNotFound:"},{"line_number":288,"context_line":"            LOG.exception(\"Nova endpoint not found, invalidating the session\")"},{"line_number":289,"context_line":"            if NOVA_SESSION:"}],"source_content_type":"text/x-python","patch_set":2,"id":"671304c1_6fa053d2","line":286,"updated":"2026-04-21 10:46:13.000000000","message":"I think this should move down to the else block...","commit_id":"bd60aabba1122edb41c5a094bb01bcb447d6e334"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ea61c3aa9e28b904a8bced1563dcc90a7cdaf022","unresolved":false,"context_lines":[{"line_number":283,"context_line":"            rsp \u003d self.nova_client.post("},{"line_number":284,"context_line":"                \u0027/os-server-external-events\u0027,"},{"line_number":285,"context_line":"                json\u003d{\u0027events\u0027: batched_events})"},{"line_number":286,"context_line":"            response \u003d rsp.json()[\u0027events\u0027]"},{"line_number":287,"context_line":"        except ks_exceptions.EndpointNotFound:"},{"line_number":288,"context_line":"            LOG.exception(\"Nova endpoint not found, invalidating the session\")"},{"line_number":289,"context_line":"            if NOVA_SESSION:"}],"source_content_type":"text/x-python","patch_set":2,"id":"a9b3b110_76d9b6f4","line":286,"in_reply_to":"671304c1_6fa053d2","updated":"2026-06-19 13:17:32.000000000","message":"Done","commit_id":"bd60aabba1122edb41c5a094bb01bcb447d6e334"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"465088a177b8e092824aac2d385d105b6ced44b0","unresolved":true,"context_lines":[{"line_number":299,"context_line":"            LOG.exception(\"Failed to notify nova on events: %s\","},{"line_number":300,"context_line":"                          batched_events)"},{"line_number":301,"context_line":"        else:"},{"line_number":302,"context_line":"            if not isinstance(response, list):"},{"line_number":303,"context_line":"                LOG.error(\"Error response returned from nova: %s\","},{"line_number":304,"context_line":"                          response)"},{"line_number":305,"context_line":"                return"}],"source_content_type":"text/x-python","patch_set":2,"id":"6e782fc4_03e6c666","line":302,"updated":"2026-04-21 10:46:13.000000000","message":"...and this should change to:\n\n```suggestion\n            if \u0027events\u0027 not in rsp or not isinstance(rsp[\u0027events\u0027], list):\n```","commit_id":"bd60aabba1122edb41c5a094bb01bcb447d6e334"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ea61c3aa9e28b904a8bced1563dcc90a7cdaf022","unresolved":false,"context_lines":[{"line_number":299,"context_line":"            LOG.exception(\"Failed to notify nova on events: %s\","},{"line_number":300,"context_line":"                          batched_events)"},{"line_number":301,"context_line":"        else:"},{"line_number":302,"context_line":"            if not isinstance(response, list):"},{"line_number":303,"context_line":"                LOG.error(\"Error response returned from nova: %s\","},{"line_number":304,"context_line":"                          response)"},{"line_number":305,"context_line":"                return"}],"source_content_type":"text/x-python","patch_set":2,"id":"e34b30d9_0e245928","line":302,"in_reply_to":"6e782fc4_03e6c666","updated":"2026-06-19 13:17:32.000000000","message":"Done","commit_id":"bd60aabba1122edb41c5a094bb01bcb447d6e334"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"e1f2a9940598c9fb0331c974a138e7d5a321aaed","unresolved":true,"context_lines":[{"line_number":280,"context_line":"    def send_events(self, batched_events):"},{"line_number":281,"context_line":"        LOG.debug(\"Sending events: %s\", batched_events)"},{"line_number":282,"context_line":"        try:"},{"line_number":283,"context_line":"            rsp \u003d self.nova_client.create_server_external_events("},{"line_number":284,"context_line":"                batched_events)"},{"line_number":285,"context_line":"            response \u003d [r.to_dict() for r in rsp]"},{"line_number":286,"context_line":"        except ks_exceptions.EndpointNotFound:"}],"source_content_type":"text/x-python","patch_set":10,"id":"6be6ae5f_9ef4c55e","line":283,"range":{"start_line":283,"start_character":35,"end_line":283,"end_character":64},"updated":"2026-06-19 11:51:17.000000000","message":"uhhhh.... I have to make the ServerExternalEvent.resource_key \u003d None \nMy bad...","commit_id":"fbe11f9eca1e756a7264e6c13f11f9d00f980731"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ea61c3aa9e28b904a8bced1563dcc90a7cdaf022","unresolved":true,"context_lines":[{"line_number":280,"context_line":"    def send_events(self, batched_events):"},{"line_number":281,"context_line":"        LOG.debug(\"Sending events: %s\", batched_events)"},{"line_number":282,"context_line":"        try:"},{"line_number":283,"context_line":"            rsp \u003d self.nova_client.create_server_external_events("},{"line_number":284,"context_line":"                batched_events)"},{"line_number":285,"context_line":"        except ks_exceptions.EndpointNotFound:"},{"line_number":286,"context_line":"            LOG.exception(\"Nova endpoint not found, invalidating the session\")"}],"source_content_type":"text/x-python","patch_set":11,"id":"6c82dca6_52a48261","line":283,"updated":"2026-06-19 13:17:32.000000000","message":"You should wrap this in `list` here...","commit_id":"f295534aa2b403aa363d271e30a7e754d68c48e2"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"445ecefcd98b6fc99d0a50c9b5375f14c2929eb7","unresolved":false,"context_lines":[{"line_number":280,"context_line":"    def send_events(self, batched_events):"},{"line_number":281,"context_line":"        LOG.debug(\"Sending events: %s\", batched_events)"},{"line_number":282,"context_line":"        try:"},{"line_number":283,"context_line":"            rsp \u003d self.nova_client.create_server_external_events("},{"line_number":284,"context_line":"                batched_events)"},{"line_number":285,"context_line":"        except ks_exceptions.EndpointNotFound:"},{"line_number":286,"context_line":"            LOG.exception(\"Nova endpoint not found, invalidating the session\")"}],"source_content_type":"text/x-python","patch_set":11,"id":"d248a9f2_5b69cf72","line":283,"in_reply_to":"6c82dca6_52a48261","updated":"2026-06-25 15:04:54.000000000","message":"Done","commit_id":"f295534aa2b403aa363d271e30a7e754d68c48e2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ea61c3aa9e28b904a8bced1563dcc90a7cdaf022","unresolved":true,"context_lines":[{"line_number":296,"context_line":"        except Exception:"},{"line_number":297,"context_line":"            LOG.exception(\"Failed to notify nova on events: %s\","},{"line_number":298,"context_line":"                          batched_events)"},{"line_number":299,"context_line":"        else:"},{"line_number":300,"context_line":"            try:"},{"line_number":301,"context_line":"                response \u003d [r.to_dict() for r in rsp]"},{"line_number":302,"context_line":"            except (TypeError, AttributeError):"},{"line_number":303,"context_line":"                LOG.error(\"Error response returned from nova: %s\","},{"line_number":304,"context_line":"                          rsp)"},{"line_number":305,"context_line":"                return"},{"line_number":306,"context_line":"            response_error \u003d False"},{"line_number":307,"context_line":"            for event in response:"},{"line_number":308,"context_line":"                try:"}],"source_content_type":"text/x-python","patch_set":11,"id":"618e26e8_dd24a8cc","line":305,"range":{"start_line":299,"start_character":13,"end_line":305,"end_character":22},"updated":"2026-06-19 13:17:32.000000000","message":"And you can drop this block then","commit_id":"f295534aa2b403aa363d271e30a7e754d68c48e2"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"445ecefcd98b6fc99d0a50c9b5375f14c2929eb7","unresolved":true,"context_lines":[{"line_number":296,"context_line":"        except Exception:"},{"line_number":297,"context_line":"            LOG.exception(\"Failed to notify nova on events: %s\","},{"line_number":298,"context_line":"                          batched_events)"},{"line_number":299,"context_line":"        else:"},{"line_number":300,"context_line":"            try:"},{"line_number":301,"context_line":"                response \u003d [r.to_dict() for r in rsp]"},{"line_number":302,"context_line":"            except (TypeError, AttributeError):"},{"line_number":303,"context_line":"                LOG.error(\"Error response returned from nova: %s\","},{"line_number":304,"context_line":"                          rsp)"},{"line_number":305,"context_line":"                return"},{"line_number":306,"context_line":"            response_error \u003d False"},{"line_number":307,"context_line":"            for event in response:"},{"line_number":308,"context_line":"                try:"}],"source_content_type":"text/x-python","patch_set":11,"id":"0a79052e_e100ed03","line":305,"range":{"start_line":299,"start_character":13,"end_line":305,"end_character":22},"in_reply_to":"618e26e8_dd24a8cc","updated":"2026-06-25 15:04:54.000000000","message":"makes sense, thanks","commit_id":"f295534aa2b403aa363d271e30a7e754d68c48e2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ea61c3aa9e28b904a8bced1563dcc90a7cdaf022","unresolved":true,"context_lines":[{"line_number":309,"context_line":"                    code \u003d event[\u0027code\u0027]"},{"line_number":310,"context_line":"                except KeyError:"},{"line_number":311,"context_line":"                    response_error \u003d True"},{"line_number":312,"context_line":"                    continue"},{"line_number":313,"context_line":"                if hasattr(response, \u0027request_ids\u0027):"},{"line_number":314,"context_line":"                    msg \u003d f\"Nova event matching {response.request_ids}\""},{"line_number":315,"context_line":"                else:"},{"line_number":316,"context_line":"                    msg \u003d \"Nova event\""},{"line_number":317,"context_line":"                if code !\u003d 200:"},{"line_number":318,"context_line":"                    LOG.warning(\"%s: %s returned with failed \""},{"line_number":319,"context_line":"                                \"status\", msg, event)"}],"source_content_type":"text/x-python","patch_set":11,"id":"53c76f6b_2279c3f1","line":316,"range":{"start_line":312,"start_character":28,"end_line":316,"end_character":38},"updated":"2026-06-19 13:17:32.000000000","message":"I think this is dead code? Nothing will ever set `request_ids`","commit_id":"f295534aa2b403aa363d271e30a7e754d68c48e2"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"445ecefcd98b6fc99d0a50c9b5375f14c2929eb7","unresolved":true,"context_lines":[{"line_number":309,"context_line":"                    code \u003d event[\u0027code\u0027]"},{"line_number":310,"context_line":"                except KeyError:"},{"line_number":311,"context_line":"                    response_error \u003d True"},{"line_number":312,"context_line":"                    continue"},{"line_number":313,"context_line":"                if hasattr(response, \u0027request_ids\u0027):"},{"line_number":314,"context_line":"                    msg \u003d f\"Nova event matching {response.request_ids}\""},{"line_number":315,"context_line":"                else:"},{"line_number":316,"context_line":"                    msg \u003d \"Nova event\""},{"line_number":317,"context_line":"                if code !\u003d 200:"},{"line_number":318,"context_line":"                    LOG.warning(\"%s: %s returned with failed \""},{"line_number":319,"context_line":"                                \"status\", msg, event)"}],"source_content_type":"text/x-python","patch_set":11,"id":"f9970337_3c050782","line":316,"range":{"start_line":312,"start_character":28,"end_line":316,"end_character":38},"in_reply_to":"53c76f6b_2279c3f1","updated":"2026-06-25 15:04:54.000000000","message":"thanks, makes the logging simpler","commit_id":"f295534aa2b403aa363d271e30a7e754d68c48e2"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f15610991676ef3ff8aabfa435c6eef4ec5a5899","unresolved":true,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    def _get_sdk_compute_client(self):"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        global NOVA_SESSION"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        if not NOVA_SESSION:"},{"line_number":95,"context_line":"            NOVA_SESSION \u003d self._get_session()"}],"source_content_type":"text/x-python","patch_set":13,"id":"1d74a099_e5d2a86f","line":92,"updated":"2026-07-10 12:39:04.000000000","message":"I\u0027m not sure I understand why you need to use global variable here instead of simple use class var and do it to be something like:\n\n    class Notifier:\n        _nova_session \u003d None\n       \n    @attribute\n    def nova_session(self):\n        if self._nova_session is None:\n            conn \u003d connection.Connection(\n                session\u003dNOVA_SESSION,\n                connect_retries\u003dcfg.CONF.http_retries,\n             )\n             conn.compute.region_name \u003d cfg.CONF.nova.region_name\n             self._nova_session \u003d conn.compute\n         return self._nova_session","commit_id":"776b2eb3d3e9b8287786912f76b92b2be48ba9eb"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"f881ac21354099cfa60020b373e233bf76458408","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    def _get_sdk_compute_client(self):"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        global NOVA_SESSION"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        if not NOVA_SESSION:"},{"line_number":95,"context_line":"            NOVA_SESSION \u003d self._get_session()"}],"source_content_type":"text/x-python","patch_set":13,"id":"efa6320a_5a224a36","line":92,"in_reply_to":"1d74a099_e5d2a86f","updated":"2026-07-24 12:29:17.000000000","message":"good idea, I changed to class property, nova_client","commit_id":"776b2eb3d3e9b8287786912f76b92b2be48ba9eb"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"3c4a13494b537a0b90401ac33057bbc99b3c675c","unresolved":true,"context_lines":[{"line_number":93,"context_line":"            api_versions.APIVersion(NOVA_API_VERSION),"},{"line_number":94,"context_line":"            session\u003dself.session,"},{"line_number":95,"context_line":"            region_name\u003dcfg.CONF.nova.region_name,"},{"line_number":96,"context_line":"            endpoint_type\u003dcfg.CONF.nova.endpoint_type,"},{"line_number":97,"context_line":"            extensions\u003dself.extensions,"},{"line_number":98,"context_line":"            connect_retries\u003dcfg.CONF.http_retries,"},{"line_number":99,"context_line":"            global_request_id\u003dglobal_id)"}],"source_content_type":"text/x-python","patch_set":15,"id":"2fb82f14_9b8c5b47","side":"PARENT","line":96,"range":{"start_line":96,"start_character":40,"end_line":96,"end_character":53},"updated":"2026-07-27 08:18:09.000000000","message":"From Claude: we are dropping this config option.\nEither:\n* Map endpoint_type to the equivalent SDK mechanism (e.g., pass interface\u003dcfg.CONF.nova.endpoint_type to the Connection), or\n* Document this as a breaking change in the release note (currently classified under other: rather than upgrade:).","commit_id":"f004042141a366a0e5646065f86862052dfd8f84"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"eca3e0e4bc3bbbe689332129c4af7b95b091b4db","unresolved":false,"context_lines":[{"line_number":93,"context_line":"            api_versions.APIVersion(NOVA_API_VERSION),"},{"line_number":94,"context_line":"            session\u003dself.session,"},{"line_number":95,"context_line":"            region_name\u003dcfg.CONF.nova.region_name,"},{"line_number":96,"context_line":"            endpoint_type\u003dcfg.CONF.nova.endpoint_type,"},{"line_number":97,"context_line":"            extensions\u003dself.extensions,"},{"line_number":98,"context_line":"            connect_retries\u003dcfg.CONF.http_retries,"},{"line_number":99,"context_line":"            global_request_id\u003dglobal_id)"}],"source_content_type":"text/x-python","patch_set":15,"id":"222757a0_c4a3fa6f","side":"PARENT","line":96,"range":{"start_line":96,"start_character":40,"end_line":96,"end_character":53},"in_reply_to":"2fb82f14_9b8c5b47","updated":"2026-07-27 11:47:35.000000000","message":"true, I missed that part. I added deprecation for endpoint_type, and removed region_name as with the same name we have cfg option from Keystone Adapter. Updated the re-no also with it","commit_id":"f004042141a366a0e5646065f86862052dfd8f84"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"3c4a13494b537a0b90401ac33057bbc99b3c675c","unresolved":true,"context_lines":[{"line_number":44,"context_line":"NEUTRON_NOVA_EVENT_STATUS_MAP \u003d {constants.PORT_STATUS_ACTIVE: \u0027completed\u0027,"},{"line_number":45,"context_line":"                                 constants.PORT_STATUS_ERROR: \u0027failed\u0027,"},{"line_number":46,"context_line":"                                 constants.PORT_STATUS_DOWN: \u0027completed\u0027}"},{"line_number":47,"context_line":"NOVA_API_VERSION \u003d \"2.1\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"NOTIFIER_ENABLE_DEFAULT \u003d True"},{"line_number":50,"context_line":"# NOTE(ralonsoh): the Nova notifier can be called simultaneously by several RPC"}],"source_content_type":"text/x-python","patch_set":15,"id":"5b5df424_3a7b9a5c","line":47,"range":{"start_line":47,"start_character":0,"end_line":47,"end_character":2},"updated":"2026-07-27 08:18:09.000000000","message":"Dead code now","commit_id":"53dc5acc7b3dc2f808fcb79dd8f4b4a896205cfc"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"eca3e0e4bc3bbbe689332129c4af7b95b091b4db","unresolved":false,"context_lines":[{"line_number":44,"context_line":"NEUTRON_NOVA_EVENT_STATUS_MAP \u003d {constants.PORT_STATUS_ACTIVE: \u0027completed\u0027,"},{"line_number":45,"context_line":"                                 constants.PORT_STATUS_ERROR: \u0027failed\u0027,"},{"line_number":46,"context_line":"                                 constants.PORT_STATUS_DOWN: \u0027completed\u0027}"},{"line_number":47,"context_line":"NOVA_API_VERSION \u003d \"2.1\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"NOTIFIER_ENABLE_DEFAULT \u003d True"},{"line_number":50,"context_line":"# NOTE(ralonsoh): the Nova notifier can be called simultaneously by several RPC"}],"source_content_type":"text/x-python","patch_set":15,"id":"e9f260ba_1357786a","line":47,"range":{"start_line":47,"start_character":0,"end_line":47,"end_character":2},"in_reply_to":"5b5df424_3a7b9a5c","updated":"2026-07-27 11:47:35.000000000","message":"thanks, removed","commit_id":"53dc5acc7b3dc2f808fcb79dd8f4b4a896205cfc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"3c4a13494b537a0b90401ac33057bbc99b3c675c","unresolved":true,"context_lines":[{"line_number":58,"context_line":"class Notifier:"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    _instance \u003d None"},{"line_number":61,"context_line":"    _session \u003d None"},{"line_number":62,"context_line":"    _nova_client \u003d None"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @classmethod"},{"line_number":65,"context_line":"    def get_instance(cls):"}],"source_content_type":"text/x-python","patch_set":15,"id":"9f80430f_18e2ac66","line":62,"range":{"start_line":61,"start_character":4,"end_line":62,"end_character":23},"updated":"2026-07-27 08:18:09.000000000","message":"These are instance variables, not class ones.","commit_id":"53dc5acc7b3dc2f808fcb79dd8f4b4a896205cfc"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"eca3e0e4bc3bbbe689332129c4af7b95b091b4db","unresolved":false,"context_lines":[{"line_number":58,"context_line":"class Notifier:"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    _instance \u003d None"},{"line_number":61,"context_line":"    _session \u003d None"},{"line_number":62,"context_line":"    _nova_client \u003d None"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @classmethod"},{"line_number":65,"context_line":"    def get_instance(cls):"}],"source_content_type":"text/x-python","patch_set":15,"id":"03ca19da_0017f599","line":62,"range":{"start_line":61,"start_character":4,"end_line":62,"end_character":23},"in_reply_to":"9f80430f_18e2ac66","updated":"2026-07-27 11:47:35.000000000","message":"true, moved them to __init__","commit_id":"53dc5acc7b3dc2f808fcb79dd8f4b4a896205cfc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"3c4a13494b537a0b90401ac33057bbc99b3c675c","unresolved":true,"context_lines":[{"line_number":71,"context_line":"        self.batch_notifier \u003d batch_notifier.BatchNotifier("},{"line_number":72,"context_line":"            cfg.CONF.send_events_interval, self.send_events)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def _get_session(self):"},{"line_number":75,"context_line":"        auth \u003d ks_loading.load_auth_from_conf_options(cfg.CONF, \u0027nova\u0027)"},{"line_number":76,"context_line":"        session \u003d ks_loading.load_session_from_conf_options("},{"line_number":77,"context_line":"            cfg.CONF,"}],"source_content_type":"text/x-python","patch_set":15,"id":"22113d4d_1725d606","line":74,"range":{"start_line":74,"start_character":21,"end_line":74,"end_character":25},"updated":"2026-07-27 08:18:09.000000000","message":"small nit: That looks like a static method to me.","commit_id":"53dc5acc7b3dc2f808fcb79dd8f4b4a896205cfc"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"eca3e0e4bc3bbbe689332129c4af7b95b091b4db","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        self.batch_notifier \u003d batch_notifier.BatchNotifier("},{"line_number":72,"context_line":"            cfg.CONF.send_events_interval, self.send_events)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def _get_session(self):"},{"line_number":75,"context_line":"        auth \u003d ks_loading.load_auth_from_conf_options(cfg.CONF, \u0027nova\u0027)"},{"line_number":76,"context_line":"        session \u003d ks_loading.load_session_from_conf_options("},{"line_number":77,"context_line":"            cfg.CONF,"}],"source_content_type":"text/x-python","patch_set":15,"id":"57c3ec61_32aa815d","line":74,"range":{"start_line":74,"start_character":21,"end_line":74,"end_character":25},"in_reply_to":"22113d4d_1725d606","updated":"2026-07-27 11:47:35.000000000","message":"Done","commit_id":"53dc5acc7b3dc2f808fcb79dd8f4b4a896205cfc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"3c4a13494b537a0b90401ac33057bbc99b3c675c","unresolved":true,"context_lines":[{"line_number":283,"context_line":"                batched_events))"},{"line_number":284,"context_line":"        except ks_exceptions.EndpointNotFound:"},{"line_number":285,"context_line":"            LOG.exception(\"Nova endpoint not found, invalidating the session\")"},{"line_number":286,"context_line":"            if self._session:"},{"line_number":287,"context_line":"                self._session.invalidate()"},{"line_number":288,"context_line":"            self._nova_client \u003d None"},{"line_number":289,"context_line":"        except sdk_exc.NotFoundException:"}],"source_content_type":"text/x-python","patch_set":15,"id":"37fe293c_8ee2d371","line":286,"range":{"start_line":286,"start_character":12,"end_line":286,"end_character":29},"updated":"2026-07-27 08:18:09.000000000","message":"Just asking: here we don\u0027t need to make ``self._session \u003d None``, just invalidate the current one, right?","commit_id":"53dc5acc7b3dc2f808fcb79dd8f4b4a896205cfc"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"eca3e0e4bc3bbbe689332129c4af7b95b091b4db","unresolved":false,"context_lines":[{"line_number":283,"context_line":"                batched_events))"},{"line_number":284,"context_line":"        except ks_exceptions.EndpointNotFound:"},{"line_number":285,"context_line":"            LOG.exception(\"Nova endpoint not found, invalidating the session\")"},{"line_number":286,"context_line":"            if self._session:"},{"line_number":287,"context_line":"                self._session.invalidate()"},{"line_number":288,"context_line":"            self._nova_client \u003d None"},{"line_number":289,"context_line":"        except sdk_exc.NotFoundException:"}],"source_content_type":"text/x-python","patch_set":15,"id":"405ea3ab_b9e0a195","line":286,"range":{"start_line":286,"start_character":12,"end_line":286,"end_character":29},"in_reply_to":"37fe293c_8ee2d371","updated":"2026-07-27 11:47:35.000000000","message":"yes, invalidation is enough for session, as new token will be asked at next usage. for _nova_client it can happen that even the endpoint changed during upgrade or similar, so \u003d None can be the sure solution.","commit_id":"53dc5acc7b3dc2f808fcb79dd8f4b4a896205cfc"}],"neutron/tests/unit/notifiers/test_nova.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8136ff2c00a5b2ec297afd3229f0f7a268c9c600","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from neutron_lib import exceptions as n_exc"},{"line_number":25,"context_line":"from neutron_lib.plugins import constants as plugin_constants"},{"line_number":26,"context_line":"from neutron_lib.plugins import directory"},{"line_number":27,"context_line":"from openstack.compute.v2 import server_external_events"},{"line_number":28,"context_line":"from openstack import exceptions as sdk_exc"},{"line_number":29,"context_line":"from oslo_config import cfg"},{"line_number":30,"context_line":"from oslo_utils import uuidutils"}],"source_content_type":"text/x-python","patch_set":6,"id":"b5b25b0a_d0da302b","line":27,"updated":"2026-06-10 15:54:00.000000000","message":"pep8: E0611: No name \u0027server_external_events\u0027 in module \u0027openstack.compute.v2\u0027 (no-name-in-module)","commit_id":"16c40bad3a2d7e2f7fa243ea1d1d7ce3fa83c77f"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"233fce6309ab78e1b9ae7929cad7803f157e8458","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from neutron_lib import exceptions as n_exc"},{"line_number":25,"context_line":"from neutron_lib.plugins import constants as plugin_constants"},{"line_number":26,"context_line":"from neutron_lib.plugins import directory"},{"line_number":27,"context_line":"from openstack.compute.v2 import server_external_events"},{"line_number":28,"context_line":"from openstack import exceptions as sdk_exc"},{"line_number":29,"context_line":"from oslo_config import cfg"},{"line_number":30,"context_line":"from oslo_utils import uuidutils"}],"source_content_type":"text/x-python","patch_set":7,"id":"283e2a72_be1daa9e","line":27,"updated":"2026-06-12 11:18:09.000000000","message":"pep8: E0611: No name \u0027server_external_events\u0027 in module \u0027openstack.compute.v2\u0027 (no-name-in-module)","commit_id":"ea3852a2ed26012ff7d73cbeda5f3d4b5369799a"}]}
