)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"02b7b6f56aa4557095b5277752b1022452a44821","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":113,"id":"c10fd949_4e2d90a2","updated":"2026-09-01 13:25:27.000000000","message":"Ideally, we\u0027d use the CI to test the feature. We could use persistent networking with the correct driver on one ubuntu job and one rocky job.","commit_id":"dc4241ebe46a145e39a66ed86e649d7bd1bd4c0e"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"e0be6f1376a3cf4f58550eeafa6f5d3be99688af","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":113,"id":"73bf1b8e_d98d65d9","updated":"2026-09-01 13:19:49.000000000","message":"Looks mostly good to me. Please add some docs on this feature and a release note so that people know they can use it. Also would be good to validate the network_driver using the ansible.builtin.assert module or similar. Pick the most appropriate place, but failing early is normally a good thing.  I can just see someone trying network_driver: network-manager and getting weird errors!","commit_id":"dc4241ebe46a145e39a66ed86e649d7bd1bd4c0e"},{"author":{"_account_id":39327,"name":"Rowan Johns","display_name":"Rowan Johns","email":"rowan@stackhpc.com","username":"rowanjohns"},"change_message_id":"4399076afcd11a2093aef5a39c056105d1548f52","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":113,"id":"82ba9acb_bb0b27b0","in_reply_to":"c10fd949_4e2d90a2","updated":"2026-09-04 13:05:28.000000000","message":"Done","commit_id":"dc4241ebe46a145e39a66ed86e649d7bd1bd4c0e"},{"author":{"_account_id":39327,"name":"Rowan Johns","display_name":"Rowan Johns","email":"rowan@stackhpc.com","username":"rowanjohns"},"change_message_id":"4399076afcd11a2093aef5a39c056105d1548f52","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":119,"id":"79311368_82070747","updated":"2026-09-04 13:05:28.000000000","message":"This is ready for another review.","commit_id":"8a769c54579046369328fd54bcef441f3d435469"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"bece05c03534f3d4fd6759f1cb55ded120f30487","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":146,"id":"d56fc939_52c465f4","updated":"2026-09-11 10:29:37.000000000","message":"LGTM. We can add OVS and direct mode support in follow ups.","commit_id":"031a47789a6ea3bd6226edd777ce71f165419536"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"c290ddb96d85061af1c32e5876c15e2c89062de6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":146,"id":"3a2f4bb2_1730c2c5","updated":"2026-09-11 21:36:39.000000000","message":"recheck","commit_id":"031a47789a6ea3bd6226edd777ce71f165419536"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"42d5f87f641b63a37195a8fd47dd449bcbfd7b01","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":146,"id":"79afd56f_9a7e1ed3","updated":"2026-09-11 19:00:31.000000000","message":"recheck","commit_id":"031a47789a6ea3bd6226edd777ce71f165419536"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"af9836175cc4e7f0c003b96cd288127e22876c9e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":146,"id":"7b8293a5_673098d6","updated":"2026-09-11 10:56:23.000000000","message":"recheck","commit_id":"031a47789a6ea3bd6226edd777ce71f165419536"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"c25a2a8a11afd0f4ef870f4116ea8e0c1b5593b5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":146,"id":"c1da24b3_d14f15ca","updated":"2026-09-14 09:38:18.000000000","message":"recheck","commit_id":"031a47789a6ea3bd6226edd777ce71f165419536"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"4d8066855897f5308811987dd8f7339decaa116e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":146,"id":"4159dfbd_fbe4c0f0","updated":"2026-09-14 11:01:40.000000000","message":"recheck: DNS issues. Wondering if this cloud specific (ovn vs ovs).","commit_id":"031a47789a6ea3bd6226edd777ce71f165419536"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"fe7dec70e9288ecc9779e54e836df29fb2382c41","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":151,"id":"a8c93d22_8996497b","updated":"2026-09-15 09:58:10.000000000","message":"it was a long journey) 151 patchset)))","commit_id":"adbd39c39139706cba5f56afe773187202f926e5"}],"ansible/host_vars/localhost":[{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"e0be6f1376a3cf4f58550eeafa6f5d3be99688af","unresolved":true,"context_lines":[{"line_number":136,"context_line":"# ironic installations, this flag should be set to \u0027false\u0027."},{"line_number":137,"context_line":"wait_for_placement: true"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"# The network driver to use. Default is none, so ip commands will be used to "},{"line_number":140,"context_line":"# set up networking (non persistent). This can be overridden to NetworkManager"},{"line_number":141,"context_line":"# to support persistent networking."},{"line_number":142,"context_line":"network_driver: \"\""}],"source_content_type":"application/octet-stream","patch_set":113,"id":"5331743b_7c35e7c3","line":139,"updated":"2026-09-01 13:19:49.000000000","message":"whitespace","commit_id":"dc4241ebe46a145e39a66ed86e649d7bd1bd4c0e"},{"author":{"_account_id":39327,"name":"Rowan Johns","display_name":"Rowan Johns","email":"rowan@stackhpc.com","username":"rowanjohns"},"change_message_id":"4399076afcd11a2093aef5a39c056105d1548f52","unresolved":false,"context_lines":[{"line_number":136,"context_line":"# ironic installations, this flag should be set to \u0027false\u0027."},{"line_number":137,"context_line":"wait_for_placement: true"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"# The network driver to use. Default is none, so ip commands will be used to "},{"line_number":140,"context_line":"# set up networking (non persistent). This can be overridden to NetworkManager"},{"line_number":141,"context_line":"# to support persistent networking."},{"line_number":142,"context_line":"network_driver: \"\""}],"source_content_type":"application/octet-stream","patch_set":113,"id":"7da7a491_673dc109","line":139,"in_reply_to":"5331743b_7c35e7c3","updated":"2026-09-04 13:05:28.000000000","message":"Done","commit_id":"dc4241ebe46a145e39a66ed86e649d7bd1bd4c0e"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"e0be6f1376a3cf4f58550eeafa6f5d3be99688af","unresolved":true,"context_lines":[{"line_number":137,"context_line":"wait_for_placement: true"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"# The network driver to use. Default is none, so ip commands will be used to "},{"line_number":140,"context_line":"# set up networking (non persistent). This can be overridden to NetworkManager"},{"line_number":141,"context_line":"# to support persistent networking."},{"line_number":142,"context_line":"network_driver: \"\""}],"source_content_type":"application/octet-stream","patch_set":113,"id":"2ee50a15_f76a0746","line":140,"range":{"start_line":140,"start_character":50,"end_line":140,"end_character":78},"updated":"2026-09-01 13:19:49.000000000","message":"Can be one of: iproute2, systemd-networkd, NetworkManager.","commit_id":"dc4241ebe46a145e39a66ed86e649d7bd1bd4c0e"},{"author":{"_account_id":39327,"name":"Rowan Johns","display_name":"Rowan Johns","email":"rowan@stackhpc.com","username":"rowanjohns"},"change_message_id":"4399076afcd11a2093aef5a39c056105d1548f52","unresolved":false,"context_lines":[{"line_number":137,"context_line":"wait_for_placement: true"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"# The network driver to use. Default is none, so ip commands will be used to "},{"line_number":140,"context_line":"# set up networking (non persistent). This can be overridden to NetworkManager"},{"line_number":141,"context_line":"# to support persistent networking."},{"line_number":142,"context_line":"network_driver: \"\""}],"source_content_type":"application/octet-stream","patch_set":113,"id":"50a38b64_f9a7a34c","line":140,"range":{"start_line":140,"start_character":50,"end_line":140,"end_character":78},"in_reply_to":"2ee50a15_f76a0746","updated":"2026-09-04 13:05:28.000000000","message":"Done","commit_id":"dc4241ebe46a145e39a66ed86e649d7bd1bd4c0e"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"e0be6f1376a3cf4f58550eeafa6f5d3be99688af","unresolved":true,"context_lines":[{"line_number":139,"context_line":"# The network driver to use. Default is none, so ip commands will be used to "},{"line_number":140,"context_line":"# set up networking (non persistent). This can be overridden to NetworkManager"},{"line_number":141,"context_line":"# to support persistent networking."},{"line_number":142,"context_line":"network_driver: \"\""}],"source_content_type":"application/octet-stream","patch_set":113,"id":"f639b945_ed7aa7d6","line":142,"updated":"2026-09-01 13:19:49.000000000","message":"```suggestion\nnetwork_driver: \"iproute2\"\n```\nI\u0027d prefer to be more explicit here.","commit_id":"dc4241ebe46a145e39a66ed86e649d7bd1bd4c0e"},{"author":{"_account_id":39327,"name":"Rowan Johns","display_name":"Rowan Johns","email":"rowan@stackhpc.com","username":"rowanjohns"},"change_message_id":"4399076afcd11a2093aef5a39c056105d1548f52","unresolved":false,"context_lines":[{"line_number":139,"context_line":"# The network driver to use. Default is none, so ip commands will be used to "},{"line_number":140,"context_line":"# set up networking (non persistent). This can be overridden to NetworkManager"},{"line_number":141,"context_line":"# to support persistent networking."},{"line_number":142,"context_line":"network_driver: \"\""}],"source_content_type":"application/octet-stream","patch_set":113,"id":"a47779cf_0e5cd8fc","line":142,"in_reply_to":"f639b945_ed7aa7d6","updated":"2026-09-04 13:05:28.000000000","message":"Done","commit_id":"dc4241ebe46a145e39a66ed86e649d7bd1bd4c0e"}],"ansible/hypervisor_setup.yml":[{"author":{"_account_id":39213,"name":"Jed Preist","display_name":"Jed Preist","email":"jed@stackhpc.com","username":"jed-preist"},"change_message_id":"4078c319b93fbff6b58bde3383456a2286dfb468","unresolved":true,"context_lines":[{"line_number":54,"context_line":"    source_interface: \"{{ pn.value }}\""},{"line_number":55,"context_line":"    state: \"{{ \u0027absent\u0027 if cmd \u003d\u003d \u0027teardown\u0027 else \u0027present\u0027 }}\""},{"line_number":56,"context_line":"    # The network driver to use (default is NetworkManager for Rocky9)"},{"line_number":57,"context_line":"    network_driver: \"NetworkManager\""},{"line_number":58,"context_line":"  loop: \"{{ query(\u0027dict\u0027, physnet_mappings) }}\""},{"line_number":59,"context_line":"  loop_control:"},{"line_number":60,"context_line":"    loop_var: pn"}],"source_content_type":"text/x-yaml","patch_set":64,"id":"40abc1a1_a1f02091","line":57,"range":{"start_line":57,"start_character":4,"end_line":57,"end_character":36},"updated":"2026-08-06 15:40:44.000000000","message":"This shouldn\u0027t be hard-coded. It would be best to use a variable with a sensible default defined in ansible/host_vars/localhost, then the user can override it in tenks.yml","commit_id":"9b7936499550ea5dc04f6ab74e570f35fe61a7e6"},{"author":{"_account_id":39327,"name":"Rowan Johns","display_name":"Rowan Johns","email":"rowan@stackhpc.com","username":"rowanjohns"},"change_message_id":"4c6666629aa47eb647e68749aa98d129299bb0ef","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    source_interface: \"{{ pn.value }}\""},{"line_number":55,"context_line":"    state: \"{{ \u0027absent\u0027 if cmd \u003d\u003d \u0027teardown\u0027 else \u0027present\u0027 }}\""},{"line_number":56,"context_line":"    # The network driver to use (default is NetworkManager for Rocky9)"},{"line_number":57,"context_line":"    network_driver: \"NetworkManager\""},{"line_number":58,"context_line":"  loop: \"{{ query(\u0027dict\u0027, physnet_mappings) }}\""},{"line_number":59,"context_line":"  loop_control:"},{"line_number":60,"context_line":"    loop_var: pn"}],"source_content_type":"text/x-yaml","patch_set":64,"id":"5fb850cc_dfee9de0","line":57,"range":{"start_line":57,"start_character":4,"end_line":57,"end_character":36},"in_reply_to":"40abc1a1_a1f02091","updated":"2026-09-01 12:18:38.000000000","message":"Done","commit_id":"9b7936499550ea5dc04f6ab74e570f35fe61a7e6"}],"ansible/physical_network.yml":[{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"e0be6f1376a3cf4f58550eeafa6f5d3be99688af","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"- name: Gather os specific variables"},{"line_number":4,"context_line":"  include_vars: \"{{ item }}\""},{"line_number":5,"context_line":"  with_first_found:"}],"source_content_type":"text/x-yaml","patch_set":113,"id":"c2f374ab_6f3412d5","side":"PARENT","line":2,"updated":"2026-09-01 13:19:49.000000000","message":"nit: Try not to change whitespace of existing code in this commit (unless needed for linting)","commit_id":"22dd57b6a7f3f5abac0d501f15a138f024e8b249"},{"author":{"_account_id":39327,"name":"Rowan Johns","display_name":"Rowan Johns","email":"rowan@stackhpc.com","username":"rowanjohns"},"change_message_id":"4399076afcd11a2093aef5a39c056105d1548f52","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"- name: Gather os specific variables"},{"line_number":4,"context_line":"  include_vars: \"{{ item }}\""},{"line_number":5,"context_line":"  with_first_found:"}],"source_content_type":"text/x-yaml","patch_set":113,"id":"c5934dcc_04478dc5","side":"PARENT","line":2,"in_reply_to":"c2f374ab_6f3412d5","updated":"2026-09-04 13:05:28.000000000","message":"Done","commit_id":"22dd57b6a7f3f5abac0d501f15a138f024e8b249"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"ff9f6552cff9f49669130357f73550884d1ddf76","unresolved":true,"context_lines":[{"line_number":200,"context_line":"        - network_driver \u003d\u003d \"\""},{"line_number":201,"context_line":"        - master_result.rc !\u003d 0"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    - name: Plug source interface into Tenks Linux bridge using NetworkManager"},{"line_number":204,"context_line":"      community.general.nmcli:"},{"line_number":205,"context_line":"        type: \"bridge-slave\""},{"line_number":206,"context_line":"        conn_name: \"{{ \u0027bridge-slave-\u0027 + source_interface }}\""}],"source_content_type":"text/x-yaml","patch_set":113,"id":"eac2ce32_664cba55","line":203,"updated":"2026-09-01 13:51:47.000000000","message":"Something I\u0027m not sure on: Why we don\u0027t have the equivalent for systemd-networkd?","commit_id":"dc4241ebe46a145e39a66ed86e649d7bd1bd4c0e"},{"author":{"_account_id":39327,"name":"Rowan Johns","display_name":"Rowan Johns","email":"rowan@stackhpc.com","username":"rowanjohns"},"change_message_id":"4399076afcd11a2093aef5a39c056105d1548f52","unresolved":true,"context_lines":[{"line_number":200,"context_line":"        - network_driver \u003d\u003d \"\""},{"line_number":201,"context_line":"        - master_result.rc !\u003d 0"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    - name: Plug source interface into Tenks Linux bridge using NetworkManager"},{"line_number":204,"context_line":"      community.general.nmcli:"},{"line_number":205,"context_line":"        type: \"bridge-slave\""},{"line_number":206,"context_line":"        conn_name: \"{{ \u0027bridge-slave-\u0027 + source_interface }}\""}],"source_content_type":"text/x-yaml","patch_set":113,"id":"ed3de84c_2aec05ec","line":203,"in_reply_to":"eac2ce32_664cba55","updated":"2026-09-04 13:05:28.000000000","message":"The setup I\u0027m testing doesn\u0027t actually run this task, so it worked fine without it. That also means this network manager task has not been tested so this is probably something to look into","commit_id":"dc4241ebe46a145e39a66ed86e649d7bd1bd4c0e"},{"author":{"_account_id":39327,"name":"Rowan Johns","display_name":"Rowan Johns","email":"rowan@stackhpc.com","username":"rowanjohns"},"change_message_id":"6ba80f786156ef8fbffef455a44f15acd5e7baaf","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        - network_driver \u003d\u003d \"\""},{"line_number":201,"context_line":"        - master_result.rc !\u003d 0"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    - name: Plug source interface into Tenks Linux bridge using NetworkManager"},{"line_number":204,"context_line":"      community.general.nmcli:"},{"line_number":205,"context_line":"        type: \"bridge-slave\""},{"line_number":206,"context_line":"        conn_name: \"{{ \u0027bridge-slave-\u0027 + source_interface }}\""}],"source_content_type":"text/x-yaml","patch_set":113,"id":"60ace1e8_e046b7a1","line":203,"in_reply_to":"ed3de84c_2aec05ec","updated":"2026-09-08 09:19:55.000000000","message":"Done","commit_id":"dc4241ebe46a145e39a66ed86e649d7bd1bd4c0e"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"f598d7b905c6ceb36ae2ed180729d8e8d2592c31","unresolved":true,"context_lines":[{"line_number":72,"context_line":"      changed_when: true"},{"line_number":73,"context_line":"      become: true"},{"line_number":74,"context_line":"      when:"},{"line_number":75,"context_line":"        - network_driver !\u003d \"NetworkManager\""},{"line_number":76,"context_line":"        - network_driver !\u003d \"systemd-networkd\""},{"line_number":77,"context_line":"        - state \u003d\u003d \u0027present\u0027 and not stat_result.stat.exists or state \u003d\u003d \u0027absent\u0027 and stat_result.stat.exists"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":145,"id":"50056d98_ff8eef93","line":75,"updated":"2026-09-10 08:30:52.000000000","message":"network_driver \u003d\u003d \"iproute2\"","commit_id":"ec7378e2c6e555f20cdb510aacf152a8b37ffeb0"},{"author":{"_account_id":39327,"name":"Rowan Johns","display_name":"Rowan Johns","email":"rowan@stackhpc.com","username":"rowanjohns"},"change_message_id":"7d0e4bc7d6a23d499d675dc5413af900ae15f16a","unresolved":false,"context_lines":[{"line_number":72,"context_line":"      changed_when: true"},{"line_number":73,"context_line":"      become: true"},{"line_number":74,"context_line":"      when:"},{"line_number":75,"context_line":"        - network_driver !\u003d \"NetworkManager\""},{"line_number":76,"context_line":"        - network_driver !\u003d \"systemd-networkd\""},{"line_number":77,"context_line":"        - state \u003d\u003d \u0027present\u0027 and not stat_result.stat.exists or state \u003d\u003d \u0027absent\u0027 and stat_result.stat.exists"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":145,"id":"aecacdeb_a458fd02","line":75,"in_reply_to":"50056d98_ff8eef93","updated":"2026-09-10 08:36:10.000000000","message":"Done","commit_id":"ec7378e2c6e555f20cdb510aacf152a8b37ffeb0"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"f598d7b905c6ceb36ae2ed180729d8e8d2592c31","unresolved":true,"context_lines":[{"line_number":117,"context_line":"      when:"},{"line_number":118,"context_line":"        - state \u003d\u003d \u0027present\u0027"},{"line_number":119,"context_line":"        - not stat_result.stat.exists"},{"line_number":120,"context_line":"        - network_driver !\u003d \"NetworkManager\""},{"line_number":121,"context_line":"        - network_driver !\u003d \"systemd-networkd\""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"- name: Configure existing Linux bridge"}],"source_content_type":"text/x-yaml","patch_set":145,"id":"735cee92_08ffc14e","line":120,"updated":"2026-09-10 08:30:52.000000000","message":"network_driver \u003d\u003d iproute2","commit_id":"ec7378e2c6e555f20cdb510aacf152a8b37ffeb0"},{"author":{"_account_id":39327,"name":"Rowan Johns","display_name":"Rowan Johns","email":"rowan@stackhpc.com","username":"rowanjohns"},"change_message_id":"7d0e4bc7d6a23d499d675dc5413af900ae15f16a","unresolved":false,"context_lines":[{"line_number":117,"context_line":"      when:"},{"line_number":118,"context_line":"        - state \u003d\u003d \u0027present\u0027"},{"line_number":119,"context_line":"        - not stat_result.stat.exists"},{"line_number":120,"context_line":"        - network_driver !\u003d \"NetworkManager\""},{"line_number":121,"context_line":"        - network_driver !\u003d \"systemd-networkd\""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"- name: Configure existing Linux bridge"}],"source_content_type":"text/x-yaml","patch_set":145,"id":"474cf937_f518d166","line":120,"in_reply_to":"735cee92_08ffc14e","updated":"2026-09-10 08:36:10.000000000","message":"Done","commit_id":"ec7378e2c6e555f20cdb510aacf152a8b37ffeb0"}],"ansible/roles/veth-pair/defaults/main.yml":[{"author":{"_account_id":39213,"name":"Jed Preist","display_name":"Jed Preist","email":"jed@stackhpc.com","username":"jed-preist"},"change_message_id":"4078c319b93fbff6b58bde3383456a2286dfb468","unresolved":true,"context_lines":[{"line_number":4,"context_line":"# Whether the veth pair should be present or absent."},{"line_number":5,"context_line":"veth_pair_state: present"},{"line_number":6,"context_line":"# The network driver to use (default is NetworkManager for Rocky9)"},{"line_number":7,"context_line":"network_driver: \"NetworkManager\""}],"source_content_type":"text/x-yaml","patch_set":64,"id":"4398c940_35de36ed","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":32},"updated":"2026-08-06 15:40:44.000000000","message":"It would be best to default to no network driver and persistent networking disabled. The current default causes the debian/ubuntu tests to fail.","commit_id":"9b7936499550ea5dc04f6ab74e570f35fe61a7e6"},{"author":{"_account_id":39327,"name":"Rowan Johns","display_name":"Rowan Johns","email":"rowan@stackhpc.com","username":"rowanjohns"},"change_message_id":"4c6666629aa47eb647e68749aa98d129299bb0ef","unresolved":false,"context_lines":[{"line_number":4,"context_line":"# Whether the veth pair should be present or absent."},{"line_number":5,"context_line":"veth_pair_state: present"},{"line_number":6,"context_line":"# The network driver to use (default is NetworkManager for Rocky9)"},{"line_number":7,"context_line":"network_driver: \"NetworkManager\""}],"source_content_type":"text/x-yaml","patch_set":64,"id":"22849b29_97cec0ee","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":32},"in_reply_to":"4398c940_35de36ed","updated":"2026-09-01 12:18:38.000000000","message":"Done","commit_id":"9b7936499550ea5dc04f6ab74e570f35fe61a7e6"}],"ansible/roles/veth-pair/tasks/absent.yml":[{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"ff9f6552cff9f49669130357f73550884d1ddf76","unresolved":true,"context_lines":[{"line_number":44,"context_line":"    - not (res.rc \u003d\u003d 10 and \u0027unknown connection\u0027 in res.stderr)"},{"line_number":45,"context_line":"  when: network_driver \u003d\u003d \"NetworkManager\""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"- name: Delete tenks bridge using ip"},{"line_number":48,"context_line":"  command: \u003e-"},{"line_number":49,"context_line":"    ip link del {{ veth_pair_peer_bridge }}"},{"line_number":50,"context_line":"  register: res"}],"source_content_type":"text/x-yaml","patch_set":113,"id":"5ac831f0_73297017","line":47,"updated":"2026-09-01 13:51:47.000000000","message":"Bridge deletion should happen in physical-network.yml. Issue is that the veth teardown is called when you delete a VM. The bridge could still be in use ...","commit_id":"dc4241ebe46a145e39a66ed86e649d7bd1bd4c0e"},{"author":{"_account_id":39327,"name":"Rowan Johns","display_name":"Rowan Johns","email":"rowan@stackhpc.com","username":"rowanjohns"},"change_message_id":"4399076afcd11a2093aef5a39c056105d1548f52","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    - not (res.rc \u003d\u003d 10 and \u0027unknown connection\u0027 in res.stderr)"},{"line_number":45,"context_line":"  when: network_driver \u003d\u003d \"NetworkManager\""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"- name: Delete tenks bridge using ip"},{"line_number":48,"context_line":"  command: \u003e-"},{"line_number":49,"context_line":"    ip link del {{ veth_pair_peer_bridge }}"},{"line_number":50,"context_line":"  register: res"}],"source_content_type":"text/x-yaml","patch_set":113,"id":"ea7c520f_4e79aec9","line":47,"in_reply_to":"5ac831f0_73297017","updated":"2026-09-04 13:05:28.000000000","message":"Done","commit_id":"dc4241ebe46a145e39a66ed86e649d7bd1bd4c0e"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"e0be6f1376a3cf4f58550eeafa6f5d3be99688af","unresolved":true,"context_lines":[{"line_number":69,"context_line":"  when: network_driver \u003d\u003d \"NetworkManager\""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"- name: Remove systemd-networkd config files"},{"line_number":72,"context_line":"  command: \u003e-"},{"line_number":73,"context_line":"    rm /etc/systemd/network/{{ veth_pair_source_link_name }}.network /etc/systemd/network/{{ veth_pair_source_link_name }}.netdev /etc/systemd/network/{{ veth_pair_peer_link_name }}.network /etc/systemd/network/{{ veth_pair_peer_link_name }}.netdev /etc/systemd/network/{{ veth_pair_peer_bridge }}.network /etc/systemd/network/{{ veth_pair_peer_bridge }}.netdev"},{"line_number":74,"context_line":"  register: res"},{"line_number":75,"context_line":"  changed_when: res.rc \u003d\u003d 0"}],"source_content_type":"text/x-yaml","patch_set":113,"id":"8bb479bd_55b699c5","line":72,"updated":"2026-09-01 13:19:49.000000000","message":"nit: ansible.builtin.file module with exists: false would be more canonical","commit_id":"dc4241ebe46a145e39a66ed86e649d7bd1bd4c0e"},{"author":{"_account_id":39327,"name":"Rowan Johns","display_name":"Rowan Johns","email":"rowan@stackhpc.com","username":"rowanjohns"},"change_message_id":"4399076afcd11a2093aef5a39c056105d1548f52","unresolved":false,"context_lines":[{"line_number":69,"context_line":"  when: network_driver \u003d\u003d \"NetworkManager\""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"- name: Remove systemd-networkd config files"},{"line_number":72,"context_line":"  command: \u003e-"},{"line_number":73,"context_line":"    rm /etc/systemd/network/{{ veth_pair_source_link_name }}.network /etc/systemd/network/{{ veth_pair_source_link_name }}.netdev /etc/systemd/network/{{ veth_pair_peer_link_name }}.network /etc/systemd/network/{{ veth_pair_peer_link_name }}.netdev /etc/systemd/network/{{ veth_pair_peer_bridge }}.network /etc/systemd/network/{{ veth_pair_peer_bridge }}.netdev"},{"line_number":74,"context_line":"  register: res"},{"line_number":75,"context_line":"  changed_when: res.rc \u003d\u003d 0"}],"source_content_type":"text/x-yaml","patch_set":113,"id":"778af79b_0f04c6a4","line":72,"in_reply_to":"8bb479bd_55b699c5","updated":"2026-09-04 13:05:28.000000000","message":"Done","commit_id":"dc4241ebe46a145e39a66ed86e649d7bd1bd4c0e"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"e0be6f1376a3cf4f58550eeafa6f5d3be99688af","unresolved":true,"context_lines":[{"line_number":74,"context_line":"  register: res"},{"line_number":75,"context_line":"  changed_when: res.rc \u003d\u003d 0"},{"line_number":76,"context_line":"  become: true"},{"line_number":77,"context_line":"  failed_when: "},{"line_number":78,"context_line":"    - res.rc !\u003d 0"},{"line_number":79,"context_line":"    # Case where files are already absent."},{"line_number":80,"context_line":"    - not (res.rc \u003d\u003d 1 and \u0027cannot remove\u0027 in res.stderr)"}],"source_content_type":"text/x-yaml","patch_set":113,"id":"fd77010a_ee59eb33","line":77,"updated":"2026-09-01 13:19:49.000000000","message":"trailing whitespace","commit_id":"dc4241ebe46a145e39a66ed86e649d7bd1bd4c0e"},{"author":{"_account_id":39327,"name":"Rowan Johns","display_name":"Rowan Johns","email":"rowan@stackhpc.com","username":"rowanjohns"},"change_message_id":"4399076afcd11a2093aef5a39c056105d1548f52","unresolved":false,"context_lines":[{"line_number":74,"context_line":"  register: res"},{"line_number":75,"context_line":"  changed_when: res.rc \u003d\u003d 0"},{"line_number":76,"context_line":"  become: true"},{"line_number":77,"context_line":"  failed_when: "},{"line_number":78,"context_line":"    - res.rc !\u003d 0"},{"line_number":79,"context_line":"    # Case where files are already absent."},{"line_number":80,"context_line":"    - not (res.rc \u003d\u003d 1 and \u0027cannot remove\u0027 in res.stderr)"}],"source_content_type":"text/x-yaml","patch_set":113,"id":"1cc81408_ca014e4e","line":77,"in_reply_to":"fd77010a_ee59eb33","updated":"2026-09-04 13:05:28.000000000","message":"Done","commit_id":"dc4241ebe46a145e39a66ed86e649d7bd1bd4c0e"}],"ansible/roles/veth-pair/tasks/present.yml":[{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"cc3bdab93f46e0795acc715c5d656b3db8bd214a","unresolved":true,"context_lines":[{"line_number":66,"context_line":"  become: true"},{"line_number":67,"context_line":"  when: network_driver \u003d\u003d \"systemd-networkd\""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"- name: Create systemd-networkd config file for source end of veth pair"},{"line_number":70,"context_line":"  import_role:"},{"line_number":71,"context_line":"    name: stackhpc.linux.systemd_networkd"},{"line_number":72,"context_line":"  vars:"},{"line_number":73,"context_line":"    veth_pair_source_link_name: \"{{ veth_pair_source_link_name }}\""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    netdev_value:"},{"line_number":76,"context_line":"      - NetDev:"},{"line_number":77,"context_line":"          - Name: \"{{ veth_pair_source_link_name }}\""},{"line_number":78,"context_line":"          - Kind: \"veth\""},{"line_number":79,"context_line":"      - Peer:"},{"line_number":80,"context_line":"          - Name: \"{{ veth_pair_source_link_name }}\""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    systemd_networkd_netdev: |-"},{"line_number":83,"context_line":"      {% set config_netdev \u003d {veth_pair_source_link_name: netdev_value} %}"},{"line_number":84,"context_line":"      {{ config_netdev }}"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    systemd_networkd_apply_config: true"},{"line_number":87,"context_line":"  changed_when: true"},{"line_number":88,"context_line":"  become: true"},{"line_number":89,"context_line":"  when: network_driver \u003d\u003d \"systemd-networkd\""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"- name: Plug veth into OVS bridge"},{"line_number":92,"context_line":"  openvswitch_port:"}],"source_content_type":"text/x-yaml","patch_set":113,"id":"e8c35868_f9f1b531","line":89,"range":{"start_line":69,"start_character":0,"end_line":89,"end_character":44},"updated":"2026-09-01 15:01:56.000000000","message":"Can you try and remove this task? I think we only need one netdev as the task above creates both ends.","commit_id":"dc4241ebe46a145e39a66ed86e649d7bd1bd4c0e"},{"author":{"_account_id":39327,"name":"Rowan Johns","display_name":"Rowan Johns","email":"rowan@stackhpc.com","username":"rowanjohns"},"change_message_id":"4399076afcd11a2093aef5a39c056105d1548f52","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  become: true"},{"line_number":67,"context_line":"  when: network_driver \u003d\u003d \"systemd-networkd\""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"- name: Create systemd-networkd config file for source end of veth pair"},{"line_number":70,"context_line":"  import_role:"},{"line_number":71,"context_line":"    name: stackhpc.linux.systemd_networkd"},{"line_number":72,"context_line":"  vars:"},{"line_number":73,"context_line":"    veth_pair_source_link_name: \"{{ veth_pair_source_link_name }}\""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    netdev_value:"},{"line_number":76,"context_line":"      - NetDev:"},{"line_number":77,"context_line":"          - Name: \"{{ veth_pair_source_link_name }}\""},{"line_number":78,"context_line":"          - Kind: \"veth\""},{"line_number":79,"context_line":"      - Peer:"},{"line_number":80,"context_line":"          - Name: \"{{ veth_pair_source_link_name }}\""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    systemd_networkd_netdev: |-"},{"line_number":83,"context_line":"      {% set config_netdev \u003d {veth_pair_source_link_name: netdev_value} %}"},{"line_number":84,"context_line":"      {{ config_netdev }}"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    systemd_networkd_apply_config: true"},{"line_number":87,"context_line":"  changed_when: true"},{"line_number":88,"context_line":"  become: true"},{"line_number":89,"context_line":"  when: network_driver \u003d\u003d \"systemd-networkd\""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"- name: Plug veth into OVS bridge"},{"line_number":92,"context_line":"  openvswitch_port:"}],"source_content_type":"text/x-yaml","patch_set":113,"id":"e0ea8c96_10d7dd08","line":89,"range":{"start_line":69,"start_character":0,"end_line":89,"end_character":44},"in_reply_to":"e8c35868_f9f1b531","updated":"2026-09-04 13:05:28.000000000","message":"Done","commit_id":"dc4241ebe46a145e39a66ed86e649d7bd1bd4c0e"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"3e21c7ac56b1db2a1f935e7e6e6d610c52f4d67a","unresolved":true,"context_lines":[{"line_number":9,"context_line":"  # Return code 2 means the veth pair already exists"},{"line_number":10,"context_line":"  failed_when: res.rc not in [0, 2]"},{"line_number":11,"context_line":"  become: true"},{"line_number":12,"context_line":"  when:"},{"line_number":13,"context_line":"    - network_driver !\u003d \"NetworkManager\""},{"line_number":14,"context_line":"    - network_driver !\u003d \"systemd-networkd\""},{"line_number":15,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":144,"id":"5cd8f77c_c3d6bbcc","line":12,"updated":"2026-09-09 18:01:34.000000000","message":"nit: Why not network_driver \u003d\u003d \u0027iproute2\u0027?","commit_id":"100bb4ecf18e8d0f4d54ca6c2dd5b9885813f3bc"},{"author":{"_account_id":39327,"name":"Rowan Johns","display_name":"Rowan Johns","email":"rowan@stackhpc.com","username":"rowanjohns"},"change_message_id":"ca3fe9826341f3a1ce2c626a6fc328a6288160b5","unresolved":false,"context_lines":[{"line_number":9,"context_line":"  # Return code 2 means the veth pair already exists"},{"line_number":10,"context_line":"  failed_when: res.rc not in [0, 2]"},{"line_number":11,"context_line":"  become: true"},{"line_number":12,"context_line":"  when:"},{"line_number":13,"context_line":"    - network_driver !\u003d \"NetworkManager\""},{"line_number":14,"context_line":"    - network_driver !\u003d \"systemd-networkd\""},{"line_number":15,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":144,"id":"8e104c54_c66ed909","line":12,"in_reply_to":"5cd8f77c_c3d6bbcc","updated":"2026-09-10 07:47:15.000000000","message":"Done","commit_id":"100bb4ecf18e8d0f4d54ca6c2dd5b9885813f3bc"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"3e21c7ac56b1db2a1f935e7e6e6d610c52f4d67a","unresolved":true,"context_lines":[{"line_number":23,"context_line":"  # https://github.com/torvalds/linux/blob/63bdf4284c38a48af21745ceb148a087b190cd21/net/core/dev.c#L7563"},{"line_number":24,"context_line":"  changed_when: false"},{"line_number":25,"context_line":"  when:"},{"line_number":26,"context_line":"    - network_driver !\u003d \"NetworkManager\""},{"line_number":27,"context_line":"    - network_driver !\u003d \"systemd-networkd\""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"- name: Create veth pair using NetworkManager"}],"source_content_type":"text/x-yaml","patch_set":144,"id":"1bc386dc_7a8e174a","line":26,"updated":"2026-09-09 18:01:34.000000000","message":"nit: Why not network_driver \u003d\u003d \u0027iproute2\u0027?","commit_id":"100bb4ecf18e8d0f4d54ca6c2dd5b9885813f3bc"},{"author":{"_account_id":39327,"name":"Rowan Johns","display_name":"Rowan Johns","email":"rowan@stackhpc.com","username":"rowanjohns"},"change_message_id":"ca3fe9826341f3a1ce2c626a6fc328a6288160b5","unresolved":false,"context_lines":[{"line_number":23,"context_line":"  # https://github.com/torvalds/linux/blob/63bdf4284c38a48af21745ceb148a087b190cd21/net/core/dev.c#L7563"},{"line_number":24,"context_line":"  changed_when: false"},{"line_number":25,"context_line":"  when:"},{"line_number":26,"context_line":"    - network_driver !\u003d \"NetworkManager\""},{"line_number":27,"context_line":"    - network_driver !\u003d \"systemd-networkd\""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"- name: Create veth pair using NetworkManager"}],"source_content_type":"text/x-yaml","patch_set":144,"id":"e7e3fc35_0ed8a173","line":26,"in_reply_to":"1bc386dc_7a8e174a","updated":"2026-09-10 07:47:15.000000000","message":"Done","commit_id":"100bb4ecf18e8d0f4d54ca6c2dd5b9885813f3bc"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"3e21c7ac56b1db2a1f935e7e6e6d610c52f4d67a","unresolved":true,"context_lines":[{"line_number":87,"context_line":"        ip link set {{ veth_pair_peer_link_name }} master"},{"line_number":88,"context_line":"        {{ veth_pair_peer_bridge }}"},{"line_number":89,"context_line":"      when:"},{"line_number":90,"context_line":"        - network_driver !\u003d \"NetworkManager\""},{"line_number":91,"context_line":"        - network_driver !\u003d \"systemd-networkd\""},{"line_number":92,"context_line":"      changed_when: true"},{"line_number":93,"context_line":"      become: true"}],"source_content_type":"text/x-yaml","patch_set":144,"id":"503fb6ef_8db50a35","line":90,"updated":"2026-09-09 18:01:34.000000000","message":"nit: Why not network_driver \u003d\u003d \u0027iproute2\u0027?","commit_id":"100bb4ecf18e8d0f4d54ca6c2dd5b9885813f3bc"},{"author":{"_account_id":39327,"name":"Rowan Johns","display_name":"Rowan Johns","email":"rowan@stackhpc.com","username":"rowanjohns"},"change_message_id":"ca3fe9826341f3a1ce2c626a6fc328a6288160b5","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        ip link set {{ veth_pair_peer_link_name }} master"},{"line_number":88,"context_line":"        {{ veth_pair_peer_bridge }}"},{"line_number":89,"context_line":"      when:"},{"line_number":90,"context_line":"        - network_driver !\u003d \"NetworkManager\""},{"line_number":91,"context_line":"        - network_driver !\u003d \"systemd-networkd\""},{"line_number":92,"context_line":"      changed_when: true"},{"line_number":93,"context_line":"      become: true"}],"source_content_type":"text/x-yaml","patch_set":144,"id":"3532d22f_993f4433","line":90,"in_reply_to":"503fb6ef_8db50a35","updated":"2026-09-10 07:47:15.000000000","message":"Done","commit_id":"100bb4ecf18e8d0f4d54ca6c2dd5b9885813f3bc"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"3e21c7ac56b1db2a1f935e7e6e6d610c52f4d67a","unresolved":true,"context_lines":[{"line_number":95,"context_line":"    - name: Bring peer end of veth up using ip"},{"line_number":96,"context_line":"      command: ip link set {{ veth_pair_peer_link_name }} up"},{"line_number":97,"context_line":"      when:"},{"line_number":98,"context_line":"        - network_driver !\u003d \"NetworkManager\""},{"line_number":99,"context_line":"        - network_driver !\u003d \"systemd-networkd\""},{"line_number":100,"context_line":"      become: true"},{"line_number":101,"context_line":"      # if the interface is already up, this ultimately ends up being a noop, see:"}],"source_content_type":"text/x-yaml","patch_set":144,"id":"e8fd60b9_a612c595","line":98,"updated":"2026-09-09 18:01:34.000000000","message":"nit: Why not network_driver \u003d\u003d \u0027iproute2\u0027?","commit_id":"100bb4ecf18e8d0f4d54ca6c2dd5b9885813f3bc"},{"author":{"_account_id":39327,"name":"Rowan Johns","display_name":"Rowan Johns","email":"rowan@stackhpc.com","username":"rowanjohns"},"change_message_id":"ca3fe9826341f3a1ce2c626a6fc328a6288160b5","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    - name: Bring peer end of veth up using ip"},{"line_number":96,"context_line":"      command: ip link set {{ veth_pair_peer_link_name }} up"},{"line_number":97,"context_line":"      when:"},{"line_number":98,"context_line":"        - network_driver !\u003d \"NetworkManager\""},{"line_number":99,"context_line":"        - network_driver !\u003d \"systemd-networkd\""},{"line_number":100,"context_line":"      become: true"},{"line_number":101,"context_line":"      # if the interface is already up, this ultimately ends up being a noop, see:"}],"source_content_type":"text/x-yaml","patch_set":144,"id":"950feeec_cf66e32e","line":98,"in_reply_to":"e8fd60b9_a612c595","updated":"2026-09-10 07:47:15.000000000","message":"Done","commit_id":"100bb4ecf18e8d0f4d54ca6c2dd5b9885813f3bc"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"3e21c7ac56b1db2a1f935e7e6e6d610c52f4d67a","unresolved":true,"context_lines":[{"line_number":145,"context_line":"        ip link set {{ veth_pair_source_link_name }} master"},{"line_number":146,"context_line":"        {{ veth_pair_source_bridge }}"},{"line_number":147,"context_line":"      when:"},{"line_number":148,"context_line":"        - network_driver !\u003d \"NetworkManager\""},{"line_number":149,"context_line":"        - network_driver !\u003d \"systemd-networkd\""},{"line_number":150,"context_line":"      changed_when: true"},{"line_number":151,"context_line":"      become: true"}],"source_content_type":"text/x-yaml","patch_set":144,"id":"4a745322_8d2299bc","line":148,"updated":"2026-09-09 18:01:34.000000000","message":"nit: Why not network_driver \u003d\u003d \u0027iproute2\u0027?","commit_id":"100bb4ecf18e8d0f4d54ca6c2dd5b9885813f3bc"},{"author":{"_account_id":39327,"name":"Rowan Johns","display_name":"Rowan Johns","email":"rowan@stackhpc.com","username":"rowanjohns"},"change_message_id":"ca3fe9826341f3a1ce2c626a6fc328a6288160b5","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        ip link set {{ veth_pair_source_link_name }} master"},{"line_number":146,"context_line":"        {{ veth_pair_source_bridge }}"},{"line_number":147,"context_line":"      when:"},{"line_number":148,"context_line":"        - network_driver !\u003d \"NetworkManager\""},{"line_number":149,"context_line":"        - network_driver !\u003d \"systemd-networkd\""},{"line_number":150,"context_line":"      changed_when: true"},{"line_number":151,"context_line":"      become: true"}],"source_content_type":"text/x-yaml","patch_set":144,"id":"1843aeaa_1313fe70","line":148,"in_reply_to":"4a745322_8d2299bc","updated":"2026-09-10 07:47:15.000000000","message":"Done","commit_id":"100bb4ecf18e8d0f4d54ca6c2dd5b9885813f3bc"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"3e21c7ac56b1db2a1f935e7e6e6d610c52f4d67a","unresolved":true,"context_lines":[{"line_number":153,"context_line":"    - name: Bring source end of veth up using ip"},{"line_number":154,"context_line":"      command: ip link set {{ veth_pair_source_link_name }} up"},{"line_number":155,"context_line":"      when:"},{"line_number":156,"context_line":"        - network_driver !\u003d \"NetworkManager\""},{"line_number":157,"context_line":"        - network_driver !\u003d \"systemd-networkd\""},{"line_number":158,"context_line":"      become: true"},{"line_number":159,"context_line":"      # if the interface is already up, this ultimately ends up being a noop, see:"}],"source_content_type":"text/x-yaml","patch_set":144,"id":"125c3f34_b2866d06","line":156,"updated":"2026-09-09 18:01:34.000000000","message":"nit: Why not network_driver \u003d\u003d \u0027iproute2\u0027?","commit_id":"100bb4ecf18e8d0f4d54ca6c2dd5b9885813f3bc"},{"author":{"_account_id":39327,"name":"Rowan Johns","display_name":"Rowan Johns","email":"rowan@stackhpc.com","username":"rowanjohns"},"change_message_id":"ca3fe9826341f3a1ce2c626a6fc328a6288160b5","unresolved":false,"context_lines":[{"line_number":153,"context_line":"    - name: Bring source end of veth up using ip"},{"line_number":154,"context_line":"      command: ip link set {{ veth_pair_source_link_name }} up"},{"line_number":155,"context_line":"      when:"},{"line_number":156,"context_line":"        - network_driver !\u003d \"NetworkManager\""},{"line_number":157,"context_line":"        - network_driver !\u003d \"systemd-networkd\""},{"line_number":158,"context_line":"      become: true"},{"line_number":159,"context_line":"      # if the interface is already up, this ultimately ends up being a noop, see:"}],"source_content_type":"text/x-yaml","patch_set":144,"id":"1a373150_b2928184","line":156,"in_reply_to":"125c3f34_b2866d06","updated":"2026-09-10 07:47:15.000000000","message":"Done","commit_id":"100bb4ecf18e8d0f4d54ca6c2dd5b9885813f3bc"}],"doc/source/configuration.rst":[{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"f598d7b905c6ceb36ae2ed180729d8e8d2592c31","unresolved":true,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"By default, ip commands are used to set up the Tenks network. For a networking"},{"line_number":87,"context_line":"setup that is persistent across reboots, override the network_driver variable"},{"line_number":88,"context_line":"with either systemd-networkd or NetworkManager, depending on your OS "},{"line_number":89,"context_line":"distribution."}],"source_content_type":"text/x-rst","patch_set":145,"id":"9ee61f4c_f7f89e57","line":88,"updated":"2026-09-10 08:30:52.000000000","message":"remove trailing whitespace","commit_id":"ec7378e2c6e555f20cdb510aacf152a8b37ffeb0"},{"author":{"_account_id":39327,"name":"Rowan Johns","display_name":"Rowan Johns","email":"rowan@stackhpc.com","username":"rowanjohns"},"change_message_id":"7d0e4bc7d6a23d499d675dc5413af900ae15f16a","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"By default, ip commands are used to set up the Tenks network. For a networking"},{"line_number":87,"context_line":"setup that is persistent across reboots, override the network_driver variable"},{"line_number":88,"context_line":"with either systemd-networkd or NetworkManager, depending on your OS "},{"line_number":89,"context_line":"distribution."}],"source_content_type":"text/x-rst","patch_set":145,"id":"5048263b_faa89439","line":88,"in_reply_to":"9ee61f4c_f7f89e57","updated":"2026-09-10 08:36:10.000000000","message":"Done","commit_id":"ec7378e2c6e555f20cdb510aacf152a8b37ffeb0"}]}
