)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"145a830d9972caa3fa8aa7721c41d05ac265ead6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"e9e1db53_abee82ee","updated":"2024-11-25 11:32:31.000000000","message":"Thanks Rodolfo","commit_id":"32c14fbb2f67c4ac309c668456f421f363627e11"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"65f322cb399aba11cd248e84c756e4381afedba7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"9e7256a4_db5c24d4","updated":"2024-12-06 14:41:10.000000000","message":"Can you just make sure to put the two (?) bugs in the commit message?\n\nRelated-bug: #...\n\nThanks!","commit_id":"98a0653bf135960de594f9ed71d75a99b6e271cc"},{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"66a2983990e2298d1501ec47c349cef7edfb52e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"fb97f01c_f5479c78","in_reply_to":"9e7256a4_db5c24d4","updated":"2024-12-06 14:45:37.000000000","message":"Done, thanks for highlighting this","commit_id":"98a0653bf135960de594f9ed71d75a99b6e271cc"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b6eff28103aba28c249ef8244f00cec496faa7c9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"e4900a6c_a6ebd61e","updated":"2025-10-28 18:46:04.000000000","message":"I am going to abandon this, please update if you plan to work on it.","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"693d02c11661f1db627d668703808fb919d18a31","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"36b7e698_18a0c52d","updated":"2025-10-27 16:30:16.000000000","message":"I have added a discussion topic about old specs for tomorrow\u0027s\nNeutron PTG meeting, ~14:00 UTC in the Folsom room. We plan on\nbriefly discussing the status of specs that have not been\nmerged and approved. If you want to come and give a quick update,\nor just add an update here (and rebase to 2026.1 branch) please\ndo so before then.\n\nThanks, Brian\n\n[0] https://ptg.opendev.org/ptg.html\n[1] https://etherpad.opendev.org/p/oct2025-ptg-neutron#L61","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f27f30c33ce0fab37901667bd5649d9a5f06761a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"f7476940_1ec60b4d","updated":"2025-04-24 17:42:20.000000000","message":"Since this was not approved in time, will need to be moved to the 2025.2 directory.","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"d7c34ba86f8d0fcaa22994b3e0483473d30f5292","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"7b5c3f83_0ad2c928","updated":"2025-01-10 14:02:36.000000000","message":"thanks looks ok","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"}],"specs/2025.1/agent-startup-state-tracking.rst":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"ab009fa441d82ae12e1c6db7b2182baa8f4ade46","unresolved":true,"context_lines":[{"line_number":53,"context_line":"* Add new config option::"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    [DEFAULT]"},{"line_number":56,"context_line":"    rpc_startup_state_enabled\u003dtrue"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Use JSON format for maximum flexibility"},{"line_number":59,"context_line":"* Define base structure::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"20aebb2b_d9ce5308","line":56,"updated":"2024-12-06 14:45:55.000000000","message":"why config option is needed? Can\u0027t we just have it always enabled?","commit_id":"98a0653bf135960de594f9ed71d75a99b6e271cc"},{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"1c28b5af97cd164670d63af0b145d84fbf4b8098","unresolved":true,"context_lines":[{"line_number":53,"context_line":"* Add new config option::"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    [DEFAULT]"},{"line_number":56,"context_line":"    rpc_startup_state_enabled\u003dtrue"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Use JSON format for maximum flexibility"},{"line_number":59,"context_line":"* Define base structure::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3efa1b14_34079f0e","line":56,"in_reply_to":"20aebb2b_d9ce5308","updated":"2024-12-06 14:53:38.000000000","message":"we can have this unconditionally enabled","commit_id":"98a0653bf135960de594f9ed71d75a99b6e271cc"},{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"553149b31606597e72501bdf892ccbdc4cac92aa","unresolved":false,"context_lines":[{"line_number":53,"context_line":"* Add new config option::"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    [DEFAULT]"},{"line_number":56,"context_line":"    rpc_startup_state_enabled\u003dtrue"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Use JSON format for maximum flexibility"},{"line_number":59,"context_line":"* Define base structure::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"411cd3f4_5895fed4","line":56,"in_reply_to":"3efa1b14_34079f0e","updated":"2025-01-09 16:33:17.000000000","message":"Done","commit_id":"98a0653bf135960de594f9ed71d75a99b6e271cc"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"ab009fa441d82ae12e1c6db7b2182baa8f4ade46","unresolved":true,"context_lines":[{"line_number":79,"context_line":"* Write \"completed\" after successful port/bridge/ha_routers sync"},{"line_number":80,"context_line":"* Write \"dead\" if the agent becomes unreachable"},{"line_number":81,"context_line":"* Reset to \"started\" when recovering from a \"dead\" state"},{"line_number":82,"context_line":"* Report full JSON state via dedicated agent status RPC endpoint"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The change affects the following areas:"},{"line_number":85,"context_line":"---------------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"15bf4c68_c5eb5940","line":82,"updated":"2024-12-06 14:45:55.000000000","message":"can\u0027t it be added to the heartbeat simply? Do we need additional rpc call for that?","commit_id":"98a0653bf135960de594f9ed71d75a99b6e271cc"},{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"1c28b5af97cd164670d63af0b145d84fbf4b8098","unresolved":true,"context_lines":[{"line_number":79,"context_line":"* Write \"completed\" after successful port/bridge/ha_routers sync"},{"line_number":80,"context_line":"* Write \"dead\" if the agent becomes unreachable"},{"line_number":81,"context_line":"* Reset to \"started\" when recovering from a \"dead\" state"},{"line_number":82,"context_line":"* Report full JSON state via dedicated agent status RPC endpoint"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The change affects the following areas:"},{"line_number":85,"context_line":"---------------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"f118672a_a731a6a5","line":82,"in_reply_to":"15bf4c68_c5eb5940","updated":"2024-12-06 14:53:38.000000000","message":"we talked about separate RPC endpoint in IRC, but for sure we can put it in heartbeat","commit_id":"98a0653bf135960de594f9ed71d75a99b6e271cc"},{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"553149b31606597e72501bdf892ccbdc4cac92aa","unresolved":true,"context_lines":[{"line_number":79,"context_line":"* Write \"completed\" after successful port/bridge/ha_routers sync"},{"line_number":80,"context_line":"* Write \"dead\" if the agent becomes unreachable"},{"line_number":81,"context_line":"* Reset to \"started\" when recovering from a \"dead\" state"},{"line_number":82,"context_line":"* Report full JSON state via dedicated agent status RPC endpoint"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The change affects the following areas:"},{"line_number":85,"context_line":"---------------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"8d3932ad_5bc312f4","line":82,"in_reply_to":"20182604_0c7668a0","updated":"2025-01-09 16:33:17.000000000","message":"I\u0027ve updated text to mention heartbeat instead, not closing this temporary, maybe I missed something","commit_id":"98a0653bf135960de594f9ed71d75a99b6e271cc"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"6c7571001fdffa44c075c64a120c74b07bc857db","unresolved":true,"context_lines":[{"line_number":79,"context_line":"* Write \"completed\" after successful port/bridge/ha_routers sync"},{"line_number":80,"context_line":"* Write \"dead\" if the agent becomes unreachable"},{"line_number":81,"context_line":"* Reset to \"started\" when recovering from a \"dead\" state"},{"line_number":82,"context_line":"* Report full JSON state via dedicated agent status RPC endpoint"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The change affects the following areas:"},{"line_number":85,"context_line":"---------------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"20182604_0c7668a0","line":82,"in_reply_to":"f118672a_a731a6a5","updated":"2025-01-06 09:05:16.000000000","message":"Good idea the heartbeat is already there for all agents and contains all information for this state report / probe.","commit_id":"98a0653bf135960de594f9ed71d75a99b6e271cc"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"ab009fa441d82ae12e1c6db7b2182baa8f4ade46","unresolved":true,"context_lines":[{"line_number":85,"context_line":"---------------------------------------"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"* L3 agent startup status reporting"},{"line_number":88,"context_line":"* OVS agent startup status reporting"},{"line_number":89,"context_line":"* Agent API and data model"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ec5dba2c_16e71e33","line":88,"updated":"2024-12-06 14:45:55.000000000","message":"what about DHCP agent for example?","commit_id":"98a0653bf135960de594f9ed71d75a99b6e271cc"},{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"5cb560794de9280448e23e17f47821d51aaa9a7a","unresolved":false,"context_lines":[{"line_number":85,"context_line":"---------------------------------------"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"* L3 agent startup status reporting"},{"line_number":88,"context_line":"* OVS agent startup status reporting"},{"line_number":89,"context_line":"* Agent API and data model"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5a7e659f_fed82804","line":88,"in_reply_to":"147c36ed_b2811636","updated":"2025-01-09 16:33:47.000000000","message":"Done","commit_id":"98a0653bf135960de594f9ed71d75a99b6e271cc"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"6c7571001fdffa44c075c64a120c74b07bc857db","unresolved":true,"context_lines":[{"line_number":85,"context_line":"---------------------------------------"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"* L3 agent startup status reporting"},{"line_number":88,"context_line":"* OVS agent startup status reporting"},{"line_number":89,"context_line":"* Agent API and data model"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":5,"id":"147c36ed_b2811636","line":88,"in_reply_to":"bc747090_66937901","updated":"2025-01-06 09:05:16.000000000","message":"Could you please add here also that all agents will have automatic status report /probe file? The spec serve in a lot of case as original documentation of the features and can help a lot possible later users.","commit_id":"98a0653bf135960de594f9ed71d75a99b6e271cc"},{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"1c28b5af97cd164670d63af0b145d84fbf4b8098","unresolved":true,"context_lines":[{"line_number":85,"context_line":"---------------------------------------"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"* L3 agent startup status reporting"},{"line_number":88,"context_line":"* OVS agent startup status reporting"},{"line_number":89,"context_line":"* Agent API and data model"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bc747090_66937901","line":88,"in_reply_to":"ec5dba2c_16e71e33","updated":"2024-12-06 14:53:38.000000000","message":"it should be agent agnostic, so any agent eventually will have support for this, as discussed in IRC meeting","commit_id":"98a0653bf135960de594f9ed71d75a99b6e271cc"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"ab009fa441d82ae12e1c6db7b2182baa8f4ade46","unresolved":true,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"New API endpoints:"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"GET /v2.0/agents/{agent_id}/startup-state"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* Normal response code: 200"},{"line_number":130,"context_line":"* Error response codes: 404, 401"}],"source_content_type":"text/x-rst","patch_set":5,"id":"17643b34_eb9129b9","line":127,"updated":"2024-12-06 14:45:55.000000000","message":"do we need new API for it? Can\u0027t it be simply added to the \"GET /v2.0/agents/(agent_id}\" call?","commit_id":"98a0653bf135960de594f9ed71d75a99b6e271cc"},{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"1c28b5af97cd164670d63af0b145d84fbf4b8098","unresolved":true,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"New API endpoints:"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"GET /v2.0/agents/{agent_id}/startup-state"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* Normal response code: 200"},{"line_number":130,"context_line":"* Error response codes: 404, 401"}],"source_content_type":"text/x-rst","patch_set":5,"id":"eb372b0f_541668b8","line":127,"in_reply_to":"17643b34_eb9129b9","updated":"2024-12-06 14:53:38.000000000","message":"it can, not much of a difference from an external application POV from where exactly it will get startup-state data","commit_id":"98a0653bf135960de594f9ed71d75a99b6e271cc"},{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"553149b31606597e72501bdf892ccbdc4cac92aa","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"New API endpoints:"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"GET /v2.0/agents/{agent_id}/startup-state"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* Normal response code: 200"},{"line_number":130,"context_line":"* Error response codes: 404, 401"}],"source_content_type":"text/x-rst","patch_set":5,"id":"60d3f659_b914efd8","line":127,"in_reply_to":"eb372b0f_541668b8","updated":"2025-01-09 16:33:17.000000000","message":"Acknowledged","commit_id":"98a0653bf135960de594f9ed71d75a99b6e271cc"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"ab009fa441d82ae12e1c6db7b2182baa8f4ade46","unresolved":true,"context_lines":[{"line_number":150,"context_line":""},{"line_number":151,"context_line":"* File permissions must be properly set for state files"},{"line_number":152,"context_line":"  to prevent unauthorized access"},{"line_number":153,"context_line":"* API endpoints require standard Neutron RBAC controls"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Notifications Impact"},{"line_number":156,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"16c02f88_13bc4fdc","line":153,"updated":"2024-12-06 14:45:55.000000000","message":"please see my comment above. I don\u0027t think we need new APIs for this","commit_id":"98a0653bf135960de594f9ed71d75a99b6e271cc"},{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"553149b31606597e72501bdf892ccbdc4cac92aa","unresolved":false,"context_lines":[{"line_number":150,"context_line":""},{"line_number":151,"context_line":"* File permissions must be properly set for state files"},{"line_number":152,"context_line":"  to prevent unauthorized access"},{"line_number":153,"context_line":"* API endpoints require standard Neutron RBAC controls"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Notifications Impact"},{"line_number":156,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"281eddc9_fc3c285c","line":153,"in_reply_to":"04cc1d6f_6d18a079","updated":"2025-01-09 16:33:17.000000000","message":"Acknowledged","commit_id":"98a0653bf135960de594f9ed71d75a99b6e271cc"},{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"1c28b5af97cd164670d63af0b145d84fbf4b8098","unresolved":true,"context_lines":[{"line_number":150,"context_line":""},{"line_number":151,"context_line":"* File permissions must be properly set for state files"},{"line_number":152,"context_line":"  to prevent unauthorized access"},{"line_number":153,"context_line":"* API endpoints require standard Neutron RBAC controls"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Notifications Impact"},{"line_number":156,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"04cc1d6f_6d18a079","line":153,"in_reply_to":"16c02f88_13bc4fdc","updated":"2024-12-06 14:53:38.000000000","message":"new API point is here because this is how it was initially discussed in IRC, I am not against making this as you proposed, let\u0027s reach to a community consensus here","commit_id":"98a0653bf135960de594f9ed71d75a99b6e271cc"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"6c7571001fdffa44c075c64a120c74b07bc857db","unresolved":true,"context_lines":[{"line_number":211,"context_line":"Assignee(s)"},{"line_number":212,"context_line":"-----------"},{"line_number":213,"context_line":"Primary assignee:"},{"line_number":214,"context_line":"  TBD"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"Other contributors:"},{"line_number":217,"context_line":"  TBD"}],"source_content_type":"text/x-rst","patch_set":6,"id":"19f20f34_ef03f228","line":214,"range":{"start_line":214,"start_character":2,"end_line":214,"end_character":5},"updated":"2025-01-06 09:05:16.000000000","message":"you can add your name here, no risk :)","commit_id":"6bcd688eed1a512ce8f3bf0a9b43f699790450d0"},{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"553149b31606597e72501bdf892ccbdc4cac92aa","unresolved":false,"context_lines":[{"line_number":211,"context_line":"Assignee(s)"},{"line_number":212,"context_line":"-----------"},{"line_number":213,"context_line":"Primary assignee:"},{"line_number":214,"context_line":"  TBD"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"Other contributors:"},{"line_number":217,"context_line":"  TBD"}],"source_content_type":"text/x-rst","patch_set":6,"id":"b94456c0_690497d7","line":214,"range":{"start_line":214,"start_character":2,"end_line":214,"end_character":5},"in_reply_to":"19f20f34_ef03f228","updated":"2025-01-09 16:33:17.000000000","message":"other than participating in code effort 😊","commit_id":"6bcd688eed1a512ce8f3bf0a9b43f699790450d0"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"6c7571001fdffa44c075c64a120c74b07bc857db","unresolved":true,"context_lines":[{"line_number":218,"context_line":""},{"line_number":219,"context_line":"Feature Liaison"},{"line_number":220,"context_line":"---------------"},{"line_number":221,"context_line":"Liaison needed"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"Work Items"},{"line_number":224,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"88f42dd2_f5a8a01a","line":221,"range":{"start_line":221,"start_character":0,"end_line":221,"end_character":14},"updated":"2025-01-06 09:05:16.000000000","message":"you can add my nick here (lajoskatona) I think I will have time in the coming months to review and test this feature.","commit_id":"6bcd688eed1a512ce8f3bf0a9b43f699790450d0"},{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"553149b31606597e72501bdf892ccbdc4cac92aa","unresolved":false,"context_lines":[{"line_number":218,"context_line":""},{"line_number":219,"context_line":"Feature Liaison"},{"line_number":220,"context_line":"---------------"},{"line_number":221,"context_line":"Liaison needed"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"Work Items"},{"line_number":224,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"cf2ba961_f63ceff3","line":221,"range":{"start_line":221,"start_character":0,"end_line":221,"end_character":14},"in_reply_to":"88f42dd2_f5a8a01a","updated":"2025-01-09 16:33:17.000000000","message":"thanks, added","commit_id":"6bcd688eed1a512ce8f3bf0a9b43f699790450d0"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f176c114c082b4f670ee787ec5db2c431a4b9662","unresolved":true,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Agent Startup State Tracking"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"28475615_24186fbf","line":7,"range":{"start_line":7,"start_character":28,"end_line":7,"end_character":29},"updated":"2025-01-10 16:43:08.000000000","message":"nit: extra character","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f176c114c082b4f670ee787ec5db2c431a4b9662","unresolved":true,"context_lines":[{"line_number":8,"context_line":"Agent Startup State Tracking"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"When running in a containerized environment Neutron L3 and OVS agents should"},{"line_number":12,"context_line":"communicate their startup state to external monitoring systems such as (but"},{"line_number":13,"context_line":"not limited to) Kubernetes startup probes. Currently, when running in such"},{"line_number":14,"context_line":"an environment, there is no reliable way to determine if these agents have"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3446b012_da17077f","line":11,"range":{"start_line":11,"start_character":44,"end_line":11,"end_character":69},"updated":"2025-01-10 16:43:08.000000000","message":"This should be generic for any agent. DHCP, metadata or OVN agent are missing here.","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f176c114c082b4f670ee787ec5db2c431a4b9662","unresolved":true,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"* There is no reliable way to detect when an agent has completed initial setup"},{"line_number":30,"context_line":"  vs still being in progress"},{"line_number":31,"context_line":"* During agent restarts, dependent services may attempt to use agents before"},{"line_number":32,"context_line":"  they\u0027re fully ready"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9329a416_69bdc807","line":31,"range":{"start_line":31,"start_character":25,"end_line":31,"end_character":34},"updated":"2025-01-10 16:43:08.000000000","message":"s/dependant","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f176c114c082b4f670ee787ec5db2c431a4b9662","unresolved":true,"context_lines":[{"line_number":34,"context_line":"Use Cases"},{"line_number":35,"context_line":"---------"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"* As a deployer, I want to ensure L3 agent containers are fully ready before"},{"line_number":38,"context_line":"  marking them as available in Kubernetes"},{"line_number":39,"context_line":"* As an operator, I need to monitor the OVS agent startup state to ensure proper"},{"line_number":40,"context_line":"  network initialization"}],"source_content_type":"text/x-rst","patch_set":7,"id":"83957a7f_198ddd50","line":37,"range":{"start_line":37,"start_character":58,"end_line":37,"end_character":69},"updated":"2025-01-10 16:43:08.000000000","message":"What does it mean? If you are using a specific agent (L3), define what \"be ready\" is.","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"dd616704a9eb2a6ae46e527a1c6fe1f10b95d674","unresolved":true,"context_lines":[{"line_number":34,"context_line":"Use Cases"},{"line_number":35,"context_line":"---------"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"* As a deployer, I want to ensure L3 agent containers are fully ready before"},{"line_number":38,"context_line":"  marking them as available in Kubernetes"},{"line_number":39,"context_line":"* As an operator, I need to monitor the OVS agent startup state to ensure proper"},{"line_number":40,"context_line":"  network initialization"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ed5ca22a_e072098f","line":37,"range":{"start_line":37,"start_character":58,"end_line":37,"end_character":69},"in_reply_to":"83957a7f_198ddd50","updated":"2025-01-10 16:59:21.000000000","message":"It depends on the agent, state where everything is set up from agent side, all parts are running and it can now operate.\n\nNot sure what is needed to be defined here.","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2e6cd36ea9fa223eae1694b1db05ffee7ad4aedd","unresolved":true,"context_lines":[{"line_number":34,"context_line":"Use Cases"},{"line_number":35,"context_line":"---------"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"* As a deployer, I want to ensure L3 agent containers are fully ready before"},{"line_number":38,"context_line":"  marking them as available in Kubernetes"},{"line_number":39,"context_line":"* As an operator, I need to monitor the OVS agent startup state to ensure proper"},{"line_number":40,"context_line":"  network initialization"}],"source_content_type":"text/x-rst","patch_set":7,"id":"05556bb6_a68d8654","line":37,"range":{"start_line":37,"start_character":58,"end_line":37,"end_character":69},"in_reply_to":"966f37f7_f70163f4","updated":"2025-01-14 09:20:33.000000000","message":"Its not limited to L3 agent, neutron-ovs/dhcp agents and other also affected. I think `fully ready` means that this agent setup all required flows/iptables rules/etc and can handle dataplane traffic for resources it manages so its is safe to restart/kill/upgrade neighbour agent.","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"df4d2b58425ee8b2e51c52dc1042b7a3af837a8a","unresolved":true,"context_lines":[{"line_number":34,"context_line":"Use Cases"},{"line_number":35,"context_line":"---------"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"* As a deployer, I want to ensure L3 agent containers are fully ready before"},{"line_number":38,"context_line":"  marking them as available in Kubernetes"},{"line_number":39,"context_line":"* As an operator, I need to monitor the OVS agent startup state to ensure proper"},{"line_number":40,"context_line":"  network initialization"}],"source_content_type":"text/x-rst","patch_set":7,"id":"966f37f7_f70163f4","line":37,"range":{"start_line":37,"start_character":58,"end_line":37,"end_character":69},"in_reply_to":"ed5ca22a_e072098f","updated":"2025-01-13 06:56:39.000000000","message":"Yes, you are talking about the L3 agent in particular. \"Fully ready\" means to finish the resync process, that\u0027s all.","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f176c114c082b4f670ee787ec5db2c431a4b9662","unresolved":true,"context_lines":[{"line_number":44,"context_line":"Proposed Change"},{"line_number":45,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"This change introduces startup state tracking for both L3 and OVS agents to"},{"line_number":48,"context_line":"communicate their state through files and heartbeat:"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Agent Changes:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"2ece938d_d3deeafa","line":47,"range":{"start_line":47,"start_character":50,"end_line":47,"end_character":72},"updated":"2025-01-10 16:43:08.000000000","message":"No sorry, this solution should be suitable (not implemented but suitable) for any Neutron agent. You can explicitly say, after this, that the implementation will cover only L3 and OVS.\n\nBTW, if you are using ML2/OVS, what about the DHCP agent? The initial transient period of this agent can take minutes.\n\nUPDATE: I see this reference later in this doc. Please update this line to reflect that this change is generic for any agent.","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2e6cd36ea9fa223eae1694b1db05ffee7ad4aedd","unresolved":true,"context_lines":[{"line_number":44,"context_line":"Proposed Change"},{"line_number":45,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"This change introduces startup state tracking for both L3 and OVS agents to"},{"line_number":48,"context_line":"communicate their state through files and heartbeat:"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Agent Changes:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"20391ba3_14dd97ce","line":47,"range":{"start_line":47,"start_character":50,"end_line":47,"end_character":72},"in_reply_to":"2ece938d_d3deeafa","updated":"2025-01-14 09:20:33.000000000","message":"++ this mechanism should be generic and should not be limited to ovs agents only. OVN agents may implement this interface as well.\nDHCP is not that critical as clients do periodic address refreshes and lease time is long enough so dhcp downtime is not that visible for running workloads.","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f176c114c082b4f670ee787ec5db2c431a4b9662","unresolved":true,"context_lines":[{"line_number":54,"context_line":"* Define base structure::"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    {"},{"line_number":57,"context_line":"        \"startup\": {"},{"line_number":58,"context_line":"            \"status\": \"completed\","},{"line_number":59,"context_line":"            \"timestamp\": \"2024-11-19T10:30:00Z\""},{"line_number":60,"context_line":"         },"}],"source_content_type":"text/x-rst","patch_set":7,"id":"e319da44_4220ce81","line":57,"range":{"start_line":57,"start_character":9,"end_line":57,"end_character":16},"updated":"2025-01-10 16:43:08.000000000","message":"I think this is a very limited scope. We should provide a \"status\" field. This status can contain a generic value (defined for all agents) and specific values (only needed in this agent in particular). The generic value can be \"starting\", \"syncing\", \"operating\", \"failure\", etc. Each value should represent a state of the agent.","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2e6cd36ea9fa223eae1694b1db05ffee7ad4aedd","unresolved":true,"context_lines":[{"line_number":54,"context_line":"* Define base structure::"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    {"},{"line_number":57,"context_line":"        \"startup\": {"},{"line_number":58,"context_line":"            \"status\": \"completed\","},{"line_number":59,"context_line":"            \"timestamp\": \"2024-11-19T10:30:00Z\""},{"line_number":60,"context_line":"         },"}],"source_content_type":"text/x-rst","patch_set":7,"id":"4684b9e9_0d8bbf2f","line":57,"range":{"start_line":57,"start_character":9,"end_line":57,"end_character":16},"in_reply_to":"cd3b96ac_cd707078","updated":"2025-01-14 09:20:33.000000000","message":"+ the spec should describe generic interface with exact meaning what each state means. Each agent should report its state accordingly.","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"df4d2b58425ee8b2e51c52dc1042b7a3af837a8a","unresolved":true,"context_lines":[{"line_number":54,"context_line":"* Define base structure::"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    {"},{"line_number":57,"context_line":"        \"startup\": {"},{"line_number":58,"context_line":"            \"status\": \"completed\","},{"line_number":59,"context_line":"            \"timestamp\": \"2024-11-19T10:30:00Z\""},{"line_number":60,"context_line":"         },"}],"source_content_type":"text/x-rst","patch_set":7,"id":"cd3b96ac_cd707078","line":57,"range":{"start_line":57,"start_character":9,"end_line":57,"end_character":16},"in_reply_to":"e2e6bbfc_982d8b7c","updated":"2025-01-13 06:56:39.000000000","message":"The RFE is called [1] \"OVS Agent Synchronization Status for Container Environments\", there is nothing there, nor the description, related to the start-up. Again, the scope is limited, if we are going to implement this RFE, we should not focus only in the start-up period. This spec should define a set of default states, common for all agents (started, sync, ready, dead, off-sync)\n\n[1]https://bugs.launchpad.net/neutron/+bug/2086799","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"dd616704a9eb2a6ae46e527a1c6fe1f10b95d674","unresolved":true,"context_lines":[{"line_number":54,"context_line":"* Define base structure::"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    {"},{"line_number":57,"context_line":"        \"startup\": {"},{"line_number":58,"context_line":"            \"status\": \"completed\","},{"line_number":59,"context_line":"            \"timestamp\": \"2024-11-19T10:30:00Z\""},{"line_number":60,"context_line":"         },"}],"source_content_type":"text/x-rst","patch_set":7,"id":"e2e6bbfc_982d8b7c","line":57,"range":{"start_line":57,"start_character":9,"end_line":57,"end_character":16},"in_reply_to":"e319da44_4220ce81","updated":"2025-01-10 16:59:21.000000000","message":"I was interested in startup state, exclusively for k8s startup probes.\nWe can probably extend that if there is a consensus for this, but this would be entirely different spec, title says \"Agent Startup State Tracking\"","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f176c114c082b4f670ee787ec5db2c431a4b9662","unresolved":true,"context_lines":[{"line_number":64,"context_line":"    }"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* Files will be created in the agent\u0027s state directory structure"},{"line_number":67,"context_line":"* File locking used where needed for concurrent access"},{"line_number":68,"context_line":"* States are updated as part of existing startup workflows"},{"line_number":69,"context_line":"* Update timestamps to a time of state change"},{"line_number":70,"context_line":"* Set agent_type field"}],"source_content_type":"text/x-rst","patch_set":7,"id":"efc7fabc_df275217","line":67,"range":{"start_line":67,"start_character":2,"end_line":67,"end_character":54},"updated":"2025-01-10 16:43:08.000000000","message":"Why is this needed? Only one process (the agent) should write the agent state file.","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2e6cd36ea9fa223eae1694b1db05ffee7ad4aedd","unresolved":true,"context_lines":[{"line_number":64,"context_line":"    }"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* Files will be created in the agent\u0027s state directory structure"},{"line_number":67,"context_line":"* File locking used where needed for concurrent access"},{"line_number":68,"context_line":"* States are updated as part of existing startup workflows"},{"line_number":69,"context_line":"* Update timestamps to a time of state change"},{"line_number":70,"context_line":"* Set agent_type field"}],"source_content_type":"text/x-rst","patch_set":7,"id":"26e675db_11d5b4a7","line":67,"range":{"start_line":67,"start_character":2,"end_line":67,"end_character":54},"in_reply_to":"1475436d_cd20bd70","updated":"2025-01-14 09:20:33.000000000","message":"I think we should not be limited to the files interface,","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"dd616704a9eb2a6ae46e527a1c6fe1f10b95d674","unresolved":true,"context_lines":[{"line_number":64,"context_line":"    }"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* Files will be created in the agent\u0027s state directory structure"},{"line_number":67,"context_line":"* File locking used where needed for concurrent access"},{"line_number":68,"context_line":"* States are updated as part of existing startup workflows"},{"line_number":69,"context_line":"* Update timestamps to a time of state change"},{"line_number":70,"context_line":"* Set agent_type field"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1475436d_cd20bd70","line":67,"range":{"start_line":67,"start_character":2,"end_line":67,"end_character":54},"in_reply_to":"efc7fabc_df275217","updated":"2025-01-10 16:59:21.000000000","message":"it says `where needed` so if where needed is eventually resolved to zero, no locking would be required","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f176c114c082b4f670ee787ec5db2c431a4b9662","unresolved":true,"context_lines":[{"line_number":70,"context_line":"* Set agent_type field"},{"line_number":71,"context_line":"* Set host field"},{"line_number":72,"context_line":"* Set id field"},{"line_number":73,"context_line":"* Write \"started\" on the initial startup and after the agent restarts"},{"line_number":74,"context_line":"* Write \"completed\" after successful port/bridge/ha_routers sync"},{"line_number":75,"context_line":"* Write \"dead\" if the agent becomes unreachable"},{"line_number":76,"context_line":"* Reset to \"started\" when recovering from a \"dead\" state"},{"line_number":77,"context_line":"* Report full JSON state via heartbeat"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"The change affects the following areas:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"a6a11392_024641a5","line":76,"range":{"start_line":73,"start_character":2,"end_line":76,"end_character":56},"updated":"2025-01-10 16:43:08.000000000","message":"As mentioned before, this is a very limited scope. The \"improved\" agent status report should be more flexible and be able to report any kind of status.","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f176c114c082b4f670ee787ec5db2c431a4b9662","unresolved":true,"context_lines":[{"line_number":79,"context_line":"The change affects the following areas:"},{"line_number":80,"context_line":"---------------------------------------"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"* L3 agent startup status reporting"},{"line_number":83,"context_line":"* OVS agent startup status reporting"},{"line_number":84,"context_line":"* DHCP agent startup status reporting"},{"line_number":85,"context_line":"* Agent API and data model"}],"source_content_type":"text/x-rst","patch_set":7,"id":"a813135e_d1a06d0d","line":82,"range":{"start_line":82,"start_character":19,"end_line":82,"end_character":35},"updated":"2025-01-10 16:43:08.000000000","message":"Are we replacing the current status report? Or is this going to overlap it?","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"dd616704a9eb2a6ae46e527a1c6fe1f10b95d674","unresolved":true,"context_lines":[{"line_number":79,"context_line":"The change affects the following areas:"},{"line_number":80,"context_line":"---------------------------------------"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"* L3 agent startup status reporting"},{"line_number":83,"context_line":"* OVS agent startup status reporting"},{"line_number":84,"context_line":"* DHCP agent startup status reporting"},{"line_number":85,"context_line":"* Agent API and data model"}],"source_content_type":"text/x-rst","patch_set":7,"id":"e8c671e3_2f6cda91","line":82,"range":{"start_line":82,"start_character":19,"end_line":82,"end_character":35},"in_reply_to":"a813135e_d1a06d0d","updated":"2025-01-10 16:59:21.000000000","message":"Previous review rounds suggested to use heartbeat for that instead of dedicated API endpoints","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"853c221172ea99e5343d4248313f8220ab967b0e","unresolved":true,"context_lines":[{"line_number":79,"context_line":"The change affects the following areas:"},{"line_number":80,"context_line":"---------------------------------------"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"* L3 agent startup status reporting"},{"line_number":83,"context_line":"* OVS agent startup status reporting"},{"line_number":84,"context_line":"* DHCP agent startup status reporting"},{"line_number":85,"context_line":"* Agent API and data model"}],"source_content_type":"text/x-rst","patch_set":7,"id":"2bd25e3c_90913c87","line":82,"range":{"start_line":82,"start_character":19,"end_line":82,"end_character":35},"in_reply_to":"ddcb8a11_5a5c9cc3","updated":"2025-01-13 11:12:36.000000000","message":"https://review.opendev.org/c/openstack/neutron-specs/+/935724/5\n\nWas about adding new endpoint to handle reporting, I was coerced to change this to heartbeat.\n\nSo do we want heartbeat or new API endpoints?","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"df4d2b58425ee8b2e51c52dc1042b7a3af837a8a","unresolved":true,"context_lines":[{"line_number":79,"context_line":"The change affects the following areas:"},{"line_number":80,"context_line":"---------------------------------------"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"* L3 agent startup status reporting"},{"line_number":83,"context_line":"* OVS agent startup status reporting"},{"line_number":84,"context_line":"* DHCP agent startup status reporting"},{"line_number":85,"context_line":"* Agent API and data model"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ddcb8a11_5a5c9cc3","line":82,"range":{"start_line":82,"start_character":19,"end_line":82,"end_character":35},"in_reply_to":"e8c671e3_2f6cda91","updated":"2025-01-13 06:56:39.000000000","message":"So you are replacing the current heartbeat API. This is never mentioned in this spec.","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2e6cd36ea9fa223eae1694b1db05ffee7ad4aedd","unresolved":true,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Alternatives"},{"line_number":89,"context_line":"------------"},{"line_number":90,"context_line":"1. Polling Agent Status API:"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"   * Higher overhead from constant polling"},{"line_number":93,"context_line":"   * Less real-time visibility"}],"source_content_type":"text/x-rst","patch_set":7,"id":"68fdc784_b8254dbf","line":90,"range":{"start_line":90,"start_character":0,"end_line":90,"end_character":28},"updated":"2025-01-14 09:20:33.000000000","message":"can you please describe this alternative in more detail? does it mean centralized endpoint for agent status like neutron server http API or RPC api?","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2e6cd36ea9fa223eae1694b1db05ffee7ad4aedd","unresolved":true,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"* Database migrations:"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"  * Add new table schema"},{"line_number":116,"context_line":"  * Add indexes for common queries"},{"line_number":117,"context_line":"  * No data migration is needed for existing deployments"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"REST API Impact"},{"line_number":120,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"6c9c6b3b_8f319889","line":117,"range":{"start_line":115,"start_character":0,"end_line":117,"end_character":56},"updated":"2025-01-14 09:20:33.000000000","message":"what kind of databases are needed? its runtime status why we should store it in databse? storing status in the memory of agent is more than enough IMO.","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f176c114c082b4f670ee787ec5db2c431a4b9662","unresolved":true,"context_lines":[{"line_number":124,"context_line":"RPC API Changes:"},{"line_number":125,"context_line":"----------------"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"No impact, piggybacking on heartbeat"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Security impact"},{"line_number":130,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"4d53682f_b3677f53","line":127,"range":{"start_line":127,"start_character":0,"end_line":127,"end_character":2},"updated":"2025-01-10 16:43:08.000000000","message":"No RPC changes? If you are going to change how the agents communicate new statuses to the Neutron API.","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"a2f1e3bfbfeb1ecdef32b9f07f696c7e3203f6f3","unresolved":true,"context_lines":[{"line_number":124,"context_line":"RPC API Changes:"},{"line_number":125,"context_line":"----------------"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"No impact, piggybacking on heartbeat"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Security impact"},{"line_number":130,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a66d70e_16379791","line":127,"range":{"start_line":127,"start_character":0,"end_line":127,"end_character":2},"in_reply_to":"07f5e32a_55c4d30a","updated":"2025-01-13 11:14:21.000000000","message":"related: https://review.opendev.org/c/openstack/neutron-specs/+/935724/comment/a813135e_d1a06d0d/","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"dd616704a9eb2a6ae46e527a1c6fe1f10b95d674","unresolved":true,"context_lines":[{"line_number":124,"context_line":"RPC API Changes:"},{"line_number":125,"context_line":"----------------"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"No impact, piggybacking on heartbeat"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Security impact"},{"line_number":130,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"6924799f_3555cb50","line":127,"range":{"start_line":127,"start_character":0,"end_line":127,"end_character":2},"in_reply_to":"4d53682f_b3677f53","updated":"2025-01-10 16:59:21.000000000","message":"If extending heartbeat counts as RPC API impact, when yes, it will be impacted","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"df4d2b58425ee8b2e51c52dc1042b7a3af837a8a","unresolved":true,"context_lines":[{"line_number":124,"context_line":"RPC API Changes:"},{"line_number":125,"context_line":"----------------"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"No impact, piggybacking on heartbeat"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Security impact"},{"line_number":130,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"07f5e32a_55c4d30a","line":127,"range":{"start_line":127,"start_character":0,"end_line":127,"end_character":2},"in_reply_to":"6924799f_3555cb50","updated":"2025-01-13 06:56:39.000000000","message":"Of course it counts. What information is going to be transferred? Also if the agent wants to communicate actively a change in the status, that is a new RPC API definition.","commit_id":"f794bff8e593402675ae0f6b5236f1113cd682cb"}]}
