)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":34940,"name":"Rafal Lewandowski","display_name":"Rafal Lewandowski","email":"rafal@stackhpc.com","username":"rav"},"change_message_id":"edefea652944529d475da96755630e85a3ceafa0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"be9cea84_65dda3c7","updated":"2026-07-16 07:37:25.000000000","message":"recheck (kayobe-overcloud-rocky10)","commit_id":"63491448dbb17c42deda640a8a5cb5d63a562fb7"},{"author":{"_account_id":34940,"name":"Rafal Lewandowski","display_name":"Rafal Lewandowski","email":"rafal@stackhpc.com","username":"rav"},"change_message_id":"4c75ad0357cd9a321d11eb3ab805f44b60237381","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"c20fcf0f_a7bc2fbb","updated":"2026-07-16 09:01:31.000000000","message":"recheck (kayobe-overcloud-rocky10) ansible-galaxy error","commit_id":"63491448dbb17c42deda640a8a5cb5d63a562fb7"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"e9a1c0d4be2178f940a320d9e70fae69591fd054","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"b82b483d_3778927a","updated":"2026-07-20 14:56:15.000000000","message":"hmm, it looks like the upgrade job might need fixing, unrelated to this however","commit_id":"ee521f1b4bf6588d765feab810e9159cadb39a9d"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"55e68e9121f9a348694a77c35b6a37b63c91208c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ba11c57e_316fa92a","updated":"2026-07-20 11:04:51.000000000","message":"recheck","commit_id":"ee521f1b4bf6588d765feab810e9159cadb39a9d"},{"author":{"_account_id":34940,"name":"Rafal Lewandowski","display_name":"Rafal Lewandowski","email":"rafal@stackhpc.com","username":"rav"},"change_message_id":"6a23b5b333ca1c0496b43c6f0c7179376e91764a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"c182e839_01409933","updated":"2026-07-21 19:00:46.000000000","message":"recheck","commit_id":"ee521f1b4bf6588d765feab810e9159cadb39a9d"},{"author":{"_account_id":34940,"name":"Rafal Lewandowski","display_name":"Rafal Lewandowski","email":"rafal@stackhpc.com","username":"rav"},"change_message_id":"9b695256aa6ffa6b398a0b55021c7d8a10a916aa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"dcef60cc_4b42c125","updated":"2026-07-21 07:22:26.000000000","message":"recheck","commit_id":"ee521f1b4bf6588d765feab810e9159cadb39a9d"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"d20df5cc8bdad1f18b5d37d1662cf80ae0a15581","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"85c6d2e5_cc4b1c68","updated":"2026-07-22 15:46:32.000000000","message":"Can we reuse the same properties that we use for nmstate:\n\nhttps://opendev.org/openstack/kayobe/src/commit/7688d5c4b99ebf6979236b53e52964afd680915f/doc/source/configuration/reference/network.rst?display\u003dsource#L619\n\n?","commit_id":"45b84fe2367b3f5396978191682cdc28b4df2ad2"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"a50773c7c15339af53b052b78b768f724f66a43b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"9a3b35cc_6f1d56fb","in_reply_to":"5c4d2634_3a7b7b6b","updated":"2026-07-27 13:55:07.000000000","message":"Mostly there. I think we just need to use ingress_qos_map and egress_qos_map instead of the plural form that is currently used. This will then match the behavior of NetworkManager.","commit_id":"45b84fe2367b3f5396978191682cdc28b4df2ad2"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"fea48845dd92a28adb77dd731af46c0c0bc1132a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f0265f6a_c51fd934","in_reply_to":"5ec7e62b_405595a5","updated":"2026-07-22 16:11:59.000000000","message":"Something like:\n\n            \"net2_egress_qos_map\": [\n                {\"from\": 7, \"to\": 6},\n                {\"from\": 0, \"to\": 0},\n                {\"from\": 6, \"to\": 5},\n            ],","commit_id":"45b84fe2367b3f5396978191682cdc28b4df2ad2"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"3b750fc22faba541cca379ee4e8a2d24797b9675","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"5ec7e62b_405595a5","in_reply_to":"85c6d2e5_cc4b1c68","updated":"2026-07-22 16:10:08.000000000","message":"Also, please make sure it sure the same input \"shape\" as the nmstate driver. So users don\u0027t have to configure it differently depending on OS.","commit_id":"45b84fe2367b3f5396978191682cdc28b4df2ad2"},{"author":{"_account_id":34940,"name":"Rafal Lewandowski","display_name":"Rafal Lewandowski","email":"rafal@stackhpc.com","username":"rav"},"change_message_id":"1552bda0df98c15f0589f71082571557165a27cf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"94bf7f12_ac93d3f9","in_reply_to":"9a3b35cc_6f1d56fb","updated":"2026-07-27 18:25:34.000000000","message":"Done","commit_id":"45b84fe2367b3f5396978191682cdc28b4df2ad2"},{"author":{"_account_id":34940,"name":"Rafal Lewandowski","display_name":"Rafal Lewandowski","email":"rafal@stackhpc.com","username":"rav"},"change_message_id":"f8496e0c6c51ffaa29ec73eaef7c88230f9c433a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"5c4d2634_3a7b7b6b","in_reply_to":"f0265f6a_c51fd934","updated":"2026-07-27 08:19:47.000000000","message":"Done.","commit_id":"45b84fe2367b3f5396978191682cdc28b4df2ad2"}],"doc/source/configuration/reference/network.rst":[{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"5a25e4a7a64261c40a7260e5cedf528748a79947","unresolved":true,"context_lines":[{"line_number":57,"context_line":"    VLAN ID."},{"line_number":58,"context_line":"``mtu``"},{"line_number":59,"context_line":"    Maximum Transmission Unit (MTU)."},{"line_number":60,"context_line":"``ingress_qos_maps``"},{"line_number":61,"context_line":"    Quality of Service maps for incoming packets."},{"line_number":62,"context_line":"``egress_qos_maps``"},{"line_number":63,"context_line":"    Quality of Service maps for outgoing packets."},{"line_number":64,"context_line":"``vip_address``"},{"line_number":65,"context_line":"    .. note::"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"57af7185_2b6bfbac","line":63,"range":{"start_line":60,"start_character":0,"end_line":63,"end_character":49},"updated":"2026-07-28 08:25:18.000000000","message":"Remove this. Then I think it\u0027s ready :)","commit_id":"b7fde5c7e091ab77282604bb13e5a00326d63f38"}],"kayobe/plugins/filter/networkd.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6b8bddf78b9809368493f89adb2dcf3b541228cd","unresolved":false,"context_lines":[{"line_number":91,"context_line":"    device \u003d networks.net_interface(context, name, inventory_hostname)"},{"line_number":92,"context_line":"    mtu \u003d networks.net_mtu(context, name, inventory_hostname)"},{"line_number":93,"context_line":"    vlan \u003d networks.net_vlan(context, name, inventory_hostname)"},{"line_number":94,"context_line":"    ingress_qos_maps \u003d networks.net_ingress_qos_maps(context, name, inventory_hostname)"},{"line_number":95,"context_line":"    egress_qos_maps \u003d networks.net_egress_qos_maps(context, name, inventory_hostname)"},{"line_number":96,"context_line":"    config \u003d ["},{"line_number":97,"context_line":"        {"}],"source_content_type":"text/x-python","patch_set":1,"id":"4da74ab5_b67557bc","line":94,"updated":"2026-07-14 13:52:58.000000000","message":"pep8: E501 line too long (87 \u003e 79 characters)","commit_id":"3d811a5b1a1ea0d615b948df71398179dc134191"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6b8bddf78b9809368493f89adb2dcf3b541228cd","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    mtu \u003d networks.net_mtu(context, name, inventory_hostname)"},{"line_number":93,"context_line":"    vlan \u003d networks.net_vlan(context, name, inventory_hostname)"},{"line_number":94,"context_line":"    ingress_qos_maps \u003d networks.net_ingress_qos_maps(context, name, inventory_hostname)"},{"line_number":95,"context_line":"    egress_qos_maps \u003d networks.net_egress_qos_maps(context, name, inventory_hostname)"},{"line_number":96,"context_line":"    config \u003d ["},{"line_number":97,"context_line":"        {"},{"line_number":98,"context_line":"            \u0027NetDev\u0027: ["}],"source_content_type":"text/x-python","patch_set":1,"id":"ed36eef9_a023b0d0","line":95,"updated":"2026-07-14 13:52:58.000000000","message":"pep8: E501 line too long (85 \u003e 79 characters)","commit_id":"3d811a5b1a1ea0d615b948df71398179dc134191"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"bf46d772741176187d8e73773d7916515a4c4e6b","unresolved":true,"context_lines":[{"line_number":96,"context_line":"    )"},{"line_number":97,"context_line":"    egress_qos_maps \u003d networks.net_egress_qos_maps("},{"line_number":98,"context_line":"        context, name, inventory_hostname"},{"line_number":99,"context_line":"    )"},{"line_number":100,"context_line":"    config \u003d ["},{"line_number":101,"context_line":"        {"},{"line_number":102,"context_line":"            \u0027NetDev\u0027: ["}],"source_content_type":"text/x-python","patch_set":3,"id":"a914f33c_37ebfdc9","line":99,"updated":"2026-07-17 08:30:05.000000000","message":"nit: please extend test coverage in ``test_networkd.py`` to exercise it via the ``networkd_netdevs`` public method.","commit_id":"63491448dbb17c42deda640a8a5cb5d63a562fb7"},{"author":{"_account_id":34940,"name":"Rafal Lewandowski","display_name":"Rafal Lewandowski","email":"rafal@stackhpc.com","username":"rav"},"change_message_id":"4123caa0a317a1042077d5d97c55b886e4efa496","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    )"},{"line_number":97,"context_line":"    egress_qos_maps \u003d networks.net_egress_qos_maps("},{"line_number":98,"context_line":"        context, name, inventory_hostname"},{"line_number":99,"context_line":"    )"},{"line_number":100,"context_line":"    config \u003d ["},{"line_number":101,"context_line":"        {"},{"line_number":102,"context_line":"            \u0027NetDev\u0027: ["}],"source_content_type":"text/x-python","patch_set":3,"id":"d58afc8f_2d14ad11","line":99,"in_reply_to":"a914f33c_37ebfdc9","updated":"2026-07-17 10:39:59.000000000","message":"Done","commit_id":"63491448dbb17c42deda640a8a5cb5d63a562fb7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"adca6a932e4df2262f5083ace4f099a7c5616b10","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        n \u003d float(n) / 1000"},{"line_number":81,"context_line":"    return n"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"def _format_vlan_qos_map(qos_map):"},{"line_number":84,"context_line":"    if qos_map is None:"},{"line_number":85,"context_line":"        return None"},{"line_number":86,"context_line":"    return \u0027 \u0027.join(f\"{e[\u0027from\u0027]}-{e[\u0027to\u0027]}\" for e in qos_map)"}],"source_content_type":"text/x-python","patch_set":7,"id":"dec9e819_742c0b1d","line":83,"updated":"2026-07-24 13:37:44.000000000","message":"pep8: E302 expected 2 blank lines, found 1","commit_id":"9b0cda9151c0d7898c9bc812d980633fe2c5156d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"adca6a932e4df2262f5083ace4f099a7c5616b10","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        return None"},{"line_number":86,"context_line":"    return \u0027 \u0027.join(f\"{e[\u0027from\u0027]}-{e[\u0027to\u0027]}\" for e in qos_map)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"def _vlan_netdev(context, name, inventory_hostname):"},{"line_number":89,"context_line":"    \"\"\"Return a networkd NetDev configuration for a VLAN interface."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    :param context: a Jinja2 Context object."}],"source_content_type":"text/x-python","patch_set":7,"id":"a82baad5_b1bcfec4","line":88,"updated":"2026-07-24 13:37:44.000000000","message":"pep8: E302 expected 2 blank lines, found 1","commit_id":"9b0cda9151c0d7898c9bc812d980633fe2c5156d"}]}
