aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/python/ContainerUtils.py
AgeCommit message (Collapse)AuthorFilesLines
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)
2018-06-08CSIT-1081 Container VPP configuration refactorPeter Mikus1-28/+89
Adopt code for various topology configurations. Change-Id: Iaf9d7995ab8cd06da0c56c5e5664d57d19e74d7c Signed-off-by: Peter Mikus <pmikus@cisco.com>
2018-05-14CSIT-1036 Expose option to install DKMS in containerPeter Mikus1-9/+3
Expose DKMS installation as suite variable. This will allow to use DPDK driver for future tests. Change-Id: I38fd014c8cf6f4bf42881af2196cadc679fe53e0 Signed-off-by: Peter Mikus <pmikus@cisco.com>
2018-05-12CSIT-1079 Add multiple mount dirs into containerPeter Mikus1-49/+58
Pass the list of mount dirs into container LXC/Docker Change-Id: Ie80062563955273791ab63e156bf0b369e5be649 Signed-off-by: Peter Mikus <pmikus@cisco.com>
2018-04-25Fix warnings reported by gen_doc.shVratko Polak1-6/+6
+ Docstring warnings fixed. + Multiline param descriptions indented by 4 spaces. - Except the PacketVerifier.py one - I have tried several quote-like blocks, nothing works. - Rst warnings not fixed. - How can I fix them? They refer to temporarily created files. + Other improvements: + Python lines no longer than 80 characters. + :return: -> :returns: + Notes before params. + :raises + closing colon after exception class. + Description is a sentence. + Present tense in conditional sentences. + Bumped copyright year in edited files. Change-Id: I462c194eeecb666dc146e26858486a07c990be9b Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2018-04-20FIX: Restart VPP in container before each testPeter Mikus1-0/+6
Change-Id: Iec7045aadc0675e04b8c74cbe28f8b3f193bcf1f Signed-off-by: Peter Mikus <pmikus@cisco.com>
2018-04-19FIX: Memif tests failingPeter Mikus1-0/+3
- CSIT-1049 Change-Id: I073c1e6d8cdda835fbb955cbf79e982bc2cc6228 Signed-off-by: Peter Mikus <pmikus@cisco.com>
2018-04-05FIX: Change plugin default behavior for Container tests Peter Mikus1-2/+1
Looks like disabling all plugins in container leaving only memif_plugin.so results into issue that could lead into lost of SSH connectivity to TB or in better case to not handling any traffic. This fix is supose to return previous behavior for Container instance of VPP. vpp_config.add_plugin('disable', 'dpdk_plugin.so') Change-Id: I7bca6c73c0f5aaf30d423b90ff7c2d2c38d54700 Signed-off-by: Peter Mikus <pmikus@cisco.com>
2018-04-05Revert "FIX: Change plugin default behavior for Container tests"Peter Mikus1-1/+2
This reverts commit c754789176b1a3ca00a129d3d207aa5a6bad7c27. Change-Id: Ic1bbe8fac0d98f41aa8b1b57da0c7a147111340b Signed-off-by: Peter Mikus <pmikus@cisco.com>
2018-04-05FIX: Change plugin default behavior for Container testsPeter Mikus1-2/+1
Looks like disabling all plugins in container leaving only memif_plugin.so results into issue that could lead into lost of SSH connectivity to TB or in better case to not handling any traffic. This fix is supose to return previous behavior for Container instance of VPP. Change-Id: Ie8b3ce2e35a40c8f3498e490abb6967cd4dd912a Signed-off-by: Peter Mikus <pmikus@cisco.com>
2018-03-30Change the default plugin behavior in perf testsPeter Mikus1-1/+2
Currently we are selectively disabling plugins by creating list of disabled plugins for performance tests. Thanks to the new API in VPP we can revert the logic to selectivly enable plugins. This is more stable for future onboarding of new plugins into VPP. Change-Id: Ibdd56d6097230d095a304bbb6984b565d9428f51 Signed-off-by: Peter Mikus <pmikus@cisco.com>
2018-03-08CSIT-989 Fix: Reflect latest memif API changesPeter Mikus1-8/+14
Change-Id: I0c9cb073a42a8b4b7e573023e784ab9e72d0ad55 Signed-off-by: Peter Mikus <pmikus@cisco.com>
2018-02-23FIX: LXC/DOCKER exclusive CPUPeter Mikus1-0/+17
By default the cpuset cgroup is using exclusive CPU/MEM. When Docker container is initialized a new cgroup /docker or /lxc is created under cpuset parent tree. This newly created cgroup is inheriting parent setting for cpu/mem exclusive parameter and thus cannot be overriden within /docker or /lxc cgroup. This patch is supposed to set cpu/mem exclusive parameter for both parent and subgroup. Change-Id: I14b44db3f77c842756ec78aa60df7aca508d9545 Signed-off-by: Peter Mikus <pmikus@cisco.com>