)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"5765e3fbc9f54c072a31e8f8b6d7ecf2dfa5ea1b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"0f9d4baa_352c9cfc","updated":"2022-04-12 10:28:37.000000000","message":"Fails in interface config:\n\nNetwork interface for network \u0027[\u0027aio\u0027]\u0027 on host \u0027None\u0027 not found\n\nI don\u0027t see this locally.","commit_id":"db3186ee4e752b85fc0dbf49eefbb65db3fd8221"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"a5c61d3c6d8131087a6252709373aa14e3074028","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"5017ed45_b1e1067a","updated":"2026-10-02 14:50:12.000000000","message":"Thanks @rafal@stackhpc.com for reviving this :). Given we\u0027re close to cutting the Hibiscus release, I\u0027d just propose we hold off on merging this until Indri.","commit_id":"57ae986ea3a99542599a4c8ee1f32af9c6012ab3"},{"author":{"_account_id":34940,"name":"Rafal Lewandowski","display_name":"Rafal Lewandowski","email":"rafal@stackhpc.com","username":"rav"},"change_message_id":"3fcca2f2f17ecf806190bf457f3544a9eb6801f2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"b893b7c4_c30cf09a","in_reply_to":"5017ed45_b1e1067a","updated":"2026-10-02 17:46:53.000000000","message":"Understandable, let\u0027s get back to it after the release is done.","commit_id":"57ae986ea3a99542599a4c8ee1f32af9c6012ab3"}],"doc/source/configuration/reference/network.rst":[{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"5b90878555ae2a9000654f642e6a79402ac3ae37","unresolved":true,"context_lines":[{"line_number":1220,"context_line":"connectivity between these Linux bridges and the neutron Open vSwitch bridges"},{"line_number":1221,"context_line":"via a virtual Ethernet pair.  See :ref:`configuring-bridge-interfaces`."},{"line_number":1222,"context_line":""},{"line_number":1223,"context_line":"Network to Host Mapping"},{"line_number":1224,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":1225,"context_line":""},{"line_number":1226,"context_line":"Networks are mapped to hosts using the variable ``network_interfaces``."}],"source_content_type":"text/x-rst","patch_set":22,"id":"3f99a6da_c4665190","line":1223,"updated":"2026-10-01 15:41:46.000000000","message":"Do we need to modify the docs here?","commit_id":"6fbdc88628f7079e87d2e714ab8cbc7402fb3594"},{"author":{"_account_id":34940,"name":"Rafal Lewandowski","display_name":"Rafal Lewandowski","email":"rafal@stackhpc.com","username":"rav"},"change_message_id":"cb9218467a3bdd219729874c348248e9bb90f32c","unresolved":false,"context_lines":[{"line_number":1220,"context_line":"connectivity between these Linux bridges and the neutron Open vSwitch bridges"},{"line_number":1221,"context_line":"via a virtual Ethernet pair.  See :ref:`configuring-bridge-interfaces`."},{"line_number":1222,"context_line":""},{"line_number":1223,"context_line":"Network to Host Mapping"},{"line_number":1224,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":1225,"context_line":""},{"line_number":1226,"context_line":"Networks are mapped to hosts using the variable ``network_interfaces``."}],"source_content_type":"text/x-rst","patch_set":22,"id":"274c2e05_8cf3fa28","line":1223,"in_reply_to":"3f99a6da_c4665190","updated":"2026-10-02 12:32:49.000000000","message":"Done","commit_id":"6fbdc88628f7079e87d2e714ab8cbc7402fb3594"}],"kayobe/plugins/filter/networks.py":[{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"5b90878555ae2a9000654f642e6a79402ac3ae37","unresolved":true,"context_lines":[{"line_number":843,"context_line":""},{"line_number":844,"context_line":"        name \u003d utils.get_hostvar(context, role + \u0027_net_name\u0027,"},{"line_number":845,"context_line":"                                 inventory_hostname)"},{"line_number":846,"context_line":"        if name is not None:"},{"line_number":847,"context_line":"            required_nets.append(name)"},{"line_number":848,"context_line":"            continue"},{"line_number":849,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"18f313a7_51b32439","line":846,"updated":"2026-10-01 15:41:46.000000000","message":"I think we need treat undefined and None as different cases, otherwise you can\u0027t set a network name to None to stop it being mapped. Something like:\n\n\tif utils.hostvar_defined(context, name_var, inventory_hostname):   # key exists?\n\t    name \u003d utils.get_hostvar(context, name_var, inventory_hostname)\n\t    if name:                    # None or \u0027\u0027 → no network for this role\n\t\trequired_nets.append(name)\n\t    continue                    # never falls through to _net_names\n\nNOTE: Need to define hostvar_defined\n\nAn example is the public net which can be be set to none:\n\nhttps://github.com/openstack/kayobe/blob/f2335651930b6baf8e97a2841cdfcb441c87b7af/ansible/inventory/group_vars/all/network#L34-L37\n\nNone in this case means this network should not be mapped to the host.\n\nA test for this case would be good i.e if you set a set network name explicitly to None we should not trigger: Missing expected %s_net_name or %s_net_names variable\"","commit_id":"6fbdc88628f7079e87d2e714ab8cbc7402fb3594"},{"author":{"_account_id":34940,"name":"Rafal Lewandowski","display_name":"Rafal Lewandowski","email":"rafal@stackhpc.com","username":"rav"},"change_message_id":"cb9218467a3bdd219729874c348248e9bb90f32c","unresolved":false,"context_lines":[{"line_number":843,"context_line":""},{"line_number":844,"context_line":"        name \u003d utils.get_hostvar(context, role + \u0027_net_name\u0027,"},{"line_number":845,"context_line":"                                 inventory_hostname)"},{"line_number":846,"context_line":"        if name is not None:"},{"line_number":847,"context_line":"            required_nets.append(name)"},{"line_number":848,"context_line":"            continue"},{"line_number":849,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"d0bd7941_62af80ec","line":846,"in_reply_to":"18f313a7_51b32439","updated":"2026-10-02 12:32:49.000000000","message":"Done","commit_id":"6fbdc88628f7079e87d2e714ab8cbc7402fb3594"}],"kayobe/tests/unit/plugins/filter/test_networks.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6942b431f8a9ee997e41c733d0e99c5290f03698","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from ansible.plugins.filter.core import to_bool"},{"line_number":20,"context_line":"import jinja2"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from ansible import errors"},{"line_number":23,"context_line":"from kayobe.plugins.filter import networks"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"c51eec49_40147194","line":22,"updated":"2026-09-28 13:41:50.000000000","message":"pep8: F811 redefinition of unused \u0027errors\u0027 from line 18","commit_id":"f79112f3eb90e87d81473585756580b9f32489b8"}],"releasenotes/notes/network-role-mapping-150b03f481199a5a.yaml":[{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"5b90878555ae2a9000654f642e6a79402ac3ae37","unresolved":true,"context_lines":[{"line_number":65,"context_line":"      and ``network`` groups. Now mapped to ``compute`` and"},{"line_number":66,"context_line":"      ``controller_network_group`` (default ``network``) groups."},{"line_number":67,"context_line":"    * storage network (``storage_net_name``): previously mapped to ``compute``,"},{"line_number":68,"context_line":"      ``controllers``, ``network`` and ``storage groups. Now mapped to"},{"line_number":69,"context_line":"      ``compute``, ``controllers``, ``storage`` networks unconditionally, and"},{"line_number":70,"context_line":"      ``controller_network_group`` (default ``network``) group when"},{"line_number":71,"context_line":"      ``kolla_enable_manila`` is ``true``."}],"source_content_type":"text/x-yaml","patch_set":22,"id":"fa7c1396_b96862a5","line":68,"range":{"start_line":68,"start_character":39,"end_line":68,"end_character":55},"updated":"2026-10-01 15:41:46.000000000","message":"```suggestion\n      ``controllers``, ``network`` and ``storage`` groups. Now mapped to\n```","commit_id":"6fbdc88628f7079e87d2e714ab8cbc7402fb3594"},{"author":{"_account_id":34940,"name":"Rafal Lewandowski","display_name":"Rafal Lewandowski","email":"rafal@stackhpc.com","username":"rav"},"change_message_id":"08bc0b5410999cddb59bdc66780761b1ad824861","unresolved":false,"context_lines":[{"line_number":65,"context_line":"      and ``network`` groups. Now mapped to ``compute`` and"},{"line_number":66,"context_line":"      ``controller_network_group`` (default ``network``) groups."},{"line_number":67,"context_line":"    * storage network (``storage_net_name``): previously mapped to ``compute``,"},{"line_number":68,"context_line":"      ``controllers``, ``network`` and ``storage groups. Now mapped to"},{"line_number":69,"context_line":"      ``compute``, ``controllers``, ``storage`` networks unconditionally, and"},{"line_number":70,"context_line":"      ``controller_network_group`` (default ``network``) group when"},{"line_number":71,"context_line":"      ``kolla_enable_manila`` is ``true``."}],"source_content_type":"text/x-yaml","patch_set":22,"id":"155ea1f5_d4e539f3","line":68,"range":{"start_line":68,"start_character":39,"end_line":68,"end_character":55},"in_reply_to":"fa7c1396_b96862a5","updated":"2026-10-01 18:04:51.000000000","message":"Fix applied.","commit_id":"6fbdc88628f7079e87d2e714ab8cbc7402fb3594"}]}
