[prev in list] [next in list] [prev in thread] [next in thread] 

List:       sssd-devel
Subject:    =?utf-8?b?W1NTU0Rd?= [sssd PR#5481][synchronized] Tests: 'getent group ldapgroupname' doesn't show
From:       aborah-sudo <sssd-github-notification () fedorahosted ! org>
Date:       2021-01-29 6:35:57
Message-ID: gh-SSSD/sssd-5481-2021-6323078d-377e-41c4-8cc0-827ea60cb40d () sssd-github-notification ! fedorahosted ! org
[Download RAW message or body]

[Attachment #2 (unknown)]

   URL: https://github.com/SSSD/sssd/pull/5481
Author: aborah-sudo
 Title: #5481: Tests: 'getent group ldapgroupname' doesn't show
Action: synchronized

To pull the PR as Git branch:
git remote add ghsssd https://github.com/SSSD/sssd
git fetch ghsssd pull/5481/head:pr5481
git checkout pr5481

["sssd-pr-5481.patch" (sssd-pr-5481.patch)]

From 1ecd5b1bba7200ba3b4fddadcc16056b1834ac5e Mon Sep 17 00:00:00 2001
From: aborah <aborah@localhost.localdomain>
Date: Fri, 29 Jan 2021 11:58:10 +0530
Subject: [PATCH] Tests: getent group ldapgroupname doesn't show any LDAP users

'getent group ldapgroupname' doesn't show
any LDAP users or some LDAP users when
'rfc2307bis' schema is used with SSSD

Verifies: https://github.com/SSSD/sssd/issues/5311

Bug: https://bugzilla.redhat.com/show_bug.cgi?id=1817122
---
 src/tests/multihost/alltests/test_misc.py | 127 +++++++++++++++++++++-
 1 file changed, 125 insertions(+), 2 deletions(-)

diff --git a/src/tests/multihost/alltests/test_misc.py b/src/tests/multihost/alltests/test_misc.py
index 8149496e37..fc364bfa55 100644
--- a/src/tests/multihost/alltests/test_misc.py
+++ b/src/tests/multihost/alltests/test_misc.py
@@ -2,10 +2,9 @@
 
 from __future__ import print_function
 import re
-import pytest
 import time
 import subprocess
-from sssd.testlib.common.utils import sssdTools
+import pytest
 from sssd.testlib.common.expect import pexpect_ssh
 from sssd.testlib.common.exceptions import SSHLoginException
 from sssd.testlib.common.utils import sssdTools, LdapOperations
@@ -225,3 +224,127 @@ def test_0005_getent_homedirectory(self, multihost,
         cmd = multihost.client[0].run_command(cmd_getent)
         ldap_inst.del_dn(user_dn)
         assert ":/:" not in cmd.stdout_text
+
+    @pytest.mark.tier1
+    def test_0006_getent_group(self, multihost,
+                               backupsssdconf):
+        """
+        @Title: 'getent group ldapgroupname' doesn't
+        show any LDAP users or some LDAP users when
+        'rfc2307bis' schema is used with SSSD
+
+        Bugzilla: 1817122
+        """
+        tools = sssdTools(multihost.client[0])
+        domain_name = tools.get_domain_section_name()
+        client = sssdTools(multihost.client[0])
+        domain_params = {'ldap_schema': 'rfc2307bis',
+                         'ldap_group_member': 'uniquemember'}
+        client.sssd_conf(f'domain/{domain_name}', domain_params)
+        multihost.client[0].service_sssd('restart')
+        ldap_uri = 'ldap://%s' % (multihost.master[0].sys_hostname)
+        ds_rootdn = 'cn=Directory Manager'
+        ds_rootpw = 'Secret123'
+        ldap_inst = LdapOperations(ldap_uri, ds_rootdn, ds_rootpw)
+        user_info = {
+            'ou': 'Unit1'.encode('utf-8'),
+            'objectClass': [b'top', b'organizationalUnit']}
+        user_dn = 'ou=Unit1,dc=example,dc=test'
+        (_, _) = ldap_inst.add_entry(user_info, user_dn)
+        user_info = {
+            'ou': 'Unit2'.encode('utf-8'),
+            'objectClass': [b'top', b'organizationalUnit']}
+        user_dn = 'ou=Unit2,ou=Unit1,dc=example,dc=test'
+        (_, _) = ldap_inst.add_entry(user_info, user_dn)
+        user_info = {
+            'ou': 'users'.encode('utf-8'),
+            'objectClass': [b'top', b'organizationalUnit']}
+        user_dn = 'ou=users,ou=Unit2,ou=Unit1,dc=example,dc=test'
+        (_, _) = ldap_inst.add_entry(user_info, user_dn)
+        user_info = {
+            'ou': 'posix_groups'.encode('utf-8'),
+            'objectClass': [b'top', b'organizationalUnit']}
+        user_dn = 'ou=posix_groups,ou=Unit2,' \
+                  'ou=Unit1,dc=example,dc=test'
+        (_, _) = ldap_inst.add_entry(user_info, user_dn)
+        user_info = {
+            'ou': 'netgroups'.encode('utf-8'),
+            'objectClass': [b'top', b'organizationalUnit']}
+        user_dn = 'ou=netgroups,dc=example,dc=test'
+        (_, _) = ldap_inst.add_entry(user_info, user_dn)
+        user_info = {
+            'ou': 'services'.encode('utf-8'),
+            'objectClass': [b'top', b'organizationalUnit']}
+        user_dn = 'ou=services,dc=example,dc=test'
+        (_, _) = ldap_inst.add_entry(user_info, user_dn)
+        user_info = {
+            'ou': 'sudoers'.encode('utf-8'),
+            'objectClass': [b'top', b'organizationalUnit']}
+        user_dn = 'ou=sudoers,dc=example,dc=test'
+        (_, _) = ldap_inst.add_entry(user_info, user_dn)
+        for i in range(1, 9):
+            user_info = {
+                'cn': f'user-{i}'.encode('utf-8'),
+                'objectClass': [b'top', b'posixAccount'],
+                'uid': f'user-{i}'.encode('utf-8'),
+                'uidNumber': f'1111{i}'.encode('utf-8'),
+                'gidNumber': f'1111{i}'.encode('utf-8'),
+                'homeDirectory': f'/home/user-{i}'.encode('utf-8')}
+            user_dn = f'cn=user-{i},ou=users,ou=Unit2,' \
+                      f'ou=Unit1,dc=example,dc=test'
+            (_, _) = ldap_inst.add_entry(user_info, user_dn)
+        for i in range(1, 9):
+            user_info = {
+                'cn': f'user-{i}'.encode('utf-8'),
+                'objectClass': [b'top', b'posixGroup'],
+                'gidNumber': f'1111{i}'.encode('utf-8')}
+            user_dn = f'cn=user-{i},ou=posix_groups,' \
+                      f'ou=Unit2,ou=Unit1,dc=example,dc=test'
+            (_, _) = ldap_inst.add_entry(user_info, user_dn)
+        user_info = {
+            'cn': 'group-1'.encode('utf-8'),
+            'objectClass': [b'top', b'posixGroup', b'groupOfUniqueNames'],
+            'gidNumber': '20001'.encode('utf-8'),
+            'uniqueMember': [
+                b'cn=user-1,ou=users,ou=unit2,ou=unit1,dc=example,dc=test',
+                b'cn=user-3,ou=users,ou=unit2,ou=unit1,dc=example,dc=test',
+                b'cn=user-5,ou=users,ou=unit2,ou=unit1,dc=example,dc=test',
+                b'cn=user-7,ou=users,ou=unit2,ou=unit1,dc=example,dc=test']}
+        user_dn = 'cn=group-1,ou=posix_groups,ou=Unit2,' \
+                  'ou=Unit1,dc=example,dc=test'
+        (_, _) = ldap_inst.add_entry(user_info, user_dn)
+
+        user_info = {
+            'cn': 'group-2'.encode('utf-8'),
+            'objectClass': [b'top', b'posixGroup', b'groupOfUniqueNames'],
+            'gidNumber': '20002'.encode('utf-8'),
+            'uniqueMember': [
+                b'cn=user-2,ou=users,ou=unit2,ou=unit1,dc=example,dc=test',
+                b'cn=user-4,ou=users,ou=unit2,ou=unit1,dc=example,dc=test',
+                b'cn=user-6,ou=users,ou=unit2,ou=unit1,dc=example,dc=test',
+                b'cn=user-8,ou=users,ou=unit2,ou=unit1,dc=example,dc=test']}
+        user_dn = 'cn=group-2,ou=posix_groups,ou=Unit2,' \
+                  'ou=Unit1,dc=example,dc=test'
+        (_, _) = ldap_inst.add_entry(user_info, user_dn)
+        time.sleep(3)
+        cmd = multihost.client[0].run_command("getent group "
+                                              "group-2@example1")
+        assert "group-2@example1:*:20002:user-2@example1," \
+               "user-4@example1,user-6@example1," \
+               "user-8@example1" in cmd.stdout_text
+        for i in range(1, 9):
+            ldap_inst.del_dn(f'cn=user-{i},ou=posix_groups,ou=Unit2,'
+                             f'ou=Unit1,dc=example,dc=test')
+        for i in range(1, 3):
+            ldap_inst.del_dn(f'cn=group-{i},ou=posix_groups,ou=Unit2,'
+                             f'ou=Unit1,dc=example,dc=test')
+        for i in range(1, 9):
+            ldap_inst.del_dn(f'cn=user-{i},ou=users,ou=Unit2,'
+                             f'ou=Unit1,dc=example,dc=test')
+        for dn_dn in ['netgroups', 'services', 'sudoers']:
+            ldap_inst.del_dn(f'ou={dn_dn},dc=example,dc=test')
+        for dn_dn in ['ou=posix_groups,ou=Unit2,ou=Unit1,dc=example,dc=test',
+                      'ou=users,ou=Unit2,ou=Unit1,dc=example,dc=test',
+                      'ou=Unit2,ou=Unit1,dc=example,dc=test',
+                      'ou=Unit1,dc=example,dc=test']:
+            ldap_inst.del_dn(dn_dn)

[Attachment #4 (text/plain)]

_______________________________________________
sssd-devel mailing list -- sssd-devel@lists.fedorahosted.org
To unsubscribe send an email to sssd-devel-leave@lists.fedorahosted.org
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedorahosted.org/archives/list/sssd-devel@lists.fedorahosted.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic