)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":28056,"name":"Liushy","email":"liuxie_11@163.com","username":"liuxie_11"},"change_message_id":"128e46b798ea7bf403ca87edc59b208d16cf7fe5","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"13cfdb82_aa02dda7","updated":"2024-04-28 06:11:45.000000000","message":"recheck：\n```\nneutron-tempest-plugin-openvswitch\n```","commit_id":"a074ecbdc7164b396f56c8e8d389d6cbb72e1e60"},{"author":{"_account_id":28056,"name":"Liushy","email":"liuxie_11@163.com","username":"liuxie_11"},"change_message_id":"345a4e554284dcb6c28672a95fba09cc968c00b1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f4b4dc11_14ca44d7","in_reply_to":"13cfdb82_aa02dda7","updated":"2024-04-30 08:12:16.000000000","message":"Done","commit_id":"a074ecbdc7164b396f56c8e8d389d6cbb72e1e60"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"df93ebd60757ad914d5c7d2d03cfaf4c265e2a24","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"b7003ca4_623aaf40","updated":"2024-09-09 03:20:12.000000000","message":"recheck let\u0027s get some recent logs","commit_id":"12edc131796bbcbb4f32d1334cde933f74e64cab"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b5dcb964f0862e51b3943a8c18d6f8c07794944b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"5980d065_e3460d7f","updated":"2024-09-10 05:50:54.000000000","message":"You also need to add tests.","commit_id":"a4c5d823f0168b3d5df5c65fa19b8f0f6e44449f"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"32d49cfdd112d69142ba01c403bfc62b60a344ab","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"3467f3c6_30ecf496","in_reply_to":"5980d065_e3460d7f","updated":"2024-09-17 09:42:05.000000000","message":"+1 for tests, I can imagine functional tests also for this","commit_id":"a4c5d823f0168b3d5df5c65fa19b8f0f6e44449f"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/mech_driver.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"bf0c1f17a99fef90a98dde0624e8d6c5119cfbe9","unresolved":true,"context_lines":[{"line_number":379,"context_line":"        # Now IDL connections can be safely used."},{"line_number":380,"context_line":"        self._post_fork_event.set()"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"        # NOTE(liushy): We need to wait for the agents API methods"},{"line_number":383,"context_line":"        # to be overridden."},{"line_number":384,"context_line":"        if worker_class \u003d\u003d wsgi.WorkerService:"},{"line_number":385,"context_line":"            self._setup_agent_healthcheck()"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"        if worker_class \u003d\u003d worker.MaintenanceWorker:"},{"line_number":388,"context_line":"            # Call the synchronization task if its maintenance worker"},{"line_number":389,"context_line":"            # This sync neutron DB to OVN-NB DB only in inconsistent states"}],"source_content_type":"text/x-python","patch_set":7,"id":"dcbbf9cf_7411fb7f","line":386,"range":{"start_line":382,"start_character":8,"end_line":386,"end_character":1},"updated":"2024-09-09 08:42:51.000000000","message":"Why don\u0027t you add this method into the ``MaintenanceWorker``? This is the purpose of this class.","commit_id":"5b5ed9a312f1b955e82ed0a267d649bb61509a65"},{"author":{"_account_id":28056,"name":"Liushy","email":"liuxie_11@163.com","username":"liuxie_11"},"change_message_id":"c1599e928e210e021d4b4d989e74b34cee2f175d","unresolved":true,"context_lines":[{"line_number":379,"context_line":"        # Now IDL connections can be safely used."},{"line_number":380,"context_line":"        self._post_fork_event.set()"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"        # NOTE(liushy): We need to wait for the agents API methods"},{"line_number":383,"context_line":"        # to be overridden."},{"line_number":384,"context_line":"        if worker_class \u003d\u003d wsgi.WorkerService:"},{"line_number":385,"context_line":"            self._setup_agent_healthcheck()"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"        if worker_class \u003d\u003d worker.MaintenanceWorker:"},{"line_number":388,"context_line":"            # Call the synchronization task if its maintenance worker"},{"line_number":389,"context_line":"            # This sync neutron DB to OVN-NB DB only in inconsistent states"}],"source_content_type":"text/x-python","patch_set":7,"id":"a41f7971_3e1a76b5","line":386,"range":{"start_line":382,"start_character":8,"end_line":386,"end_character":1},"in_reply_to":"56442821_5221b690","updated":"2024-09-10 03:01:00.000000000","message":"OK, let me upgrade it in next patch!","commit_id":"5b5ed9a312f1b955e82ed0a267d649bb61509a65"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"fabd88f9d10bd49824d4f9471195af8de7f1ade7","unresolved":true,"context_lines":[{"line_number":379,"context_line":"        # Now IDL connections can be safely used."},{"line_number":380,"context_line":"        self._post_fork_event.set()"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"        # NOTE(liushy): We need to wait for the agents API methods"},{"line_number":383,"context_line":"        # to be overridden."},{"line_number":384,"context_line":"        if worker_class \u003d\u003d wsgi.WorkerService:"},{"line_number":385,"context_line":"            self._setup_agent_healthcheck()"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"        if worker_class \u003d\u003d worker.MaintenanceWorker:"},{"line_number":388,"context_line":"            # Call the synchronization task if its maintenance worker"},{"line_number":389,"context_line":"            # This sync neutron DB to OVN-NB DB only in inconsistent states"}],"source_content_type":"text/x-python","patch_set":7,"id":"56442821_5221b690","line":386,"range":{"start_line":382,"start_character":8,"end_line":386,"end_character":1},"in_reply_to":"877335c4_3ecdc72a","updated":"2024-09-09 14:03:13.000000000","message":"Sorry, that does it mean? If I\u0027m correct, what you are saying is that you want a first execution of this check before making any API call related to the agents. That\u0027s fair but you can make a single call (only once) here to the method and yet configure a periodic method in the maintenance worker. The API workers (WorkerService) must not have any periodic threads.","commit_id":"5b5ed9a312f1b955e82ed0a267d649bb61509a65"},{"author":{"_account_id":28056,"name":"Liushy","email":"liuxie_11@163.com","username":"liuxie_11"},"change_message_id":"e259c4b03565972070cff107185fea84006d2f29","unresolved":true,"context_lines":[{"line_number":379,"context_line":"        # Now IDL connections can be safely used."},{"line_number":380,"context_line":"        self._post_fork_event.set()"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"        # NOTE(liushy): We need to wait for the agents API methods"},{"line_number":383,"context_line":"        # to be overridden."},{"line_number":384,"context_line":"        if worker_class \u003d\u003d wsgi.WorkerService:"},{"line_number":385,"context_line":"            self._setup_agent_healthcheck()"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"        if worker_class \u003d\u003d worker.MaintenanceWorker:"},{"line_number":388,"context_line":"            # Call the synchronization task if its maintenance worker"},{"line_number":389,"context_line":"            # This sync neutron DB to OVN-NB DB only in inconsistent states"}],"source_content_type":"text/x-python","patch_set":7,"id":"877335c4_3ecdc72a","line":386,"range":{"start_line":382,"start_character":8,"end_line":386,"end_character":1},"in_reply_to":"dcbbf9cf_7411fb7f","updated":"2024-09-09 09:16:03.000000000","message":"Because our goal is to ensure that the agent API retrieves the correct information.","commit_id":"5b5ed9a312f1b955e82ed0a267d649bb61509a65"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b5dcb964f0862e51b3943a8c18d6f8c07794944b","unresolved":true,"context_lines":[{"line_number":405,"context_line":"            self._maintenance_thread.start()"},{"line_number":406,"context_line":"            # NOTE(liushy): We need to wait for the agents API methods"},{"line_number":407,"context_line":"            # to be overridden."},{"line_number":408,"context_line":"            self._setup_agent_healthcheck()"},{"line_number":409,"context_line":"            LOG.info(\"Maintenance task thread has started\")"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"        LOG.info(\u0027%s process has finished the post initialization\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"241d31da_b727001f","line":408,"range":{"start_line":408,"start_character":12,"end_line":408,"end_character":43},"updated":"2024-09-10 05:50:54.000000000","message":"This is not how a maintenance method is implemented. The are many examples in the Maintenance class.","commit_id":"a4c5d823f0168b3d5df5c65fa19b8f0f6e44449f"},{"author":{"_account_id":28056,"name":"Liushy","email":"liuxie_11@163.com","username":"liuxie_11"},"change_message_id":"a46cc364f3cd1b3acb50a514cebe03c27a2bf6f6","unresolved":false,"context_lines":[{"line_number":405,"context_line":"            self._maintenance_thread.start()"},{"line_number":406,"context_line":"            # NOTE(liushy): We need to wait for the agents API methods"},{"line_number":407,"context_line":"            # to be overridden."},{"line_number":408,"context_line":"            self._setup_agent_healthcheck()"},{"line_number":409,"context_line":"            LOG.info(\"Maintenance task thread has started\")"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"        LOG.info(\u0027%s process has finished the post initialization\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f02c6d9_aa1311e4","line":408,"range":{"start_line":408,"start_character":12,"end_line":408,"end_character":43},"in_reply_to":"241d31da_b727001f","updated":"2024-09-10 08:03:14.000000000","message":"Done","commit_id":"a4c5d823f0168b3d5df5c65fa19b8f0f6e44449f"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/impl_idl_ovn.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b5dcb964f0862e51b3943a8c18d6f8c07794944b","unresolved":true,"context_lines":[{"line_number":916,"context_line":"    def from_worker(cls, worker_class, driver\u003dNone):"},{"line_number":917,"context_line":"        args \u003d (cls.connection_string, cls.schema_helper)"},{"line_number":918,"context_line":"        if worker_class \u003d\u003d worker.MaintenanceWorker:"},{"line_number":919,"context_line":"            idl_ \u003d ovsdb_monitor.OvnSbIdl.from_server(*args, driver\u003ddriver)"},{"line_number":920,"context_line":"        else:"},{"line_number":921,"context_line":"            idl_ \u003d ovsdb_monitor.OvnSbIdl.from_server(*args, driver\u003ddriver)"},{"line_number":922,"context_line":"        conn \u003d connection.Connection(idl_, timeout\u003dcfg.get_ovn_ovsdb_timeout())"}],"source_content_type":"text/x-python","patch_set":9,"id":"6a9a7b7d_a614535d","line":919,"range":{"start_line":919,"start_character":33,"end_line":919,"end_character":75},"updated":"2024-09-10 05:50:54.000000000","message":"What is this change?","commit_id":"a4c5d823f0168b3d5df5c65fa19b8f0f6e44449f"},{"author":{"_account_id":28056,"name":"Liushy","email":"liuxie_11@163.com","username":"liuxie_11"},"change_message_id":"a46cc364f3cd1b3acb50a514cebe03c27a2bf6f6","unresolved":true,"context_lines":[{"line_number":916,"context_line":"    def from_worker(cls, worker_class, driver\u003dNone):"},{"line_number":917,"context_line":"        args \u003d (cls.connection_string, cls.schema_helper)"},{"line_number":918,"context_line":"        if worker_class \u003d\u003d worker.MaintenanceWorker:"},{"line_number":919,"context_line":"            idl_ \u003d ovsdb_monitor.OvnSbIdl.from_server(*args, driver\u003ddriver)"},{"line_number":920,"context_line":"        else:"},{"line_number":921,"context_line":"            idl_ \u003d ovsdb_monitor.OvnSbIdl.from_server(*args, driver\u003ddriver)"},{"line_number":922,"context_line":"        conn \u003d connection.Connection(idl_, timeout\u003dcfg.get_ovn_ovsdb_timeout())"}],"source_content_type":"text/x-python","patch_set":9,"id":"cb88ae17_43d50f9c","line":919,"range":{"start_line":919,"start_character":33,"end_line":919,"end_character":75},"in_reply_to":"6a9a7b7d_a614535d","updated":"2024-09-10 08:03:14.000000000","message":"This change allows the `MaintenanceWorker` to monitor chassis events, such as `ChassisAgentWriteEvent` or `ChassisAgentDeleteEvent`, so that it can update the `AgentCache()` and ensure `get_agents` retrieves the correct information.","commit_id":"a4c5d823f0168b3d5df5c65fa19b8f0f6e44449f"}],"neutron/plugins/ml2/plugin.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"bf0c1f17a99fef90a98dde0624e8d6c5119cfbe9","unresolved":true,"context_lines":[{"line_number":296,"context_line":"        self.mechanism_manager.initialize()"},{"line_number":297,"context_line":"        self._setup_dhcp()"},{"line_number":298,"context_line":"        self._start_rpc_notifiers()"},{"line_number":299,"context_line":"        if \u0027ovn\u0027 not in self.mechanism_manager.mech_drivers:"},{"line_number":300,"context_line":"            self.add_agent_status_check_worker(self.agent_health_check)"},{"line_number":301,"context_line":"        self.add_workers(self.mechanism_manager.get_workers())"},{"line_number":302,"context_line":"        self._verify_service_plugins_requirements()"},{"line_number":303,"context_line":"        self._quota_workers()"}],"source_content_type":"text/x-python","patch_set":7,"id":"788e345d_cb2dc751","line":300,"range":{"start_line":299,"start_character":8,"end_line":300,"end_character":71},"updated":"2024-09-09 08:42:51.000000000","message":"If that depends on the mech drivers loaded, we should then ask them to add the agent status check worker. But we should avoid having this specific driver code (\u0027ovn\u0027) in the plugin.\n\nBut this could be for a follow-up patch.","commit_id":"5b5ed9a312f1b955e82ed0a267d649bb61509a65"},{"author":{"_account_id":28056,"name":"Liushy","email":"liuxie_11@163.com","username":"liuxie_11"},"change_message_id":"e259c4b03565972070cff107185fea84006d2f29","unresolved":true,"context_lines":[{"line_number":296,"context_line":"        self.mechanism_manager.initialize()"},{"line_number":297,"context_line":"        self._setup_dhcp()"},{"line_number":298,"context_line":"        self._start_rpc_notifiers()"},{"line_number":299,"context_line":"        if \u0027ovn\u0027 not in self.mechanism_manager.mech_drivers:"},{"line_number":300,"context_line":"            self.add_agent_status_check_worker(self.agent_health_check)"},{"line_number":301,"context_line":"        self.add_workers(self.mechanism_manager.get_workers())"},{"line_number":302,"context_line":"        self._verify_service_plugins_requirements()"},{"line_number":303,"context_line":"        self._quota_workers()"}],"source_content_type":"text/x-python","patch_set":7,"id":"d21bea87_a47eeb8c","line":300,"range":{"start_line":299,"start_character":8,"end_line":300,"end_character":71},"in_reply_to":"788e345d_cb2dc751","updated":"2024-09-09 09:16:03.000000000","message":"Emm, I have no better solution to fix this issue.","commit_id":"5b5ed9a312f1b955e82ed0a267d649bb61509a65"},{"author":{"_account_id":28056,"name":"Liushy","email":"liuxie_11@163.com","username":"liuxie_11"},"change_message_id":"c1599e928e210e021d4b4d989e74b34cee2f175d","unresolved":false,"context_lines":[{"line_number":296,"context_line":"        self.mechanism_manager.initialize()"},{"line_number":297,"context_line":"        self._setup_dhcp()"},{"line_number":298,"context_line":"        self._start_rpc_notifiers()"},{"line_number":299,"context_line":"        if \u0027ovn\u0027 not in self.mechanism_manager.mech_drivers:"},{"line_number":300,"context_line":"            self.add_agent_status_check_worker(self.agent_health_check)"},{"line_number":301,"context_line":"        self.add_workers(self.mechanism_manager.get_workers())"},{"line_number":302,"context_line":"        self._verify_service_plugins_requirements()"},{"line_number":303,"context_line":"        self._quota_workers()"}],"source_content_type":"text/x-python","patch_set":7,"id":"0e12f47a_67a0b969","line":300,"range":{"start_line":299,"start_character":8,"end_line":300,"end_character":71},"in_reply_to":"b2f6641e_eaa493dd","updated":"2024-09-10 03:01:00.000000000","message":"Done","commit_id":"5b5ed9a312f1b955e82ed0a267d649bb61509a65"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"fabd88f9d10bd49824d4f9471195af8de7f1ade7","unresolved":true,"context_lines":[{"line_number":296,"context_line":"        self.mechanism_manager.initialize()"},{"line_number":297,"context_line":"        self._setup_dhcp()"},{"line_number":298,"context_line":"        self._start_rpc_notifiers()"},{"line_number":299,"context_line":"        if \u0027ovn\u0027 not in self.mechanism_manager.mech_drivers:"},{"line_number":300,"context_line":"            self.add_agent_status_check_worker(self.agent_health_check)"},{"line_number":301,"context_line":"        self.add_workers(self.mechanism_manager.get_workers())"},{"line_number":302,"context_line":"        self._verify_service_plugins_requirements()"},{"line_number":303,"context_line":"        self._quota_workers()"}],"source_content_type":"text/x-python","patch_set":7,"id":"b2f6641e_eaa493dd","line":300,"range":{"start_line":299,"start_character":8,"end_line":300,"end_character":71},"in_reply_to":"d21bea87_a47eeb8c","updated":"2024-09-09 14:03:13.000000000","message":"At least add a comment here to refactor this code.","commit_id":"5b5ed9a312f1b955e82ed0a267d649bb61509a65"}]}
