L3 plugin code (neutorn/db/l3_*_db.py) calls l2 plugin with tenant_id=''(empty string) for creation port and subnet for internal use.
e.g. gateway port, floating ip port, port used by dvr.
This is ugly hack and some L2 plugin or ML2 mechanism driver doesn't expect it and be confused with it.
It is better to fix it.
tenant_id=''(empty string) is used for those purpose.
- prevent (non-admin) user from updating
NeutronDbPluginV2._enforce_device_owner_not_router_intf_or_device_id
- prevent (non-admin) user from deleting
NeutronDbPluginV2 ._delete_port
- don't count for quota
Controller.create
This dirty hack was firstly introduced by
the changeset of a7326a947bc0b30778e06acd772dd38bcb28d96d
the change id of Ice72fc6d3b1c613d596c037818ed66d7e9ed841d
with only one line comment. The followers just use it without any
L3 plugin code (neutorn/ db/l3_* _db.py) calls l2 plugin with tenant_id=''(empty string) for creation port and subnet for internal use.
e.g. gateway port, floating ip port, port used by dvr.
This is ugly hack and some L2 plugin or ML2 mechanism driver doesn't expect it and be confused with it.
It is better to fix it.
tenant_id=''(empty string) is used for those purpose. inV2._enforce_ device_ owner_not_ router_ intf_or_ device_ id
- prevent (non-admin) user from updating
NeutronDbPlug
- prevent (non-admin) user from deleting
NeutronDbPluginV2 ._delete_port
- don't count for quota
Controller.create
This dirty hack was firstly introduced by 778e06acd772dd3 8bcb28d96d 3d596c037818ed6 6d7e9ed841d
the changeset of a7326a947bc0b30
the change id of Ice72fc6d3b1c61
with only one line comment. The followers just use it without any