neutron/neutron/services/trunk/drivers
Ihar Hrachyshka ac15191f88 Revert "[OVN] Prevent Trunk creation/deletion with parent port bound"
There are three reasons to revert this patch.

1. It broke RPC push API for trunks because it added port db model to
   event payload that is not serializeable.

2. It also broke the callback event payload interface, which requires
   that all entries in .states attribute belong to the same core object.

To quote from neutron-lib,

```
 # an iterable of states for the resource from the newest to the oldest
 # for example db states or api request/response
 # the actual object type for states will vary depending on event caller
 self.states = ...
```

3. There is no good justification why ml2/ovn would not allow this
   operation. The rationale for the original patch was to align the
   behavior with ml2/ovs, but we don't such parity requirements. The 409
   error that can be returned by the API endpoints is backend specific.

To quote api-ref,

```
409 The operation returns this error code for one of these reasons:
    A system configuration prevents the operation from succeeding.
```

AFAIU there is nothing that prevents ml2/ovn to create a trunk in this
situation.

This will have to be backported in all supported branches (the original
patch was backported down to Wallaby).

Conflicts:
	neutron/services/trunk/drivers/ovn/trunk_driver.py

This reverts commit 833a6d82cd.

Closes-Bug: #2065707
Related-Bug: #2022059
Change-Id: I067c2f7286b2684b67b4389ca085d06a93f856ce
2024-05-31 15:39:25 +00:00
..
linuxbridge Load Linux Bridge Trunk extension if service plugin configured 2021-06-11 13:26:53 +00:00
openvswitch Set trunk parent port as access port in ovs to avoid loop 2024-01-24 14:42:13 +01:00
ovn Revert "[OVN] Prevent Trunk creation/deletion with parent port bound" 2024-05-31 15:39:25 +00:00
__init__.py Add linux bridge trunk server side driver 2016-08-05 21:49:36 -07:00
base.py Start trunk plugin RPC via service framework 2024-04-30 16:18:53 +02:00