The L3 agent QoS extension should be able to handle duplicated floating
IP addresses from different registers. Those floating IP addresses can
be hosted in different networks and routers but the same compute node
and L3 agent.
Now, instead of using the IP address as unique identifier, this patch
stores the (ID, IP address) tuple. This tuple is unique per floating IP
register and holds the IP address, needed by the "tc" library to set
the QoS rules.
Closes-Bug: #1962465
Change-Id: I3a09718c6e79fd1f37eb75264389c4e5043076a7
Now that we are python3 only, we should move to using the built
in version of mock that supports all of our testing needs and
remove the dependency on the "mock" package.
This patch moves all references to "import mock" to
"from unittest import mock". It also cleans up some new line
inconsistency.
Fixed an inconsistency in the OVSBridge.deferred() definition
as it needs to also have an *args argument.
Fixed an issue where an l3-agent test was mocking
functools.partial, causing a python3.8 failure.
Unit tests only, removing from tests/base.py affects
functional tests which need additional work.
Change-Id: I40e8a8410840c3774c72ae1a8054574445d66ece
If agent is concurrently processing large set of resources,
the bottleneck lock will multiply increase processing time
of those resources which have been waiting for the lock for
a long time.
This patch moves the lock to the core cache resource, and
leverage the coordination lock to the resource prcessing
and notification thread functions.
Closes-Bug: #1824911
Change-Id: Id43829b11631727f1a46362ffea5c22d2177fd79
Move the l3 qos extensions to a separated folder,
then we can move a following up router gateway IP
QoS extension to it.
And also extract some common code to a base class.
Related-Bug: #1757044
Change-Id: I63cc9506caa80f889ad817444281a0ac31bc9418