config/sysinv/sysinv/sysinv/sysinv/tests/api
Lucas Ratusznei Fonseca ff3a5d2341 Update network interface puppet resource gen to support dual-stack
This change updates the puppet resource generation logic for network
interfaces to suport dual-stack.

Change summary
==============

- Aliases / labels
    Previously, each alias was associated to a specific network. Now,
    since more than one address can be associated to the same network,
    the aliases are also associated to addresses. The label name is
    now :<network_id>-<address_id>. The network_id is 0 if there's no
    network associated with the alias, that's the case for the base
    interface config or for the cases where the address is not
    associated to a network. The address_id is 0 if there's no address
    associated with the alias, which is the case for the base config
    and for when there's no static address associated to the network,
    i.e. the method is DHCP.

- Static addresses
    Previously, interfaces with more than one static addresses not
    associated with pools would be assigned just the first one. Now,
    an alias config is generated for each address.

- CentOS compatibility
    All the code related to CentOS was removed.

- Duplex-direct mode
    Duplex-direct systems must have DAD disabled for management and
    cluster-host interfaces. The disable DAD command is now generated
    only in the base interface config for all types of interfaces.

- Address pool names
    The change assumes a new standard for address pool names, they will
    be formed by the old names with the suffixes '-ipv4' or '-ipv6'.
    For example: management-ipv4, management-ipv6. Since other systems
    that rely on the previous standard are not yet upgraded to
    dual-stack, the constant DUAL_STACK_COMPATIBILITY_MODE was
    introduced to control resource generation and validation logic in a
    way that assures compatibility. The constant and the conditionals
    will be removed once the other modules are updated. The
    conditionals were implemented more as a way to highlight which
    parts of the code are affected and make the changes easier in the
    future.

- Tests / DB Base
    The base class for tests was updated to generate more consistent
    database states. Mixins for dual-stack cases were also created.

- Tests / Interface
    Most of the test functions in the class InterfaceTestCase caused
    unnecessary updates to the database and the context. The class
    was splitted in two, the first one containing the tests that only
    need the basic database setup (controller, one interface
    associated with the mgmt network), and the other one for the tests
    that need different setups.
    A new fixture was created to test multiple system configs (IPv4,
    IPv6, dual-stack), which inspects in detail the generated
    hieradata. The tests associated with the InterfaceHostV6TestCase
    were moved to the new fixture, and new ones were introduced.

Test plan
=========

Online setup tests
------------------

System: STANDARD (2 Controllers, 2 Storages, 1 Worker)

Stack setups:
  - Single stack IPv4
  - Single stack IPv6
  - Dual stack, primary IPv4
  - Dual stack, primary IPv6

[PASS] TC1 - Online setup, regular ethernet
    mgmt0 (Ethernet) -> PXEBOOT, MGMT, CLUSTER_HOST

[PASS] TC2 - Online setup, VLAN over ethernet
    pxe0 (Ethernet) -> PXEBOOT
    mgmt0 (VLAN over pxe0) -> MGMT, CLUSTER_HOST

[PASS] TC3 - Online setup, bondig
    mgmt0 (Bond) -> PXEBOOT, MGMT, CLUSTER_HOST

[PASS] TC4 - Online setup, VLAN over bonding
    pxe0 (Bond) -> PXEBOOT
    mgmt0 (VLAN over pxe0) -> MGMT, CLUSTER_HOST

Installation tests
------------------

Systems:
  - AIO-SX
  - AIO-DX
  - Standard (2 Controllers, 2 Storages, 1 Worker)

[PASS] TC5 - Regular installation on VirtualBox, IPv4

[PASS] TC6 - Regular installation on VirtualBox, IPv6

Data interface tests
--------------------

System: AIO-DX

Setup:
    data0 -> Ethernet, ipv4_mode=static, ipv6_mode=static
    data1 -> VLAN on top of data0, ipv4_mode=static, ipv6_mode=static

For both interfaces, the following was performed:

[PASS] TC7 - Add static IPv4 address
[PASS] TC8 - Add static IPv6 address
[PASS] TC9 - Add IPv4 route
[PASS] TC10 - Add IPv6 route
[PASS] TC11 - Remove IPv4 route
[PASS] TC12 - Remove IPv6 route
[PASS] TC13 - Remove static IPv4 address
[PASS] TC14 - Remove static IPv6 address

Story: 2011027
Task: 49815
Change-Id: Ib9603cbd444b21aefbcd417780a12c079f3d0b0f
Signed-off-by: Lucas Ratusznei Fonseca <lucas.ratuszneifonseca@windriver.com>
2024-04-16 16:23:15 -03:00
..
data Add inactive param for import-load on sysinv api 2023-03-07 11:54:48 +00:00
__init__.py StarlingX open source release updates 2018-05-31 07:35:52 -07:00
base.py Deprecate old policy engine and restrict access 2022-08-10 11:18:38 -03:00
test_acl.py Adding pylint checking to the sysinv unit tests 2020-01-14 08:32:12 -06:00
test_address.py Fixed address interface foreign key inconsistency 2020-03-03 16:50:12 -05:00
test_address_pool.py Update network interface puppet resource gen to support dual-stack 2024-04-16 16:23:15 -03:00
test_base.py StarlingX open source release updates 2018-05-31 07:35:52 -07:00
test_certificate.py Fix install of bundled certificates 2023-01-09 14:34:14 +00:00
test_controller_fs.py Add ZeroMQ RPC backend 2022-11-24 13:28:01 -03:00
test_device.py Allow de-provisioning of FEC device 2022-04-06 06:02:42 -04:00
test_device_image.py Add ZeroMQ RPC backend 2022-11-24 13:28:01 -03:00
test_device_label.py Allow applying device image with non-device label 2020-07-28 11:27:28 -04:00
test_dns.py Add ZeroMQ RPC backend 2022-11-24 13:28:01 -03:00
test_helm_charts.py Add ZeroMQ RPC backend 2022-11-24 13:28:01 -03:00
test_host.py Merge "Steps for kube-upgrade-storage" 2024-01-09 22:25:06 +00:00
test_host_fs.py Add ZeroMQ RPC backend 2022-11-24 13:28:01 -03:00
test_interface.py Update network interface puppet resource gen to support dual-stack 2024-04-16 16:23:15 -03:00
test_interface_datanetwork.py Support data network assignment on an unlocked host 2021-02-02 07:52:28 -05:00
test_interface_network.py New RESTful API and DB schema for network to address-pools. 2024-03-06 07:34:14 -03:00
test_kernel.py low latency updates host-kernel-modify 2023-07-11 11:01:12 -04:00
test_kube_cluster.py Config API for Kubernetes cluster access information 2021-03-01 07:29:12 -06:00
test_kube_cmd_version.py sysinv: update constant name to be more accurate 2021-10-01 09:14:05 -06:00
test_kube_host_upgrade.py Skip storage nodes when listing per-host k8s upgrade info 2021-11-18 13:42:18 -06:00
test_kube_rootca_update.py Merge "Add pod health status to kube rootca check" 2023-11-17 21:11:52 +00:00
test_kube_upgrade.py Update apps during Kubernetes upgrade 2024-02-13 15:01:54 -03:00
test_kube_version.py Allow recovery from failures during kubernetes upgrade 2019-12-11 14:30:50 -06:00
test_label.py Revert "Add functionality for intel gpu device plugin" 2023-09-22 13:32:12 +00:00
test_load.py Prevent delete imported iso if subcloud isn't upgraded 2023-10-12 01:50:49 -03:00
test_network.py Update network interface puppet resource gen to support dual-stack 2024-04-16 16:23:15 -03:00
test_network_addrpool.py Update network interface puppet resource gen to support dual-stack 2024-04-16 16:23:15 -03:00
test_ntp.py Add ZeroMQ RPC backend 2022-11-24 13:28:01 -03:00
test_oamnetwork.py Update network interface puppet resource gen to support dual-stack 2024-04-16 16:23:15 -03:00
test_partition.py Fix partition status stuck in creating/modifying/deleting 2023-09-12 08:49:17 -03:00
test_ptp.py [PTP dual NIC config] Patching PTP configuration 2022-02-10 11:51:08 -03:00
test_ptp_instance.py Added synce4l configuration support 2023-02-21 09:37:28 -05:00
test_ptp_instance_update.py Fix PTP parameter deletion error messages 2022-02-22 07:04:01 -05:00
test_ptp_interface.py Fix PTP parameter deletion error messages 2022-02-22 07:04:01 -05:00
test_ptp_parameter.py [PTP dual NIC config] Manage parameter life-cycle 2022-01-19 13:18:24 -03:00
test_pv.py Refactor unit test API example to use unit test mixins 2020-01-15 13:02:22 -06:00
test_root.py StarlingX open source release updates 2018-05-31 07:35:52 -07:00
test_route.py Disallow route config during upgrade states 2022-05-05 10:39:45 -04:00
test_sensorgroup.py Align API types with database types 2022-07-14 18:27:31 -03:00
test_service_parameters.py Update dns hostname validation for host-records 2024-01-05 00:03:46 -05:00
test_storage_backends.py Allow configurable ceph storage backend network 2021-05-07 14:31:39 +03:00
test_storage_tier.py Merge "Removal of K8S Ansible Pb from Conductor init" 2024-01-19 13:33:26 +00:00
test_system.py Add validation to AIO-SX to AIO-DX migration command 2023-05-22 13:39:26 -04:00
test_upgrade.py Add ZeroMQ RPC backend 2022-11-24 13:28:01 -03:00
utils.py StarlingX open source release updates 2018-05-31 07:35:52 -07:00