aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/python/ContainerUtils.py
AgeCommit message (Collapse)AuthorFilesLines
2024-07-26fix(container): Remove obsolete LXC optionVratko Polak1-2/+1
CSIT-1944 Change-Id: I0f763369acc560a5ab2d9db28fc25f20b1c5ffe7 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2024-06-12feat(multi): Multiple VPP instancespmikus1-17/+65
Signed-off-by: Peter Mikus <peter.mikus@protonmail.ch> Change-Id: I28f2752f725c9816a557667033bf7d656fb0d414
2024-05-31Revert "feat(hoststack): Enable L4 checksum RX offload"Peter Mikus1-1/+0
This reverts commit 4e897a7a91e8b4782da05a4c906392e62c8f8ab5. Reason for revert: Container/Qemu is not conditioned. Change-Id: I497caa2db24803f40811b3c60c359b4772cacda7 Signed-off-by: Peter Mikus <peter.mikus@protonmail.ch>
2024-05-30feat(hoststack): Enable L4 checksum RX offloadVratko Polak1-0/+1
Change-Id: I169b06433ae962811aafa91ce90fe169b0bc4c71 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2024-02-06Add memif with DMA test suitesxinfengx1-1/+41
Change-Id: I8c27b5956c0c26bb2de48321675e285ed961412f Signed-off-by: xinfengx <xinfengx.zhao@intel.com>
2023-05-15fix(core): Container entropypmikus1-5/+3
Signed-off-by: pmikus <peter.mikus@protonmail.ch> Change-Id: I45760143ae0ccb0cc0edf0931ad47f5cf48ec968
2023-05-05fix(core): vppctl pathpmikus1-2/+2
Signed-off-by: pmikus <peter.mikus@protonmail.ch> Change-Id: Ia6778b0c49906a686427b9c1ca7f5658e8993e63
2022-08-30fix(core): Ubuntu Jammy VIIIPeter Mikus1-17/+5
Signed-off-by: Peter Mikus <pmikus@cisco.com> Change-Id: I12e7515f7dd04dd493c566ce85ed17f87e2563bb
2022-06-28feat(telemetry): ReworkPeter Mikus1-1/+8
Signed-off-by: Peter Mikus <pmikus@cisco.com> Change-Id: I0a84ce88b318c488ba2d519b20237c88b9f9f1e6
2022-04-07Revert "feat(core): Add dpdk log level"Peter Mikus1-2/+2
This reverts commit 22bfd741614145d86751df2d61ff77af9db63627. Reason for revert: OMFG this patch is causing 90% perf degradation on AWS Change-Id: Id081f61ae849678b6b877fbf03309c4b1b0c6df6 Signed-off-by: Peter Mikus <pmikus@cisco.com>
2022-03-21feat(core): Add dpdk log levelPeter Mikus1-2/+2
Signed-off-by: Peter Mikus <pmikus@cisco.com> Change-Id: I8af9bae81ec83a3195ae83febd978882ebc2474d
2021-12-01feat(Performance): Add 2M/1G hugepagespmikus1-2/+3
+ Add ability to switch between hugepages. Signed-off-by: pmikus <pmikus@cisco.com> Change-Id: I84d8eae28ed414a32e5ba82e6c9ed10d7f0ef9cb
2021-05-28Framework: Telemetry retakepmikus1-0/+3
Signed-off-by: pmikus <pmikus@cisco.com> Change-Id: I2f019a083916aec9f7816266f6ad5b92dcc31fa0
2021-03-22FIX: LXC imagepmikus1-2/+2
Signed-off-by: pmikus <pmikus@cisco.com> Change-Id: I73f7a1095b7cee52fade8a31285e405727548394
2020-12-17PAPI: Cache connected client instancesVratko Polak1-17/+101
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>
2020-11-16Ansible: Remove vpp_device snergster dependencypmikus1-7/+7
Signed-off-by: pmikus <pmikus@cisco.com> Change-Id: I145a4b5511141f1e2b4e387daa358e32dd2c8015
2020-09-22Framework: Heapsize configurationpmikus1-4/+5
- https://gerrit.fd.io/r/c/vpp/+/28829 - https://gerrit.fd.io/r/c/vpp/+/28896 - ip6 to be added later Signed-off-by: pmikus <pmikus@cisco.com> Change-Id: I7b03b8ace5c5c7582d4a2f66bfd788a3ec80a916
2020-04-22FIX: NF_density MAC addressesPeter Mikus1-16/+16
Signed-off-by: Peter Mikus <pmikus@cisco.com> Change-Id: I0e773060c344fda7b06937a81a53863a96a4373a
2020-01-29IPSEC: Change plugin namingPeter Mikus1-1/+1
https://gerrit.fd.io/r/c/vpp/+/24574 Signed-off-by: Peter Mikus <pmikus@cisco.com> Change-Id: Ic2b7c925ceba1e16de87c64003ecceeea69c681c
2020-01-10Autogen: Generate also NIC drivers.Vratko Polak1-1/+1
+ Disallowed -avf- (or -rdma-) as "template" suites. + GBP suite switched to DPDK driver in repo. + Each NIC has its own list of supported drivers, in Constants. + Updated tag expressions for daily jobs: + Feature, ipsec, memif, scale, srv6, tunnels, vhost and vts are tested only with vfio-pci. + Other (base, dot1q, dot1ad) tested with all drivers. + Setup actions currently depend on driver, generated. - The performance_rdma action is trivial for now. - Several tests fail, to be fixed later, e.g. by performance_rdma. + Reconf tests are also supported. + Added DRV_VFIO_PCI tags missing, mainly in density tests. - Vhost suites (density, reconf) are failing, but suites look good. - TCP suites do not support NIC drivers yet. - DPDK obviously not supported. + Use Python 3 in regenerate scripts. + Fix typos binded => bound. + File open modes set either u"rt" or u"wt" everywhere. + Remove a trailing space in an environment variable name. Change-Id: I290470675dc5c9e88b2eaa5ab6285ecd9ed7827a Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2020-01-13FIX: NF_density testsPeter Mikus1-1/+1
+ Because arp->neigbor was so important to do. Signed-off-by: Peter Mikus <pmikus@cisco.com> Change-Id: I552e175b7555ebf5053d7994c0c9173c0c96fc58
2020-01-09FIX: Container testPeter Mikus1-8/+15
+ We should check if container is UP + We should adjust privileges. Change-Id: I3f604b7b9740943b4fd3b0574c18d2729e88b816 Signed-off-by: Peter Mikus <pmikus@cisco.com>
2019-12-16Remove supervisord dependency from containersPeter Mikus1-126/+34
+ Startup config stream-line Signed-off-by: Peter Mikus <pmikus@cisco.com> Change-Id: Ia12e48202a5fc88461d3d24ac9b9599e7175b1d8
2019-12-11FIX: NF_Density pipeline ip4 profilePeter Mikus1-3/+3
- Because they are failing Signed-off-by: Peter Mikus <pmikus@cisco.com> Change-Id: I55c51bd3e4673414e5394cc6ba990257574ab002
2019-12-11Introduce VPP-IPsec container tests.Ludovit Mikula1-10/+229
Change-Id: Ie64d662e81879bd52785e0188450d998bf056bda Signed-off-by: Ludovit Mikula <ludovit.mikula@pantheon.tech>
2019-12-05Deal with some "pylint: disable=" commentsVratko Polak1-5/+16
+ When possible, fix the violation. + Else, add a comment: + An explanation (if not already present) and keep disable. + A TODO (if not already present) and remove the disable. - This makes tox job report more pylint violations, but any such violation is fixable and should be fixed. - Although some need to be fixed in VPP, such as enum item long names. Change-Id: I48604b5eda070083d79dff1439620dbd9e798e1f Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2019-11-28Python3: resources and librariesJan Gelety1-328/+362
Change-Id: I1392c06b1d64f62b141d24c0d42a8e36913b15e2 Signed-off-by: Jan Gelety <jgelety@cisco.com>
2019-11-15FIX: LXC Container directory initializationPeter Mikus1-0/+2
Change-Id: I7d2f81e03316410073b2b3ff7d6d754f5ac90df7 Signed-off-by: Peter Mikus <pmikus@cisco.com>
2019-11-12FIX: Supervisor initializationPeter Mikus1-22/+21
- Next step: remove supervisor entirely Signed-off-by: Peter Mikus <pmikus@cisco.com> Change-Id: I7ff5d76168d5d0f77e335975552638efac77cfc8
2019-11-11FIX: Paths for new Docker imagesPeter Mikus1-8/+9
Signed-off-by: Peter Mikus <pmikus@cisco.com> Change-Id: Ia39ff6445e4029a78d008d5690661610a1e9ed50
2019-10-07FIX: LXC tmpfs mountPeter Mikus1-5/+11
- Should fix the read/write to socket for LXC Signed-off-by: Peter Mikus <pmikus@cisco.com> Change-Id: I56a84145cf2fb95742423789681ca2e24ddf0c98
2019-09-18Fix errors found by pylintVratko Polak1-6/+4
Change-Id: I0c2bee5a1ff8ad29e47c4f947388e7b97dd17fff Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2019-09-13FIX: Pylint + Container mountPeter Mikus1-2/+5
- Mount is affecting only LXC container Signed-off-by: Peter Mikus <pmikus@cisco.com> Change-Id: I84140ea5e48120792fc84182a97eb7d06c954a84
2019-09-10Refactor getting telemetryPeter Mikus1-3/+21
+ Ability to get stats from CNF via SocketPAPI - Remove obsolete functions Signed-off-by: Peter Mikus <pmikus@cisco.com> Change-Id: I4d1b32a7279244592be96644e4f8a530c4f29a15
2019-07-23Add support for aarch64 container imagesjuraj.linkes1-3/+10
Change-Id: I84f13d7139a6e5f7004426018c2d27425c5fa97e Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>
2019-07-17Use PapiSocketProvider for most PAPI callsVratko Polak1-0/+2
Ticket: CSIT-1541 Ticket: VPP-1722 Ticket: CSIT-1546 + Increase timeout to hide x520 slownes of show hardware detail. - Install sshpass and update ssh client in virl bootstrap. + Added TODOs to remove when CSIT-1546 is fixed. + Enable default socksvr on any startup conf. + Improve OptionString init and repr. - The non-socket executor still kept for stats. + Remove everything unrelated to stats from non-socket executor. - Remove some debug-loooking calls to avoid failures. TODO: Introduce proper parsing to the affected keywords. + Reduce logging from PAPI code to level INFO. - Needs https://gerrit.fd.io/r/20660 to fully work. + Change default values for LocalExecution.run() + Return code check enabled by default. Code is more readable when rc!=0 is allowed explicitly, and the test code will now detect unexpected failures. + Logging disabled by default. Output XML is large already. Important logging can be enabled explicitly. + Restore alphabetical order in common.sh functions. Change-Id: I05882cb6b620ad14638f7404b5ad38c7a5de9e6c Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2019-07-11CSIT-1477: add 1n_tx2 VPP Devicejuraj.linkes1-1/+2
- add 1n_tx2 testbed - update VF reservation to meet 1n_tx2 testbed needs - update ansible with 1n_tx2 Change-Id: Ia075a913d4859f537fd0e6bff731ea88aff01dd9 Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>
2019-06-04VAT-to-PAPI: ContainerUtilsTibor Frank1-18/+19
Change-Id: Id186c3c280a6b876b8212e01b261ad8c65e5f40c Signed-off-by: Tibor Frank <tifrank@cisco.com>
2019-03-04Rename to Constants.pyVratko Polak1-1/+1
Motivation: Make the constants available also for Robot. Restraint: Robotframework user guide says: Because variable files are always imported using a file system path, creating them as classes has some restrictions: Python classes must have the same name as the module they are located. Change-Id: I638ef3fe045db132e366de2e2699638b8637e45e Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2019-02-04CSIT-1416 Remove installation of vpp from containersPeter Mikus1-32/+18
Use parent system (Host, Container) installation of VPP. This will save the internet bandwith by skip installing of prerequisites packages. It will also skip dpkg install and simplify the process of initializing VPP inside container. Previosly initialization of VPP in container takes about 55s. With this patch it is reduced to 2-3s. This patch removes the bloated VOLUME creation between container sidecars (a.k.a nested container) and fixes the hugepage allocation. Change-Id: Ifa2be532edb77354657e1b84568bdc34993b00d0 Signed-off-by: Peter Mikus <pmikus@cisco.com>
2019-01-30FIX: Put back sleep to wait for container to boot.Peter Mikus1-1/+1
Change-Id: Id63fc8670c7816cc71d8d6d8704ff7f1adf3db65 Signed-off-by: Peter Mikus <pmikus@cisco.com>
2019-01-30CSIT-1409 Implement pipeline configuration for l2bd with memif/ip4.Peter Mikus1-61/+147
Change-Id: I7463d47a9d65069332eb2a288ff44f4499a8a467 Signed-off-by: Peter Mikus <pmikus@cisco.com>
2019-01-28CSIT-1403 Implement multichain configuration for l2bd with memif/ip4.Peter Mikus1-53/+47
Change-Id: Ia87156b2ba826eb0a9a93d756b9765c7373ca6ce Signed-off-by: Peter Mikus <pmikus@cisco.com>
2019-01-23Fix PyLint errorsTibor Frank1-9/+9
Change-Id: I5a369f4b9f9b478375fda4a634bf57cc9623e972 Signed-off-by: Tibor Frank <tifrank@cisco.com>
2019-01-23VPP_Device - add baseline tests - part IIb)Jan Gelety1-21/+69
CSIT-1372 Add following baseline tests to VPP_Device: - ip4 eth2p-ethip4-ip4base-eth-2memif-1dcr-dev - ip6 eth2p-ethip6-ip6base-eth-2memif-1dcr-dev - l2bd eth2p-eth-l2bdbasemaclrn-eth-2memif-1dcr-dev - l2xc eth2p-eth-l2xcbase-eth-2memif-1dcr-dev Change-Id: Ic4a3a01b62d800c528a9c9371891dcc26b875220 Signed-off-by: Jan Gelety <jgelety@cisco.com>
2019-01-09CSIT-1389 Refactor current keywords for multichaining - CNFPeter Mikus1-35/+19
- Add ability to create matrix of containers (chains x nodeness) - Change default Docker image to csit-dut - Use new resource mapping function Change-Id: Iaac0f2efc99146fbaef0b33dc71b38770610023d Signed-off-by: Peter Mikus <pmikus@cisco.com>
2018-09-05Fix various pylint violationsVratko Polak1-6/+2
+ SchedUtils.py: Do not use `len(SEQUENCE)` to determine if a sequence is empty + VatHistory.py: Do not use `len(SEQUENCE)` to determine if a sequence is empty + VppCounters.py: Do not use `len(SEQUENCE)` to determine if a sequence is empty + Memif.py: ++ Do not use `len(SEQUENCE)` to determine if a sequence is empty ++ Either all return statements in a function should return an expression, or none of them should. ++ Update :return: on possible None. + Classify.py: Unnecessary "else" after "return" + ContainerUtils.py: Useless super delegation in method '__init__' + CpuUtils.py: Do not use `len(SEQUENCE)` to determine if a sequence is empty + DropRateSearch.py: Either all return statements in a function should return an expression, or none of them should. + IPv4NodeAddress.py: Do not use `len(SEQUENCE)` to determine if a sequence is empty ++ Also improve docstrings. + IPv4Setup.py: Useless super delegation in method '__init__' + IPv6Setup.py: Do not use `len(SEQUENCE)` to determine if a sequence is empty ++ Also improve docstrings. + IPv6Setup.py: standard import "from ipaddress import IPv6Network" should be placed before "from robot.api import logger" + MacSwap.py: Trailing newlines + NATUtil.py: Do not use `len(SEQUENCE)` to determine if a sequence is empty + NodePath.py: Unnecessary "else" after "return" + Tap.py: Do not use `len(SEQUENCE)` to determine if a sequence is empty + topology.py: Either all return statements in a function should return an expression, or none of them should. + topology.py: Unnecessary "else" after "return" ++ Do not use `len(SEQUENCE)` to determine if a sequence is empty ++ Improve docstrings + DUTSetup.py: Do not use `len(SEQUENCE)` to determine if a sequence is empty ++ Also do not compare int(ret_code) just to access zero-ness. + ssh.py: Do not use `len(SEQUENCE)` to determine if a sequence is empty + InterfaceUtil.py: Unnecessary "else" after "return" Change-Id: Iba4244aa79661ee7df15fed5c7c6dbf04dfa88b2 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2018-08-10CSIT-1156 Create container memif tests for 2-node topologyPeter Mikus1-1/+4
CSIT-1155 Implement container memif KWs for 2-node topology Change-Id: I4fc7bcab499a0b8a8594114d3f331b0d9610bf9d Signed-off-by: Peter Mikus <pmikus@cisco.com>
2018-08-10CSIT-1193 De-duplicate bootstrap scripts into onePeter Mikus1-3/+6
- DPDK and VPP bootstrap merged into one (ligato will follow). - Added more error detections - Added topo-cleanup.py to cleanup TB before and after test. - Remove installation of VPP Change-Id: I7a86117eb03cbe4ee8fde47baeed58bc86c0dfb2 Signed-off-by: Peter Mikus <pmikus@cisco.com>
2018-07-27FIX: Interface up handlingPeter Mikus1-2/+10
- Increase timeout when trying to check interface (this is useful if there are multiple interfaces and dump command take more than TIMEOUT/NR_IF which is happening quite often). - Reverse the order of applying MTU and interface UP to try to prevent API overload during interface initialization phase. Change-Id: I4e8623963d15b3c0d202172b4c58c43a972bb9cb Signed-off-by: Peter Mikus <pmikus@cisco.com> (cherry picked from commit 584345da4f7330f7517e5defd894b4995c2b57b0)