)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"51b730945e9cc493311251979a72632b134bad40","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"bd31fa3d_d3edcaaf","updated":"2022-10-28 15:34:21.000000000","message":"I\u0027m not a fan of this approach, but let\u0027s see other reviews first.","commit_id":"dbebf53ed65afd4eefb96177075f436c0f0251ee"},{"author":{"_account_id":35264,"name":"Alex Welsh","email":"alex@stackhpc.com","username":"alex-welsh"},"change_message_id":"a02ebceae7822b211bf5ec11697d9e9b57229c0d","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"262e4e82_d202e8ba","in_reply_to":"122f105c_c61c5351","updated":"2022-11-15 13:41:02.000000000","message":"Removing the --single-child argument has not had the intended effect and networking remains after the containers are stopped","commit_id":"dbebf53ed65afd4eefb96177075f436c0f0251ee"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"ae387eb236baa0f19fa63349a141a57188b1532d","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c75c7bd2_f49e7ebb","in_reply_to":"262e4e82_d202e8ba","updated":"2022-11-15 13:47:35.000000000","message":"I think on that basis we should continue with just this patch. The cleanup script isn\u0027t ideal, but I\u0027m unsure what the full consequences would be of removing it. It would be better to have a cleanup script that runs when the container is stopped, but I don\u0027t see an obvious way to do that.","commit_id":"dbebf53ed65afd4eefb96177075f436c0f0251ee"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"22427a6ae12a5109e835bd8fd58b3121c50ed205","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"94ae4619_26e266c8","in_reply_to":"4b54928c_84b94c4c","updated":"2022-11-04 10:59:18.000000000","message":"From my perspective we can achieve the same (zero downtime on container restarts) if we drop the neutron-netns-cleanup script from extend_start - so that dance is a bit more, than just dropping one line - that\u0027s what I dislike.\nWe\u0027ll still have the problem with stopping l3-agent for node maintenance - and some other problems, which this dance won\u0027t solve as well.","commit_id":"dbebf53ed65afd4eefb96177075f436c0f0251ee"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"5132b8fedb1104cf90a6499e8732cbbad39b16eb","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"122f105c_c61c5351","in_reply_to":"94ae4619_26e266c8","updated":"2022-11-07 10:50:22.000000000","message":"We could drop neutron-netns-cleanup script, if we also drop --single-child from dumb-init, such that keepalived cleanly shuts down. However, that will kill L3 networking when the container stops (as opposed to when it starts, which is what it currently does). So we still need some way to roll through the agents to avoid stopping them all at the same time.","commit_id":"dbebf53ed65afd4eefb96177075f436c0f0251ee"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b5e4be9bd06b15ff7b54d9a3f86484805f75acd0","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"4b54928c_84b94c4c","in_reply_to":"bd31fa3d_d3edcaaf","updated":"2022-11-04 10:47:24.000000000","message":"This comment isn\u0027t particularly helpful, especially given you were involved in some of the discussions.\n\nIs it the general approach or implementation you dislike?\n\nI agree it\u0027s not ideal to use a manually set delay, but in the absence of an obvious better approach that could be implemented (and approved) in a reasonable time, I think this sufficiently improves on the status quo.\n\nWe should also modify the image to drop --single-child from dumb-init, as we do for mariadb. That should cleanly shutdown keepalived and disable L3 networking when the container stops.","commit_id":"dbebf53ed65afd4eefb96177075f436c0f0251ee"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"af38f9ff7c17f01e6148705e7c81b235eec082a1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"9b345112_5edb505e","in_reply_to":"c75c7bd2_f49e7ebb","updated":"2023-01-25 12:45:38.000000000","message":"Done","commit_id":"dbebf53ed65afd4eefb96177075f436c0f0251ee"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"36388173f00262b4d313134e950df347bfef7111","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"041266fc_3fa99589","updated":"2022-11-04 10:51:51.000000000","message":"Quick first pass","commit_id":"1d44006051e2a076be9b63ded1297f228147ad18"}],"ansible/roles/neutron/defaults/main.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"57a8742f8727b5175b9fa2c2f497e5d183ae1e09","unresolved":true,"context_lines":[{"line_number":568,"context_line":"max_l3_agents_per_router: 3"},{"line_number":569,"context_line":""},{"line_number":570,"context_line":"# Adds a delay to the serial neutron_l3_agent container restart process,"},{"line_number":571,"context_line":"# allowing routers to fail over without loss of connectivity."},{"line_number":572,"context_line":"neutron_l3_agent_failover_delay: 0"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"ovsdb_timeout: 10"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"c7778e80_26eac38a","line":571,"updated":"2022-11-22 15:12:32.000000000","message":"from Matt A: include units please","commit_id":"9f43f6387a6622d6395c3ba277ab9f7fccaae034"},{"author":{"_account_id":35264,"name":"Alex Welsh","email":"alex@stackhpc.com","username":"alex-welsh"},"change_message_id":"8759260581784c7d5fb093e5af144d7efdb73bea","unresolved":false,"context_lines":[{"line_number":568,"context_line":"max_l3_agents_per_router: 3"},{"line_number":569,"context_line":""},{"line_number":570,"context_line":"# Adds a delay to the serial neutron_l3_agent container restart process,"},{"line_number":571,"context_line":"# allowing routers to fail over without loss of connectivity."},{"line_number":572,"context_line":"neutron_l3_agent_failover_delay: 0"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"ovsdb_timeout: 10"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"09d14d9a_6809a612","line":571,"in_reply_to":"c7778e80_26eac38a","updated":"2022-11-22 16:10:49.000000000","message":"Done","commit_id":"9f43f6387a6622d6395c3ba277ab9f7fccaae034"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"2ba86676bf6a83d7e02ffad65fc86c67a02586b9","unresolved":true,"context_lines":[{"line_number":569,"context_line":""},{"line_number":570,"context_line":"# Adds a delay to the serial neutron_l3_agent container restart process,"},{"line_number":571,"context_line":"# allowing routers to fail over without loss of connectivity."},{"line_number":572,"context_line":"neutron_l3_agent_failover_delay: 0"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"ovsdb_timeout: 10"},{"line_number":575,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"a0875d24_a6390496","line":572,"range":{"start_line":572,"start_character":33,"end_line":572,"end_character":34},"updated":"2022-11-16 19:36:00.000000000","message":"should we set defaults to minimum recommended value of 43 ?","commit_id":"9f43f6387a6622d6395c3ba277ab9f7fccaae034"},{"author":{"_account_id":35264,"name":"Alex Welsh","email":"alex@stackhpc.com","username":"alex-welsh"},"change_message_id":"5d41d0462a048f5d1dab3d5c96c423deb6322d37","unresolved":false,"context_lines":[{"line_number":569,"context_line":""},{"line_number":570,"context_line":"# Adds a delay to the serial neutron_l3_agent container restart process,"},{"line_number":571,"context_line":"# allowing routers to fail over without loss of connectivity."},{"line_number":572,"context_line":"neutron_l3_agent_failover_delay: 0"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"ovsdb_timeout: 10"},{"line_number":575,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"bbae8992_7b3af51b","line":572,"range":{"start_line":572,"start_character":33,"end_line":572,"end_character":34},"in_reply_to":"7b5bdcec_07df3b01","updated":"2022-11-23 16:53:37.000000000","message":"Done","commit_id":"9f43f6387a6622d6395c3ba277ab9f7fccaae034"},{"author":{"_account_id":35264,"name":"Alex Welsh","email":"alex@stackhpc.com","username":"alex-welsh"},"change_message_id":"a68624a8ee7b273bec693dcc946072050b97f9b5","unresolved":true,"context_lines":[{"line_number":569,"context_line":""},{"line_number":570,"context_line":"# Adds a delay to the serial neutron_l3_agent container restart process,"},{"line_number":571,"context_line":"# allowing routers to fail over without loss of connectivity."},{"line_number":572,"context_line":"neutron_l3_agent_failover_delay: 0"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"ovsdb_timeout: 10"},{"line_number":575,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7b5bdcec_07df3b01","line":572,"range":{"start_line":572,"start_character":33,"end_line":572,"end_character":34},"in_reply_to":"8dc29255_4625c5ff","updated":"2022-11-22 11:12:58.000000000","message":"My thoughts were that it might make it harder to diagnose the problem. If we set a non-zero default then with a low number of routers, most users won\u0027t have an issue. If those users then increase the number of routers then outages might start to occur for seemingly no reason. I decided that it would be more clear if there was consistent behaviour before the user chooses to add the delay.","commit_id":"9f43f6387a6622d6395c3ba277ab9f7fccaae034"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"37b5034668778aef7544b68361ed2135ba92d7a5","unresolved":true,"context_lines":[{"line_number":569,"context_line":""},{"line_number":570,"context_line":"# Adds a delay to the serial neutron_l3_agent container restart process,"},{"line_number":571,"context_line":"# allowing routers to fail over without loss of connectivity."},{"line_number":572,"context_line":"neutron_l3_agent_failover_delay: 0"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"ovsdb_timeout: 10"},{"line_number":575,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"8dc29255_4625c5ff","line":572,"range":{"start_line":572,"start_character":33,"end_line":572,"end_character":34},"in_reply_to":"8ef4b3c7_525d8f54","updated":"2022-11-17 09:35:29.000000000","message":"\u003e Why 43 in particular?\nhttps://review.opendev.org/c/openstack/kolla-ansible/+/862916/6/doc/source/reference/networking/neutron.rst#132","commit_id":"9f43f6387a6622d6395c3ba277ab9f7fccaae034"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"859c2c01a19c17ef87b7d69400fb0fb55687f0d2","unresolved":true,"context_lines":[{"line_number":569,"context_line":""},{"line_number":570,"context_line":"# Adds a delay to the serial neutron_l3_agent container restart process,"},{"line_number":571,"context_line":"# allowing routers to fail over without loss of connectivity."},{"line_number":572,"context_line":"neutron_l3_agent_failover_delay: 0"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"ovsdb_timeout: 10"},{"line_number":575,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"b4a8acab_84174991","line":572,"range":{"start_line":572,"start_character":33,"end_line":572,"end_character":34},"in_reply_to":"a0875d24_a6390496","updated":"2022-11-16 19:38:28.000000000","message":"only if l3_ha enabled ofcourse","commit_id":"9f43f6387a6622d6395c3ba277ab9f7fccaae034"},{"author":{"_account_id":35264,"name":"Alex Welsh","email":"alex@stackhpc.com","username":"alex-welsh"},"change_message_id":"e7e7cc764014ea4baa58f7188436def99089ccdf","unresolved":true,"context_lines":[{"line_number":569,"context_line":""},{"line_number":570,"context_line":"# Adds a delay to the serial neutron_l3_agent container restart process,"},{"line_number":571,"context_line":"# allowing routers to fail over without loss of connectivity."},{"line_number":572,"context_line":"neutron_l3_agent_failover_delay: 0"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"ovsdb_timeout: 10"},{"line_number":575,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"8ef4b3c7_525d8f54","line":572,"range":{"start_line":572,"start_character":33,"end_line":572,"end_character":34},"in_reply_to":"b4a8acab_84174991","updated":"2022-11-17 09:05:04.000000000","message":"Why 43 in particular?","commit_id":"9f43f6387a6622d6395c3ba277ab9f7fccaae034"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"ca54cca8ee98b91c4b2b8bcf4e1ffa3bc080fe52","unresolved":true,"context_lines":[{"line_number":569,"context_line":""},{"line_number":570,"context_line":"# Adds a delay (in seconds) to the serial neutron_l3_agent container restart"},{"line_number":571,"context_line":"# process, allowing routers to fail over without loss of connectivity."},{"line_number":572,"context_line":"neutron_l3_agent_failover_delay: 0"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"ovsdb_timeout: 10"},{"line_number":575,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":10,"id":"5a9a2b90_42a6fa60","line":572,"range":{"start_line":572,"start_character":0,"end_line":572,"end_character":34},"updated":"2022-12-01 14:35:21.000000000","message":"so by default, we don\u0027t fix anything? that sounds weird to me, shouldn\u0027t we just default to 30/60/90/whatever?","commit_id":"b21fda311439d72656c52ce59cf74d13a745e638"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"c27e3be454cde9840e06abcda5803035e6de16bd","unresolved":true,"context_lines":[{"line_number":569,"context_line":""},{"line_number":570,"context_line":"# Adds a delay (in seconds) to the serial neutron_l3_agent container restart"},{"line_number":571,"context_line":"# process, allowing routers to fail over without loss of connectivity."},{"line_number":572,"context_line":"neutron_l3_agent_failover_delay: 0"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"ovsdb_timeout: 10"},{"line_number":575,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":10,"id":"6fc49a9c_7e65c9d3","line":572,"range":{"start_line":572,"start_character":0,"end_line":572,"end_character":34},"in_reply_to":"3e61df44_fd3205d4","updated":"2022-12-01 15:02:59.000000000","message":"Then the reno needs also to be updated with a statement that default value is 0 (or no delay) - docs as well.","commit_id":"b21fda311439d72656c52ce59cf74d13a745e638"},{"author":{"_account_id":35264,"name":"Alex Welsh","email":"alex@stackhpc.com","username":"alex-welsh"},"change_message_id":"2632ca14baa2582d30f1b44379feed9bb75e518f","unresolved":true,"context_lines":[{"line_number":569,"context_line":""},{"line_number":570,"context_line":"# Adds a delay (in seconds) to the serial neutron_l3_agent container restart"},{"line_number":571,"context_line":"# process, allowing routers to fail over without loss of connectivity."},{"line_number":572,"context_line":"neutron_l3_agent_failover_delay: 0"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"ovsdb_timeout: 10"},{"line_number":575,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":10,"id":"3e61df44_fd3205d4","line":572,"range":{"start_line":572,"start_character":0,"end_line":572,"end_character":34},"in_reply_to":"5a9a2b90_42a6fa60","updated":"2022-12-01 14:50:17.000000000","message":"https://review.opendev.org/c/openstack/kolla-ansible/+/862916/comments/a0875d24_a6390496","commit_id":"b21fda311439d72656c52ce59cf74d13a745e638"},{"author":{"_account_id":35264,"name":"Alex Welsh","email":"alex@stackhpc.com","username":"alex-welsh"},"change_message_id":"d3d730647bf749a3e608e474bcc6853ff1c03557","unresolved":false,"context_lines":[{"line_number":569,"context_line":""},{"line_number":570,"context_line":"# Adds a delay (in seconds) to the serial neutron_l3_agent container restart"},{"line_number":571,"context_line":"# process, allowing routers to fail over without loss of connectivity."},{"line_number":572,"context_line":"neutron_l3_agent_failover_delay: 0"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"ovsdb_timeout: 10"},{"line_number":575,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":10,"id":"a290dc93_fa16e0ad","line":572,"range":{"start_line":572,"start_character":0,"end_line":572,"end_character":34},"in_reply_to":"6fc49a9c_7e65c9d3","updated":"2022-12-01 15:28:24.000000000","message":"Done","commit_id":"b21fda311439d72656c52ce59cf74d13a745e638"}],"ansible/roles/neutron/handlers/main.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"36388173f00262b4d313134e950df347bfef7111","unresolved":true,"context_lines":[{"line_number":111,"context_line":"    privileged: \"{{ service.privileged | default(False) }}\""},{"line_number":112,"context_line":"    healthcheck: \"{{ service.healthcheck | default(omit) }}\""},{"line_number":113,"context_line":"  when:"},{"line_number":114,"context_line":"    - kolla_action !\u003d \"config\""},{"line_number":115,"context_line":"    - container_facts[\u0027neutron_l3_agent\u0027] is not defined"},{"line_number":116,"context_line":"  listen: Restart neutron-l3-agent container"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"20fd4368_a3eb3a28","line":114,"updated":"2022-11-04 10:51:51.000000000","message":"All the new tasks need this condition.","commit_id":"1d44006051e2a076be9b63ded1297f228147ad18"},{"author":{"_account_id":35264,"name":"Alex Welsh","email":"alex@stackhpc.com","username":"alex-welsh"},"change_message_id":"9315f82416c3e03ecb6f6e4ee62a7a7c3bf7a63e","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    privileged: \"{{ service.privileged | default(False) }}\""},{"line_number":112,"context_line":"    healthcheck: \"{{ service.healthcheck | default(omit) }}\""},{"line_number":113,"context_line":"  when:"},{"line_number":114,"context_line":"    - kolla_action !\u003d \"config\""},{"line_number":115,"context_line":"    - container_facts[\u0027neutron_l3_agent\u0027] is not defined"},{"line_number":116,"context_line":"  listen: Restart neutron-l3-agent container"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"904d9540_0fb2e1da","line":114,"in_reply_to":"20fd4368_a3eb3a28","updated":"2022-11-15 16:38:46.000000000","message":"Done","commit_id":"1d44006051e2a076be9b63ded1297f228147ad18"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"c67043a8e243c05105f12a0db533e5d250e28482","unresolved":true,"context_lines":[{"line_number":130,"context_line":"  vars:"},{"line_number":131,"context_line":"    service_name: \"neutron-l3-agent\""},{"line_number":132,"context_line":"    service: \"{{ neutron_services[service_name] }}\""},{"line_number":133,"context_line":"  with_items: \"{{ groups[service.group] }}\""},{"line_number":134,"context_line":"  run_once: true"},{"line_number":135,"context_line":"  listen: Restart neutron-l3-agent container"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"571dfe0c_2a0e7d61","line":133,"updated":"2022-11-14 17:16:55.000000000","message":"This won\u0027t play nicely with --limit, since it\u0027s possible that not all hosts in the group are in the limit.\n\nFor similar things we\u0027ve sometimes used the add_group module to dynamically define groups based on conditions.","commit_id":"1d44006051e2a076be9b63ded1297f228147ad18"},{"author":{"_account_id":35264,"name":"Alex Welsh","email":"alex@stackhpc.com","username":"alex-welsh"},"change_message_id":"9315f82416c3e03ecb6f6e4ee62a7a7c3bf7a63e","unresolved":false,"context_lines":[{"line_number":130,"context_line":"  vars:"},{"line_number":131,"context_line":"    service_name: \"neutron-l3-agent\""},{"line_number":132,"context_line":"    service: \"{{ neutron_services[service_name] }}\""},{"line_number":133,"context_line":"  with_items: \"{{ groups[service.group] }}\""},{"line_number":134,"context_line":"  run_once: true"},{"line_number":135,"context_line":"  listen: Restart neutron-l3-agent container"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"f5e08667_41944c94","line":133,"in_reply_to":"571dfe0c_2a0e7d61","updated":"2022-11-15 16:38:46.000000000","message":"Done","commit_id":"1d44006051e2a076be9b63ded1297f228147ad18"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"36388173f00262b4d313134e950df347bfef7111","unresolved":true,"context_lines":[{"line_number":136,"context_line":""},{"line_number":137,"context_line":"- name: Wait if container starting"},{"line_number":138,"context_line":"  wait_for:"},{"line_number":139,"context_line":"    timeout: \"{{ neutron_l3_agent_failover_delay | default(\u00270\u0027) }}\""},{"line_number":140,"context_line":"  delegate_to: localhost"},{"line_number":141,"context_line":"  when:"},{"line_number":142,"context_line":"    - stopped_containers and running_containers"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"4fca3c1f_6c86a17a","line":139,"range":{"start_line":139,"start_character":49,"end_line":139,"end_character":63},"updated":"2022-11-04 10:51:51.000000000","message":"No need for default","commit_id":"1d44006051e2a076be9b63ded1297f228147ad18"},{"author":{"_account_id":35264,"name":"Alex Welsh","email":"alex@stackhpc.com","username":"alex-welsh"},"change_message_id":"9315f82416c3e03ecb6f6e4ee62a7a7c3bf7a63e","unresolved":false,"context_lines":[{"line_number":136,"context_line":""},{"line_number":137,"context_line":"- name: Wait if container starting"},{"line_number":138,"context_line":"  wait_for:"},{"line_number":139,"context_line":"    timeout: \"{{ neutron_l3_agent_failover_delay | default(\u00270\u0027) }}\""},{"line_number":140,"context_line":"  delegate_to: localhost"},{"line_number":141,"context_line":"  when:"},{"line_number":142,"context_line":"    - stopped_containers and running_containers"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"2ba85f56_54d262bf","line":139,"range":{"start_line":139,"start_character":49,"end_line":139,"end_character":63},"in_reply_to":"4fca3c1f_6c86a17a","updated":"2022-11-15 16:38:46.000000000","message":"Done","commit_id":"1d44006051e2a076be9b63ded1297f228147ad18"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"36388173f00262b4d313134e950df347bfef7111","unresolved":true,"context_lines":[{"line_number":137,"context_line":"- name: Wait if container starting"},{"line_number":138,"context_line":"  wait_for:"},{"line_number":139,"context_line":"    timeout: \"{{ neutron_l3_agent_failover_delay | default(\u00270\u0027) }}\""},{"line_number":140,"context_line":"  delegate_to: localhost"},{"line_number":141,"context_line":"  when:"},{"line_number":142,"context_line":"    - stopped_containers and running_containers"},{"line_number":143,"context_line":"  listen: Restart neutron-l3-agent container"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"e94661ed_e91e6794","line":140,"updated":"2022-11-04 10:51:51.000000000","message":"Not really necessary","commit_id":"1d44006051e2a076be9b63ded1297f228147ad18"},{"author":{"_account_id":35264,"name":"Alex Welsh","email":"alex@stackhpc.com","username":"alex-welsh"},"change_message_id":"9315f82416c3e03ecb6f6e4ee62a7a7c3bf7a63e","unresolved":false,"context_lines":[{"line_number":137,"context_line":"- name: Wait if container starting"},{"line_number":138,"context_line":"  wait_for:"},{"line_number":139,"context_line":"    timeout: \"{{ neutron_l3_agent_failover_delay | default(\u00270\u0027) }}\""},{"line_number":140,"context_line":"  delegate_to: localhost"},{"line_number":141,"context_line":"  when:"},{"line_number":142,"context_line":"    - stopped_containers and running_containers"},{"line_number":143,"context_line":"  listen: Restart neutron-l3-agent container"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"e48e339e_b1fdcd8a","line":140,"in_reply_to":"e94661ed_e91e6794","updated":"2022-11-15 16:38:46.000000000","message":"Done","commit_id":"1d44006051e2a076be9b63ded1297f228147ad18"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"36388173f00262b4d313134e950df347bfef7111","unresolved":true,"context_lines":[{"line_number":157,"context_line":"  vars:"},{"line_number":158,"context_line":"    service_name: \"neutron-l3-agent\""},{"line_number":159,"context_line":"    service: \"{{ neutron_services[service_name] }}\""},{"line_number":160,"context_line":"    l3_agent_delay: \"{{ neutron_l3_agent_failover_delay }}\""},{"line_number":161,"context_line":"  become: true"},{"line_number":162,"context_line":"  kolla_docker:"},{"line_number":163,"context_line":"    action: \"recreate_or_restart_container\""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"240ae766_3b48e83f","line":160,"range":{"start_line":160,"start_character":4,"end_line":160,"end_character":18},"updated":"2022-11-04 10:51:51.000000000","message":"Indirection not necessary","commit_id":"1d44006051e2a076be9b63ded1297f228147ad18"},{"author":{"_account_id":35264,"name":"Alex Welsh","email":"alex@stackhpc.com","username":"alex-welsh"},"change_message_id":"9315f82416c3e03ecb6f6e4ee62a7a7c3bf7a63e","unresolved":false,"context_lines":[{"line_number":157,"context_line":"  vars:"},{"line_number":158,"context_line":"    service_name: \"neutron-l3-agent\""},{"line_number":159,"context_line":"    service: \"{{ neutron_services[service_name] }}\""},{"line_number":160,"context_line":"    l3_agent_delay: \"{{ neutron_l3_agent_failover_delay }}\""},{"line_number":161,"context_line":"  become: true"},{"line_number":162,"context_line":"  kolla_docker:"},{"line_number":163,"context_line":"    action: \"recreate_or_restart_container\""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"aa708b37_2e3db8da","line":160,"range":{"start_line":160,"start_character":4,"end_line":160,"end_character":18},"in_reply_to":"240ae766_3b48e83f","updated":"2022-11-15 16:38:46.000000000","message":"Done","commit_id":"1d44006051e2a076be9b63ded1297f228147ad18"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"3eb55b421de2e036a30847cec3798d7fa99f7a3a","unresolved":true,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"- name: Group hosts"},{"line_number":102,"context_line":"  group_by:"},{"line_number":103,"context_line":"    key: neutron_l3_agent_{{ container_facts[\u0027neutron_l3_agent\u0027].State | default(\u0027stopped\u0027) }}"},{"line_number":104,"context_line":"  listen: Restart neutron-l3-agent container"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"- name: Start stopped neutron-l3-agent container"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"fb8ffccc_843f81eb","line":103,"range":{"start_line":103,"start_character":65,"end_line":103,"end_character":70},"updated":"2022-11-22 14:58:28.000000000","message":"are there states other than running that might slip through the net here? Would it be safer to use \u0027container_facts[\u0027neutron_l3_agent\u0027] is defined\u0027 as the condition?","commit_id":"9f43f6387a6622d6395c3ba277ab9f7fccaae034"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"b4ba5804bf45eee6ae2fed70b4f2f80c72d2699a","unresolved":true,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"- name: Group hosts"},{"line_number":102,"context_line":"  group_by:"},{"line_number":103,"context_line":"    key: neutron_l3_agent_{{ container_facts[\u0027neutron_l3_agent\u0027].State | default(\u0027stopped\u0027) }}"},{"line_number":104,"context_line":"  listen: Restart neutron-l3-agent container"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"- name: Start stopped neutron-l3-agent container"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"bf5ff908_ad77b060","line":103,"range":{"start_line":103,"start_character":65,"end_line":103,"end_character":70},"in_reply_to":"05cf3216_aeb53ad3","updated":"2022-11-23 11:03:43.000000000","message":"neutron_l3_agent_running_(True|False) much more better","commit_id":"9f43f6387a6622d6395c3ba277ab9f7fccaae034"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"c629ffa845a298e552d482624b09c498f97cec3d","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"- name: Group hosts"},{"line_number":102,"context_line":"  group_by:"},{"line_number":103,"context_line":"    key: neutron_l3_agent_{{ container_facts[\u0027neutron_l3_agent\u0027].State | default(\u0027stopped\u0027) }}"},{"line_number":104,"context_line":"  listen: Restart neutron-l3-agent container"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"- name: Start stopped neutron-l3-agent container"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"ec0c4761_ecaaeed4","line":103,"range":{"start_line":103,"start_character":65,"end_line":103,"end_character":70},"in_reply_to":"2debb119_b25c6529","updated":"2022-11-23 10:52:53.000000000","message":"the previous code was more human readable","commit_id":"9f43f6387a6622d6395c3ba277ab9f7fccaae034"},{"author":{"_account_id":35264,"name":"Alex Welsh","email":"alex@stackhpc.com","username":"alex-welsh"},"change_message_id":"ad37fad715cac7b80c4f5e210f7858be63863105","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"- name: Group hosts"},{"line_number":102,"context_line":"  group_by:"},{"line_number":103,"context_line":"    key: neutron_l3_agent_{{ container_facts[\u0027neutron_l3_agent\u0027].State | default(\u0027stopped\u0027) }}"},{"line_number":104,"context_line":"  listen: Restart neutron-l3-agent container"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"- name: Start stopped neutron-l3-agent container"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"eafe144b_48f7ed0b","line":103,"range":{"start_line":103,"start_character":65,"end_line":103,"end_character":70},"in_reply_to":"bf5ff908_ad77b060","updated":"2022-11-23 11:21:51.000000000","message":"Done","commit_id":"9f43f6387a6622d6395c3ba277ab9f7fccaae034"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"3acb4a31022e28ffb8e1bb54988fd907b39cbd87","unresolved":true,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"- name: Group hosts"},{"line_number":102,"context_line":"  group_by:"},{"line_number":103,"context_line":"    key: neutron_l3_agent_{{ container_facts[\u0027neutron_l3_agent\u0027].State | default(\u0027stopped\u0027) }}"},{"line_number":104,"context_line":"  listen: Restart neutron-l3-agent container"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"- name: Start stopped neutron-l3-agent container"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"05cf3216_aeb53ad3","line":103,"range":{"start_line":103,"start_character":65,"end_line":103,"end_character":70},"in_reply_to":"ec0c4761_ecaaeed4","updated":"2022-11-23 10:58:23.000000000","message":"do you want human readable or correct? 😜\n\nWould it be clearer to use neutron_l3_agent_running_(True|False)?","commit_id":"9f43f6387a6622d6395c3ba277ab9f7fccaae034"},{"author":{"_account_id":35264,"name":"Alex Welsh","email":"alex@stackhpc.com","username":"alex-welsh"},"change_message_id":"8759260581784c7d5fb093e5af144d7efdb73bea","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"- name: Group hosts"},{"line_number":102,"context_line":"  group_by:"},{"line_number":103,"context_line":"    key: neutron_l3_agent_{{ container_facts[\u0027neutron_l3_agent\u0027].State | default(\u0027stopped\u0027) }}"},{"line_number":104,"context_line":"  listen: Restart neutron-l3-agent container"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"- name: Start stopped neutron-l3-agent container"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"2debb119_b25c6529","line":103,"range":{"start_line":103,"start_character":65,"end_line":103,"end_character":70},"in_reply_to":"fb8ffccc_843f81eb","updated":"2022-11-22 16:10:49.000000000","message":"Done","commit_id":"9f43f6387a6622d6395c3ba277ab9f7fccaae034"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b99c01b0c6b390fa5d223e0db288ff2b642edd17","unresolved":true,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"- name: Group hosts"},{"line_number":102,"context_line":"  group_by:"},{"line_number":103,"context_line":"    key: neutron_l3_agent_{{ container_facts[\u0027neutron_l3_agent\u0027] is defined | default(False) }}"},{"line_number":104,"context_line":"  listen: Restart neutron-l3-agent container"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"- name: Start stopped neutron-l3-agent container"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"d7a4e3a3_fb30b8eb","line":103,"updated":"2022-11-22 20:28:33.000000000","message":"We don\u0027t need a default filter.","commit_id":"4bac56e5717a1d4c453cddca7784d04def40bd56"},{"author":{"_account_id":35264,"name":"Alex Welsh","email":"alex@stackhpc.com","username":"alex-welsh"},"change_message_id":"e116fde370f478d4446dcf0ce3b61b2657c30017","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"- name: Group hosts"},{"line_number":102,"context_line":"  group_by:"},{"line_number":103,"context_line":"    key: neutron_l3_agent_{{ container_facts[\u0027neutron_l3_agent\u0027] is defined | default(False) }}"},{"line_number":104,"context_line":"  listen: Restart neutron-l3-agent container"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"- name: Start stopped neutron-l3-agent container"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7727394e_97fa2372","line":103,"in_reply_to":"d7a4e3a3_fb30b8eb","updated":"2022-11-23 10:09:46.000000000","message":"Done","commit_id":"4bac56e5717a1d4c453cddca7784d04def40bd56"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b99c01b0c6b390fa5d223e0db288ff2b642edd17","unresolved":true,"context_lines":[{"line_number":120,"context_line":"    healthcheck: \"{{ service.healthcheck | default(omit) }}\""},{"line_number":121,"context_line":"  when:"},{"line_number":122,"context_line":"    - kolla_action !\u003d \"config\""},{"line_number":123,"context_line":"    - groups[\u0027neutron_l3_agent_stopped\u0027] is defined"},{"line_number":124,"context_line":"    - inventory_hostname in groups[\u0027neutron_l3_agent_stopped\u0027]"},{"line_number":125,"context_line":"  listen: Restart neutron-l3-agent container"},{"line_number":126,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":8,"id":"e84596c8_3e0690c8","line":123,"range":{"start_line":123,"start_character":14,"end_line":123,"end_character":38},"updated":"2022-11-22 20:28:33.000000000","message":"These group names will now have either a True or False suffix rather than running or stopped","commit_id":"4bac56e5717a1d4c453cddca7784d04def40bd56"},{"author":{"_account_id":35264,"name":"Alex Welsh","email":"alex@stackhpc.com","username":"alex-welsh"},"change_message_id":"e116fde370f478d4446dcf0ce3b61b2657c30017","unresolved":false,"context_lines":[{"line_number":120,"context_line":"    healthcheck: \"{{ service.healthcheck | default(omit) }}\""},{"line_number":121,"context_line":"  when:"},{"line_number":122,"context_line":"    - kolla_action !\u003d \"config\""},{"line_number":123,"context_line":"    - groups[\u0027neutron_l3_agent_stopped\u0027] is defined"},{"line_number":124,"context_line":"    - inventory_hostname in groups[\u0027neutron_l3_agent_stopped\u0027]"},{"line_number":125,"context_line":"  listen: Restart neutron-l3-agent container"},{"line_number":126,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":8,"id":"cd8ea17a_7fcb6e0b","line":123,"range":{"start_line":123,"start_character":14,"end_line":123,"end_character":38},"in_reply_to":"e84596c8_3e0690c8","updated":"2022-11-23 10:09:46.000000000","message":"Done","commit_id":"4bac56e5717a1d4c453cddca7784d04def40bd56"}],"doc/source/reference/networking/neutron.rst":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"c67043a8e243c05105f12a0db533e5d250e28482","unresolved":true,"context_lines":[{"line_number":65,"context_line":":kayobe-doc:`Kayobe \u003c/\u003e`. It is out of scope here, as it is non-trivial to set"},{"line_number":66,"context_line":"up in a persistent manner."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"L3 agent high availability"},{"line_number":69,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"L3 agents can be created in a high availability (HA) state with:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"89e79b2f_1363c945","line":68,"updated":"2022-11-14 17:16:55.000000000","message":"This is applicable only in the ML2/OVS driver, so it should move to L134","commit_id":"1d44006051e2a076be9b63ded1297f228147ad18"},{"author":{"_account_id":35264,"name":"Alex Welsh","email":"alex@stackhpc.com","username":"alex-welsh"},"change_message_id":"9315f82416c3e03ecb6f6e4ee62a7a7c3bf7a63e","unresolved":false,"context_lines":[{"line_number":65,"context_line":":kayobe-doc:`Kayobe \u003c/\u003e`. It is out of scope here, as it is non-trivial to set"},{"line_number":66,"context_line":"up in a persistent manner."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"L3 agent high availability"},{"line_number":69,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"L3 agents can be created in a high availability (HA) state with:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"a1e3210c_3c0b5835","line":68,"in_reply_to":"89e79b2f_1363c945","updated":"2022-11-15 16:38:46.000000000","message":"Done","commit_id":"1d44006051e2a076be9b63ded1297f228147ad18"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"c67043a8e243c05105f12a0db533e5d250e28482","unresolved":true,"context_lines":[{"line_number":68,"context_line":"L3 agent high availability"},{"line_number":69,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"L3 agents can be created in a high availability (HA) state with:"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":".. code-block:: yaml"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"19dacdc7_8e8670f3","line":71,"updated":"2022-11-14 17:16:55.000000000","message":"L3 and DHCP","commit_id":"1d44006051e2a076be9b63ded1297f228147ad18"},{"author":{"_account_id":35264,"name":"Alex Welsh","email":"alex@stackhpc.com","username":"alex-welsh"},"change_message_id":"9315f82416c3e03ecb6f6e4ee62a7a7c3bf7a63e","unresolved":false,"context_lines":[{"line_number":68,"context_line":"L3 agent high availability"},{"line_number":69,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"L3 agents can be created in a high availability (HA) state with:"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":".. code-block:: yaml"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"fc5917a1_a017efce","line":71,"in_reply_to":"19dacdc7_8e8670f3","updated":"2022-11-15 16:38:46.000000000","message":"Done","commit_id":"1d44006051e2a076be9b63ded1297f228147ad18"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"c67043a8e243c05105f12a0db533e5d250e28482","unresolved":true,"context_lines":[{"line_number":84,"context_line":"Agents sometimes need to be restarted. This delay is invoked between the"},{"line_number":85,"context_line":"restart operation of each agent. When set properly, it will stop network"},{"line_number":86,"context_line":"outages caused by all agents restarting at the same time. The exact length of"},{"line_number":87,"context_line":"time it takes to restart is depenent on hardware and the number of routers"},{"line_number":88,"context_line":"present. A good rule of thumb is to set the value to ``40 + 3n`` where ``n`` is"},{"line_number":89,"context_line":"the number of routers. A better approach however would be to first time how"},{"line_number":90,"context_line":"long an outage lasts, then set the value accordingly."}],"source_content_type":"text/x-rst","patch_set":3,"id":"bae58daf_e830db52","line":87,"updated":"2022-11-14 17:16:55.000000000","message":"dependent","commit_id":"1d44006051e2a076be9b63ded1297f228147ad18"},{"author":{"_account_id":35264,"name":"Alex Welsh","email":"alex@stackhpc.com","username":"alex-welsh"},"change_message_id":"9315f82416c3e03ecb6f6e4ee62a7a7c3bf7a63e","unresolved":false,"context_lines":[{"line_number":84,"context_line":"Agents sometimes need to be restarted. This delay is invoked between the"},{"line_number":85,"context_line":"restart operation of each agent. When set properly, it will stop network"},{"line_number":86,"context_line":"outages caused by all agents restarting at the same time. The exact length of"},{"line_number":87,"context_line":"time it takes to restart is depenent on hardware and the number of routers"},{"line_number":88,"context_line":"present. A good rule of thumb is to set the value to ``40 + 3n`` where ``n`` is"},{"line_number":89,"context_line":"the number of routers. A better approach however would be to first time how"},{"line_number":90,"context_line":"long an outage lasts, then set the value accordingly."}],"source_content_type":"text/x-rst","patch_set":3,"id":"138c7731_2dd44b51","line":87,"in_reply_to":"bae58daf_e830db52","updated":"2022-11-15 16:38:46.000000000","message":"Done","commit_id":"1d44006051e2a076be9b63ded1297f228147ad18"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"57a8742f8727b5175b9fa2c2f497e5d183ae1e09","unresolved":true,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"   enable_neutron_agent_ha: \"yes\""},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"This allows networking to fail over across controllers if the active agent is"},{"line_number":122,"context_line":"stopped. If this option is enabled, it can be advantageous to also set:"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":".. code-block:: yaml"}],"source_content_type":"text/x-rst","patch_set":6,"id":"0d4d148c_f27d1bb2","line":121,"updated":"2022-11-22 15:12:32.000000000","message":"Better include units here too","commit_id":"9f43f6387a6622d6395c3ba277ab9f7fccaae034"},{"author":{"_account_id":35264,"name":"Alex Welsh","email":"alex@stackhpc.com","username":"alex-welsh"},"change_message_id":"8759260581784c7d5fb093e5af144d7efdb73bea","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"   enable_neutron_agent_ha: \"yes\""},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"This allows networking to fail over across controllers if the active agent is"},{"line_number":122,"context_line":"stopped. If this option is enabled, it can be advantageous to also set:"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":".. code-block:: yaml"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ec0bd0cd_20de41e4","line":121,"in_reply_to":"0d4d148c_f27d1bb2","updated":"2022-11-22 16:10:49.000000000","message":"Done","commit_id":"9f43f6387a6622d6395c3ba277ab9f7fccaae034"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"ca54cca8ee98b91c4b2b8bcf4e1ffa3bc080fe52","unresolved":true,"context_lines":[{"line_number":129,"context_line":"between the restart operations of each agent. When set properly, it will stop"},{"line_number":130,"context_line":"network outages caused by all agents restarting at the same time. The exact"},{"line_number":131,"context_line":"length of time it takes to restart is dependent on hardware and the number of"},{"line_number":132,"context_line":"routers present. A general rule of thumb is to set the value to ``40 + 3n``"},{"line_number":133,"context_line":"where ``n`` is the number of routers. A much better approach however would be"},{"line_number":134,"context_line":"to first time how long an outage lasts, then set the value accordingly."},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"2993d116_c48e2fe5","line":132,"range":{"start_line":132,"start_character":66,"end_line":132,"end_character":73},"updated":"2022-12-01 14:35:21.000000000","message":"So if I have 5 routers, it\u0027s 40 + 35 \u003d 75, or it should be rather 40 + (3 * 5) \u003d 65?","commit_id":"b21fda311439d72656c52ce59cf74d13a745e638"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"ca54cca8ee98b91c4b2b8bcf4e1ffa3bc080fe52","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Agents sometimes need to be restarted. This delay (in seconds) is invoked"},{"line_number":129,"context_line":"between the restart operations of each agent. When set properly, it will stop"},{"line_number":130,"context_line":"network outages caused by all agents restarting at the same time. The exact"},{"line_number":131,"context_line":"length of time it takes to restart is dependent on hardware and the number of"},{"line_number":132,"context_line":"routers present. A general rule of thumb is to set the value to ``40 + 3n``"},{"line_number":133,"context_line":"where ``n`` is the number of routers. A much better approach however would be"},{"line_number":134,"context_line":"to first time how long an outage lasts, then set the value accordingly."},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"43339495_dc33db27","line":132,"range":{"start_line":130,"start_character":66,"end_line":132,"end_character":15},"updated":"2022-12-01 14:35:21.000000000","message":"and some other factors, as RMQ throughput, API workers count an others - which we don\u0027t need to mention here.","commit_id":"b21fda311439d72656c52ce59cf74d13a745e638"},{"author":{"_account_id":35264,"name":"Alex Welsh","email":"alex@stackhpc.com","username":"alex-welsh"},"change_message_id":"2632ca14baa2582d30f1b44379feed9bb75e518f","unresolved":true,"context_lines":[{"line_number":129,"context_line":"between the restart operations of each agent. When set properly, it will stop"},{"line_number":130,"context_line":"network outages caused by all agents restarting at the same time. The exact"},{"line_number":131,"context_line":"length of time it takes to restart is dependent on hardware and the number of"},{"line_number":132,"context_line":"routers present. A general rule of thumb is to set the value to ``40 + 3n``"},{"line_number":133,"context_line":"where ``n`` is the number of routers. A much better approach however would be"},{"line_number":134,"context_line":"to first time how long an outage lasts, then set the value accordingly."},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"8dc3d143_dca85b97","line":132,"range":{"start_line":132,"start_character":66,"end_line":132,"end_character":73},"in_reply_to":"2993d116_c48e2fe5","updated":"2022-12-01 14:50:17.000000000","message":"40 + (3*5) \u003d 65 was the intention. Do you think this needs rewording?","commit_id":"b21fda311439d72656c52ce59cf74d13a745e638"},{"author":{"_account_id":35264,"name":"Alex Welsh","email":"alex@stackhpc.com","username":"alex-welsh"},"change_message_id":"d3d730647bf749a3e608e474bcc6853ff1c03557","unresolved":false,"context_lines":[{"line_number":129,"context_line":"between the restart operations of each agent. When set properly, it will stop"},{"line_number":130,"context_line":"network outages caused by all agents restarting at the same time. The exact"},{"line_number":131,"context_line":"length of time it takes to restart is dependent on hardware and the number of"},{"line_number":132,"context_line":"routers present. A general rule of thumb is to set the value to ``40 + 3n``"},{"line_number":133,"context_line":"where ``n`` is the number of routers. A much better approach however would be"},{"line_number":134,"context_line":"to first time how long an outage lasts, then set the value accordingly."},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"7fa070ff_c4092db1","line":132,"range":{"start_line":132,"start_character":66,"end_line":132,"end_character":73},"in_reply_to":"5343dba8_479ce266","updated":"2022-12-01 15:28:24.000000000","message":"Done","commit_id":"b21fda311439d72656c52ce59cf74d13a745e638"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"c27e3be454cde9840e06abcda5803035e6de16bd","unresolved":true,"context_lines":[{"line_number":129,"context_line":"between the restart operations of each agent. When set properly, it will stop"},{"line_number":130,"context_line":"network outages caused by all agents restarting at the same time. The exact"},{"line_number":131,"context_line":"length of time it takes to restart is dependent on hardware and the number of"},{"line_number":132,"context_line":"routers present. A general rule of thumb is to set the value to ``40 + 3n``"},{"line_number":133,"context_line":"where ``n`` is the number of routers. A much better approach however would be"},{"line_number":134,"context_line":"to first time how long an outage lasts, then set the value accordingly."},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"5343dba8_479ce266","line":132,"range":{"start_line":132,"start_character":66,"end_line":132,"end_character":73},"in_reply_to":"8dc3d143_dca85b97","updated":"2022-12-01 15:02:59.000000000","message":"Yes please.","commit_id":"b21fda311439d72656c52ce59cf74d13a745e638"}],"releasenotes/notes/serial-l3-agent-restart-with-delay-7c2ec5875dbb760e.yaml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"c67043a8e243c05105f12a0db533e5d250e28482","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In HA mode, parallel restart of neutron-l3-agent containers will cause"},{"line_number":5,"context_line":"    a network outage. Adding routers increases the recovery time. This"},{"line_number":6,"context_line":"    patch makes restarts serial and adds a user-configurable delay to ensure"},{"line_number":7,"context_line":"    each agent is returned to operation before the next one is restarted."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"29796cf4_a83161d8","line":6,"updated":"2022-11-14 17:16:55.000000000","message":"nit: release notes shouldn\u0027t mention patches. Could say \"this release\"","commit_id":"1d44006051e2a076be9b63ded1297f228147ad18"},{"author":{"_account_id":35264,"name":"Alex Welsh","email":"alex@stackhpc.com","username":"alex-welsh"},"change_message_id":"9315f82416c3e03ecb6f6e4ee62a7a7c3bf7a63e","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In HA mode, parallel restart of neutron-l3-agent containers will cause"},{"line_number":5,"context_line":"    a network outage. Adding routers increases the recovery time. This"},{"line_number":6,"context_line":"    patch makes restarts serial and adds a user-configurable delay to ensure"},{"line_number":7,"context_line":"    each agent is returned to operation before the next one is restarted."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"57460c8a_39a1dabe","line":6,"in_reply_to":"29796cf4_a83161d8","updated":"2022-11-15 16:38:46.000000000","message":"Done","commit_id":"1d44006051e2a076be9b63ded1297f228147ad18"}]}
