PAPI: Cache connected client instances 26/30626/1
authorVratko Polak <vrpolak@cisco.com>
Tue, 15 Dec 2020 12:39:56 +0000 (13:39 +0100)
committerVratko Polak <vrpolak@cisco.com>
Thu, 7 Jan 2021 14:23:33 +0000 (14:23 +0000)
commit10ad10b229b5f8d67c9cfc6309b074b4337e7797
tree286369a04b6c5381bf7112309000bad764883345
parent4cfa50a42f3bfdee032b0075b0f3159fa093a759
PAPI: Cache connected client instances

Disconnect+connect cycle is expensive and slow.
This change tracks connected client instances
so later "connect" to the same target uses it.

Explicit disconnects are allowed (and executed before VPP ends),
but once again disconnected instances are cached and reused,
as creating a new instance is more expensive than just connect.

+ Add missing checks on interfaces being up to appropriate keyword.
 + Use appropriate keywords.
 + Add a comment explaining why a simpler keyword is not appropriate.
+ Improve VPP checks in containers.
 + Fix the vppctl check to actually work.
 + Add PAPI check to ensure VPP is really ready.
 + Delay/reorder checks to make them faster with multiple containers.
 + Leave some TODOs to improve various lifecycles later.
+ As we do not stop VPP in test/suite teardown:
 + One final disconnect is needed, added to __init__.robot teardowns.
 - Import of the final disconnect keyword is ugly, but it works.
- We could use a hashable class for distinguishing node+socket pairs.
- Are we connecting to VPP inside VMs?

Change-Id: I49cd726740c3e8cae1591c7c84b85a447241228f
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
(cherry picked from commit a33b52ae0f255021d89307ebc694f6e907906151)
resources/libraries/python/ContainerUtils.py
resources/libraries/python/PapiExecutor.py
resources/libraries/python/VPPUtil.py
resources/libraries/python/topology.py
resources/libraries/robot/l2/l2_bridge_domain.robot
tests/vpp/device/__init__.robot
tests/vpp/device/container_memif/eth2p-ethipv4-l2bdbasemaclrn-eth-2memif-1dcr-dev.robot
tests/vpp/device/container_memif/eth2p-ethipv6-ip6base-eth-2memif-1dcr-dev.robot
tests/vpp/perf/__init__.robot
tests/vpp/perf/container_memif/10ge2p1x710-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr.robot
tests/vpp/perf/container_memif/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr.robot