|
13 | 13 | from sssd_test_framework.roles.ipa import IPA |
14 | 14 | from sssd_test_framework.roles.ldap import LDAP |
15 | 15 | from sssd_test_framework.roles.samba import Samba |
16 | | -from sssd_test_framework.topology import KnownTopologyGroup |
| 16 | +from sssd_test_framework.topology import KnownTopology, KnownTopologyGroup |
17 | 17 |
|
18 | 18 |
|
19 | 19 | @pytest.mark.parametrize("value, expected", [(None, 31), (15, 31), (60, 60)]) |
@@ -106,3 +106,36 @@ def test_failover__connect_using_ipv4_second_family(client: Client, provider: Ge |
106 | 106 |
|
107 | 107 | result = client.tools.id(user.name) |
108 | 108 | assert result is not None, f"{user.name} was not found, SSSD did not switch to IPv4 family!" |
| 109 | + |
| 110 | + |
| 111 | +@pytest.mark.importance("low") |
| 112 | +@pytest.mark.topology(KnownTopology.IPA) |
| 113 | +@pytest.mark.topology(KnownTopology.LDAP) |
| 114 | +@pytest.mark.parametrize("sssd_service_user", ("root", "sssd")) |
| 115 | +@pytest.mark.require( |
| 116 | + lambda client, sssd_service_user: (client.features["ipv6"]), |
| 117 | + "SSSD was built without support for running under non-root", |
| 118 | +) |
| 119 | +def test_failover__connect_using_ipv6_only(client: Client, provider: GenericProvider, sssd_service_user: str): |
| 120 | + """ |
| 121 | + :title: Only attempt to resolve hostnames to IPv6 address |
| 122 | + :setup: |
| 123 | + 1. Create user |
| 124 | + 2. Set family_order to "ipv6_only" |
| 125 | + 3. Set IPv6 address in /etc/hosts |
| 126 | + 4. Start SSSD |
| 127 | + :steps: |
| 128 | + 1. Resolve user |
| 129 | + :expectedresults: |
| 130 | + 1. SSSD goes online and the user is resolved |
| 131 | + :customerscenario: False |
| 132 | + """ |
| 133 | + user = provider.user("testuser").add() |
| 134 | + client.sssd.domain["lookup_family_order"] = "ipv6_only" |
| 135 | + ipv6_add = provider.host.conn.run("ip -6 addr show scope global | grep -oE 'inet6 [0-9a-f:]+' | awk '{print $2}'") |
| 136 | + print(ipv6_add.stdout) |
| 137 | + client.fs.append("/etc/hosts", f"{ipv6_add.stdout}\t{provider.host.hostname}") |
| 138 | + client.sssd.start() |
| 139 | + |
| 140 | + result = client.tools.id(user.name) |
| 141 | + assert result is not None, f"{user.name} was not found, SSSD did not switch to IPv6 family!" |
0 commit comments