#8408 Nightly test failure in test_integration/test_replica_promotion.py::TestUnprivilegedUserPermissions::test_client_enrollment_by_unprivileged_user
Closed: fixed by frenaud. Opened by frenaud.

Issue

The nightly test test_integration/test_replica_promotion.py::TestUnprivilegedUserPermissions::test_client_enrollment_by_unprivileged_user is failing since the merge of PR #4724 ipa-join: implement calls to JSON-RPC endpoints

See the PR testing_master_previous #282, with the following logs:

self = <ipatests.test_integration.test_replica_promotion.TestUnprivilegedUserPermissions object at 0x7fe25929f990>
    def test_client_enrollment_by_unprivileged_user(self):
        replica = self.replicas[0]
        result1 = replica.run_command(['ipa-client-install',
                                       '-p', self.username,
                                       '-w', self.new_password,
                                       '--domain', replica.domain.name,
                                       '--realm', replica.domain.realm, '-U',
                                       '--server', self.master.hostname],
                                      raiseonerr=False)
>       assert_error(result1, "No permission to join this host", 1)
test_integration/test_replica_promotion.py:143: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
result = <pytest_multihost.transport.SSHCommand object at 0x7fe2591e8590>
pattern = 'No permission to join this host', returncode = 1
    def assert_error(result, pattern, returncode=None):
        """
        Assert that ``result`` command failed and its stderr contains ``pattern``.
        ``pattern`` may be a ``str`` or a ``re.Pattern`` (regular expression).
        """
        if hasattr(pattern, "search"):  # re pattern
            assert pattern.search(result.stderr_text), \
                f"pattern {pattern} not found in stderr {result.stderr_text!r}"
        else:
>           assert pattern in result.stderr_text, \
                f"substring {pattern!r} not found in stderr {result.stderr_text!r}"
E           AssertionError: substring 'No permission to join this host' not found in stderr 'Client hostname: replica0.ipa.test\nRealm: IPA.TEST\nDNS Domain: ipa.test\nIPA Server: master.ipa.test\nBaseDN: dc=ipa,dc=test\nSynchronizing time\nNo SRV records of NTP servers found and no NTP server or pool address was provided.\nAttempting to sync time with chronyc.\nProcess chronyc waitsync failed to sync time!\nUnable to sync time with chrony server, assuming the time is in sync. Please check that 123 UDP port is opened, and any time server is on network.\nSuccessfully retrieved CA cert\n    Subject:     CN=Certificate Authority,O=IPA.TEST\n    Issuer:      CN=Certificate Authority,O=IPA.TEST\n    Valid From:  2020-07-10 00:16:03\n    Valid Until: 2040-07-10 00:16:03\n\nJoining realm failed: \nInstallation failed. Rolling back changes.\nDisabling client Kerberos and LDAP configurations\nnscd daemon is not installed, skip configuration\nnslcd daemon is not installed, skip configuration\nClient uninstall complete.\nThe ipa-client-install command failed. See /var/log/ipaclient-install.log for more information\n'
E           assert 'No permission to join this host' in 'Client hostname: replica0.ipa.test\nRealm: IPA.TEST\nDNS Domain: ipa.test\nIPA Server: master.ipa.test\nBaseDN: dc=ip... uninstall complete.\nThe ipa-client-install command failed. See /var/log/ipaclient-install.log for more information\n'
E            +  where 'Client hostname: replica0.ipa.test\nRealm: IPA.TEST\nDNS Domain: ipa.test\nIPA Server: master.ipa.test\nBaseDN: dc=ip... uninstall complete.\nThe ipa-client-install command failed. See /var/log/ipaclient-install.log for more information\n' = <pytest_multihost.transport.SSHCommand object at 0x7fe2591e8590>.stderr_text
pytest_ipa/integration/tasks.py:1668: AssertionError

@carbenium could you have a look?

@frenaud Working on it (in case you want to assign the issue)

Metadata Update from @frenaud:
- Issue assigned to carbenium

@carbenium thanks, assigned!

https://github.com/freeipa/freeipa/pull/4910

master:

  • 4696644f3fc996da2a88d91d29af11a56ecae0c3 ipa-join: extract common JSON-RPC response parsing to common function
  • 6dfefc97459376a2ac4fb079a19b49e70056fd14 ipa-join: handle JSON-RPC error codes

Metadata Update from @frenaud:
- Issue close_status updated to: fixed
- Issue status updated to: Closed (was: Open)

Metadata