)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"502bc3515f9674dddb62f7ff70aeb0ff9d5afea9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"b2b191e3_364b988e","updated":"2026-03-09 09:42:40.000000000","message":"You should also update descriptions and examples of request/response in https://opendev.org/openstack/neutron-lib/src/branch/master/api-ref/source/v2/ports.inc and https://opendev.org/openstack/neutron-lib/src/branch/master/api-ref/source/v2/networks.inc","commit_id":"c07426deeaec2358f144494d514c547255065aca"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"7eed1527490b9915b97c3f0d2433afde0ffdcc72","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"4561466c_5bf12f8b","updated":"2026-03-04 11:37:09.000000000","message":"recheck test_virtual_port_created_before unrelated failure","commit_id":"c07426deeaec2358f144494d514c547255065aca"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"df5cd586251ef0849a967780711f4bcf06586872","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"3872c926_28966062","in_reply_to":"1604a2a3_6c2ee8bf","updated":"2026-03-11 15:59:52.000000000","message":"I was able to test this locally with sphinx-build and added it to the examples of port and network.","commit_id":"c07426deeaec2358f144494d514c547255065aca"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"fbbc5d475fb97fbe91973e1892c280fc2800ca7b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"1604a2a3_6c2ee8bf","in_reply_to":"b2b191e3_364b988e","updated":"2026-03-09 18:22:26.000000000","message":"I added this but I\u0027m not sure if I\u0027ve done this properly, I could not see it under the local docs/ created in my host. Maybe I\u0027m missing something","commit_id":"c07426deeaec2358f144494d514c547255065aca"}],"api-ref/source/v2/parameters.yaml":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"502bc3515f9674dddb62f7ff70aeb0ff9d5afea9","unresolved":true,"context_lines":[{"line_number":5724,"context_line":"  description: |"},{"line_number":5725,"context_line":"    The Private VLAN community name. Used to group ports"},{"line_number":5726,"context_line":"    within the same community. Ports in the same community can"},{"line_number":5727,"context_line":"    communicate with each other but are isolated from ports"},{"line_number":5728,"context_line":"    in other communities. Must match the pattern: [a-zA-Z_.][a-zA-Z_.0-9]*."},{"line_number":5729,"context_line":"    Maximum length is 232 characters."},{"line_number":5730,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"979dc6f7_119d1e00","line":5727,"updated":"2026-03-09 09:42:40.000000000","message":"with each other and with promiscuous ports","commit_id":"c07426deeaec2358f144494d514c547255065aca"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"fbbc5d475fb97fbe91973e1892c280fc2800ca7b","unresolved":false,"context_lines":[{"line_number":5724,"context_line":"  description: |"},{"line_number":5725,"context_line":"    The Private VLAN community name. Used to group ports"},{"line_number":5726,"context_line":"    within the same community. Ports in the same community can"},{"line_number":5727,"context_line":"    communicate with each other but are isolated from ports"},{"line_number":5728,"context_line":"    in other communities. Must match the pattern: [a-zA-Z_.][a-zA-Z_.0-9]*."},{"line_number":5729,"context_line":"    Maximum length is 232 characters."},{"line_number":5730,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"c1d28fff_a1c55c48","line":5727,"in_reply_to":"979dc6f7_119d1e00","updated":"2026-03-09 18:22:26.000000000","message":"Done","commit_id":"c07426deeaec2358f144494d514c547255065aca"}],"neutron_lib/api/definitions/pvlan.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"502bc3515f9674dddb62f7ff70aeb0ff9d5afea9","unresolved":true,"context_lines":[{"line_number":22,"context_line":"IS_SHIM_EXTENSION \u003d False"},{"line_number":23,"context_line":"IS_STANDARD_ATTR_EXTENSION \u003d False"},{"line_number":24,"context_line":"NAME \u003d \u0027Private VLAN\u0027"},{"line_number":25,"context_line":"API_PREFIX \u003d \u0027/\u0027 + ALIAS"},{"line_number":26,"context_line":"DESCRIPTION \u003d \u0027The Private VLAN semantics extension.\u0027"},{"line_number":27,"context_line":"UPDATED_TIMESTAMP \u003d \u00272026-02-03T10:00:00-00:00\u0027"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"ccc73e8a_44488d0e","line":25,"updated":"2026-03-09 09:42:40.000000000","message":"I don\u0027t think we need api prefix to have defined. This extension will not provide new top level api but only extend existing resources like port or network with new attributes.","commit_id":"c07426deeaec2358f144494d514c547255065aca"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"fbbc5d475fb97fbe91973e1892c280fc2800ca7b","unresolved":false,"context_lines":[{"line_number":22,"context_line":"IS_SHIM_EXTENSION \u003d False"},{"line_number":23,"context_line":"IS_STANDARD_ATTR_EXTENSION \u003d False"},{"line_number":24,"context_line":"NAME \u003d \u0027Private VLAN\u0027"},{"line_number":25,"context_line":"API_PREFIX \u003d \u0027/\u0027 + ALIAS"},{"line_number":26,"context_line":"DESCRIPTION \u003d \u0027The Private VLAN semantics extension.\u0027"},{"line_number":27,"context_line":"UPDATED_TIMESTAMP \u003d \u00272026-02-03T10:00:00-00:00\u0027"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"610e0720_ad77d952","line":25,"in_reply_to":"ccc73e8a_44488d0e","updated":"2026-03-09 18:22:26.000000000","message":"Done","commit_id":"c07426deeaec2358f144494d514c547255065aca"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"502bc3515f9674dddb62f7ff70aeb0ff9d5afea9","unresolved":true,"context_lines":[{"line_number":33,"context_line":"            \u0027allow_put\u0027: True,"},{"line_number":34,"context_line":"            \u0027is_visible\u0027: True,"},{"line_number":35,"context_line":"            \u0027default\u0027: False,"},{"line_number":36,"context_line":"            \u0027enforce_policy\u0027: True,"},{"line_number":37,"context_line":"            \u0027validate\u0027: {\u0027type:boolean\u0027: None},"},{"line_number":38,"context_line":"            \u0027convert_to\u0027: converters.convert_to_boolean}"},{"line_number":39,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":11,"id":"a2df8f2b_ae3f6a66","line":36,"updated":"2026-03-09 09:42:40.000000000","message":"according to documentation https://opendev.org/openstack/neutron-lib/src/branch/master/doc/source/contributor/api_attributes.rst#L91 `enforce_policy` should be set to `True` for attribues which are part of the policy enforcing mechanism, e.g. there are api policy rules which uses that attribute somehow. Do we need to have it here?","commit_id":"c07426deeaec2358f144494d514c547255065aca"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"2ef906e903a95196a793332621c8b5d599bc55d1","unresolved":false,"context_lines":[{"line_number":33,"context_line":"            \u0027allow_put\u0027: True,"},{"line_number":34,"context_line":"            \u0027is_visible\u0027: True,"},{"line_number":35,"context_line":"            \u0027default\u0027: False,"},{"line_number":36,"context_line":"            \u0027enforce_policy\u0027: True,"},{"line_number":37,"context_line":"            \u0027validate\u0027: {\u0027type:boolean\u0027: None},"},{"line_number":38,"context_line":"            \u0027convert_to\u0027: converters.convert_to_boolean}"},{"line_number":39,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":11,"id":"91501e81_cf9cb59f","line":36,"in_reply_to":"21647825_0534436d","updated":"2026-03-20 18:00:06.000000000","message":"I deleted it because in any case it should be consistent with PVLAN_TYPE","commit_id":"c07426deeaec2358f144494d514c547255065aca"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"774f76d0f80cf3b7323d4d9780e5ca7f4dcaadb4","unresolved":false,"context_lines":[{"line_number":33,"context_line":"            \u0027allow_put\u0027: True,"},{"line_number":34,"context_line":"            \u0027is_visible\u0027: True,"},{"line_number":35,"context_line":"            \u0027default\u0027: False,"},{"line_number":36,"context_line":"            \u0027enforce_policy\u0027: True,"},{"line_number":37,"context_line":"            \u0027validate\u0027: {\u0027type:boolean\u0027: None},"},{"line_number":38,"context_line":"            \u0027convert_to\u0027: converters.convert_to_boolean}"},{"line_number":39,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":11,"id":"21647825_0534436d","line":36,"in_reply_to":"8e8d3881_6695beca","updated":"2026-03-20 15:14:23.000000000","message":"if you will respin this patch, I think you can remove it. I don\u0027t think we will use that in API policies","commit_id":"c07426deeaec2358f144494d514c547255065aca"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"fbbc5d475fb97fbe91973e1892c280fc2800ca7b","unresolved":false,"context_lines":[{"line_number":33,"context_line":"            \u0027allow_put\u0027: True,"},{"line_number":34,"context_line":"            \u0027is_visible\u0027: True,"},{"line_number":35,"context_line":"            \u0027default\u0027: False,"},{"line_number":36,"context_line":"            \u0027enforce_policy\u0027: True,"},{"line_number":37,"context_line":"            \u0027validate\u0027: {\u0027type:boolean\u0027: None},"},{"line_number":38,"context_line":"            \u0027convert_to\u0027: converters.convert_to_boolean}"},{"line_number":39,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":11,"id":"8e8d3881_6695beca","line":36,"in_reply_to":"a2df8f2b_ae3f6a66","updated":"2026-03-09 18:22:26.000000000","message":"To be honest I was not sure if potentially this could be referred in anything related to RBAC so I decided to go with the stricter approach but maybe it is unneeded. I can remove this from both parameters. :)","commit_id":"c07426deeaec2358f144494d514c547255065aca"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"502bc3515f9674dddb62f7ff70aeb0ff9d5afea9","unresolved":true,"context_lines":[{"line_number":51,"context_line":"            \u0027allow_put\u0027: True,"},{"line_number":52,"context_line":"            \u0027is_visible\u0027: True,"},{"line_number":53,"context_line":"            \u0027default\u0027: None,"},{"line_number":54,"context_line":"            \u0027enforce_policy\u0027: True,"},{"line_number":55,"context_line":"            \u0027validate\u0027: {"},{"line_number":56,"context_line":"                \u0027type:regex_or_none\u0027: pvlan_const.COMMUNITY_NAME_REGEX}"},{"line_number":57,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":11,"id":"a7229755_55e6e69b","line":54,"updated":"2026-03-09 09:42:40.000000000","message":"same question here. And also, if the answer for that question is \"yes, we need to have `enforce_policy` to be set to true\" then what about PVLAN_TYPE above?","commit_id":"c07426deeaec2358f144494d514c547255065aca"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"fbbc5d475fb97fbe91973e1892c280fc2800ca7b","unresolved":false,"context_lines":[{"line_number":51,"context_line":"            \u0027allow_put\u0027: True,"},{"line_number":52,"context_line":"            \u0027is_visible\u0027: True,"},{"line_number":53,"context_line":"            \u0027default\u0027: None,"},{"line_number":54,"context_line":"            \u0027enforce_policy\u0027: True,"},{"line_number":55,"context_line":"            \u0027validate\u0027: {"},{"line_number":56,"context_line":"                \u0027type:regex_or_none\u0027: pvlan_const.COMMUNITY_NAME_REGEX}"},{"line_number":57,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":11,"id":"0f21cf03_0c4bc54b","line":54,"in_reply_to":"a7229755_55e6e69b","updated":"2026-03-09 18:22:26.000000000","message":"Done","commit_id":"c07426deeaec2358f144494d514c547255065aca"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"2ed03b24c30080952b113b9745694cdf28bb3bc1","unresolved":true,"context_lines":[{"line_number":29,"context_line":"    network.COLLECTION_NAME: {"},{"line_number":30,"context_line":"        pvlan_const.PVLAN: {"},{"line_number":31,"context_line":"            \u0027allow_post\u0027: True,"},{"line_number":32,"context_line":"            \u0027allow_put\u0027: True,"},{"line_number":33,"context_line":"            \u0027is_visible\u0027: True,"},{"line_number":34,"context_line":"            \u0027default\u0027: False,"},{"line_number":35,"context_line":"            \u0027validate\u0027: {\u0027type:boolean\u0027: None},"}],"source_content_type":"text/x-python","patch_set":16,"id":"bcf009a8_e38fdcc5","line":32,"range":{"start_line":32,"start_character":25,"end_line":32,"end_character":29},"updated":"2026-03-27 12:33:31.000000000","message":"There is a discrepancy between this field value, the spec [1] and the api-ref [2].\n\nThe api-ref says \"This field is immutable and can only be set during network creation\".\n\n[1]https://review.opendev.org/c/openstack/neutron-specs/+/975289/14/specs/2026.1/pvlan-semantics-for-provider-networks.rst#209\n[2]https://review.opendev.org/c/openstack/neutron-lib/+/975931/16/api-ref/source/v2/parameters.yaml#5719","commit_id":"42e201b1f3cf5f7efe7d4bfd337932d48d90b835"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"72675678a53f41a9ae657e8f3871ea56caefc352","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    network.COLLECTION_NAME: {"},{"line_number":30,"context_line":"        pvlan_const.PVLAN: {"},{"line_number":31,"context_line":"            \u0027allow_post\u0027: True,"},{"line_number":32,"context_line":"            \u0027allow_put\u0027: True,"},{"line_number":33,"context_line":"            \u0027is_visible\u0027: True,"},{"line_number":34,"context_line":"            \u0027default\u0027: False,"},{"line_number":35,"context_line":"            \u0027validate\u0027: {\u0027type:boolean\u0027: None},"}],"source_content_type":"text/x-python","patch_set":16,"id":"0547ab52_48d1f99c","line":32,"range":{"start_line":32,"start_character":25,"end_line":32,"end_character":29},"in_reply_to":"bcf009a8_e38fdcc5","updated":"2026-03-27 16:53:48.000000000","message":"I have removed that line from parameters.yaml, it seems like I forgot to update it, thanks!","commit_id":"42e201b1f3cf5f7efe7d4bfd337932d48d90b835"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"2ed03b24c30080952b113b9745694cdf28bb3bc1","unresolved":true,"context_lines":[{"line_number":42,"context_line":"            \u0027is_filter\u0027: True,"},{"line_number":43,"context_line":"            \u0027default\u0027: pvlan_const.PROMISCUOUS_TYPE,"},{"line_number":44,"context_line":"            \u0027is_visible\u0027: True,"},{"line_number":45,"context_line":"            \u0027validate\u0027: {\u0027type:values\u0027: pvlan_const.PVLAN_TYPES}"},{"line_number":46,"context_line":"        },"},{"line_number":47,"context_line":"        pvlan_const.PVLAN_COMMUNITY: {"},{"line_number":48,"context_line":"            \u0027allow_post\u0027: True,"}],"source_content_type":"text/x-python","patch_set":16,"id":"e9ec24e9_6588b360","line":45,"range":{"start_line":45,"start_character":40,"end_line":45,"end_character":63},"updated":"2026-03-27 12:33:31.000000000","message":"Even if the network is non-PVLAN, the port will have a default PVLAN_TYPE within the PVLAN_TYPES. I would suggest that, in case of having a port in a non-PVLAN network, this value should be None. And the PVLAN_COMMUNITY value None too.","commit_id":"42e201b1f3cf5f7efe7d4bfd337932d48d90b835"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e725b906cd415934ac3cc01bb7a98e2e9e026476","unresolved":true,"context_lines":[{"line_number":42,"context_line":"            \u0027is_filter\u0027: True,"},{"line_number":43,"context_line":"            \u0027default\u0027: pvlan_const.PROMISCUOUS_TYPE,"},{"line_number":44,"context_line":"            \u0027is_visible\u0027: True,"},{"line_number":45,"context_line":"            \u0027validate\u0027: {\u0027type:values\u0027: pvlan_const.PVLAN_TYPES}"},{"line_number":46,"context_line":"        },"},{"line_number":47,"context_line":"        pvlan_const.PVLAN_COMMUNITY: {"},{"line_number":48,"context_line":"            \u0027allow_post\u0027: True,"}],"source_content_type":"text/x-python","patch_set":16,"id":"6a831268_27e4e6bd","line":45,"range":{"start_line":45,"start_character":40,"end_line":45,"end_character":63},"in_reply_to":"0887ba75_0a8d4ac0","updated":"2026-04-01 08:23:24.000000000","message":"I think Rodolfo is right here and we should change it to be None in case when PVLAN is disabled for network and PROMISCUOUS if PVLAN is enabled.\nOr maybe maybe it would be good to show those fields in the port only if network has PVLAN enabled?","commit_id":"42e201b1f3cf5f7efe7d4bfd337932d48d90b835"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"45f29f8855955fdd1408c5034dc779bbe61eefe2","unresolved":false,"context_lines":[{"line_number":42,"context_line":"            \u0027is_filter\u0027: True,"},{"line_number":43,"context_line":"            \u0027default\u0027: pvlan_const.PROMISCUOUS_TYPE,"},{"line_number":44,"context_line":"            \u0027is_visible\u0027: True,"},{"line_number":45,"context_line":"            \u0027validate\u0027: {\u0027type:values\u0027: pvlan_const.PVLAN_TYPES}"},{"line_number":46,"context_line":"        },"},{"line_number":47,"context_line":"        pvlan_const.PVLAN_COMMUNITY: {"},{"line_number":48,"context_line":"            \u0027allow_post\u0027: True,"}],"source_content_type":"text/x-python","patch_set":16,"id":"5e26534c_194c43e2","line":45,"range":{"start_line":45,"start_character":40,"end_line":45,"end_character":63},"in_reply_to":"58ea89fb_5005bfbc","updated":"2026-04-01 10:34:38.000000000","message":"Right, the default value should be `None`. Thanks for the update.","commit_id":"42e201b1f3cf5f7efe7d4bfd337932d48d90b835"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"929d1b4792d40ee87608cc582321eb87aedffc1f","unresolved":true,"context_lines":[{"line_number":42,"context_line":"            \u0027is_filter\u0027: True,"},{"line_number":43,"context_line":"            \u0027default\u0027: pvlan_const.PROMISCUOUS_TYPE,"},{"line_number":44,"context_line":"            \u0027is_visible\u0027: True,"},{"line_number":45,"context_line":"            \u0027validate\u0027: {\u0027type:values\u0027: pvlan_const.PVLAN_TYPES}"},{"line_number":46,"context_line":"        },"},{"line_number":47,"context_line":"        pvlan_const.PVLAN_COMMUNITY: {"},{"line_number":48,"context_line":"            \u0027allow_post\u0027: True,"}],"source_content_type":"text/x-python","patch_set":16,"id":"58ea89fb_5005bfbc","line":45,"range":{"start_line":45,"start_character":40,"end_line":45,"end_character":63},"in_reply_to":"6a831268_27e4e6bd","updated":"2026-04-01 09:53:53.000000000","message":"Sorry, I think I misunderstood your last comment. What you did here should be enough IMO, we can set PROMISCUOUS value for the pvlan_type for ports connected to network with pvlan enabled on the service plugin code level and keep default in the API as None.","commit_id":"42e201b1f3cf5f7efe7d4bfd337932d48d90b835"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"72675678a53f41a9ae657e8f3871ea56caefc352","unresolved":true,"context_lines":[{"line_number":42,"context_line":"            \u0027is_filter\u0027: True,"},{"line_number":43,"context_line":"            \u0027default\u0027: pvlan_const.PROMISCUOUS_TYPE,"},{"line_number":44,"context_line":"            \u0027is_visible\u0027: True,"},{"line_number":45,"context_line":"            \u0027validate\u0027: {\u0027type:values\u0027: pvlan_const.PVLAN_TYPES}"},{"line_number":46,"context_line":"        },"},{"line_number":47,"context_line":"        pvlan_const.PVLAN_COMMUNITY: {"},{"line_number":48,"context_line":"            \u0027allow_post\u0027: True,"}],"source_content_type":"text/x-python","patch_set":16,"id":"0887ba75_0a8d4ac0","line":45,"range":{"start_line":45,"start_character":40,"end_line":45,"end_character":63},"in_reply_to":"e9ec24e9_6588b360","updated":"2026-03-27 16:53:48.000000000","message":"Then I guess the spec Promiscuous default would be conditioned to the fact that we have pvlan enabled in the network and therefore it would be more appropiate to be validated only on the service plugin side, is this correct? I think it should be fixed now, please let me know if there\u0027s anything still wrong.","commit_id":"42e201b1f3cf5f7efe7d4bfd337932d48d90b835"}],"neutron_lib/services/pvlan/constants.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"2ed03b24c30080952b113b9745694cdf28bb3bc1","unresolved":true,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"PVLAN \u003d \"pvlan\""},{"line_number":17,"context_line":"PVLAN_COMMUNITY \u003d \"pvlan_community\""},{"line_number":18,"context_line":"PVLAN_COMMUNITY_LEN \u003d 232"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"PVLAN_TYPE \u003d \"pvlan_type\""},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"547f2c7a_2bccfc0e","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":19},"updated":"2026-03-27 12:33:31.000000000","message":"This is not used nor enforced","commit_id":"42e201b1f3cf5f7efe7d4bfd337932d48d90b835"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"72675678a53f41a9ae657e8f3871ea56caefc352","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"PVLAN \u003d \"pvlan\""},{"line_number":17,"context_line":"PVLAN_COMMUNITY \u003d \"pvlan_community\""},{"line_number":18,"context_line":"PVLAN_COMMUNITY_LEN \u003d 232"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"PVLAN_TYPE \u003d \"pvlan_type\""},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"f7bccfac_94f240de","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":19},"in_reply_to":"547f2c7a_2bccfc0e","updated":"2026-03-27 16:53:48.000000000","message":"I have modified the regex to make this something that is used. Thanks for the heads up!","commit_id":"42e201b1f3cf5f7efe7d4bfd337932d48d90b835"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"2ed03b24c30080952b113b9745694cdf28bb3bc1","unresolved":true,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"PVLAN_PLUGIN \u003d \u0027pvlan-plugin\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"COMMUNITY_NAME_REGEX \u003d \"[a-zA-Z_.][a-zA-Z_.0-9]*.\""}],"source_content_type":"text/x-python","patch_set":16,"id":"ffabbb07_47d251ae","line":31,"range":{"start_line":31,"start_character":24,"end_line":31,"end_character":49},"updated":"2026-03-27 12:33:31.000000000","message":"This is incorrect. The trailing dot will allow any character at the end.\n\nThis should be the value used:\n```\nCOMMUNITY_NAME_REGEX \u003d r\"^[a-zA-Z_.][a-zA-Z_.0-9]*$\"\n```","commit_id":"42e201b1f3cf5f7efe7d4bfd337932d48d90b835"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"72675678a53f41a9ae657e8f3871ea56caefc352","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"PVLAN_PLUGIN \u003d \u0027pvlan-plugin\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"COMMUNITY_NAME_REGEX \u003d \"[a-zA-Z_.][a-zA-Z_.0-9]*.\""}],"source_content_type":"text/x-python","patch_set":16,"id":"be03c584_1a12ec46","line":31,"range":{"start_line":31,"start_character":24,"end_line":31,"end_character":49},"in_reply_to":"ffabbb07_47d251ae","updated":"2026-03-27 16:53:48.000000000","message":"Done","commit_id":"42e201b1f3cf5f7efe7d4bfd337932d48d90b835"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"45f29f8855955fdd1408c5034dc779bbe61eefe2","unresolved":true,"context_lines":[{"line_number":27,"context_line":"PVLAN_PLUGIN \u003d \u0027pvlan-plugin\u0027"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"COMMUNITY_NAME_REGEX \u003d ("},{"line_number":30,"context_line":"    \"[a-zA-Z_.][a-zA-Z_.0-9]{0,%d}$\" % (COMMUNITY_NAME_MAX_LEN - 1)"},{"line_number":31,"context_line":")"}],"source_content_type":"text/x-python","patch_set":17,"id":"96f11f89_1c726a9b","line":30,"updated":"2026-04-01 10:34:38.000000000","message":"nit: note that the missing `^` will allow invalid characters at the beginning of the string.","commit_id":"cef4239091e14c0414882111613f3c96fc49d55f"}]}
