)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":34579,"name":"Juan Pablo Suazo","email":"jsuazo@whitestack.com","username":"jsuazo"},"change_message_id":"b9bdb252cc0f3d0c1e8af4f548ae6d9759a4b48a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"70cbbc3a_4932b538","updated":"2023-09-26 18:06:08.000000000","message":"recheck","commit_id":"55ca7f7aed760f39a68c1669a1f0232301342e25"},{"author":{"_account_id":34579,"name":"Juan Pablo Suazo","email":"jsuazo@whitestack.com","username":"jsuazo"},"change_message_id":"94e33a041608115fe0893a57f9e951a957796e25","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"fa6ad32f_54bb093c","updated":"2023-09-29 17:31:02.000000000","message":"Zuul failing on other iamges:\n```\nINFO:kolla.common.utils:\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nINFO:kolla.common.utils:Images that failed to build\nINFO:kolla.common.utils:\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nERROR:kolla.common.utils:kolla-toolbox Failed with status: error\nERROR:kolla.common.utils:rabbitmq Failed with status: error\n```\n\nrecheck","commit_id":"7f3cf502d5419c32aab5ab9e8ef11906e39b1097"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"2d2ac449606c7747da97c24b12b6cdbc7faa78cd","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"37577553_52af1eed","updated":"2023-10-11 13:28:06.000000000","message":"Should we have a reno?","commit_id":"d1653aadbf0cfaa91d1868cf0710037e5fffda1c"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"3d090074bd0f3676a4bc0b7e2f8cc849acbf881c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"766a38e8_066f29be","in_reply_to":"37577553_52af1eed","updated":"2023-10-11 13:40:57.000000000","message":"Done","commit_id":"d1653aadbf0cfaa91d1868cf0710037e5fffda1c"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"7f3a11d63e84880d5674e3eed1a8f50c723fea39","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"2e94f23a_e748cea1","updated":"2023-10-11 20:18:31.000000000","message":"gnocchi build error not related so lgtm","commit_id":"4825683a01d878f4d69b7d7a167437ff34d308aa"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"43261fc6ed691471028ffe921f863bcde6a4a948","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"4ef52e79_3a995400","updated":"2023-10-12 09:49:42.000000000","message":"recheck bug #2039051","commit_id":"4825683a01d878f4d69b7d7a167437ff34d308aa"}],"docker/neutron/neutron-base/Dockerfile.j2":[{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"f61ee2e6eb50deb6b39e5fd9d407d3f8f71931ea","unresolved":true,"context_lines":[{"line_number":13,"context_line":"{% if base_package_type \u003d\u003d \u0027rpm\u0027 %}"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    {% set neutron_base_packages \u003d ["},{"line_number":16,"context_line":"        \u0027bridge-utils\u0027,"},{"line_number":17,"context_line":"        \u0027conntrack-tools\u0027,"},{"line_number":18,"context_line":"        \u0027dnsmasq\u0027,"},{"line_number":19,"context_line":"        \u0027dnsmasq-utils\u0027,"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"e6fc4712_e53a8f25","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":23},"updated":"2023-06-03 09:01:03.000000000","message":"is it really needed?\nbridge-utils is deprecated in favor of bridge command in iproute2","commit_id":"2a5eef0ae201dfe6d9d9424a543ca086e3fc753c"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"6dab9e59f15dfee2085590784556d1341fa44e57","unresolved":true,"context_lines":[{"line_number":13,"context_line":"{% if base_package_type \u003d\u003d \u0027rpm\u0027 %}"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    {% set neutron_base_packages \u003d ["},{"line_number":16,"context_line":"        \u0027bridge-utils\u0027,"},{"line_number":17,"context_line":"        \u0027conntrack-tools\u0027,"},{"line_number":18,"context_line":"        \u0027dnsmasq\u0027,"},{"line_number":19,"context_line":"        \u0027dnsmasq-utils\u0027,"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"5100bb65_ba9cfbec","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":23},"in_reply_to":"1d7b4ab8_99e4370e","updated":"2023-07-25 12:58:42.000000000","message":"cool! so, this can be replaced with iproute2 package.\ndon\u0027t forget to add depends-on header","commit_id":"2a5eef0ae201dfe6d9d9424a543ca086e3fc753c"},{"author":{"_account_id":34437,"name":"Alejandro Garcia","email":"agarcia@whitestack.com","username":"agarciaws"},"change_message_id":"7176f9d924d8764371e73631b7a3492c31b94edb","unresolved":false,"context_lines":[{"line_number":13,"context_line":"{% if base_package_type \u003d\u003d \u0027rpm\u0027 %}"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    {% set neutron_base_packages \u003d ["},{"line_number":16,"context_line":"        \u0027bridge-utils\u0027,"},{"line_number":17,"context_line":"        \u0027conntrack-tools\u0027,"},{"line_number":18,"context_line":"        \u0027dnsmasq\u0027,"},{"line_number":19,"context_line":"        \u0027dnsmasq-utils\u0027,"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"1a3a4cbc_8574bfc9","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":23},"in_reply_to":"5100bb65_ba9cfbec","updated":"2023-08-03 18:54:19.000000000","message":"Done","commit_id":"2a5eef0ae201dfe6d9d9424a543ca086e3fc753c"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"650caa5b76377c74540f5eee7c631531470b2afe","unresolved":true,"context_lines":[{"line_number":13,"context_line":"{% if base_package_type \u003d\u003d \u0027rpm\u0027 %}"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    {% set neutron_base_packages \u003d ["},{"line_number":16,"context_line":"        \u0027bridge-utils\u0027,"},{"line_number":17,"context_line":"        \u0027conntrack-tools\u0027,"},{"line_number":18,"context_line":"        \u0027dnsmasq\u0027,"},{"line_number":19,"context_line":"        \u0027dnsmasq-utils\u0027,"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"d051a80a_326dd813","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":23},"in_reply_to":"c6f3d7bc_7e694f91","updated":"2023-06-20 10:32:31.000000000","message":"the good idea to fix this in TAAS code first.","commit_id":"2a5eef0ae201dfe6d9d9424a543ca086e3fc753c"},{"author":{"_account_id":34437,"name":"Alejandro Garcia","email":"agarcia@whitestack.com","username":"agarciaws"},"change_message_id":"b4a402c2959ab6496ce41035c0017a2eae012b13","unresolved":true,"context_lines":[{"line_number":13,"context_line":"{% if base_package_type \u003d\u003d \u0027rpm\u0027 %}"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    {% set neutron_base_packages \u003d ["},{"line_number":16,"context_line":"        \u0027bridge-utils\u0027,"},{"line_number":17,"context_line":"        \u0027conntrack-tools\u0027,"},{"line_number":18,"context_line":"        \u0027dnsmasq\u0027,"},{"line_number":19,"context_line":"        \u0027dnsmasq-utils\u0027,"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"1d7b4ab8_99e4370e","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":23},"in_reply_to":"d051a80a_326dd813","updated":"2023-07-25 12:44:58.000000000","message":"Maksim Malchuk, we have changed bridge-utils usage in TAAS at: https://review.opendev.org/c/openstack/tap-as-a-service/+/886532\n\nWe understand this might not be your area of expertise, but since the diff are only 2 lines, could you perhaps take a look?","commit_id":"2a5eef0ae201dfe6d9d9424a543ca086e3fc753c"},{"author":{"_account_id":34437,"name":"Alejandro Garcia","email":"agarcia@whitestack.com","username":"agarciaws"},"change_message_id":"3aae0c97e2c03cd3a93092d12a697964054e80b1","unresolved":true,"context_lines":[{"line_number":13,"context_line":"{% if base_package_type \u003d\u003d \u0027rpm\u0027 %}"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    {% set neutron_base_packages \u003d ["},{"line_number":16,"context_line":"        \u0027bridge-utils\u0027,"},{"line_number":17,"context_line":"        \u0027conntrack-tools\u0027,"},{"line_number":18,"context_line":"        \u0027dnsmasq\u0027,"},{"line_number":19,"context_line":"        \u0027dnsmasq-utils\u0027,"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"c6f3d7bc_7e694f91","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":23},"in_reply_to":"e6fc4712_e53a8f25","updated":"2023-06-06 13:03:45.000000000","message":"Mmm TAAS code uses brctl commands (for example here: https://github.com/openstack/tap-as-a-service/blob/8868e486aea560b79e4cef7291168f9e969327ec/neutron_taas/services/taas/drivers/linux/ovs_taas.py#L281). I tried installing iproute2 but it seems bridge is used instead of brctl there. Maybe we can open a launchpad in TAAS code to update that part of the code.","commit_id":"2a5eef0ae201dfe6d9d9424a543ca086e3fc753c"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"f61ee2e6eb50deb6b39e5fd9d407d3f8f71931ea","unresolved":true,"context_lines":[{"line_number":33,"context_line":"{% elif base_package_type \u003d\u003d \u0027deb\u0027 %}"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    {% set neutron_base_packages \u003d ["},{"line_number":36,"context_line":"        \u0027bridge-utils\u0027,"},{"line_number":37,"context_line":"        \u0027conntrack\u0027,"},{"line_number":38,"context_line":"        \u0027dnsmasq\u0027,"},{"line_number":39,"context_line":"        \u0027dnsmasq-utils\u0027,"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"9835e07c_480fae4c","line":36,"range":{"start_line":36,"start_character":0,"end_line":36,"end_character":23},"updated":"2023-06-03 09:01:03.000000000","message":"ditto","commit_id":"2a5eef0ae201dfe6d9d9424a543ca086e3fc753c"},{"author":{"_account_id":34437,"name":"Alejandro Garcia","email":"agarcia@whitestack.com","username":"agarciaws"},"change_message_id":"7176f9d924d8764371e73631b7a3492c31b94edb","unresolved":false,"context_lines":[{"line_number":33,"context_line":"{% elif base_package_type \u003d\u003d \u0027deb\u0027 %}"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    {% set neutron_base_packages \u003d ["},{"line_number":36,"context_line":"        \u0027bridge-utils\u0027,"},{"line_number":37,"context_line":"        \u0027conntrack\u0027,"},{"line_number":38,"context_line":"        \u0027dnsmasq\u0027,"},{"line_number":39,"context_line":"        \u0027dnsmasq-utils\u0027,"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"a3f1e348_ca6d1655","line":36,"range":{"start_line":36,"start_character":0,"end_line":36,"end_character":23},"in_reply_to":"9835e07c_480fae4c","updated":"2023-08-03 18:54:19.000000000","message":"Marking this as resolved since the dependant patch was merged.","commit_id":"2a5eef0ae201dfe6d9d9424a543ca086e3fc753c"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"2aa6df1d17c98c566412615a2c9528675fd0f5e2","unresolved":true,"context_lines":[{"line_number":71,"context_line":"COPY extend_start.sh /usr/local/bin/kolla_extend_start"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"RUN ln -s neutron-base-source/* neutron \\"},{"line_number":74,"context_line":"    \u0026\u0026 sed -i /^tap-as-a-service\u003d/d /requirements/upper-constraints.txt \\"},{"line_number":75,"context_line":"    \u0026\u0026 ln -s /additions/*tap-as-a-service* /tap-as-a-service \\"},{"line_number":76,"context_line":"    \u0026\u0026 {{ macros.install_pip(neutron_base_pip_packages | customizable(\"pip_packages\")) }} \\"},{"line_number":77,"context_line":"    \u0026\u0026 mkdir -p /etc/neutron \\"}],"source_content_type":"text/x-jinja2","patch_set":2,"id":"4368894b_0fc13af6","line":74,"updated":"2023-08-28 13:41:21.000000000","message":"Why? needs a note at least, and please use commands from macros","commit_id":"9a879e22f6dcf3f8762400e3e2f9a3e46d407201"},{"author":{"_account_id":34579,"name":"Juan Pablo Suazo","email":"jsuazo@whitestack.com","username":"jsuazo"},"change_message_id":"1d7041a55d59a2c9707d3b422575b11b752c2ff9","unresolved":false,"context_lines":[{"line_number":71,"context_line":"COPY extend_start.sh /usr/local/bin/kolla_extend_start"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"RUN ln -s neutron-base-source/* neutron \\"},{"line_number":74,"context_line":"    \u0026\u0026 sed -i /^tap-as-a-service\u003d/d /requirements/upper-constraints.txt \\"},{"line_number":75,"context_line":"    \u0026\u0026 ln -s /additions/*tap-as-a-service* /tap-as-a-service \\"},{"line_number":76,"context_line":"    \u0026\u0026 {{ macros.install_pip(neutron_base_pip_packages | customizable(\"pip_packages\")) }} \\"},{"line_number":77,"context_line":"    \u0026\u0026 mkdir -p /etc/neutron \\"}],"source_content_type":"text/x-jinja2","patch_set":2,"id":"2813b5a1_5c9fb7cd","line":74,"in_reply_to":"4368894b_0fc13af6","updated":"2023-09-05 17:02:56.000000000","message":"Done.","commit_id":"9a879e22f6dcf3f8762400e3e2f9a3e46d407201"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"c6f076470bc46d3519fe23db60ba9959e49e0dbb","unresolved":true,"context_lines":[{"line_number":70,"context_line":"COPY neutron_sudoers /etc/sudoers.d/kolla_neutron_sudoers"},{"line_number":71,"context_line":"COPY extend_start.sh /usr/local/bin/kolla_extend_start"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"# NOTE(ffigueroa): Remove tap-as-a-service from constraints to avoid version incompatibility failure."},{"line_number":74,"context_line":"RUN ln -s neutron-base-source/* neutron \\"},{"line_number":75,"context_line":"    \u0026\u0026 {{ macros.upper_constraints_remove(\"tap-as-a-service\") }} \\"},{"line_number":76,"context_line":"    \u0026\u0026 ln -s /additions/*tap-as-a-service* /tap-as-a-service \\"}],"source_content_type":"text/x-jinja2","patch_set":3,"id":"cfac3c45_ced2a022","line":73,"updated":"2023-09-06 05:46:51.000000000","message":"For me to get this right - we are installing tap-as-a-service now, but you want a newer version (to be more detailed - unreleased version) - that\u0027s why we remove the upper constraints?","commit_id":"b6ac9771f2d3dbead87dd37068d1b96c56c78c81"},{"author":{"_account_id":34579,"name":"Juan Pablo Suazo","email":"jsuazo@whitestack.com","username":"jsuazo"},"change_message_id":"2b060c15d97c695f09d4b9d2974433b86780a396","unresolved":true,"context_lines":[{"line_number":70,"context_line":"COPY neutron_sudoers /etc/sudoers.d/kolla_neutron_sudoers"},{"line_number":71,"context_line":"COPY extend_start.sh /usr/local/bin/kolla_extend_start"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"# NOTE(ffigueroa): Remove tap-as-a-service from constraints to avoid version incompatibility failure."},{"line_number":74,"context_line":"RUN ln -s neutron-base-source/* neutron \\"},{"line_number":75,"context_line":"    \u0026\u0026 {{ macros.upper_constraints_remove(\"tap-as-a-service\") }} \\"},{"line_number":76,"context_line":"    \u0026\u0026 ln -s /additions/*tap-as-a-service* /tap-as-a-service \\"}],"source_content_type":"text/x-jinja2","patch_set":3,"id":"d69832ae_ec0bb411","line":73,"in_reply_to":"cfac3c45_ced2a022","updated":"2023-09-11 13:24:57.000000000","message":"Kolla doesn\u0027t install TaaS yet, we are adding it as a neutron-base addition here, still there\u0027s a constraint for it.\n\nWe tested TaaS with openstack yoga installing the plugin manually. The pinned version for it on the upper-constraints file, 9.0.0, is not currently working, in order to achieve port mirroring functionalities, the 11.0.0 version was required.\n\nBut, when adding the plugin installation to the kolla Dockerfile, the upper-constraints prevents the TaaS-11 installation, hence our need to remove it.","commit_id":"b6ac9771f2d3dbead87dd37068d1b96c56c78c81"},{"author":{"_account_id":34579,"name":"Juan Pablo Suazo","email":"jsuazo@whitestack.com","username":"jsuazo"},"change_message_id":"ebca62d7f8bab956a657ab356df80dd780cf4806","unresolved":false,"context_lines":[{"line_number":70,"context_line":"COPY neutron_sudoers /etc/sudoers.d/kolla_neutron_sudoers"},{"line_number":71,"context_line":"COPY extend_start.sh /usr/local/bin/kolla_extend_start"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"# NOTE(ffigueroa): Remove tap-as-a-service from constraints to avoid version incompatibility failure."},{"line_number":74,"context_line":"RUN ln -s neutron-base-source/* neutron \\"},{"line_number":75,"context_line":"    \u0026\u0026 {{ macros.upper_constraints_remove(\"tap-as-a-service\") }} \\"},{"line_number":76,"context_line":"    \u0026\u0026 ln -s /additions/*tap-as-a-service* /tap-as-a-service \\"}],"source_content_type":"text/x-jinja2","patch_set":3,"id":"cf558dcf_7f1eefba","line":73,"in_reply_to":"d69832ae_ec0bb411","updated":"2023-09-14 13:25:48.000000000","message":"As discussed, seeing how TaaS master is at 11.0.0, and this proposal wont be backported, I removed the upper constraints editing from the code.","commit_id":"b6ac9771f2d3dbead87dd37068d1b96c56c78c81"}],"releasenotes/notes/feature_neutron_install_tap-as-a-service-bdf99544a319ce7b.yaml":[{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"b1692240cce3bfaf61aad2bf321533e18c4e912a","unresolved":true,"context_lines":[{"line_number":4,"context_line":"  - |"},{"line_number":5,"context_line":"    Adds the installation of the Neutron plugin `tap-as-a-service` on the"},{"line_number":6,"context_line":"    `neutron-base` image as a python package. This allows a user to configure"},{"line_number":7,"context_line":"    this plugin and provide Neutron with port mirrorng capabilities."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"6808bb19_1e7ad628","line":7,"range":{"start_line":7,"start_character":46,"end_line":7,"end_character":54},"updated":"2023-10-13 08:08:48.000000000","message":"nit: mirroring","commit_id":"3f4b8460b44cc1be155d98f5fca27277363d5893"},{"author":{"_account_id":34579,"name":"Juan Pablo Suazo","email":"jsuazo@whitestack.com","username":"jsuazo"},"change_message_id":"4bf2c883e8d47778815bfa0941d84e4125347440","unresolved":false,"context_lines":[{"line_number":4,"context_line":"  - |"},{"line_number":5,"context_line":"    Adds the installation of the Neutron plugin `tap-as-a-service` on the"},{"line_number":6,"context_line":"    `neutron-base` image as a python package. This allows a user to configure"},{"line_number":7,"context_line":"    this plugin and provide Neutron with port mirrorng capabilities."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"68578d73_20afa3d6","line":7,"range":{"start_line":7,"start_character":46,"end_line":7,"end_character":54},"in_reply_to":"6808bb19_1e7ad628","updated":"2023-10-17 20:46:06.000000000","message":"Done","commit_id":"3f4b8460b44cc1be155d98f5fca27277363d5893"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"472e0fd14465d97dcb15a62dd879ad73ec365d24","unresolved":true,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"features:"},{"line_number":4,"context_line":"  - |"},{"line_number":5,"context_line":"    Adds the installation of the Neutron plugin `tap-as-a-service` on the"},{"line_number":6,"context_line":"    `neutron-base` image as a python package. This allows a user to configure"},{"line_number":7,"context_line":"    this plugin and provide Neutron with port mirroring capabilities."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"b099f86a_327f9ec2","line":5,"range":{"start_line":5,"start_character":67,"end_line":5,"end_character":69},"updated":"2023-10-18 12:37:06.000000000","message":"nit: in","commit_id":"ea856095174f93a7d2f7345fa21964307d38d52a"},{"author":{"_account_id":34579,"name":"Juan Pablo Suazo","email":"jsuazo@whitestack.com","username":"jsuazo"},"change_message_id":"46bbcd9f2e14b081c705bb92ddace16c981ec4ad","unresolved":false,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"features:"},{"line_number":4,"context_line":"  - |"},{"line_number":5,"context_line":"    Adds the installation of the Neutron plugin `tap-as-a-service` on the"},{"line_number":6,"context_line":"    `neutron-base` image as a python package. This allows a user to configure"},{"line_number":7,"context_line":"    this plugin and provide Neutron with port mirroring capabilities."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"aca0953d_6f75a637","line":5,"range":{"start_line":5,"start_character":67,"end_line":5,"end_character":69},"in_reply_to":"b099f86a_327f9ec2","updated":"2023-10-18 13:03:08.000000000","message":"Done","commit_id":"ea856095174f93a7d2f7345fa21964307d38d52a"}]}
