)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ad77a0dd7229ff752f3820621d4eba1561e1bcd8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"15f4e118_160a4e71","updated":"2024-09-03 09:05:56.000000000","message":"tempest is failing: neutron_tempest_plugin.api.admin.test_ports.PortTestCasesAdmin.test_port_create_with_trusted_attr_set","commit_id":"c67ed0cc4edcbf35a80d8d666d9b2969aa4d5e9f"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"15ef36723f726b7e704b67a3b5419506e409f209","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"3adbe62b_b58db60d","in_reply_to":"15f4e118_160a4e71","updated":"2024-09-03 09:06:46.000000000","message":"(well, this is the n-t-p patch on top of this one)","commit_id":"c67ed0cc4edcbf35a80d8d666d9b2969aa4d5e9f"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"bd53a04fed2c54de5b059490395beeaada7f3502","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"9d5499fb_3ca71d05","updated":"2024-09-04 17:17:59.000000000","message":"Just nits in the release note, code looks good.","commit_id":"b02ae1c441be8a0f301814169da398f7e3326b71"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"fc2344a2191a21721eb402a3f934db956b52f31a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"0d5f6396_f84177bf","updated":"2024-09-03 12:38:34.000000000","message":"recheck - ssh failure in one test, looks like unrelated","commit_id":"b02ae1c441be8a0f301814169da398f7e3326b71"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"eed91f2985609dd57f31a28809b6ff751b58ff61","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"9a554937_0f96d90d","updated":"2024-09-04 08:34:33.000000000","message":"recheck - unrelated ha router life cycle failure in functional tests","commit_id":"b02ae1c441be8a0f301814169da398f7e3326b71"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"97cd676ba6e27e2de478aaf7bce8b97fda3144c4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"38f901af_8a24092c","updated":"2024-09-05 18:44:05.000000000","message":"recheck unrelated functional failure","commit_id":"104cbf9e60001329968bcab2e6d95ef38168cbc5"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c8f8c6f4a65972908cd3d2129210387f31023eff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"81b0cb6d_706850d5","updated":"2024-09-05 21:11:59.000000000","message":"recheck unrelated test failure","commit_id":"104cbf9e60001329968bcab2e6d95ef38168cbc5"}],"neutron/db/migration/alembic_migrations/versions/2024.2/expand/5bcb7b31ec7d_add_port_trusted_attribute.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"358a3fd6072f2f5db7c6d5cb4a4588761ab2376e","unresolved":true,"context_lines":[{"line_number":39,"context_line":"                  sa.ForeignKey(\u0027ports.id\u0027,"},{"line_number":40,"context_line":"                                ondelete\u003d\"CASCADE\"),"},{"line_number":41,"context_line":"                  primary_key\u003dTrue,"},{"line_number":42,"context_line":"                  index\u003dTrue),"},{"line_number":43,"context_line":"        sa.Column(\u0027trusted\u0027,"},{"line_number":44,"context_line":"                  sa.Boolean,"},{"line_number":45,"context_line":"                  nullable\u003dTrue))"}],"source_content_type":"text/x-python","patch_set":8,"id":"c89c86d3_2c00287b","line":42,"range":{"start_line":42,"start_character":18,"end_line":42,"end_character":28},"updated":"2024-08-30 15:18:17.000000000","message":"nit: a primary_key is always indexed","commit_id":"9fc8957584ad69a510b2e04b3000bac848a39068"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"b7c7b2d233ff5289ca2ecd08d6eaf040303055cb","unresolved":false,"context_lines":[{"line_number":39,"context_line":"                  sa.ForeignKey(\u0027ports.id\u0027,"},{"line_number":40,"context_line":"                                ondelete\u003d\"CASCADE\"),"},{"line_number":41,"context_line":"                  primary_key\u003dTrue,"},{"line_number":42,"context_line":"                  index\u003dTrue),"},{"line_number":43,"context_line":"        sa.Column(\u0027trusted\u0027,"},{"line_number":44,"context_line":"                  sa.Boolean,"},{"line_number":45,"context_line":"                  nullable\u003dTrue))"}],"source_content_type":"text/x-python","patch_set":8,"id":"3142016a_fe2c0e5b","line":42,"range":{"start_line":42,"start_character":18,"end_line":42,"end_character":28},"in_reply_to":"c89c86d3_2c00287b","updated":"2024-09-02 08:38:14.000000000","message":"Done","commit_id":"9fc8957584ad69a510b2e04b3000bac848a39068"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"358a3fd6072f2f5db7c6d5cb4a4588761ab2376e","unresolved":true,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    session \u003d sa.orm.Session(bind\u003dop.get_bind())"},{"line_number":55,"context_line":"    for row in session.query(port_binding_table).all():"},{"line_number":56,"context_line":"        if len(row[1]) \u003d\u003d 0:"},{"line_number":57,"context_line":"            continue"},{"line_number":58,"context_line":"        try:"},{"line_number":59,"context_line":"            profile \u003d jsonutils.loads(row[1])"}],"source_content_type":"text/x-python","patch_set":8,"id":"4d84ce83_c493c353","line":56,"range":{"start_line":56,"start_character":23,"end_line":56,"end_character":27},"updated":"2024-08-30 15:18:17.000000000","message":"Why this? The default value for \"ml2_port_bindings.profile\" is an empty string \u0027\u0027\n```\nCREATE TABLE `ml2_port_bindings` (\n  `port_id` varchar(36) NOT NULL,\n  `host` varchar(255) NOT NULL DEFAULT \u0027\u0027,\n  `vif_type` varchar(64) NOT NULL,\n  `vnic_type` varchar(64) NOT NULL DEFAULT \u0027normal\u0027,\n  `profile` varchar(4095) NOT NULL DEFAULT \u0027\u0027,\n  `vif_details` varchar(4095) NOT NULL DEFAULT \u0027\u0027,\n  `status` varchar(16) NOT NULL DEFAULT \u0027ACTIVE\u0027,\n  PRIMARY KEY (`port_id`,`host`),\n  CONSTRAINT `ml2_port_bindings_ibfk_1` FOREIGN KEY (`port_id`) REFERENCES `ports` (`id`) ON DELETE CASCADE\n) ENGINE\u003dInnoDB DEFAULT CHARSET\u003dutf8mb3\n```","commit_id":"9fc8957584ad69a510b2e04b3000bac848a39068"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ca5fe12ce1b535fe2d649d47eb7a29ae0b1b25b6","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    session \u003d sa.orm.Session(bind\u003dop.get_bind())"},{"line_number":55,"context_line":"    for row in session.query(port_binding_table).all():"},{"line_number":56,"context_line":"        if len(row[1]) \u003d\u003d 0:"},{"line_number":57,"context_line":"            continue"},{"line_number":58,"context_line":"        try:"},{"line_number":59,"context_line":"            profile \u003d jsonutils.loads(row[1])"}],"source_content_type":"text/x-python","patch_set":8,"id":"879e92d9_85eae415","line":56,"range":{"start_line":56,"start_character":23,"end_line":56,"end_character":27},"in_reply_to":"0da1581b_8675c1c0","updated":"2024-09-03 08:38:30.000000000","message":"Now I see the len() operation, my bad. Thanks!","commit_id":"9fc8957584ad69a510b2e04b3000bac848a39068"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"b7c7b2d233ff5289ca2ecd08d6eaf040303055cb","unresolved":true,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    session \u003d sa.orm.Session(bind\u003dop.get_bind())"},{"line_number":55,"context_line":"    for row in session.query(port_binding_table).all():"},{"line_number":56,"context_line":"        if len(row[1]) \u003d\u003d 0:"},{"line_number":57,"context_line":"            continue"},{"line_number":58,"context_line":"        try:"},{"line_number":59,"context_line":"            profile \u003d jsonutils.loads(row[1])"}],"source_content_type":"text/x-python","patch_set":8,"id":"0da1581b_8675c1c0","line":56,"range":{"start_line":56,"start_character":23,"end_line":56,"end_character":27},"in_reply_to":"4d84ce83_c493c353","updated":"2024-09-02 08:38:14.000000000","message":"yes, so if for some row it is empty string, we can skip it and don\u0027t try to do json.loads and other stuff below, right?","commit_id":"9fc8957584ad69a510b2e04b3000bac848a39068"}],"neutron/db/models/port_trusted.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"358a3fd6072f2f5db7c6d5cb4a4588761ab2376e","unresolved":true,"context_lines":[{"line_number":26,"context_line":"    port_id \u003d sa.Column(sa.String(36),"},{"line_number":27,"context_line":"                        sa.ForeignKey(\u0027ports.id\u0027, ondelete\u003d\u0027CASCADE\u0027),"},{"line_number":28,"context_line":"                        primary_key\u003dTrue,"},{"line_number":29,"context_line":"                        index\u003dTrue)"},{"line_number":30,"context_line":"    trusted \u003d sa.Column(sa.Boolean, nullable\u003dTrue)"},{"line_number":31,"context_line":"    port \u003d orm.relationship("},{"line_number":32,"context_line":"        models_v2.Port,"}],"source_content_type":"text/x-python","patch_set":8,"id":"b2c81e7a_048ac771","line":29,"range":{"start_line":29,"start_character":24,"end_line":29,"end_character":29},"updated":"2024-08-30 15:18:17.000000000","message":"same comment as in the table creation","commit_id":"9fc8957584ad69a510b2e04b3000bac848a39068"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"b7c7b2d233ff5289ca2ecd08d6eaf040303055cb","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    port_id \u003d sa.Column(sa.String(36),"},{"line_number":27,"context_line":"                        sa.ForeignKey(\u0027ports.id\u0027, ondelete\u003d\u0027CASCADE\u0027),"},{"line_number":28,"context_line":"                        primary_key\u003dTrue,"},{"line_number":29,"context_line":"                        index\u003dTrue)"},{"line_number":30,"context_line":"    trusted \u003d sa.Column(sa.Boolean, nullable\u003dTrue)"},{"line_number":31,"context_line":"    port \u003d orm.relationship("},{"line_number":32,"context_line":"        models_v2.Port,"}],"source_content_type":"text/x-python","patch_set":8,"id":"f772b566_1d12c11c","line":29,"range":{"start_line":29,"start_character":24,"end_line":29,"end_character":29},"in_reply_to":"b2c81e7a_048ac771","updated":"2024-09-02 08:38:14.000000000","message":"Done","commit_id":"9fc8957584ad69a510b2e04b3000bac848a39068"}],"neutron/db/port_trusted_db.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"358a3fd6072f2f5db7c6d5cb4a4588761ab2376e","unresolved":true,"context_lines":[{"line_number":26,"context_line":"    def _set_portbinding_profile(data, trusted):"},{"line_number":27,"context_line":"        try:"},{"line_number":28,"context_line":"            data[portbindings.PROFILE][\u0027trusted\u0027] \u003d trusted"},{"line_number":29,"context_line":"        except (KeyError, TypeError):"},{"line_number":30,"context_line":"            data[portbindings.PROFILE] \u003d {\u0027trusted\u0027: trusted}"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def _process_create_port(self, context, data, result):"}],"source_content_type":"text/x-python","patch_set":8,"id":"9c9c3e13_09c2a5f0","line":29,"range":{"start_line":29,"start_character":26,"end_line":29,"end_character":35},"updated":"2024-08-30 15:18:17.000000000","message":"Why TypeError? I think this should be like in [1]:\n```\nexcept (AttributeError, KeyError):\n```\n\n[1]https://review.opendev.org/c/openstack/neutron/+/927577/1/neutron/db/port_hardware_offload_type_db.py#44","commit_id":"9fc8957584ad69a510b2e04b3000bac848a39068"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"b7c7b2d233ff5289ca2ecd08d6eaf040303055cb","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    def _set_portbinding_profile(data, trusted):"},{"line_number":27,"context_line":"        try:"},{"line_number":28,"context_line":"            data[portbindings.PROFILE][\u0027trusted\u0027] \u003d trusted"},{"line_number":29,"context_line":"        except (KeyError, TypeError):"},{"line_number":30,"context_line":"            data[portbindings.PROFILE] \u003d {\u0027trusted\u0027: trusted}"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def _process_create_port(self, context, data, result):"}],"source_content_type":"text/x-python","patch_set":8,"id":"224d427b_0daa774b","line":29,"range":{"start_line":29,"start_character":26,"end_line":29,"end_character":35},"in_reply_to":"9c9c3e13_09c2a5f0","updated":"2024-09-02 08:38:14.000000000","message":"I don\u0027t know, probably some mistake 😊","commit_id":"9fc8957584ad69a510b2e04b3000bac848a39068"}],"neutron/objects/port/extensions/port_trusted.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"358a3fd6072f2f5db7c6d5cb4a4588761ab2376e","unresolved":true,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    fields \u003d {"},{"line_number":32,"context_line":"        \u0027port_id\u0027: common_types.UUIDField(),"},{"line_number":33,"context_line":"        \u0027trusted\u0027: obj_fields.BooleanField(),"},{"line_number":34,"context_line":"    }"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    foreign_keys \u003d {\u0027Port\u0027: {\u0027port_id\u0027: \u0027id\u0027}}"}],"source_content_type":"text/x-python","patch_set":8,"id":"0f5758af_54fe6d13","line":33,"range":{"start_line":33,"start_character":19,"end_line":33,"end_character":44},"updated":"2024-08-30 15:18:17.000000000","message":"obj_fields.BooleanField(nullable\u003dTrue)","commit_id":"9fc8957584ad69a510b2e04b3000bac848a39068"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"b7c7b2d233ff5289ca2ecd08d6eaf040303055cb","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    fields \u003d {"},{"line_number":32,"context_line":"        \u0027port_id\u0027: common_types.UUIDField(),"},{"line_number":33,"context_line":"        \u0027trusted\u0027: obj_fields.BooleanField(),"},{"line_number":34,"context_line":"    }"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    foreign_keys \u003d {\u0027Port\u0027: {\u0027port_id\u0027: \u0027id\u0027}}"}],"source_content_type":"text/x-python","patch_set":8,"id":"82bf27d1_0478955a","line":33,"range":{"start_line":33,"start_character":19,"end_line":33,"end_character":44},"in_reply_to":"0f5758af_54fe6d13","updated":"2024-09-02 08:38:14.000000000","message":"Done","commit_id":"9fc8957584ad69a510b2e04b3000bac848a39068"}],"neutron/plugins/ml2/plugin.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"358a3fd6072f2f5db7c6d5cb4a4588761ab2376e","unresolved":true,"context_lines":[{"line_number":540,"context_line":"        mech_context._clear_binding_levels()"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"    def _process_port_binding_attributes(self, binding, attrs):"},{"line_number":543,"context_line":"        LOG.error(\"SK; _process_port_binding_attributes\")"},{"line_number":544,"context_line":"        changes \u003d False"},{"line_number":545,"context_line":"        host \u003d const.ATTR_NOT_SPECIFIED"},{"line_number":546,"context_line":"        if attrs and portbindings.HOST_ID in attrs:"}],"source_content_type":"text/x-python","patch_set":8,"id":"25bb4a95_4b5d8e03","line":543,"range":{"start_line":543,"start_character":0,"end_line":543,"end_character":2},"updated":"2024-08-30 15:18:17.000000000","message":"hehehehe I love these SK debug lines!","commit_id":"9fc8957584ad69a510b2e04b3000bac848a39068"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"b7c7b2d233ff5289ca2ecd08d6eaf040303055cb","unresolved":false,"context_lines":[{"line_number":540,"context_line":"        mech_context._clear_binding_levels()"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"    def _process_port_binding_attributes(self, binding, attrs):"},{"line_number":543,"context_line":"        LOG.error(\"SK; _process_port_binding_attributes\")"},{"line_number":544,"context_line":"        changes \u003d False"},{"line_number":545,"context_line":"        host \u003d const.ATTR_NOT_SPECIFIED"},{"line_number":546,"context_line":"        if attrs and portbindings.HOST_ID in attrs:"}],"source_content_type":"text/x-python","patch_set":8,"id":"481d1c56_6dd80950","line":543,"range":{"start_line":543,"start_character":0,"end_line":543,"end_character":2},"in_reply_to":"25bb4a95_4b5d8e03","updated":"2024-09-02 08:38:14.000000000","message":"ups, I forgot to remote it 😊","commit_id":"9fc8957584ad69a510b2e04b3000bac848a39068"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"358a3fd6072f2f5db7c6d5cb4a4588761ab2376e","unresolved":true,"context_lines":[{"line_number":568,"context_line":"            # TODO(slaweq): Remove warning and raise InvalidInput exception"},{"line_number":569,"context_line":"            # instead in the 2026.1 release"},{"line_number":570,"context_line":"            if \u0027trusted\u0027 in profile_json:"},{"line_number":571,"context_line":"                LOG.warning(\"Marking VIF as \u0027trusted\u0027 directly through the \""},{"line_number":572,"context_line":"                            \"\u0027binding:profile\u0027 field of the port is \""},{"line_number":573,"context_line":"                            \"deprecated and will be forbidden in future. \""},{"line_number":574,"context_line":"                            \"Please enable \u0027port_trusted\u0027 ML2 plugin\u0027s \""}],"source_content_type":"text/x-python","patch_set":8,"id":"02c1685d_2bb4e10b","line":571,"range":{"start_line":571,"start_character":16,"end_line":571,"end_character":28},"updated":"2024-08-30 15:18:17.000000000","message":"+1 to this","commit_id":"9fc8957584ad69a510b2e04b3000bac848a39068"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f3cce06629f01352e742efccc502dd181fe15b88","unresolved":false,"context_lines":[{"line_number":568,"context_line":"            # TODO(slaweq): Remove warning and raise InvalidInput exception"},{"line_number":569,"context_line":"            # instead in the 2026.1 release"},{"line_number":570,"context_line":"            if \u0027trusted\u0027 in profile_json:"},{"line_number":571,"context_line":"                LOG.warning(\"Marking VIF as \u0027trusted\u0027 directly through the \""},{"line_number":572,"context_line":"                            \"\u0027binding:profile\u0027 field of the port is \""},{"line_number":573,"context_line":"                            \"deprecated and will be forbidden in future. \""},{"line_number":574,"context_line":"                            \"Please enable \u0027port_trusted\u0027 ML2 plugin\u0027s \""}],"source_content_type":"text/x-python","patch_set":8,"id":"e875c86f_e785837c","line":571,"range":{"start_line":571,"start_character":16,"end_line":571,"end_character":28},"in_reply_to":"02c1685d_2bb4e10b","updated":"2024-09-05 08:03:31.000000000","message":"Done","commit_id":"9fc8957584ad69a510b2e04b3000bac848a39068"}],"neutron/tests/unit/objects/test_objects.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"358a3fd6072f2f5db7c6d5cb4a4588761ab2376e","unresolved":true,"context_lines":[{"line_number":73,"context_line":"    \u0027NetworkSegment\u0027: \u00271.0-57b7f2960971e3b95ded20cbc59244a8\u0027,"},{"line_number":74,"context_line":"    \u0027NetworkSegmentRange\u0027: \u00271.0-bdec1fffc9058ea676089b1f2f2b3cf3\u0027,"},{"line_number":75,"context_line":"    \u0027NetworkSubnetLock\u0027: \u00271.0-140de39d4b86ae346dc3d70b885bea53\u0027,"},{"line_number":76,"context_line":"    \u0027Port\u0027: \u00271.10-ae84f686bfc3deb4017495134da6ef04\u0027,"},{"line_number":77,"context_line":"    \u0027PortHardwareOffloadType\u0027: \u00271.0-5f424d02b144fd1832ac3e6b03662674\u0027,"},{"line_number":78,"context_line":"    \u0027PortDeviceProfile\u0027: \u00271.0-b98c7083cc3e93d176fd7a91ae13af32\u0027,"},{"line_number":79,"context_line":"    \u0027PortHints\u0027: \u00271.0-9ebf6e12fa427809476a92c7432352b8\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"c59a2f47_ee674a73","line":76,"range":{"start_line":76,"start_character":5,"end_line":76,"end_character":50},"updated":"2024-08-30 15:18:17.000000000","message":"You should also add a test in \"tests.unit.objects.test_ports.PortDbObjectTestCase\" checking the port downgrade from v10 to v9 (check \"test_v1_8_to_v1_7_drops_hints\", for example)","commit_id":"9fc8957584ad69a510b2e04b3000bac848a39068"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"b7c7b2d233ff5289ca2ecd08d6eaf040303055cb","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    \u0027NetworkSegment\u0027: \u00271.0-57b7f2960971e3b95ded20cbc59244a8\u0027,"},{"line_number":74,"context_line":"    \u0027NetworkSegmentRange\u0027: \u00271.0-bdec1fffc9058ea676089b1f2f2b3cf3\u0027,"},{"line_number":75,"context_line":"    \u0027NetworkSubnetLock\u0027: \u00271.0-140de39d4b86ae346dc3d70b885bea53\u0027,"},{"line_number":76,"context_line":"    \u0027Port\u0027: \u00271.10-ae84f686bfc3deb4017495134da6ef04\u0027,"},{"line_number":77,"context_line":"    \u0027PortHardwareOffloadType\u0027: \u00271.0-5f424d02b144fd1832ac3e6b03662674\u0027,"},{"line_number":78,"context_line":"    \u0027PortDeviceProfile\u0027: \u00271.0-b98c7083cc3e93d176fd7a91ae13af32\u0027,"},{"line_number":79,"context_line":"    \u0027PortHints\u0027: \u00271.0-9ebf6e12fa427809476a92c7432352b8\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3583d43f_85ea8605","line":76,"range":{"start_line":76,"start_character":5,"end_line":76,"end_character":50},"in_reply_to":"c59a2f47_ee674a73","updated":"2024-09-02 08:38:14.000000000","message":"True, I forgot about it. Thx for the reminder 😊","commit_id":"9fc8957584ad69a510b2e04b3000bac848a39068"}],"releasenotes/notes/Add-trusted-vif-extension-for-ml2-plugin-697dc557b0d40b6a.yaml":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"bd53a04fed2c54de5b059490395beeaada7f3502","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    New ML2 plugin extension ``port_trusted`` is now available. This extension"},{"line_number":5,"context_line":"    implements ``port_trusted_vif`` API extension which adds to the port resource"},{"line_number":6,"context_line":"    new boolean field called ``trusted``. This field should be used by admin users"},{"line_number":7,"context_line":"    to set port as trusted what was previously possible only through the port\u0027s"},{"line_number":8,"context_line":"    ``binding:profile`` dictionary. Value of the ``trusted`` field is still visible"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"c9d285e8_fa250e56","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":14},"updated":"2024-09-04 17:17:59.000000000","message":"s/implements the","commit_id":"b02ae1c441be8a0f301814169da398f7e3326b71"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"46839eb7d433013b511bfbe776319bdbe3fb5602","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    New ML2 plugin extension ``port_trusted`` is now available. This extension"},{"line_number":5,"context_line":"    implements ``port_trusted_vif`` API extension which adds to the port resource"},{"line_number":6,"context_line":"    new boolean field called ``trusted``. This field should be used by admin users"},{"line_number":7,"context_line":"    to set port as trusted what was previously possible only through the port\u0027s"},{"line_number":8,"context_line":"    ``binding:profile`` dictionary. Value of the ``trusted`` field is still visible"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"4e4b4259_bed0bc20","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":14},"in_reply_to":"c9d285e8_fa250e56","updated":"2024-09-05 07:18:14.000000000","message":"Done","commit_id":"b02ae1c441be8a0f301814169da398f7e3326b71"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"bd53a04fed2c54de5b059490395beeaada7f3502","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    New ML2 plugin extension ``port_trusted`` is now available. This extension"},{"line_number":5,"context_line":"    implements ``port_trusted_vif`` API extension which adds to the port resource"},{"line_number":6,"context_line":"    new boolean field called ``trusted``. This field should be used by admin users"},{"line_number":7,"context_line":"    to set port as trusted what was previously possible only through the port\u0027s"},{"line_number":8,"context_line":"    ``binding:profile`` dictionary. Value of the ``trusted`` field is still visible"},{"line_number":9,"context_line":"    in the port\u0027s ``binding:profile`` dictionary so that for example Nova still have"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"2495529e_caaac3db","line":6,"range":{"start_line":6,"start_character":4,"end_line":6,"end_character":7},"updated":"2024-09-04 17:17:59.000000000","message":"s/a new","commit_id":"b02ae1c441be8a0f301814169da398f7e3326b71"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"46839eb7d433013b511bfbe776319bdbe3fb5602","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    New ML2 plugin extension ``port_trusted`` is now available. This extension"},{"line_number":5,"context_line":"    implements ``port_trusted_vif`` API extension which adds to the port resource"},{"line_number":6,"context_line":"    new boolean field called ``trusted``. This field should be used by admin users"},{"line_number":7,"context_line":"    to set port as trusted what was previously possible only through the port\u0027s"},{"line_number":8,"context_line":"    ``binding:profile`` dictionary. Value of the ``trusted`` field is still visible"},{"line_number":9,"context_line":"    in the port\u0027s ``binding:profile`` dictionary so that for example Nova still have"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"7c2a1e40_232234f6","line":6,"range":{"start_line":6,"start_character":4,"end_line":6,"end_character":7},"in_reply_to":"2495529e_caaac3db","updated":"2024-09-05 07:18:14.000000000","message":"Done","commit_id":"b02ae1c441be8a0f301814169da398f7e3326b71"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"bd53a04fed2c54de5b059490395beeaada7f3502","unresolved":true,"context_lines":[{"line_number":4,"context_line":"    New ML2 plugin extension ``port_trusted`` is now available. This extension"},{"line_number":5,"context_line":"    implements ``port_trusted_vif`` API extension which adds to the port resource"},{"line_number":6,"context_line":"    new boolean field called ``trusted``. This field should be used by admin users"},{"line_number":7,"context_line":"    to set port as trusted what was previously possible only through the port\u0027s"},{"line_number":8,"context_line":"    ``binding:profile`` dictionary. Value of the ``trusted`` field is still visible"},{"line_number":9,"context_line":"    in the port\u0027s ``binding:profile`` dictionary so that for example Nova still have"},{"line_number":10,"context_line":"    it where it is expected to be."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9a093309_34bd02e6","line":7,"range":{"start_line":7,"start_character":11,"end_line":7,"end_character":15},"updated":"2024-09-04 17:17:59.000000000","message":"s/the port","commit_id":"b02ae1c441be8a0f301814169da398f7e3326b71"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"46839eb7d433013b511bfbe776319bdbe3fb5602","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    New ML2 plugin extension ``port_trusted`` is now available. This extension"},{"line_number":5,"context_line":"    implements ``port_trusted_vif`` API extension which adds to the port resource"},{"line_number":6,"context_line":"    new boolean field called ``trusted``. This field should be used by admin users"},{"line_number":7,"context_line":"    to set port as trusted what was previously possible only through the port\u0027s"},{"line_number":8,"context_line":"    ``binding:profile`` dictionary. Value of the ``trusted`` field is still visible"},{"line_number":9,"context_line":"    in the port\u0027s ``binding:profile`` dictionary so that for example Nova still have"},{"line_number":10,"context_line":"    it where it is expected to be."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"127d3444_a18bd626","line":7,"range":{"start_line":7,"start_character":11,"end_line":7,"end_character":15},"in_reply_to":"9a093309_34bd02e6","updated":"2024-09-05 07:18:14.000000000","message":"Done","commit_id":"b02ae1c441be8a0f301814169da398f7e3326b71"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"bd53a04fed2c54de5b059490395beeaada7f3502","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    new boolean field called ``trusted``. This field should be used by admin users"},{"line_number":7,"context_line":"    to set port as trusted what was previously possible only through the port\u0027s"},{"line_number":8,"context_line":"    ``binding:profile`` dictionary. Value of the ``trusted`` field is still visible"},{"line_number":9,"context_line":"    in the port\u0027s ``binding:profile`` dictionary so that for example Nova still have"},{"line_number":10,"context_line":"    it where it is expected to be."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"deprecations:"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"089a55c8_da7534c2","line":9,"range":{"start_line":9,"start_character":80,"end_line":9,"end_character":84},"updated":"2024-09-04 17:17:59.000000000","message":"s/has","commit_id":"b02ae1c441be8a0f301814169da398f7e3326b71"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"46839eb7d433013b511bfbe776319bdbe3fb5602","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    new boolean field called ``trusted``. This field should be used by admin users"},{"line_number":7,"context_line":"    to set port as trusted what was previously possible only through the port\u0027s"},{"line_number":8,"context_line":"    ``binding:profile`` dictionary. Value of the ``trusted`` field is still visible"},{"line_number":9,"context_line":"    in the port\u0027s ``binding:profile`` dictionary so that for example Nova still have"},{"line_number":10,"context_line":"    it where it is expected to be."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"deprecations:"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9557f342_6c2f2ee2","line":9,"range":{"start_line":9,"start_character":80,"end_line":9,"end_character":84},"in_reply_to":"089a55c8_da7534c2","updated":"2024-09-05 07:18:14.000000000","message":"Done","commit_id":"b02ae1c441be8a0f301814169da398f7e3326b71"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"bd53a04fed2c54de5b059490395beeaada7f3502","unresolved":true,"context_lines":[{"line_number":12,"context_line":"deprecations:"},{"line_number":13,"context_line":"  - |"},{"line_number":14,"context_line":"    Setting ``trusted`` key directly in the port\u0027s ``binding:profile`` is"},{"line_number":15,"context_line":"    deprecated and will be forbidden in the future releases. Dedicated port\u0027s"},{"line_number":16,"context_line":"    attribute ``trusted``, added by the API extension ``port_trusted_vif``"},{"line_number":17,"context_line":"    should be used instead."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"7c0da204_2629d752","line":15,"range":{"start_line":15,"start_character":37,"end_line":15,"end_character":50},"updated":"2024-09-04 17:17:59.000000000","message":"s/in future","commit_id":"b02ae1c441be8a0f301814169da398f7e3326b71"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"46839eb7d433013b511bfbe776319bdbe3fb5602","unresolved":false,"context_lines":[{"line_number":12,"context_line":"deprecations:"},{"line_number":13,"context_line":"  - |"},{"line_number":14,"context_line":"    Setting ``trusted`` key directly in the port\u0027s ``binding:profile`` is"},{"line_number":15,"context_line":"    deprecated and will be forbidden in the future releases. Dedicated port\u0027s"},{"line_number":16,"context_line":"    attribute ``trusted``, added by the API extension ``port_trusted_vif``"},{"line_number":17,"context_line":"    should be used instead."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"e3134bd7_5f3cea3f","line":15,"range":{"start_line":15,"start_character":37,"end_line":15,"end_character":50},"in_reply_to":"7c0da204_2629d752","updated":"2024-09-05 07:18:14.000000000","message":"Done","commit_id":"b02ae1c441be8a0f301814169da398f7e3326b71"}]}
