report.html

Report generated on 29-May-2019 at 22:42:00 by pytest-html v1.20.0

Environment

389-ds-base 1.4.1.2-2.fc30
Packages {'pytest': '4.5.0', 'py': '1.7.0', 'pluggy': '0.12.0'}
Platform Linux-5.0.16-300.fc30.x86_64-x86_64-with-fedora-30-Thirty
Plugins {'html': '1.20.0', 'metadata': '1.8.0'}
Python 3.7.3
cyrus-sasl 2.1.27-0.6rc7.fc30
nspr 4.21.0-1.fc30
nss 3.44.0-2.fc30
openldap 2.4.47-1.fc30

Summary

1278 tests ran in 12222.88 seconds.

1201 passed, 5 skipped, 52 failed, 2 errors, 19 expected failures, 6 unexpected passes

Results

Result Test Duration Links
Error suites/basic/basic_test.py::test_basic_anonymous_search::setup 0.03
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7bb2ed470>

@pytest.fixture(scope="module")
def create_users(topology_st):
"""Add users to the default suffix
"""

users = UserAccounts(topology_st.standalone, DEFAULT_SUFFIX)
user_names = ["Directory", "Server", "389", "lib389", "pytest"]

log.info('Adding 5 test users')
for name in user_names:
users.create(properties={
'uid': name,
'sn': name,
'cn': name,
'uidNumber': '1000',
'gidNumber': '1000',
'homeDirectory': '/home/%s' % name,
'mail': '%s@example.com' % name,
> 'userpassword': 'pass%s' % name,
})

suites/basic/basic_test.py:924:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.7/site-packages/lib389/_mapped_object.py:1117: in create
return co.create(rdn, properties, self._basedn)
/usr/local/lib/python3.7/site-packages/lib389/_mapped_object.py:891: in create
return self._create(rdn, properties, basedn, ensure=False)
/usr/local/lib/python3.7/site-packages/lib389/_mapped_object.py:866: in _create
self._instance.add_ext_s(e, serverctrls=self._server_controls, clientctrls=self._client_controls, escapehatch='i am sure')
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:195: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:416: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:751: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:758: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:331: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/local/lib64/python3.7/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7bb2ed4e0>
func = <built-in method result4 of LDAP object at 0x7fc7bb9c9e90>
args = (30, 1, -1, 0, 0, 0), kwargs = {}, diagnostic_message_success = None
exc_type = None, exc_value = None, exc_traceback = None

def _ldap_call(self,func,*args,**kwargs):
"""
Wrapper method mainly for serializing calls into OpenLDAP libs
and trace logs
"""
self._ldap_object_lock.acquire()
if __debug__:
if self._trace_level>=1:
self._trace_file.write('*** %s %s - %s\n%s\n' % (
repr(self),
self._uri,
'.'.join((self.__class__.__name__,func.__name__)),
pprint.pformat((args,kwargs))
))
if self._trace_level>=9:
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
diagnostic_message_success = None
try:
try:
> result = func(*args,**kwargs)
E ldap.NO_SUCH_OBJECT: {'desc': 'No such object'}

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:315: NO_SUCH_OBJECT
Error suites/basic/basic_test.py::test_search_original_type::setup 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7bb2ed470>

@pytest.fixture(scope="module")
def create_users(topology_st):
"""Add users to the default suffix
"""

users = UserAccounts(topology_st.standalone, DEFAULT_SUFFIX)
user_names = ["Directory", "Server", "389", "lib389", "pytest"]

log.info('Adding 5 test users')
for name in user_names:
users.create(properties={
'uid': name,
'sn': name,
'cn': name,
'uidNumber': '1000',
'gidNumber': '1000',
'homeDirectory': '/home/%s' % name,
'mail': '%s@example.com' % name,
> 'userpassword': 'pass%s' % name,
})

suites/basic/basic_test.py:924:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.7/site-packages/lib389/_mapped_object.py:1117: in create
return co.create(rdn, properties, self._basedn)
/usr/local/lib/python3.7/site-packages/lib389/_mapped_object.py:891: in create
return self._create(rdn, properties, basedn, ensure=False)
/usr/local/lib/python3.7/site-packages/lib389/_mapped_object.py:866: in _create
self._instance.add_ext_s(e, serverctrls=self._server_controls, clientctrls=self._client_controls, escapehatch='i am sure')
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:195: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:416: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:751: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:758: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:331: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/local/lib64/python3.7/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7bb2ed4e0>
func = <built-in method result4 of LDAP object at 0x7fc7bb9c9e90>
args = (30, 1, -1, 0, 0, 0), kwargs = {}, diagnostic_message_success = None
exc_type = None, exc_value = None, exc_traceback = None

def _ldap_call(self,func,*args,**kwargs):
"""
Wrapper method mainly for serializing calls into OpenLDAP libs
and trace logs
"""
self._ldap_object_lock.acquire()
if __debug__:
if self._trace_level>=1:
self._trace_file.write('*** %s %s - %s\n%s\n' % (
repr(self),
self._uri,
'.'.join((self.__class__.__name__,func.__name__)),
pprint.pformat((args,kwargs))
))
if self._trace_level>=9:
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
diagnostic_message_success = None
try:
try:
> result = func(*args,**kwargs)
E ldap.NO_SUCH_OBJECT: {'desc': 'No such object'}

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:315: NO_SUCH_OBJECT
Failed suites/basic/basic_test.py::test_basic_import_export 0.77
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7bb2ed470>
import_example_ldif = None

def test_basic_import_export(topology_st, import_example_ldif):
"""Test online and offline LDIF import & export

:id: 3ceeea11-9235-4e20-b80e-7203b2c6e149

:setup: Standalone instance

:steps:
1. Generate a test ldif (50k entries)
2. Import test ldif file using Online import.
3. Import test ldif file using Offline import (ldif2db).
4. Export test ldif file using Online export.
5. Export test ldif file using Offline export (db2ldif).
6. Cleanup - Import the Example LDIF for the other tests in this suite

:expectedresults:
1. Test ldif file creation should PASS.
2. Online import should PASS.
3. Offline import should PASS.
4. Online export should PASS.
5. Offline export should PASS.
6. Cleanup should PASS.
"""

log.info('Running test_basic_import_export...')

#
# Test online/offline LDIF imports
#
topology_st.standalone.start()

# Generate a test ldif (50k entries)
log.info("Generating LDIF...")
ldif_dir = topology_st.standalone.get_ldif_dir()
import_ldif = ldif_dir + '/basic_import.ldif'
dbgen(topology_st.standalone, 50000, import_ldif, DEFAULT_SUFFIX)

# Online
log.info("Importing LDIF online...")
r = ImportTask(topology_st.standalone)
r.import_suffix_from_ldif(ldiffile=import_ldif, suffix=DEFAULT_SUFFIX)

# Good as place as any to quick test the task has some expected attributes
if ds_is_newer('1.4.1.2'):
> assert r.present('nstaskcreated')
E AssertionError: assert False
E + where False = <bound method DSLdapObject.present of <lib389.tasks.ImportTask object at 0x7fc7bb5148d0>>('nstaskcreated')
E + where <bound method DSLdapObject.present of <lib389.tasks.ImportTask object at 0x7fc7bb5148d0>> = <lib389.tasks.ImportTask object at 0x7fc7bb5148d0>.present

suites/basic/basic_test.py:273: AssertionError
Failed suites/basic/basic_test.py::test_basic_backup 2.01
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7bb2ed470>
import_example_ldif = None

def test_basic_backup(topology_st, import_example_ldif):
"""Tests online and offline backup and restore

:id: 0e9d91f8-8748-40b6-ab03-fbd1998eb985

:setup: Standalone instance and import example.ldif

:steps:
1. Test online backup using db2bak.
2. Test online restore using bak2db.
3. Test offline backup using db2bak.
4. Test offline restore using bak2db.

:expectedresults:
1. Online backup should PASS.
2. Online restore should PASS.
3. Offline backup should PASS.
4. Offline restore should PASS.
"""

log.info('Running test_basic_backup...')

backup_dir = topology_st.standalone.get_bak_dir() + '/backup_test'

# Test online backup
try:
topology_st.standalone.tasks.db2bak(backup_dir=backup_dir,
args={TASK_WAIT: True})
except ValueError:
log.fatal('test_basic_backup: Online backup failed')
assert False

# Test online restore
try:
topology_st.standalone.tasks.bak2db(backup_dir=backup_dir,
> args={TASK_WAIT: True})

suites/basic/basic_test.py:360:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.tasks.Tasks object at 0x7fc7bb2e72e8>
backup_dir = '/var/lib/dirsrv/slapd-standalone1/bak/backup_test'
args = {'wait': True}

def bak2db(self, backup_dir=None, args=None):
'''
Restore a backup by creating a bak2db task

@param bename - 'commonname'/'cn' of the backend (e.g. 'userRoot')
@param backup_dir - backup directory
@param args - is a dictionary that contains modifier of the task
wait: True/[False] - If True, waits for the completion of
the task before to return

@return exit code

@raise ValueError: if bename name does not exist
'''

# Checking the parameters
if not backup_dir:
raise ValueError("You must specify a backup directory")
if not os.path.exists(backup_dir):
> raise ValueError("Backup file (%s) does not exist" % backup_dir)
E ValueError: Backup file (/var/lib/dirsrv/slapd-standalone1/bak/backup_test) does not exist

/usr/local/lib/python3.7/site-packages/lib389/tasks.py:583: ValueError

During handling of the above exception, another exception occurred:

topology_st = <lib389.topologies.TopologyMain object at 0x7fc7bb2ed470>
import_example_ldif = None

def test_basic_backup(topology_st, import_example_ldif):
"""Tests online and offline backup and restore

:id: 0e9d91f8-8748-40b6-ab03-fbd1998eb985

:setup: Standalone instance and import example.ldif

:steps:
1. Test online backup using db2bak.
2. Test online restore using bak2db.
3. Test offline backup using db2bak.
4. Test offline restore using bak2db.

:expectedresults:
1. Online backup should PASS.
2. Online restore should PASS.
3. Offline backup should PASS.
4. Offline restore should PASS.
"""

log.info('Running test_basic_backup...')

backup_dir = topology_st.standalone.get_bak_dir() + '/backup_test'

# Test online backup
try:
topology_st.standalone.tasks.db2bak(backup_dir=backup_dir,
args={TASK_WAIT: True})
except ValueError:
log.fatal('test_basic_backup: Online backup failed')
assert False

# Test online restore
try:
topology_st.standalone.tasks.bak2db(backup_dir=backup_dir,
args={TASK_WAIT: True})
except ValueError:
log.fatal('test_basic_backup: Online restore failed')
> assert False
E assert False

suites/basic/basic_test.py:363: AssertionError
------------------------------ Captured log call -------------------------------
ERROR lib389:tasks.py:555 Error: backup task backup_05292019_192536 exited with -1 CRITICAL tests.suites.basic.basic_test:basic_test.py:362 test_basic_backup: Online restore failed
Failed suites/basic/basic_test.py::test_basic_acl 0.04
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7bb2ed470>
import_example_ldif = None

def test_basic_acl(topology_st, import_example_ldif):
"""Run some basic access control (ACL) tests

:id: 4f4e705f-32f4-4065-b3a8-2b0c2525798b

:setup: Standalone instance

:steps:
1. Add two test users USER1_DN and USER2_DN.
2. Add an aci that denies USER1 from doing anything.
3. Set the default anonymous access for USER2.
4. Try searching entries using USER1.
5. Try searching entries using USER2.
6. Try searching entries using root dn.
7. Cleanup - delete test users and test ACI.

:expectedresults:
1. Test Users should be added.
2. ACI should be added.
3. This operation should PASS.
4. USER1 should not be able to search anything.
5. USER2 should be able to search everything except password.
6. RootDN should be allowed to search everything.
7. Cleanup should PASS.
"""

"""Run some basic access control(ACL) tests"""
log.info('Running test_basic_acl...')

DENY_ACI = ensure_bytes('(targetattr = "*")(version 3.0;acl "deny user";deny (all)(userdn = "ldap:///%s");)' % USER1_DN)

#
# Add two users
#
try:
topology_st.standalone.add_s(Entry((USER1_DN,
{'objectclass': "top extensibleObject".split(),
'sn': '1',
'cn': 'user 1',
'uid': 'user1',
> 'userpassword': PASSWORD})))

suites/basic/basic_test.py:440:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

args = (dn: uid=user1,dc=example,dc=com
cn: u
cn: s
cn: e
cn: r
cn:: IA==
cn: 1
objectclass: top
objectclass: extensibleObjec...: p
userpassword: a
userpassword: s
userpassword: s
userpassword: w
userpassword: o
userpassword: r
userpassword: d

,)
kwargs = {}
c_stack = [FrameInfo(frame=<frame at 0x55b93e48a728, file '/usr/local/lib/python3.7/site-packages/lib389/__init__.py', line 195,...87, function='_hookexec', code_context=[' return self._inner_hookexec(hook, methods, kwargs)\n'], index=0), ...]
frame = FrameInfo(frame=<frame at 0x55b93e3e3e98, file '/export/tests/suites/basic/basic_test.py', line 444, code test_basic_a...test_basic_acl', code_context=[" 'userpassword': PASSWORD})))\n"], index=0)
ent = dn: uid=user1,dc=example,dc=com
cn: u
cn: s
cn: e
cn: r
cn:: IA==
cn: 1
objectclass: top
objectclass: extensibleObject...rd: p
userpassword: a
userpassword: s
userpassword: s
userpassword: w
userpassword: o
userpassword: r
userpassword: d



def inner(*args, **kwargs):
if name in [
'add_s',
'bind_s',
'delete_s',
'modify_s',
'modrdn_s',
'rename_s',
'sasl_interactive_bind_s',
'search_s',
'search_ext_s',
'simple_bind_s',
'unbind_s',
'getEntry',
] and not ('escapehatch' in kwargs and kwargs['escapehatch'] == 'i am sure'):
c_stack = inspect.stack()
frame = c_stack[1]

warnings.warn(DeprecationWarning("Use of raw ldap function %s. This will be removed in a future release. "
"Found in: %s:%s" % (name, frame.filename, frame.lineno)))
# Later, we will add a sleep here to make it even more painful.
# Finally, it will raise an exception.
elif 'escapehatch' in kwargs:
kwargs.pop('escapehatch')

if name == 'result':
objtype, data = f(*args, **kwargs)
# data is either a 2-tuple or a list of 2-tuples
# print data
if data:
if isinstance(data, tuple):
return objtype, Entry(data)
elif isinstance(data, list):
# AD sends back these search references
# if objtype == ldap.RES_SEARCH_RESULT and \
# isinstance(data[-1],tuple) and \
# not data[-1][0]:
# print "Received search reference: "
# pprint.pprint(data[-1][1])
# data.pop() # remove the last non-entry element

return objtype, [Entry(x) for x in data]
else:
raise TypeError("unknown data type %s returned by result" %
type(data))
else:
return objtype, data
elif name.startswith('add'):
# the first arg is self
# the second and third arg are the dn and the data to send
# We need to convert the Entry into the format used by
# python-ldap
ent = args[0]
if isinstance(ent, Entry):
> return f(ent.dn, ent.toTupleList(), *args[2:])

/usr/local/lib/python3.7/site-packages/lib389/__init__.py:195:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7bb2ed4e0>
dn = 'uid=user1,dc=example,dc=com'
modlist = [('objectclass', [b'top', b'extensibleObject']), ('sn', [b'1']), ('cn', [b'user 1']), ('uid', [b'user1']), ('userpassword', [b'password'])]

def add_s(self,dn,modlist):
> return self.add_ext_s(dn,modlist,None,None)

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:430:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

args = ('uid=user1,dc=example,dc=com', [('objectclass', [b'top', b'extensibleObject']), ('sn', [b'1']), ('cn', [b'user 1']), ('uid', [b'user1']), ('userpassword', [b'password'])], None, None)
kwargs = {}, ent = 'uid=user1,dc=example,dc=com'

def inner(*args, **kwargs):
if name in [
'add_s',
'bind_s',
'delete_s',
'modify_s',
'modrdn_s',
'rename_s',
'sasl_interactive_bind_s',
'search_s',
'search_ext_s',
'simple_bind_s',
'unbind_s',
'getEntry',
] and not ('escapehatch' in kwargs and kwargs['escapehatch'] == 'i am sure'):
c_stack = inspect.stack()
frame = c_stack[1]

warnings.warn(DeprecationWarning("Use of raw ldap function %s. This will be removed in a future release. "
"Found in: %s:%s" % (name, frame.filename, frame.lineno)))
# Later, we will add a sleep here to make it even more painful.
# Finally, it will raise an exception.
elif 'escapehatch' in kwargs:
kwargs.pop('escapehatch')

if name == 'result':
objtype, data = f(*args, **kwargs)
# data is either a 2-tuple or a list of 2-tuples
# print data
if data:
if isinstance(data, tuple):
return objtype, Entry(data)
elif isinstance(data, list):
# AD sends back these search references
# if objtype == ldap.RES_SEARCH_RESULT and \
# isinstance(data[-1],tuple) and \
# not data[-1][0]:
# print "Received search reference: "
# pprint.pprint(data[-1][1])
# data.pop() # remove the last non-entry element

return objtype, [Entry(x) for x in data]
else:
raise TypeError("unknown data type %s returned by result" %
type(data))
else:
return objtype, data
elif name.startswith('add'):
# the first arg is self
# the second and third arg are the dn and the data to send
# We need to convert the Entry into the format used by
# python-ldap
ent = args[0]
if isinstance(ent, Entry):
return f(ent.dn, ent.toTupleList(), *args[2:])
else:
> return f(*args, **kwargs)

/usr/local/lib/python3.7/site-packages/lib389/__init__.py:197:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7bb2ed4e0>
dn = 'uid=user1,dc=example,dc=com'
modlist = [('objectclass', [b'top', b'extensibleObject']), ('sn', [b'1']), ('cn', [b'user 1']), ('uid', [b'user1']), ('userpassword', [b'password'])]
serverctrls = None, clientctrls = None

def add_ext_s(self,dn,modlist,serverctrls=None,clientctrls=None):
msgid = self.add_ext(dn,modlist,serverctrls,clientctrls)
> resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:416:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

args = (2,), kwargs = {'all': 1, 'timeout': -1}

def inner(*args, **kwargs):
if name in [
'add_s',
'bind_s',
'delete_s',
'modify_s',
'modrdn_s',
'rename_s',
'sasl_interactive_bind_s',
'search_s',
'search_ext_s',
'simple_bind_s',
'unbind_s',
'getEntry',
] and not ('escapehatch' in kwargs and kwargs['escapehatch'] == 'i am sure'):
c_stack = inspect.stack()
frame = c_stack[1]

warnings.warn(DeprecationWarning("Use of raw ldap function %s. This will be removed in a future release. "
"Found in: %s:%s" % (name, frame.filename, frame.lineno)))
# Later, we will add a sleep here to make it even more painful.
# Finally, it will raise an exception.
elif 'escapehatch' in kwargs:
kwargs.pop('escapehatch')

if name == 'result':
objtype, data = f(*args, **kwargs)
# data is either a 2-tuple or a list of 2-tuples
# print data
if data:
if isinstance(data, tuple):
return objtype, Entry(data)
elif isinstance(data, list):
# AD sends back these search references
# if objtype == ldap.RES_SEARCH_RESULT and \
# isinstance(data[-1],tuple) and \
# not data[-1][0]:
# print "Received search reference: "
# pprint.pprint(data[-1][1])
# data.pop() # remove the last non-entry element

return objtype, [Entry(x) for x in data]
else:
raise TypeError("unknown data type %s returned by result" %
type(data))
else:
return objtype, data
elif name.startswith('add'):
# the first arg is self
# the second and third arg are the dn and the data to send
# We need to convert the Entry into the format used by
# python-ldap
ent = args[0]
if isinstance(ent, Entry):
return f(ent.dn, ent.toTupleList(), *args[2:])
else:
return f(*args, **kwargs)
else:
> return f(*args, **kwargs)

/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7bb2ed4e0>, msgid = 2, all = 1
timeout = -1, resp_ctrl_classes = None

def result3(self,msgid=ldap.RES_ANY,all=1,timeout=None,resp_ctrl_classes=None):
resp_type, resp_data, resp_msgid, decoded_resp_ctrls, retoid, retval = self.result4(
msgid,all,timeout,
add_ctrls=0,add_intermediates=0,add_extop=0,
> resp_ctrl_classes=resp_ctrl_classes
)

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:751:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

args = (2, 1, -1)
kwargs = {'add_ctrls': 0, 'add_extop': 0, 'add_intermediates': 0, 'resp_ctrl_classes': None}

def inner(*args, **kwargs):
if name in [
'add_s',
'bind_s',
'delete_s',
'modify_s',
'modrdn_s',
'rename_s',
'sasl_interactive_bind_s',
'search_s',
'search_ext_s',
'simple_bind_s',
'unbind_s',
'getEntry',
] and not ('escapehatch' in kwargs and kwargs['escapehatch'] == 'i am sure'):
c_stack = inspect.stack()
frame = c_stack[1]

warnings.warn(DeprecationWarning("Use of raw ldap function %s. This will be removed in a future release. "
"Found in: %s:%s" % (name, frame.filename, frame.lineno)))
# Later, we will add a sleep here to make it even more painful.
# Finally, it will raise an exception.
elif 'escapehatch' in kwargs:
kwargs.pop('escapehatch')

if name == 'result':
objtype, data = f(*args, **kwargs)
# data is either a 2-tuple or a list of 2-tuples
# print data
if data:
if isinstance(data, tuple):
return objtype, Entry(data)
elif isinstance(data, list):
# AD sends back these search references
# if objtype == ldap.RES_SEARCH_RESULT and \
# isinstance(data[-1],tuple) and \
# not data[-1][0]:
# print "Received search reference: "
# pprint.pprint(data[-1][1])
# data.pop() # remove the last non-entry element

return objtype, [Entry(x) for x in data]
else:
raise TypeError("unknown data type %s returned by result" %
type(data))
else:
return objtype, data
elif name.startswith('add'):
# the first arg is self
# the second and third arg are the dn and the data to send
# We need to convert the Entry into the format used by
# python-ldap
ent = args[0]
if isinstance(ent, Entry):
return f(ent.dn, ent.toTupleList(), *args[2:])
else:
return f(*args, **kwargs)
else:
> return f(*args, **kwargs)

/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7bb2ed4e0>, msgid = 2, all = 1
timeout = -1, add_ctrls = 0, add_intermediates = 0, add_extop = 0
resp_ctrl_classes = None

def result4(self,msgid=ldap.RES_ANY,all=1,timeout=None,add_ctrls=0,add_intermediates=0,add_extop=0,resp_ctrl_classes=None):
if timeout is None:
timeout = self.timeout
> ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:758:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

args = (<built-in method result4 of LDAP object at 0x7fc7bb3e25a8>, 2, 1, -1, 0, 0, ...)
kwargs = {}

def inner(*args, **kwargs):
if name in [
'add_s',
'bind_s',
'delete_s',
'modify_s',
'modrdn_s',
'rename_s',
'sasl_interactive_bind_s',
'search_s',
'search_ext_s',
'simple_bind_s',
'unbind_s',
'getEntry',
] and not ('escapehatch' in kwargs and kwargs['escapehatch'] == 'i am sure'):
c_stack = inspect.stack()
frame = c_stack[1]

warnings.warn(DeprecationWarning("Use of raw ldap function %s. This will be removed in a future release. "
"Found in: %s:%s" % (name, frame.filename, frame.lineno)))
# Later, we will add a sleep here to make it even more painful.
# Finally, it will raise an exception.
elif 'escapehatch' in kwargs:
kwargs.pop('escapehatch')

if name == 'result':
objtype, data = f(*args, **kwargs)
# data is either a 2-tuple or a list of 2-tuples
# print data
if data:
if isinstance(data, tuple):
return objtype, Entry(data)
elif isinstance(data, list):
# AD sends back these search references
# if objtype == ldap.RES_SEARCH_RESULT and \
# isinstance(data[-1],tuple) and \
# not data[-1][0]:
# print "Received search reference: "
# pprint.pprint(data[-1][1])
# data.pop() # remove the last non-entry element

return objtype, [Entry(x) for x in data]
else:
raise TypeError("unknown data type %s returned by result" %
type(data))
else:
return objtype, data
elif name.startswith('add'):
# the first arg is self
# the second and third arg are the dn and the data to send
# We need to convert the Entry into the format used by
# python-ldap
ent = args[0]
if isinstance(ent, Entry):
return f(ent.dn, ent.toTupleList(), *args[2:])
else:
return f(*args, **kwargs)
else:
> return f(*args, **kwargs)

/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7bb2ed4e0>
func = <built-in method result4 of LDAP object at 0x7fc7bb3e25a8>
args = (2, 1, -1, 0, 0, 0), kwargs = {}, diagnostic_message_success = None
exc_type = None, exc_value = None, exc_traceback = None

def _ldap_call(self,func,*args,**kwargs):
"""
Wrapper method mainly for serializing calls into OpenLDAP libs
and trace logs
"""
self._ldap_object_lock.acquire()
if __debug__:
if self._trace_level>=1:
self._trace_file.write('*** %s %s - %s\n%s\n' % (
repr(self),
self._uri,
'.'.join((self.__class__.__name__,func.__name__)),
pprint.pformat((args,kwargs))
))
if self._trace_level>=9:
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
diagnostic_message_success = None
try:
try:
result = func(*args,**kwargs)
if __debug__ and self._trace_level>=2:
if func.__name__!="unbind_ext":
diagnostic_message_success = self._l.get_option(ldap.OPT_DIAGNOSTIC_MESSAGE)
finally:
self._ldap_object_lock.release()
except LDAPError as e:
exc_type,exc_value,exc_traceback = sys.exc_info()
try:
if 'info' not in e.args[0] and 'errno' in e.args[0]:
e.args[0]['info'] = strerror(e.args[0]['errno'])
except IndexError:
pass
if __debug__ and self._trace_level>=2:
self._trace_file.write('=> LDAPError - %s: %s\n' % (e.__class__.__name__,str(e)))
try:
> reraise(exc_type, exc_value, exc_traceback)

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:331:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

exc_type = <class 'ldap.NO_SUCH_OBJECT'>
exc_value = NO_SUCH_OBJECT({'desc': 'No such object'})
exc_traceback = <traceback object at 0x7fc7bbaa9088>

def reraise(exc_type, exc_value, exc_traceback):
"""Re-raise an exception given information from sys.exc_info()

Note that unlike six.reraise, this does not support replacing the
traceback. All arguments must come from a single sys.exc_info() call.
"""
# In Python 3, all exception info is contained in one object.
> raise exc_value

/usr/local/lib64/python3.7/site-packages/ldap/compat.py:44:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7bb2ed4e0>
func = <built-in method result4 of LDAP object at 0x7fc7bb3e25a8>
args = (2, 1, -1, 0, 0, 0), kwargs = {}, diagnostic_message_success = None
exc_type = None, exc_value = None, exc_traceback = None

def _ldap_call(self,func,*args,**kwargs):
"""
Wrapper method mainly for serializing calls into OpenLDAP libs
and trace logs
"""
self._ldap_object_lock.acquire()
if __debug__:
if self._trace_level>=1:
self._trace_file.write('*** %s %s - %s\n%s\n' % (
repr(self),
self._uri,
'.'.join((self.__class__.__name__,func.__name__)),
pprint.pformat((args,kwargs))
))
if self._trace_level>=9:
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
diagnostic_message_success = None
try:
try:
> result = func(*args,**kwargs)
E ldap.NO_SUCH_OBJECT: {'desc': 'No such object'}

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:315: NO_SUCH_OBJECT

During handling of the above exception, another exception occurred:

topology_st = <lib389.topologies.TopologyMain object at 0x7fc7bb2ed470>
import_example_ldif = None

def test_basic_acl(topology_st, import_example_ldif):
"""Run some basic access control (ACL) tests

:id: 4f4e705f-32f4-4065-b3a8-2b0c2525798b

:setup: Standalone instance

:steps:
1. Add two test users USER1_DN and USER2_DN.
2. Add an aci that denies USER1 from doing anything.
3. Set the default anonymous access for USER2.
4. Try searching entries using USER1.
5. Try searching entries using USER2.
6. Try searching entries using root dn.
7. Cleanup - delete test users and test ACI.

:expectedresults:
1. Test Users should be added.
2. ACI should be added.
3. This operation should PASS.
4. USER1 should not be able to search anything.
5. USER2 should be able to search everything except password.
6. RootDN should be allowed to search everything.
7. Cleanup should PASS.
"""

"""Run some basic access control(ACL) tests"""
log.info('Running test_basic_acl...')

DENY_ACI = ensure_bytes('(targetattr = "*")(version 3.0;acl "deny user";deny (all)(userdn = "ldap:///%s");)' % USER1_DN)

#
# Add two users
#
try:
topology_st.standalone.add_s(Entry((USER1_DN,
{'objectclass': "top extensibleObject".split(),
'sn': '1',
'cn': 'user 1',
'uid': 'user1',
'userpassword': PASSWORD})))
except ldap.LDAPError as e:
log.fatal('test_basic_acl: Failed to add test user ' + USER1_DN
> + ': error ' + e.message['desc'])
E AttributeError: 'NO_SUCH_OBJECT' object has no attribute 'message'

suites/basic/basic_test.py:443: AttributeError
Failed suites/basic/basic_test.py::test_basic_searches 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7bb2ed470>
import_example_ldif = None

def test_basic_searches(topology_st, import_example_ldif):
"""Tests basic search operations with filters.

:id: 426a59ff-49b8-4a70-b377-0c0634a29b6f

:setup: Standalone instance, add example.ldif to the database

:steps:
1. Execute search command while using different filters.
2. Check number of entries returned by search filters.

:expectedresults:
1. Search command should PASS.
2. Number of result entries returned should match number of the database entries according to the search filter.
"""

log.info('Running test_basic_searches...')

filters = (('(uid=scarter)', 1),
('(uid=tmorris*)', 1),
('(uid=*hunt*)', 4),
('(uid=*cope)', 2),
('(mail=*)', 150),
('(roomnumber>=4000)', 35),
('(roomnumber<=4000)', 115),
('(&(roomnumber>=4000)(roomnumber<=4500))', 18),
('(!(l=sunnyvale))', 120),
('(&(uid=t*)(l=santa clara))', 7),
('(|(uid=k*)(uid=r*))', 18),
('(|(uid=t*)(l=sunnyvale))', 50),
('(&(!(uid=r*))(ou=people))', 139),
('(&(uid=m*)(l=sunnyvale)(ou=people)(mail=*example*)(roomNumber=*))', 3),
('(&(|(uid=m*)(l=santa clara))(roomNumber=22*))', 5),
('(&(|(uid=m*)(l=santa clara))(roomNumber=22*)(!(roomnumber=2254)))', 4),)

for (search_filter, search_result) in filters:
try:
entries = topology_st.standalone.search_s(DEFAULT_SUFFIX,
ldap.SCOPE_SUBTREE,
> search_filter)

suites/basic/basic_test.py:592:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

args = ('dc=example,dc=com', 2, '(uid=scarter)'), kwargs = {}
c_stack = [FrameInfo(frame=<frame at 0x55b93e4985c8, file '/usr/local/lib/python3.7/site-packages/lib389/__init__.py', line 199,...87, function='_hookexec', code_context=[' return self._inner_hookexec(hook, methods, kwargs)\n'], index=0), ...]
frame = FrameInfo(frame=<frame at 0x55b93f650a38, file '/export/tests/suites/basic/basic_test.py', line 600, code test_basic_s...test_basic_searches', code_context=[' search_filter)\n'], index=0)

def inner(*args, **kwargs):
if name in [
'add_s',
'bind_s',
'delete_s',
'modify_s',
'modrdn_s',
'rename_s',
'sasl_interactive_bind_s',
'search_s',
'search_ext_s',
'simple_bind_s',
'unbind_s',
'getEntry',
] and not ('escapehatch' in kwargs and kwargs['escapehatch'] == 'i am sure'):
c_stack = inspect.stack()
frame = c_stack[1]

warnings.warn(DeprecationWarning("Use of raw ldap function %s. This will be removed in a future release. "
"Found in: %s:%s" % (name, frame.filename, frame.lineno)))
# Later, we will add a sleep here to make it even more painful.
# Finally, it will raise an exception.
elif 'escapehatch' in kwargs:
kwargs.pop('escapehatch')

if name == 'result':
objtype, data = f(*args, **kwargs)
# data is either a 2-tuple or a list of 2-tuples
# print data
if data:
if isinstance(data, tuple):
return objtype, Entry(data)
elif isinstance(data, list):
# AD sends back these search references
# if objtype == ldap.RES_SEARCH_RESULT and \
# isinstance(data[-1],tuple) and \
# not data[-1][0]:
# print "Received search reference: "
# pprint.pprint(data[-1][1])
# data.pop() # remove the last non-entry element

return objtype, [Entry(x) for x in data]
else:
raise TypeError("unknown data type %s returned by result" %
type(data))
else:
return objtype, data
elif name.startswith('add'):
# the first arg is self
# the second and third arg are the dn and the data to send
# We need to convert the Entry into the format used by
# python-ldap
ent = args[0]
if isinstance(ent, Entry):
return f(ent.dn, ent.toTupleList(), *args[2:])
else:
return f(*args, **kwargs)
else:
> return f(*args, **kwargs)

/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7bb2ed4e0>, base = 'dc=example,dc=com'
scope = 2, filterstr = '(uid=scarter)', attrlist = None, attrsonly = 0

def search_s(self,base,scope,filterstr=None,attrlist=None,attrsonly=0):
> return self.search_ext_s(base,scope,filterstr,attrlist,attrsonly,None,None,timeout=self.timeout)

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:854:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

args = ('dc=example,dc=com', 2, '(uid=scarter)', None, 0, None, ...)
kwargs = {'timeout': -1}
c_stack = [FrameInfo(frame=<frame at 0x55b93de0af38, file '/usr/local/lib/python3.7/site-packages/lib389/__init__.py', line 199,...neno=187, function='_multicall', code_context=[' res = hook_impl.function(*args)\n'], index=0), ...]
frame = FrameInfo(frame=<frame at 0x55b93f3d1188, file '/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py', line 854...xt=[' return self.search_ext_s(base,scope,filterstr,attrlist,attrsonly,None,None,timeout=self.timeout)\n'], index=0)

def inner(*args, **kwargs):
if name in [
'add_s',
'bind_s',
'delete_s',
'modify_s',
'modrdn_s',
'rename_s',
'sasl_interactive_bind_s',
'search_s',
'search_ext_s',
'simple_bind_s',
'unbind_s',
'getEntry',
] and not ('escapehatch' in kwargs and kwargs['escapehatch'] == 'i am sure'):
c_stack = inspect.stack()
frame = c_stack[1]

warnings.warn(DeprecationWarning("Use of raw ldap function %s. This will be removed in a future release. "
"Found in: %s:%s" % (name, frame.filename, frame.lineno)))
# Later, we will add a sleep here to make it even more painful.
# Finally, it will raise an exception.
elif 'escapehatch' in kwargs:
kwargs.pop('escapehatch')

if name == 'result':
objtype, data = f(*args, **kwargs)
# data is either a 2-tuple or a list of 2-tuples
# print data
if data:
if isinstance(data, tuple):
return objtype, Entry(data)
elif isinstance(data, list):
# AD sends back these search references
# if objtype == ldap.RES_SEARCH_RESULT and \
# isinstance(data[-1],tuple) and \
# not data[-1][0]:
# print "Received search reference: "
# pprint.pprint(data[-1][1])
# data.pop() # remove the last non-entry element

return objtype, [Entry(x) for x in data]
else:
raise TypeError("unknown data type %s returned by result" %
type(data))
else:
return objtype, data
elif name.startswith('add'):
# the first arg is self
# the second and third arg are the dn and the data to send
# We need to convert the Entry into the format used by
# python-ldap
ent = args[0]
if isinstance(ent, Entry):
return f(ent.dn, ent.toTupleList(), *args[2:])
else:
return f(*args, **kwargs)
else:
> return f(*args, **kwargs)

/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7bb2ed4e0>, base = 'dc=example,dc=com'
scope = 2, filterstr = '(uid=scarter)', attrlist = None, attrsonly = 0
serverctrls = None, clientctrls = None, timeout = -1, sizelimit = 0

def search_ext_s(self,base,scope,filterstr=None,attrlist=None,attrsonly=0,serverctrls=None,clientctrls=None,timeout=-1,sizelimit=0):
msgid = self.search_ext(base,scope,filterstr,attrlist,attrsonly,serverctrls,clientctrls,timeout,sizelimit)
> return self.result(msgid,all=1,timeout=timeout)[1]

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:848:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

args = (3,), kwargs = {'all': 1, 'timeout': -1}

def inner(*args, **kwargs):
if name in [
'add_s',
'bind_s',
'delete_s',
'modify_s',
'modrdn_s',
'rename_s',
'sasl_interactive_bind_s',
'search_s',
'search_ext_s',
'simple_bind_s',
'unbind_s',
'getEntry',
] and not ('escapehatch' in kwargs and kwargs['escapehatch'] == 'i am sure'):
c_stack = inspect.stack()
frame = c_stack[1]

warnings.warn(DeprecationWarning("Use of raw ldap function %s. This will be removed in a future release. "
"Found in: %s:%s" % (name, frame.filename, frame.lineno)))
# Later, we will add a sleep here to make it even more painful.
# Finally, it will raise an exception.
elif 'escapehatch' in kwargs:
kwargs.pop('escapehatch')

if name == 'result':
> objtype, data = f(*args, **kwargs)

/usr/local/lib/python3.7/site-packages/lib389/__init__.py:167:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7bb2ed4e0>, msgid = 3, all = 1
timeout = -1

def result(self,msgid=ldap.RES_ANY,all=1,timeout=None):
"""
result([msgid=RES_ANY [,all=1 [,timeout=None]]]) -> (result_type, result_data)

This method is used to wait for and return the result of an
operation previously initiated by one of the LDAP asynchronous
operation routines (e.g. search(), modify(), etc.) They all
returned an invocation identifier (a message id) upon successful
initiation of their operation. This id is guaranteed to be
unique across an LDAP session, and can be used to request the
result of a specific operation via the msgid parameter of the
result() method.

If the result of a specific operation is required, msgid should
be set to the invocation message id returned when the operation
was initiated; otherwise RES_ANY should be supplied.

The all parameter only has meaning for search() responses
and is used to select whether a single entry of the search
response should be returned, or to wait for all the results
of the search before returning.

A search response is made up of zero or more search entries
followed by a search result. If all is 0, search entries will
be returned one at a time as they come in, via separate calls
to result(). If all is 1, the search response will be returned
in its entirety, i.e. after all entries and the final search
result have been received.

For all set to 0, result tuples
trickle in (with the same message id), and with the result type
RES_SEARCH_ENTRY, until the final result which has a result
type of RES_SEARCH_RESULT and a (usually) empty data field.
When all is set to 1, only one result is returned, with a
result type of RES_SEARCH_RESULT, and all the result tuples
listed in the data field.

The method returns a tuple of the form (result_type,
result_data). The result_type is one of the constants RES_*.

See search() for a description of the search result's
result_data, otherwise the result_data is normally meaningless.

The result() method will block for timeout seconds, or
indefinitely if timeout is negative. A timeout of 0 will effect
a poll. The timeout can be expressed as a floating-point value.
If timeout is None the default in self.timeout is used.

If a timeout occurs, a TIMEOUT exception is raised, unless
polling (timeout = 0), in which case (None, None) is returned.
"""
> resp_type, resp_data, resp_msgid = self.result2(msgid,all,timeout)

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:740:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

args = (3, 1, -1), kwargs = {}

def inner(*args, **kwargs):
if name in [
'add_s',
'bind_s',
'delete_s',
'modify_s',
'modrdn_s',
'rename_s',
'sasl_interactive_bind_s',
'search_s',
'search_ext_s',
'simple_bind_s',
'unbind_s',
'getEntry',
] and not ('escapehatch' in kwargs and kwargs['escapehatch'] == 'i am sure'):
c_stack = inspect.stack()
frame = c_stack[1]

warnings.warn(DeprecationWarning("Use of raw ldap function %s. This will be removed in a future release. "
"Found in: %s:%s" % (name, frame.filename, frame.lineno)))
# Later, we will add a sleep here to make it even more painful.
# Finally, it will raise an exception.
elif 'escapehatch' in kwargs:
kwargs.pop('escapehatch')

if name == 'result':
objtype, data = f(*args, **kwargs)
# data is either a 2-tuple or a list of 2-tuples
# print data
if data:
if isinstance(data, tuple):
return objtype, Entry(data)
elif isinstance(data, list):
# AD sends back these search references
# if objtype == ldap.RES_SEARCH_RESULT and \
# isinstance(data[-1],tuple) and \
# not data[-1][0]:
# print "Received search reference: "
# pprint.pprint(data[-1][1])
# data.pop() # remove the last non-entry element

return objtype, [Entry(x) for x in data]
else:
raise TypeError("unknown data type %s returned by result" %
type(data))
else:
return objtype, data
elif name.startswith('add'):
# the first arg is self
# the second and third arg are the dn and the data to send
# We need to convert the Entry into the format used by
# python-ldap
ent = args[0]
if isinstance(ent, Entry):
return f(ent.dn, ent.toTupleList(), *args[2:])
else:
return f(*args, **kwargs)
else:
> return f(*args, **kwargs)

/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7bb2ed4e0>, msgid = 3, all = 1
timeout = -1

def result2(self,msgid=ldap.RES_ANY,all=1,timeout=None):
> resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all,timeout)

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:744:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

args = (3, 1, -1), kwargs = {}

def inner(*args, **kwargs):
if name in [
'add_s',
'bind_s',
'delete_s',
'modify_s',
'modrdn_s',
'rename_s',
'sasl_interactive_bind_s',
'search_s',
'search_ext_s',
'simple_bind_s',
'unbind_s',
'getEntry',
] and not ('escapehatch' in kwargs and kwargs['escapehatch'] == 'i am sure'):
c_stack = inspect.stack()
frame = c_stack[1]

warnings.warn(DeprecationWarning("Use of raw ldap function %s. This will be removed in a future release. "
"Found in: %s:%s" % (name, frame.filename, frame.lineno)))
# Later, we will add a sleep here to make it even more painful.
# Finally, it will raise an exception.
elif 'escapehatch' in kwargs:
kwargs.pop('escapehatch')

if name == 'result':
objtype, data = f(*args, **kwargs)
# data is either a 2-tuple or a list of 2-tuples
# print data
if data:
if isinstance(data, tuple):
return objtype, Entry(data)
elif isinstance(data, list):
# AD sends back these search references
# if objtype == ldap.RES_SEARCH_RESULT and \
# isinstance(data[-1],tuple) and \
# not data[-1][0]:
# print "Received search reference: "
# pprint.pprint(data[-1][1])
# data.pop() # remove the last non-entry element

return objtype, [Entry(x) for x in data]
else:
raise TypeError("unknown data type %s returned by result" %
type(data))
else:
return objtype, data
elif name.startswith('add'):
# the first arg is self
# the second and third arg are the dn and the data to send
# We need to convert the Entry into the format used by
# python-ldap
ent = args[0]
if isinstance(ent, Entry):
return f(ent.dn, ent.toTupleList(), *args[2:])
else:
return f(*args, **kwargs)
else:
> return f(*args, **kwargs)

/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7bb2ed4e0>, msgid = 3, all = 1
timeout = -1, resp_ctrl_classes = None

def result3(self,msgid=ldap.RES_ANY,all=1,timeout=None,resp_ctrl_classes=None):
resp_type, resp_data, resp_msgid, decoded_resp_ctrls, retoid, retval = self.result4(
msgid,all,timeout,
add_ctrls=0,add_intermediates=0,add_extop=0,
> resp_ctrl_classes=resp_ctrl_classes
)

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:751:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

args = (3, 1, -1)
kwargs = {'add_ctrls': 0, 'add_extop': 0, 'add_intermediates': 0, 'resp_ctrl_classes': None}

def inner(*args, **kwargs):
if name in [
'add_s',
'bind_s',
'delete_s',
'modify_s',
'modrdn_s',
'rename_s',
'sasl_interactive_bind_s',
'search_s',
'search_ext_s',
'simple_bind_s',
'unbind_s',
'getEntry',
] and not ('escapehatch' in kwargs and kwargs['escapehatch'] == 'i am sure'):
c_stack = inspect.stack()
frame = c_stack[1]

warnings.warn(DeprecationWarning("Use of raw ldap function %s. This will be removed in a future release. "
"Found in: %s:%s" % (name, frame.filename, frame.lineno)))
# Later, we will add a sleep here to make it even more painful.
# Finally, it will raise an exception.
elif 'escapehatch' in kwargs:
kwargs.pop('escapehatch')

if name == 'result':
objtype, data = f(*args, **kwargs)
# data is either a 2-tuple or a list of 2-tuples
# print data
if data:
if isinstance(data, tuple):
return objtype, Entry(data)
elif isinstance(data, list):
# AD sends back these search references
# if objtype == ldap.RES_SEARCH_RESULT and \
# isinstance(data[-1],tuple) and \
# not data[-1][0]:
# print "Received search reference: "
# pprint.pprint(data[-1][1])
# data.pop() # remove the last non-entry element

return objtype, [Entry(x) for x in data]
else:
raise TypeError("unknown data type %s returned by result" %
type(data))
else:
return objtype, data
elif name.startswith('add'):
# the first arg is self
# the second and third arg are the dn and the data to send
# We need to convert the Entry into the format used by
# python-ldap
ent = args[0]
if isinstance(ent, Entry):
return f(ent.dn, ent.toTupleList(), *args[2:])
else:
return f(*args, **kwargs)
else:
> return f(*args, **kwargs)

/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7bb2ed4e0>, msgid = 3, all = 1
timeout = -1, add_ctrls = 0, add_intermediates = 0, add_extop = 0
resp_ctrl_classes = None

def result4(self,msgid=ldap.RES_ANY,all=1,timeout=None,add_ctrls=0,add_intermediates=0,add_extop=0,resp_ctrl_classes=None):
if timeout is None:
timeout = self.timeout
> ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:758:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

args = (<built-in method result4 of LDAP object at 0x7fc7bb3e25a8>, 3, 1, -1, 0, 0, ...)
kwargs = {}

def inner(*args, **kwargs):
if name in [
'add_s',
'bind_s',
'delete_s',
'modify_s',
'modrdn_s',
'rename_s',
'sasl_interactive_bind_s',
'search_s',
'search_ext_s',
'simple_bind_s',
'unbind_s',
'getEntry',
] and not ('escapehatch' in kwargs and kwargs['escapehatch'] == 'i am sure'):
c_stack = inspect.stack()
frame = c_stack[1]

warnings.warn(DeprecationWarning("Use of raw ldap function %s. This will be removed in a future release. "
"Found in: %s:%s" % (name, frame.filename, frame.lineno)))
# Later, we will add a sleep here to make it even more painful.
# Finally, it will raise an exception.
elif 'escapehatch' in kwargs:
kwargs.pop('escapehatch')

if name == 'result':
objtype, data = f(*args, **kwargs)
# data is either a 2-tuple or a list of 2-tuples
# print data
if data:
if isinstance(data, tuple):
return objtype, Entry(data)
elif isinstance(data, list):
# AD sends back these search references
# if objtype == ldap.RES_SEARCH_RESULT and \
# isinstance(data[-1],tuple) and \
# not data[-1][0]:
# print "Received search reference: "
# pprint.pprint(data[-1][1])
# data.pop() # remove the last non-entry element

return objtype, [Entry(x) for x in data]
else:
raise TypeError("unknown data type %s returned by result" %
type(data))
else:
return objtype, data
elif name.startswith('add'):
# the first arg is self
# the second and third arg are the dn and the data to send
# We need to convert the Entry into the format used by
# python-ldap
ent = args[0]
if isinstance(ent, Entry):
return f(ent.dn, ent.toTupleList(), *args[2:])
else:
return f(*args, **kwargs)
else:
> return f(*args, **kwargs)

/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7bb2ed4e0>
func = <built-in method result4 of LDAP object at 0x7fc7bb3e25a8>
args = (3, 1, -1, 0, 0, 0), kwargs = {}, diagnostic_message_success = None
exc_type = None, exc_value = None, exc_traceback = None

def _ldap_call(self,func,*args,**kwargs):
"""
Wrapper method mainly for serializing calls into OpenLDAP libs
and trace logs
"""
self._ldap_object_lock.acquire()
if __debug__:
if self._trace_level>=1:
self._trace_file.write('*** %s %s - %s\n%s\n' % (
repr(self),
self._uri,
'.'.join((self.__class__.__name__,func.__name__)),
pprint.pformat((args,kwargs))
))
if self._trace_level>=9:
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
diagnostic_message_success = None
try:
try:
result = func(*args,**kwargs)
if __debug__ and self._trace_level>=2:
if func.__name__!="unbind_ext":
diagnostic_message_success = self._l.get_option(ldap.OPT_DIAGNOSTIC_MESSAGE)
finally:
self._ldap_object_lock.release()
except LDAPError as e:
exc_type,exc_value,exc_traceback = sys.exc_info()
try:
if 'info' not in e.args[0] and 'errno' in e.args[0]:
e.args[0]['info'] = strerror(e.args[0]['errno'])
except IndexError:
pass
if __debug__ and self._trace_level>=2:
self._trace_file.write('=> LDAPError - %s: %s\n' % (e.__class__.__name__,str(e)))
try:
> reraise(exc_type, exc_value, exc_traceback)

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:331:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

exc_type = <class 'ldap.NO_SUCH_OBJECT'>
exc_value = NO_SUCH_OBJECT({'desc': 'No such object'})
exc_traceback = <traceback object at 0x7fc7bbbd9908>

def reraise(exc_type, exc_value, exc_traceback):
"""Re-raise an exception given information from sys.exc_info()

Note that unlike six.reraise, this does not support replacing the
traceback. All arguments must come from a single sys.exc_info() call.
"""
# In Python 3, all exception info is contained in one object.
> raise exc_value

/usr/local/lib64/python3.7/site-packages/ldap/compat.py:44:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7bb2ed4e0>
func = <built-in method result4 of LDAP object at 0x7fc7bb3e25a8>
args = (3, 1, -1, 0, 0, 0), kwargs = {}, diagnostic_message_success = None
exc_type = None, exc_value = None, exc_traceback = None

def _ldap_call(self,func,*args,**kwargs):
"""
Wrapper method mainly for serializing calls into OpenLDAP libs
and trace logs
"""
self._ldap_object_lock.acquire()
if __debug__:
if self._trace_level>=1:
self._trace_file.write('*** %s %s - %s\n%s\n' % (
repr(self),
self._uri,
'.'.join((self.__class__.__name__,func.__name__)),
pprint.pformat((args,kwargs))
))
if self._trace_level>=9:
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
diagnostic_message_success = None
try:
try:
> result = func(*args,**kwargs)
E ldap.NO_SUCH_OBJECT: {'desc': 'No such object'}

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:315: NO_SUCH_OBJECT

During handling of the above exception, another exception occurred:

topology_st = <lib389.topologies.TopologyMain object at 0x7fc7bb2ed470>
import_example_ldif = None

def test_basic_searches(topology_st, import_example_ldif):
"""Tests basic search operations with filters.

:id: 426a59ff-49b8-4a70-b377-0c0634a29b6f

:setup: Standalone instance, add example.ldif to the database

:steps:
1. Execute search command while using different filters.
2. Check number of entries returned by search filters.

:expectedresults:
1. Search command should PASS.
2. Number of result entries returned should match number of the database entries according to the search filter.
"""

log.info('Running test_basic_searches...')

filters = (('(uid=scarter)', 1),
('(uid=tmorris*)', 1),
('(uid=*hunt*)', 4),
('(uid=*cope)', 2),
('(mail=*)', 150),
('(roomnumber>=4000)', 35),
('(roomnumber<=4000)', 115),
('(&(roomnumber>=4000)(roomnumber<=4500))', 18),
('(!(l=sunnyvale))', 120),
('(&(uid=t*)(l=santa clara))', 7),
('(|(uid=k*)(uid=r*))', 18),
('(|(uid=t*)(l=sunnyvale))', 50),
('(&(!(uid=r*))(ou=people))', 139),
('(&(uid=m*)(l=sunnyvale)(ou=people)(mail=*example*)(roomNumber=*))', 3),
('(&(|(uid=m*)(l=santa clara))(roomNumber=22*))', 5),
('(&(|(uid=m*)(l=santa clara))(roomNumber=22*)(!(roomnumber=2254)))', 4),)

for (search_filter, search_result) in filters:
try:
entries = topology_st.standalone.search_s(DEFAULT_SUFFIX,
ldap.SCOPE_SUBTREE,
search_filter)
if len(entries) != search_result:
log.fatal('test_basic_searches: An incorrect number of entries\
was returned from filter (%s): (%d) expected (%d)' %
(search_filter, len(entries), search_result))
assert False
except ldap.LDAPError as e:
> log.fatal('Search failed: ' + e.message['desc'])
E AttributeError: 'NO_SUCH_OBJECT' object has no attribute 'message'

suites/basic/basic_test.py:599: AttributeError
Failed suites/basic/basic_test.py::test_search_ou 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7bb2ed470>

@pytest.mark.bz192901
def test_search_ou(topology_st):
"""Test that DS should not return an entry that does not match the filter

:id: d7831d05-f117-4e89-93c7-b6f77109f640
:setup: Standalone instance
:steps:
1. Create an OU entry without sub entries
2. Search from the OU with the filter that does not match the OU
:expectedresults:
1. Creation of OU should be successful
2. Search should not return any results
"""

log.info("Create a test OU without sub entries")
ou = OrganizationalUnits(topology_st.standalone, DEFAULT_SUFFIX)
ou.create(properties={
> 'ou': 'test_ou',
})

suites/basic/basic_test.py:1001:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.7/site-packages/lib389/_mapped_object.py:1117: in create
return co.create(rdn, properties, self._basedn)
/usr/local/lib/python3.7/site-packages/lib389/_mapped_object.py:891: in create
return self._create(rdn, properties, basedn, ensure=False)
/usr/local/lib/python3.7/site-packages/lib389/_mapped_object.py:866: in _create
self._instance.add_ext_s(e, serverctrls=self._server_controls, clientctrls=self._client_controls, escapehatch='i am sure')
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:195: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:416: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:751: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:758: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:331: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/local/lib64/python3.7/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7bb2ed4e0>
func = <built-in method result4 of LDAP object at 0x7fc7bb9c9e90>
args = (31, 1, -1, 0, 0, 0), kwargs = {}, diagnostic_message_success = None
exc_type = None, exc_value = None, exc_traceback = None

def _ldap_call(self,func,*args,**kwargs):
"""
Wrapper method mainly for serializing calls into OpenLDAP libs
and trace logs
"""
self._ldap_object_lock.acquire()
if __debug__:
if self._trace_level>=1:
self._trace_file.write('*** %s %s - %s\n%s\n' % (
repr(self),
self._uri,
'.'.join((self.__class__.__name__,func.__name__)),
pprint.pformat((args,kwargs))
))
if self._trace_level>=9:
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
diagnostic_message_success = None
try:
try:
> result = func(*args,**kwargs)
E ldap.NO_SUCH_OBJECT: {'desc': 'No such object'}

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:315: NO_SUCH_OBJECT
Failed suites/basic/basic_test.py::test_critical_msg_on_empty_range_idl 4.79
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7bb2ed470>

@pytest.mark.bz1637439
def test_critical_msg_on_empty_range_idl(topology_st):
"""Doing a range index lookup should not report a critical message even if IDL is empty

:id: a07a2222-0551-44a6-b113-401d23799364
:setup: Standalone instance
:steps:
1. Create an index for internationalISDNNumber. (attribute chosen because it is
unlikely that previous tests used it)
2. telephoneNumber being indexed by default create 20 users without telephoneNumber
3. add a telephoneNumber value and delete it to trigger an empty index database
4. Do a search that triggers a range lookup on empty telephoneNumber
5. Check that the critical message is not logged in error logs
:expectedresults:
1. This should pass
2. This should pass
3. This should pass
4. This should pass on normal build but could abort a debug build
4. This should pass
"""
indexedAttr = 'internationalISDNNumber'

# Step 1
from lib389.index import Indexes

indexes = Indexes(topology_st.standalone)
indexes.create(properties={
'cn': indexedAttr,
'nsSystemIndex': 'false',
'nsIndexType': 'eq'
})
topology_st.standalone.restart()

# Step 2
users = UserAccounts(topology_st.standalone, DEFAULT_SUFFIX)
log.info('Adding 20 users without "%s"' % indexedAttr)
for i in range(20):
name = 'user_%d' % i
last_user = users.create(properties={
'uid': name,
'sn': name,
'cn': name,
'uidNumber': '1000',
'gidNumber': '1000',
'homeDirectory': '/home/%s' % name,
'mail': '%s@example.com' % name,
> 'userpassword': 'pass%s' % name,
})

suites/basic/basic_test.py:1081:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.7/site-packages/lib389/_mapped_object.py:1117: in create
return co.create(rdn, properties, self._basedn)
/usr/local/lib/python3.7/site-packages/lib389/_mapped_object.py:891: in create
return self._create(rdn, properties, basedn, ensure=False)
/usr/local/lib/python3.7/site-packages/lib389/_mapped_object.py:866: in _create
self._instance.add_ext_s(e, serverctrls=self._server_controls, clientctrls=self._client_controls, escapehatch='i am sure')
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:195: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:416: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:751: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:758: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:331: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/local/lib64/python3.7/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7bb2ed4e0>
func = <built-in method result4 of LDAP object at 0x7fc7baf32760>
args = (2, 1, -1, 0, 0, 0), kwargs = {}, diagnostic_message_success = None
exc_type = None, exc_value = None, exc_traceback = None

def _ldap_call(self,func,*args,**kwargs):
"""
Wrapper method mainly for serializing calls into OpenLDAP libs
and trace logs
"""
self._ldap_object_lock.acquire()
if __debug__:
if self._trace_level>=1:
self._trace_file.write('*** %s %s - %s\n%s\n' % (
repr(self),
self._uri,
'.'.join((self.__class__.__name__,func.__name__)),
pprint.pformat((args,kwargs))
))
if self._trace_level>=9:
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
diagnostic_message_success = None
try:
try:
> result = func(*args,**kwargs)
E ldap.NO_SUCH_OBJECT: {'desc': 'No such object'}

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:315: NO_SUCH_OBJECT
Failed suites/ds_tools/replcheck_test.py::test_inconsistencies 16.70
topo_tls_ldapi = <lib389.topologies.TopologyMain object at 0x7fc7bafe5a20>

def test_inconsistencies(topo_tls_ldapi):
"""Check that the report mentions inconsistencies with attributes

:id: c8fe3e84-b346-4969-8f5d-3462b643a1d2
:setup: Two master replication
:steps:
1. Add an entry to master and wait for replication
2. Pause replication between master and replica
3. Set different description attr values to master and replica
4. Add telephoneNumber attribute to master and not to replica
5. Generate the report
6. Check that attribute values are mentioned in the report
7. Generate the report with -i option to ignore some attributes
8. Check that attribute values are mentioned in the report
:expectedresults:
1. It should be successful
2. It should be successful
3. It should be successful
4. It should be successful
5. It should be successful
6. The attribute values should be mentioned in the report
7. It should be successful
8. The attribute values should not be mentioned in the report
"""

m1 = topo_tls_ldapi.ms["master1"]
m2 = topo_tls_ldapi.ms["master2"]
attr_m1 = "m1_inconsistency"
attr_m2 = "m2_inconsistency"
attr_first = "first ordered valued"
attr_second = "second ordered valued"
attr_m1_only = "123123123"

try:
users_m1 = UserAccounts(m1, DEFAULT_SUFFIX)
users_m2 = UserAccounts(m2, DEFAULT_SUFFIX)
user_m1 = users_m1.create(properties=TEST_USER_PROPERTIES)
time.sleep(1)
user_m2 = users_m2.get(user_m1.rdn)
topo_tls_ldapi.pause_all_replicas()
user_m1.set("description", attr_m1)
user_m2.set("description", attr_m2)
user_m1.set("telephonenumber", attr_m1_only)
# Add the same multi-valued attrs, but out of order
user_m1.set("cn", [attr_first, attr_second])
user_m2.set("cn", [attr_second, attr_first])
time.sleep(2)

for tool_cmd in replcheck_cmd_list(topo_tls_ldapi):
result = subprocess.check_output(tool_cmd, encoding='utf-8').lower()
assert attr_m1 in result
assert attr_m2 in result
assert attr_m1_only in result
if ds_is_newer("1.4.1.2"):
> assert attr_first not in result
E AssertionError: assert 'first ordered valued' not in '===============...26 2019\n\n\n\n'
E 'first ordered valued' is contained here:
E ================================================================================
E replication synchronization report (wed may 29 19:41:42 2019)
E ================================================================================
E
E
E database ruv's...
E
E ...Full output truncated (106 lines hidden), use '-vv' to show

suites/ds_tools/replcheck_test.py:371: AssertionError
----------------------------- Captured stderr call -----------------------------
ldiffile: /tmp/export_master1.ldif ldiffile: /tmp/export_master2.ldif
Failed suites/logging/logging_config_test.py::test_logging_digit_config[logexpirationtime-invalid_vals0-valid_vals0] 0.01
topo = <lib389.topologies.TopologyMain object at 0x7fc7ab41ba58>
attr = 'nsslapd-accesslog-logexpirationtime', invalid_vals = ['-2', '0']
valid_vals = ['1', '-1']

@pytest.mark.parametrize("attr, invalid_vals, valid_vals",
[
("logexpirationtime", ["-2", "0"], ["1", "-1"]),
("maxlogsize", ["-2", "0"], ["100", "-1"]),
("logmaxdiskspace", ["-2", "0"], ["100", "-1"]),
("logminfreediskspace", ["-2", "0"], ["100", "-1"]),
("mode", ["888", "778", "77", "7777"], ["777", "000", "600"]),
("maxlogsperdir", ["-1", "0"], ["1", "20"]),
("logrotationsynchour", ["-1", "24"], ["0", "23"]),
("logrotationsyncmin", ["-1", "60"], ["0", "59"]),
("logrotationtime", ["-2", "0"], ["100", "-1"])
])
def test_logging_digit_config(topo, attr, invalid_vals, valid_vals):
"""Validate logging config settings

:id: a0ef30e5-538b-46fa-9762-01a4435a15e9
:setup: Standalone Instance
:steps:
1. Test log expiration time
2. Test log max size
3. Test log max disk space
4. Test log min disk space
5. Test log mode
6. Test log max number of logs
7. Test log rotation hour
8. Test log rotation minute
9. Test log rotation time
:expectedresults:
1. Success
2. Success
3. Success
4. Success
5. Success
6. Success
7. Success
8. Success
9. Success
"""

accesslog_attr = "nsslapd-accesslog-{}".format(attr)
auditlog_attr = "nsslapd-auditlog-{}".format(attr)
auditfaillog_attr = "nsslapd-auditfaillog-{}".format(attr)
errorlog_attr = "nsslapd-errorlog-{}".format(attr)

# Test each log
for attr in [accesslog_attr, auditlog_attr, auditfaillog_attr, errorlog_attr]:
# Invalid values
for invalid_val in invalid_vals:
with pytest.raises(ldap.LDAPError):
> topo.standalone.config.set(attr, invalid_val)
E Failed: DID NOT RAISE <class 'ldap.LDAPError'>

suites/logging/logging_config_test.py:67: Failed
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Failed suites/logging/logging_config_test.py::test_logging_digit_config[maxlogsize-invalid_vals1-valid_vals1] 0.01
topo = <lib389.topologies.TopologyMain object at 0x7fc7ab41ba58>
attr = 'nsslapd-accesslog-maxlogsize', invalid_vals = ['-2', '0']
valid_vals = ['100', '-1']

@pytest.mark.parametrize("attr, invalid_vals, valid_vals",
[
("logexpirationtime", ["-2", "0"], ["1", "-1"]),
("maxlogsize", ["-2", "0"], ["100", "-1"]),
("logmaxdiskspace", ["-2", "0"], ["100", "-1"]),
("logminfreediskspace", ["-2", "0"], ["100", "-1"]),
("mode", ["888", "778", "77", "7777"], ["777", "000", "600"]),
("maxlogsperdir", ["-1", "0"], ["1", "20"]),
("logrotationsynchour", ["-1", "24"], ["0", "23"]),
("logrotationsyncmin", ["-1", "60"], ["0", "59"]),
("logrotationtime", ["-2", "0"], ["100", "-1"])
])
def test_logging_digit_config(topo, attr, invalid_vals, valid_vals):
"""Validate logging config settings

:id: a0ef30e5-538b-46fa-9762-01a4435a15e9
:setup: Standalone Instance
:steps:
1. Test log expiration time
2. Test log max size
3. Test log max disk space
4. Test log min disk space
5. Test log mode
6. Test log max number of logs
7. Test log rotation hour
8. Test log rotation minute
9. Test log rotation time
:expectedresults:
1. Success
2. Success
3. Success
4. Success
5. Success
6. Success
7. Success
8. Success
9. Success
"""

accesslog_attr = "nsslapd-accesslog-{}".format(attr)
auditlog_attr = "nsslapd-auditlog-{}".format(attr)
auditfaillog_attr = "nsslapd-auditfaillog-{}".format(attr)
errorlog_attr = "nsslapd-errorlog-{}".format(attr)

# Test each log
for attr in [accesslog_attr, auditlog_attr, auditfaillog_attr, errorlog_attr]:
# Invalid values
for invalid_val in invalid_vals:
with pytest.raises(ldap.LDAPError):
> topo.standalone.config.set(attr, invalid_val)
E Failed: DID NOT RAISE <class 'ldap.LDAPError'>

suites/logging/logging_config_test.py:67: Failed
Failed suites/logging/logging_config_test.py::test_logging_digit_config[logmaxdiskspace-invalid_vals2-valid_vals2] 0.01
topo = <lib389.topologies.TopologyMain object at 0x7fc7ab41ba58>
attr = 'nsslapd-accesslog-logmaxdiskspace', invalid_vals = ['-2', '0']
valid_vals = ['100', '-1']

@pytest.mark.parametrize("attr, invalid_vals, valid_vals",
[
("logexpirationtime", ["-2", "0"], ["1", "-1"]),
("maxlogsize", ["-2", "0"], ["100", "-1"]),
("logmaxdiskspace", ["-2", "0"], ["100", "-1"]),
("logminfreediskspace", ["-2", "0"], ["100", "-1"]),
("mode", ["888", "778", "77", "7777"], ["777", "000", "600"]),
("maxlogsperdir", ["-1", "0"], ["1", "20"]),
("logrotationsynchour", ["-1", "24"], ["0", "23"]),
("logrotationsyncmin", ["-1", "60"], ["0", "59"]),
("logrotationtime", ["-2", "0"], ["100", "-1"])
])
def test_logging_digit_config(topo, attr, invalid_vals, valid_vals):
"""Validate logging config settings

:id: a0ef30e5-538b-46fa-9762-01a4435a15e9
:setup: Standalone Instance
:steps:
1. Test log expiration time
2. Test log max size
3. Test log max disk space
4. Test log min disk space
5. Test log mode
6. Test log max number of logs
7. Test log rotation hour
8. Test log rotation minute
9. Test log rotation time
:expectedresults:
1. Success
2. Success
3. Success
4. Success
5. Success
6. Success
7. Success
8. Success
9. Success
"""

accesslog_attr = "nsslapd-accesslog-{}".format(attr)
auditlog_attr = "nsslapd-auditlog-{}".format(attr)
auditfaillog_attr = "nsslapd-auditfaillog-{}".format(attr)
errorlog_attr = "nsslapd-errorlog-{}".format(attr)

# Test each log
for attr in [accesslog_attr, auditlog_attr, auditfaillog_attr, errorlog_attr]:
# Invalid values
for invalid_val in invalid_vals:
with pytest.raises(ldap.LDAPError):
> topo.standalone.config.set(attr, invalid_val)
E Failed: DID NOT RAISE <class 'ldap.LDAPError'>

suites/logging/logging_config_test.py:67: Failed
Failed suites/logging/logging_config_test.py::test_logging_digit_config[logminfreediskspace-invalid_vals3-valid_vals3] 0.01
topo = <lib389.topologies.TopologyMain object at 0x7fc7ab41ba58>
attr = 'nsslapd-accesslog-logminfreediskspace', invalid_vals = ['-2', '0']
valid_vals = ['100', '-1']

@pytest.mark.parametrize("attr, invalid_vals, valid_vals",
[
("logexpirationtime", ["-2", "0"], ["1", "-1"]),
("maxlogsize", ["-2", "0"], ["100", "-1"]),
("logmaxdiskspace", ["-2", "0"], ["100", "-1"]),
("logminfreediskspace", ["-2", "0"], ["100", "-1"]),
("mode", ["888", "778", "77", "7777"], ["777", "000", "600"]),
("maxlogsperdir", ["-1", "0"], ["1", "20"]),
("logrotationsynchour", ["-1", "24"], ["0", "23"]),
("logrotationsyncmin", ["-1", "60"], ["0", "59"]),
("logrotationtime", ["-2", "0"], ["100", "-1"])
])
def test_logging_digit_config(topo, attr, invalid_vals, valid_vals):
"""Validate logging config settings

:id: a0ef30e5-538b-46fa-9762-01a4435a15e9
:setup: Standalone Instance
:steps:
1. Test log expiration time
2. Test log max size
3. Test log max disk space
4. Test log min disk space
5. Test log mode
6. Test log max number of logs
7. Test log rotation hour
8. Test log rotation minute
9. Test log rotation time
:expectedresults:
1. Success
2. Success
3. Success
4. Success
5. Success
6. Success
7. Success
8. Success
9. Success
"""

accesslog_attr = "nsslapd-accesslog-{}".format(attr)
auditlog_attr = "nsslapd-auditlog-{}".format(attr)
auditfaillog_attr = "nsslapd-auditfaillog-{}".format(attr)
errorlog_attr = "nsslapd-errorlog-{}".format(attr)

# Test each log
for attr in [accesslog_attr, auditlog_attr, auditfaillog_attr, errorlog_attr]:
# Invalid values
for invalid_val in invalid_vals:
with pytest.raises(ldap.LDAPError):
> topo.standalone.config.set(attr, invalid_val)
E Failed: DID NOT RAISE <class 'ldap.LDAPError'>

suites/logging/logging_config_test.py:67: Failed
Failed suites/logging/logging_config_test.py::test_logging_digit_config[mode-invalid_vals4-valid_vals4] 0.01
topo = <lib389.topologies.TopologyMain object at 0x7fc7ab41ba58>
attr = 'nsslapd-accesslog-mode', invalid_vals = ['888', '778', '77', '7777']
valid_vals = ['777', '000', '600']

@pytest.mark.parametrize("attr, invalid_vals, valid_vals",
[
("logexpirationtime", ["-2", "0"], ["1", "-1"]),
("maxlogsize", ["-2", "0"], ["100", "-1"]),
("logmaxdiskspace", ["-2", "0"], ["100", "-1"]),
("logminfreediskspace", ["-2", "0"], ["100", "-1"]),
("mode", ["888", "778", "77", "7777"], ["777", "000", "600"]),
("maxlogsperdir", ["-1", "0"], ["1", "20"]),
("logrotationsynchour", ["-1", "24"], ["0", "23"]),
("logrotationsyncmin", ["-1", "60"], ["0", "59"]),
("logrotationtime", ["-2", "0"], ["100", "-1"])
])
def test_logging_digit_config(topo, attr, invalid_vals, valid_vals):
"""Validate logging config settings

:id: a0ef30e5-538b-46fa-9762-01a4435a15e9
:setup: Standalone Instance
:steps:
1. Test log expiration time
2. Test log max size
3. Test log max disk space
4. Test log min disk space
5. Test log mode
6. Test log max number of logs
7. Test log rotation hour
8. Test log rotation minute
9. Test log rotation time
:expectedresults:
1. Success
2. Success
3. Success
4. Success
5. Success
6. Success
7. Success
8. Success
9. Success
"""

accesslog_attr = "nsslapd-accesslog-{}".format(attr)
auditlog_attr = "nsslapd-auditlog-{}".format(attr)
auditfaillog_attr = "nsslapd-auditfaillog-{}".format(attr)
errorlog_attr = "nsslapd-errorlog-{}".format(attr)

# Test each log
for attr in [accesslog_attr, auditlog_attr, auditfaillog_attr, errorlog_attr]:
# Invalid values
for invalid_val in invalid_vals:
with pytest.raises(ldap.LDAPError):
> topo.standalone.config.set(attr, invalid_val)
E Failed: DID NOT RAISE <class 'ldap.LDAPError'>

suites/logging/logging_config_test.py:67: Failed
Failed suites/logging/logging_config_test.py::test_logging_digit_config[maxlogsperdir-invalid_vals5-valid_vals5] 0.01
topo = <lib389.topologies.TopologyMain object at 0x7fc7ab41ba58>
attr = 'nsslapd-accesslog-maxlogsperdir', invalid_vals = ['-1', '0']
valid_vals = ['1', '20']

@pytest.mark.parametrize("attr, invalid_vals, valid_vals",
[
("logexpirationtime", ["-2", "0"], ["1", "-1"]),
("maxlogsize", ["-2", "0"], ["100", "-1"]),
("logmaxdiskspace", ["-2", "0"], ["100", "-1"]),
("logminfreediskspace", ["-2", "0"], ["100", "-1"]),
("mode", ["888", "778", "77", "7777"], ["777", "000", "600"]),
("maxlogsperdir", ["-1", "0"], ["1", "20"]),
("logrotationsynchour", ["-1", "24"], ["0", "23"]),
("logrotationsyncmin", ["-1", "60"], ["0", "59"]),
("logrotationtime", ["-2", "0"], ["100", "-1"])
])
def test_logging_digit_config(topo, attr, invalid_vals, valid_vals):
"""Validate logging config settings

:id: a0ef30e5-538b-46fa-9762-01a4435a15e9
:setup: Standalone Instance
:steps:
1. Test log expiration time
2. Test log max size
3. Test log max disk space
4. Test log min disk space
5. Test log mode
6. Test log max number of logs
7. Test log rotation hour
8. Test log rotation minute
9. Test log rotation time
:expectedresults:
1. Success
2. Success
3. Success
4. Success
5. Success
6. Success
7. Success
8. Success
9. Success
"""

accesslog_attr = "nsslapd-accesslog-{}".format(attr)
auditlog_attr = "nsslapd-auditlog-{}".format(attr)
auditfaillog_attr = "nsslapd-auditfaillog-{}".format(attr)
errorlog_attr = "nsslapd-errorlog-{}".format(attr)

# Test each log
for attr in [accesslog_attr, auditlog_attr, auditfaillog_attr, errorlog_attr]:
# Invalid values
for invalid_val in invalid_vals:
with pytest.raises(ldap.LDAPError):
> topo.standalone.config.set(attr, invalid_val)
E Failed: DID NOT RAISE <class 'ldap.LDAPError'>

suites/logging/logging_config_test.py:67: Failed
Failed suites/logging/logging_config_test.py::test_logging_digit_config[logrotationsynchour-invalid_vals6-valid_vals6] 0.01
topo = <lib389.topologies.TopologyMain object at 0x7fc7ab41ba58>
attr = 'nsslapd-accesslog-logrotationsynchour', invalid_vals = ['-1', '24']
valid_vals = ['0', '23']

@pytest.mark.parametrize("attr, invalid_vals, valid_vals",
[
("logexpirationtime", ["-2", "0"], ["1", "-1"]),
("maxlogsize", ["-2", "0"], ["100", "-1"]),
("logmaxdiskspace", ["-2", "0"], ["100", "-1"]),
("logminfreediskspace", ["-2", "0"], ["100", "-1"]),
("mode", ["888", "778", "77", "7777"], ["777", "000", "600"]),
("maxlogsperdir", ["-1", "0"], ["1", "20"]),
("logrotationsynchour", ["-1", "24"], ["0", "23"]),
("logrotationsyncmin", ["-1", "60"], ["0", "59"]),
("logrotationtime", ["-2", "0"], ["100", "-1"])
])
def test_logging_digit_config(topo, attr, invalid_vals, valid_vals):
"""Validate logging config settings

:id: a0ef30e5-538b-46fa-9762-01a4435a15e9
:setup: Standalone Instance
:steps:
1. Test log expiration time
2. Test log max size
3. Test log max disk space
4. Test log min disk space
5. Test log mode
6. Test log max number of logs
7. Test log rotation hour
8. Test log rotation minute
9. Test log rotation time
:expectedresults:
1. Success
2. Success
3. Success
4. Success
5. Success
6. Success
7. Success
8. Success
9. Success
"""

accesslog_attr = "nsslapd-accesslog-{}".format(attr)
auditlog_attr = "nsslapd-auditlog-{}".format(attr)
auditfaillog_attr = "nsslapd-auditfaillog-{}".format(attr)
errorlog_attr = "nsslapd-errorlog-{}".format(attr)

# Test each log
for attr in [accesslog_attr, auditlog_attr, auditfaillog_attr, errorlog_attr]:
# Invalid values
for invalid_val in invalid_vals:
with pytest.raises(ldap.LDAPError):
> topo.standalone.config.set(attr, invalid_val)
E Failed: DID NOT RAISE <class 'ldap.LDAPError'>

suites/logging/logging_config_test.py:67: Failed
Failed suites/logging/logging_config_test.py::test_logging_digit_config[logrotationsyncmin-invalid_vals7-valid_vals7] 0.01
topo = <lib389.topologies.TopologyMain object at 0x7fc7ab41ba58>
attr = 'nsslapd-accesslog-logrotationsyncmin', invalid_vals = ['-1', '60']
valid_vals = ['0', '59']

@pytest.mark.parametrize("attr, invalid_vals, valid_vals",
[
("logexpirationtime", ["-2", "0"], ["1", "-1"]),
("maxlogsize", ["-2", "0"], ["100", "-1"]),
("logmaxdiskspace", ["-2", "0"], ["100", "-1"]),
("logminfreediskspace", ["-2", "0"], ["100", "-1"]),
("mode", ["888", "778", "77", "7777"], ["777", "000", "600"]),
("maxlogsperdir", ["-1", "0"], ["1", "20"]),
("logrotationsynchour", ["-1", "24"], ["0", "23"]),
("logrotationsyncmin", ["-1", "60"], ["0", "59"]),
("logrotationtime", ["-2", "0"], ["100", "-1"])
])
def test_logging_digit_config(topo, attr, invalid_vals, valid_vals):
"""Validate logging config settings

:id: a0ef30e5-538b-46fa-9762-01a4435a15e9
:setup: Standalone Instance
:steps:
1. Test log expiration time
2. Test log max size
3. Test log max disk space
4. Test log min disk space
5. Test log mode
6. Test log max number of logs
7. Test log rotation hour
8. Test log rotation minute
9. Test log rotation time
:expectedresults:
1. Success
2. Success
3. Success
4. Success
5. Success
6. Success
7. Success
8. Success
9. Success
"""

accesslog_attr = "nsslapd-accesslog-{}".format(attr)
auditlog_attr = "nsslapd-auditlog-{}".format(attr)
auditfaillog_attr = "nsslapd-auditfaillog-{}".format(attr)
errorlog_attr = "nsslapd-errorlog-{}".format(attr)

# Test each log
for attr in [accesslog_attr, auditlog_attr, auditfaillog_attr, errorlog_attr]:
# Invalid values
for invalid_val in invalid_vals:
with pytest.raises(ldap.LDAPError):
> topo.standalone.config.set(attr, invalid_val)
E Failed: DID NOT RAISE <class 'ldap.LDAPError'>

suites/logging/logging_config_test.py:67: Failed
Failed suites/logging/logging_config_test.py::test_logging_digit_config[logrotationtime-invalid_vals8-valid_vals8] 0.01
topo = <lib389.topologies.TopologyMain object at 0x7fc7ab41ba58>
attr = 'nsslapd-accesslog-logrotationtime', invalid_vals = ['-2', '0']
valid_vals = ['100', '-1']

@pytest.mark.parametrize("attr, invalid_vals, valid_vals",
[
("logexpirationtime", ["-2", "0"], ["1", "-1"]),
("maxlogsize", ["-2", "0"], ["100", "-1"]),
("logmaxdiskspace", ["-2", "0"], ["100", "-1"]),
("logminfreediskspace", ["-2", "0"], ["100", "-1"]),
("mode", ["888", "778", "77", "7777"], ["777", "000", "600"]),
("maxlogsperdir", ["-1", "0"], ["1", "20"]),
("logrotationsynchour", ["-1", "24"], ["0", "23"]),
("logrotationsyncmin", ["-1", "60"], ["0", "59"]),
("logrotationtime", ["-2", "0"], ["100", "-1"])
])
def test_logging_digit_config(topo, attr, invalid_vals, valid_vals):
"""Validate logging config settings

:id: a0ef30e5-538b-46fa-9762-01a4435a15e9
:setup: Standalone Instance
:steps:
1. Test log expiration time
2. Test log max size
3. Test log max disk space
4. Test log min disk space
5. Test log mode
6. Test log max number of logs
7. Test log rotation hour
8. Test log rotation minute
9. Test log rotation time
:expectedresults:
1. Success
2. Success
3. Success
4. Success
5. Success
6. Success
7. Success
8. Success
9. Success
"""

accesslog_attr = "nsslapd-accesslog-{}".format(attr)
auditlog_attr = "nsslapd-auditlog-{}".format(attr)
auditfaillog_attr = "nsslapd-auditfaillog-{}".format(attr)
errorlog_attr = "nsslapd-errorlog-{}".format(attr)

# Test each log
for attr in [accesslog_attr, auditlog_attr, auditfaillog_attr, errorlog_attr]:
# Invalid values
for invalid_val in invalid_vals:
with pytest.raises(ldap.LDAPError):
> topo.standalone.config.set(attr, invalid_val)
E Failed: DID NOT RAISE <class 'ldap.LDAPError'>

suites/logging/logging_config_test.py:67: Failed
Failed suites/referint_plugin/rename_test.py::test_rename_large_subtree 37.53
topology_m2 = <lib389.topologies.TopologyMain object at 0x7fc7aa99a5f8>

def test_rename_large_subtree(topology_m2):
"""
A report stated that the following configuration would lead
to an operation failure:

ou=int,ou=account,dc=...
ou=s1,ou=int,ou=account,dc=...
ou=s2,ou=int,ou=account,dc=...

rename ou=s1 to re-parent to ou=account, leaving:

ou=int,ou=account,dc=...
ou=s1,ou=account,dc=...
ou=s2,ou=account,dc=...

The ou=s1 if it has < 100 entries below, is able to be reparented.

If ou=s1 has > 400 entries, it fails.

Other conditions was the presence of referential integrity - so one would
assume that all users under s1 are a member of some group external to this.

:id: 5915c38d-b3c2-4b7c-af76-8a1e002e27f7

:setup: standalone instance

:steps: 1. Enable automember plugin
2. Add UCOUNT users, and ensure they are members of a group.
3. Enable refer-int plugin
4. Move ou=s1 to a new parent

:expectedresults:
1. The plugin is enabled
2. The users are members of the group
3. The plugin is enabled
4. The rename operation of ou=s1 succeeds
"""

st = topology_m2.ms["master1"]
m2 = topology_m2.ms["master2"]

# Create a default group
gps = Groups(st, DEFAULT_SUFFIX)
# Keep the group so we can get it's DN out.
group = gps.create(properties={
'cn': 'default_group'
})

_enable_plugins(st, group.dn)
_enable_plugins(m2, group.dn)

# Now unlike normal, we bypass the plural-create method, because we need control
# over the exact DN of the OU to create.
# Create the ou=account

# We don't need to set a DN here because ...
ou_account = OrganisationalUnit(st)

# It's set in the .create step.
ou_account.create(
basedn = DEFAULT_SUFFIX,
properties={
'ou': 'account'
})
# create the ou=int,ou=account
ou_int = OrganisationalUnit(st)
ou_int.create(
basedn = ou_account.dn,
properties={
'ou': 'int'
})
# Create the ou=s1,ou=int,ou=account
ou_s1 = OrganisationalUnit(st)
ou_s1.create(
basedn = ou_int.dn,
properties={
'ou': 's1'
})

# Pause replication
repl = ReplicationManager(DEFAULT_SUFFIX)
repl.disable_to_master(m2, [st, ])

# Create the users 1 -> UCOUNT in ou=s1
nsu = nsUserAccounts(st, basedn=ou_s1.dn, rdn=None)
for i in range(1000, 1000 + UCOUNT):
nsu.create_test_user(uid=i)

# Enable replication

repl.enable_to_master(m2, [st, ])

# Assert they are in the group as we expect
members = group.get_attr_vals_utf8('member')
assert len(members) == UCOUNT

# Wait for replication
> repl.wait_for_replication(st, m2)

suites/referint_plugin/rename_test.py:151:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.replica.ReplicationManager object at 0x7fc7aabf2128>
from_instance = <lib389.DirSrv object at 0x7fc7a9ce6128>
to_instance = <lib389.DirSrv object at 0x7fc7aa395550>, timeout = 20

def wait_for_replication(self, from_instance, to_instance, timeout=20):
"""Wait for a replication event to occur from instance to instance. This
shows some point of synchronisation has occured.

:param from_instance: The instance whos state we we want to check from
:type from_instance: lib389.DirSrv
:param to_instance: The instance whos state we want to check matches from.
:type to_instance: lib389.DirSrv
:param timeout: Fail after timeout seconds.
:type timeout: int

"""
# Touch something then wait_for_replication.
from_groups = Groups(from_instance, basedn=self._suffix, rdn=None)
to_groups = Groups(to_instance, basedn=self._suffix, rdn=None)
from_group = from_groups.get('replication_managers')
to_group = to_groups.get('replication_managers')

change = str(uuid.uuid4())

from_group.replace('description', change)

for i in range(0, timeout):
desc = to_group.get_attr_val_utf8('description')
if change == desc:
self._log.info("SUCCESS: Replication from %s to %s is working" % (from_instance.ldapuri, to_instance.ldapuri))
return True
time.sleep(1)
> raise Exception("Replication did not sync in time!")
E Exception: Replication did not sync in time!

/usr/local/lib/python3.7/site-packages/lib389/replica.py:1950: Exception
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:139 Creating replication topology. INFO lib389.topologies:topologies.py:153 Joining master master2 to master1 ... INFO lib389.replica:replica.py:1535 SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO lib389.replica:replica.py:1604 SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO lib389.topologies:topologies.py:161 Ensuring master master1 to master2 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO lib389.topologies:topologies.py:161 Ensuring master master2 to master1 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists
Failed suites/resource_limits/fdlimits_test.py::test_fd_limits 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7a9b55d30>

@pytest.mark.skipif(ds_is_older("1.4.1.2"), reason="Not implemented")
def test_fd_limits(topology_st):
"""Test the default limits, and custom limits

:id: fa0a5106-612f-428f-84c0-9c85c34d0433
:setup: Standalone Instance
:steps:
1. Check default limit
2. Change default limit
3. Check invalid/too high limit is rejected
4. Check invalid/too low limit is rejected
:expectedresults:
1. Success
2. Success
3. Success
4 Success
"""

# Check systemd default
max_fd = topology_st.standalone.config.get_attr_val_utf8(FD_ATTR)
> assert max_fd == SYSTEMD_VAL
E AssertionError: assert '1024' == '16384'
E - 1024
E + 16384

suites/resource_limits/fdlimits_test.py:40: AssertionError
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Failed tickets/ticket47462_test.py::test_ticket47462 0.00
topology_m2 = <lib389.topologies.TopologyMain object at 0x7fc7a91fdf28>

def test_ticket47462(topology_m2):
"""
Test that AES properly replaces DES during an update/restart, and that
replication also works correctly.
"""

#
# First set config as if it's an older version. Set DES to use
# libdes-plugin, MMR to depend on DES, delete the existing AES plugin,
# and set a DES password for the replication agreement.
#
# Add an extra attribute to the DES plugin args
#
try:
topology_m2.ms["master1"].modify_s(DES_PLUGIN,
> [(ldap.MOD_REPLACE, 'nsslapd-pluginEnabled', 'on')])

tickets/ticket47462_test.py:49:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:631: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:603: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:600: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7a91e4358>
func = <built-in method modify_ext of LDAP object at 0x7fc7a921a378>
args = ('cn=DES,cn=Password Storage Schemes,cn=plugins,cn=config', [(2, 'nsslapd-pluginEnabled', 'on')], None, None)
kwargs = {}, diagnostic_message_success = None

def _ldap_call(self,func,*args,**kwargs):
"""
Wrapper method mainly for serializing calls into OpenLDAP libs
and trace logs
"""
self._ldap_object_lock.acquire()
if __debug__:
if self._trace_level>=1:
self._trace_file.write('*** %s %s - %s\n%s\n' % (
repr(self),
self._uri,
'.'.join((self.__class__.__name__,func.__name__)),
pprint.pformat((args,kwargs))
))
if self._trace_level>=9:
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
diagnostic_message_success = None
try:
try:
> result = func(*args,**kwargs)
E TypeError: ('Tuple_to_LDAPMod(): expected a byte string in the list', 'o')

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:315: TypeError
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:139 Creating replication topology. INFO lib389.topologies:topologies.py:153 Joining master master2 to master1 ... INFO lib389.replica:replica.py:1535 SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO lib389.replica:replica.py:1604 SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO lib389.topologies:topologies.py:161 Ensuring master master1 to master2 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO lib389.topologies:topologies.py:161 Ensuring master master2 to master1 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists
Failed tickets/ticket47819_test.py::test_ticket47819 4.19
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7a8e8b358>

def test_ticket47819(topology_st):
"""
from lib389.utils import *

# Skip on older versions
pytestmark = pytest.mark.skipif(ds_is_older('1.3.4'), reason="Not implemented")
Testing precise tombstone purging:
[1] Make sure "nsTombstoneCSN" is added to new tombstones
[2] Make sure an import of a replication ldif adds "nsTombstoneCSN"
to old tombstones
[4] Test fixup task
[3] Make sure tombstone purging works
"""

log.info('Testing Ticket 47819 - Test precise tombstone purging')

#
# Setup Replication
#
master = topology_st.standalone
repl = ReplicationManager(DEFAULT_SUFFIX)
repl.create_first_master(master)
repl.ensure_agreement(master, master)

#
# Part 1 create a tombstone entry and make sure nsTombstoneCSN is added
#
log.info('Part 1: Add and then delete an entry to create a tombstone...')

try:
topology_st.standalone.add_s(Entry(('cn=entry1,dc=example,dc=com', {
'objectclass': 'top person'.split(),
'sn': 'user',
'cn': 'entry1'})))
except ldap.LDAPError as e:
log.error('Failed to add entry: ' + e.message['desc'])
assert False

try:
topology_st.standalone.delete_s('cn=entry1,dc=example,dc=com')
except ldap.LDAPError as e:
log.error('Failed to delete entry: ' + e.message['desc'])
assert False

log.info('Search for tombstone entries...')
try:
entries = topology_st.standalone.search_s(DEFAULT_SUFFIX, ldap.SCOPE_SUBTREE,
'(&(nsTombstoneCSN=*)(objectclass=nsTombstone))')
if not entries:
log.fatal('Search failed to the new tombstone(nsTombstoneCSN is probably missing).')
assert False
except ldap.LDAPError as e:
log.fatal('Search failed: ' + e.message['desc'])
assert False

log.info('Part 1 - passed')

#
# Part 2 - import ldif with tombstones missing 'nsTombstoneCSN'
#
# First, export the replication ldif, edit the file(remove nstombstonecsn),
# and reimport it.
#
log.info('Part 2: Exporting replication ldif...')

# Get the the full path and name for our LDIF we will be exporting
ldif_file = "/tmp/export.ldif"

args = {EXPORT_REPL_INFO: True,
TASK_WAIT: True}
exportTask = Tasks(topology_st.standalone)
try:
exportTask.exportLDIF(DEFAULT_SUFFIX, None, ldif_file, args)
except ValueError:
assert False
time.sleep(1)

# open the ldif file, get the lines, then rewrite the file
ldif = open(ldif_file, "r")
lines = ldif.readlines()
ldif.close()
time.sleep(1)

> ldif = open(ldif_file, "w")
E PermissionError: [Errno 13] Permission denied: '/tmp/export.ldif'

tickets/ticket47819_test.py:108: PermissionError
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:38901 to ldap://server.example.com:38901 is was created INFO lib389:tasks.py:506 Export task export_05292019_211954 for file /tmp/export.ldif completed successfully
Failed tickets/ticket47838_test.py::test_47838_init 4.17
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7a8ed9518>

def test_47838_init(topology_st):
"""
Generate self signed cert and import it to the DS cert db.
Enable SSL
"""
_header(topology_st, 'Testing Ticket 47838 - harden the list of ciphers available by default')
onss_version = os.popen("rpm -q nss | awk -F'-' '{print $2}'", "r")
global nss_version
nss_version = onss_version.readline()
nss_ssl = NssSsl(dbpath=topology_st.standalone.get_cert_dir())
nss_ssl.reinit()
nss_ssl.create_rsa_ca()
nss_ssl.create_rsa_key_and_cert()

log.info("\n######################### enable SSL in the directory server with all ciphers ######################\n")
topology_st.standalone.simple_bind_s(DN_DM, PASSWORD)
topology_st.standalone.modify_s(ENCRYPTION_DN, [(ldap.MOD_REPLACE, 'nsSSL3', b'off'),
(ldap.MOD_REPLACE, 'nsTLS1', b'on'),
(ldap.MOD_REPLACE, 'nsSSLClientAuth', b'allowed'),
(ldap.MOD_REPLACE, 'allowWeakCipher', b'on'),
(ldap.MOD_REPLACE, 'nsSSL3Ciphers', b'+all')])

topology_st.standalone.modify_s(CONFIG_DN, [(ldap.MOD_REPLACE, 'nsslapd-security', b'on'),
(ldap.MOD_REPLACE, 'nsslapd-ssl-check-hostname', b'off'),
(ldap.MOD_REPLACE, 'nsslapd-secureport', ensure_bytes(MY_SECURE_PORT))])

topology_st.standalone.add_s(Entry((RSA_DN, {'objectclass': "top nsEncryptionModule".split(),
'cn': RSA,
'nsSSLPersonalitySSL': SERVERCERT,
'nsSSLToken': 'internal (software)',
> 'nsSSLActivation': 'on'})))

tickets/ticket47838_test.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:195: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:430: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:197: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:416: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:751: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:758: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:331: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/local/lib64/python3.7/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7a8ee36d8>
func = <built-in method result4 of LDAP object at 0x7fc7a8fec7b0>
args = (6, 1, -1, 0, 0, 0), kwargs = {}, diagnostic_message_success = None
exc_type = None, exc_value = None, exc_traceback = None

def _ldap_call(self,func,*args,**kwargs):
"""
Wrapper method mainly for serializing calls into OpenLDAP libs
and trace logs
"""
self._ldap_object_lock.acquire()
if __debug__:
if self._trace_level>=1:
self._trace_file.write('*** %s %s - %s\n%s\n' % (
repr(self),
self._uri,
'.'.join((self.__class__.__name__,func.__name__)),
pprint.pformat((args,kwargs))
))
if self._trace_level>=9:
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
diagnostic_message_success = None
try:
try:
> result = func(*args,**kwargs)
E ldap.ALREADY_EXISTS: {'desc': 'Already exists'}

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:315: ALREADY_EXISTS
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
INFO lib389:ticket47838_test.py:49 ############################################### INFO lib389:ticket47838_test.py:50 ####### INFO lib389:ticket47838_test.py:51 ####### Testing Ticket 47838 - harden the list of ciphers available by default INFO lib389:ticket47838_test.py:52 ####### INFO lib389:ticket47838_test.py:53 ############################################### INFO lib389.utils:ticket47838_test.py:70 ######################### enable SSL in the directory server with all ciphers ######################
Failed tickets/ticket47838_test.py::test_47838_run_9 4.70
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7a8ed9518>

def test_47838_run_9(topology_st):
"""
Check no nsSSL3Ciphers
Default ciphers are enabled.
allowWeakCipher: on
nsslapd-errorlog-level: 0
"""
_header(topology_st,
'Test Case 10 - Check no nsSSL3Ciphers (default setting) with no errorlog-level & allowWeakCipher on')

topology_st.standalone.simple_bind_s(DN_DM, PASSWORD)
topology_st.standalone.modify_s(ENCRYPTION_DN, [(ldap.MOD_REPLACE, 'nsSSL3Ciphers', None),
(ldap.MOD_REPLACE, 'allowWeakCipher', b'on')])
topology_st.standalone.modify_s(CONFIG_DN, [(ldap.MOD_REPLACE, 'nsslapd-errorlog-level', None)])

log.info("\n######################### Restarting the server ######################\n")
topology_st.standalone.stop(timeout=10)
os.system('mv %s %s.47838_8' % (topology_st.standalone.errlog, topology_st.standalone.errlog))
os.system('touch %s' % (topology_st.standalone.errlog))
time.sleep(1)
topology_st.standalone.start(timeout=120)

enabled = os.popen('egrep "SSL info:" %s | egrep \": enabled\" | wc -l' % topology_st.standalone.errlog)
disabled = os.popen('egrep "SSL info:" %s | egrep \": disabled\" | wc -l' % topology_st.standalone.errlog)
ecount = int(enabled.readline().rstrip())
dcount = int(disabled.readline().rstrip())

log.info("Enabled ciphers: %d" % ecount)
log.info("Disabled ciphers: %d" % dcount)
if nss_version >= NSS330:
> assert ecount == 33
E assert 28 == 33
E -28
E +33

tickets/ticket47838_test.py:485: AssertionError
------------------------------ Captured log call -------------------------------
INFO lib389:ticket47838_test.py:49 ############################################### INFO lib389:ticket47838_test.py:50 ####### INFO lib389:ticket47838_test.py:51 ####### Test Case 10 - Check no nsSSL3Ciphers (default setting) with no errorlog-level & allowWeakCipher on INFO lib389:ticket47838_test.py:52 ####### INFO lib389:ticket47838_test.py:53 ############################################### INFO lib389.utils:ticket47838_test.py:470 ######################### Restarting the server ###################### INFO lib389.utils:ticket47838_test.py:482 Enabled ciphers: 28 INFO lib389.utils:ticket47838_test.py:483 Disabled ciphers: 0
Failed tickets/ticket47950_test.py::test_ticket47950 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7a8a6b898>

def test_ticket47950(topology_st):
"""
Testing nsslapd-plugin-binddn-tracking does not cause issues around
access control and reconfiguring replication/repl agmt.
"""

log.info('Testing Ticket 47950 - Testing nsslapd-plugin-binddn-tracking')

#
# Turn on bind dn tracking
#
try:
> topology_st.standalone.modify_s("cn=config", [(ldap.MOD_REPLACE, 'nsslapd-plugin-binddn-tracking', 'on')])

tickets/ticket47950_test.py:41:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:631: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:603: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:600: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7a8a5bcc0>
func = <built-in method modify_ext of LDAP object at 0x7fc7a8a56e40>
args = ('cn=config', [(2, 'nsslapd-plugin-binddn-tracking', 'on')], None, None)
kwargs = {}, diagnostic_message_success = None

def _ldap_call(self,func,*args,**kwargs):
"""
Wrapper method mainly for serializing calls into OpenLDAP libs
and trace logs
"""
self._ldap_object_lock.acquire()
if __debug__:
if self._trace_level>=1:
self._trace_file.write('*** %s %s - %s\n%s\n' % (
repr(self),
self._uri,
'.'.join((self.__class__.__name__,func.__name__)),
pprint.pformat((args,kwargs))
))
if self._trace_level>=9:
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
diagnostic_message_success = None
try:
try:
> result = func(*args,**kwargs)
E TypeError: ('Tuple_to_LDAPMod(): expected a byte string in the list', 'o')

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:315: TypeError
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Failed tickets/ticket47966_test.py::test_ticket47966 0.01
topology_m2 = <lib389.topologies.TopologyMain object at 0x7fc7a9de6fd0>

def test_ticket47966(topology_m2):
'''
Testing bulk import when the backend with VLV was recreated.
If the test passes without the server crash, 47966 is verified.
'''
log.info('Testing Ticket 47966 - [VLV] slapd crashes during Dogtag clone reinstallation')
M1 = topology_m2.ms["master1"]
M2 = topology_m2.ms["master2"]
m1_m2_agmt = M1.agreement.list(suffix=DEFAULT_SUFFIX)[0].dn

log.info('0. Create a VLV index on Master 2.')
# get the backend entry
be = M2.replica.conn.backend.list(suffix=DEFAULT_SUFFIX)
if not be:
log.fatal("ticket47966: enable to retrieve the backend for %s" % DEFAULT_SUFFIX)
raise ValueError("no backend for suffix %s" % DEFAULT_SUFFIX)
bent = be[0]
beName = bent.getValue('cn')
beDn = "cn=%s,cn=ldbm database,cn=plugins,cn=config" % beName

# generate vlvSearch entry
vlvSrchDn = "cn=vlvSrch,%s" % beDn
log.info('0-1. vlvSearch dn: %s' % vlvSrchDn)
vlvSrchEntry = Entry(vlvSrchDn)
vlvSrchEntry.setValues('objectclass', 'top', 'vlvSearch')
vlvSrchEntry.setValues('cn', 'vlvSrch')
vlvSrchEntry.setValues('vlvBase', DEFAULT_SUFFIX)
vlvSrchEntry.setValues('vlvFilter', '(|(objectclass=*)(objectclass=ldapsubentry))')
vlvSrchEntry.setValues('vlvScope', '2')
> M2.add_s(vlvSrchEntry)

tickets/ticket47966_test.py:52:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:195: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:430: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:197: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:416: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:751: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:758: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:331: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/local/lib64/python3.7/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7aa046550>
func = <built-in method result4 of LDAP object at 0x7fc7a8a56e68>
args = (25, 1, -1, 0, 0, 0), kwargs = {}, diagnostic_message_success = None
exc_type = None, exc_value = None, exc_traceback = None

def _ldap_call(self,func,*args,**kwargs):
"""
Wrapper method mainly for serializing calls into OpenLDAP libs
and trace logs
"""
self._ldap_object_lock.acquire()
if __debug__:
if self._trace_level>=1:
self._trace_file.write('*** %s %s - %s\n%s\n' % (
repr(self),
self._uri,
'.'.join((self.__class__.__name__,func.__name__)),
pprint.pformat((args,kwargs))
))
if self._trace_level>=9:
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
diagnostic_message_success = None
try:
try:
> result = func(*args,**kwargs)
E ldap.NO_SUCH_OBJECT: {'desc': 'No such object'}

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:315: NO_SUCH_OBJECT
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:139 Creating replication topology. INFO lib389.topologies:topologies.py:153 Joining master master2 to master1 ... INFO lib389.replica:replica.py:1535 SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO lib389.replica:replica.py:1604 SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO lib389.topologies:topologies.py:161 Ensuring master master1 to master2 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO lib389.topologies:topologies.py:161 Ensuring master master2 to master1 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists------------------------------ Captured log call -------------------------------
INFO tests.tickets.ticket47966_test:ticket47966_test.py:28 Testing Ticket 47966 - [VLV] slapd crashes during Dogtag clone reinstallation INFO tests.tickets.ticket47966_test:ticket47966_test.py:33 0. Create a VLV index on Master 2. INFO lib389:backend.py:76 List backend with suffix=dc=example,dc=com INFO tests.tickets.ticket47966_test:ticket47966_test.py:45 0-1. vlvSearch dn: cn=vlvSrch,cn=b'userRoot',cn=ldbm database,cn=plugins,cn=config
Failed tickets/ticket47973_test.py::test_ticket47973_case 5.07
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7bbea0908>

def test_ticket47973_case(topology_st):
log.info('Testing Ticket 47973 (case) - Test the cases in the original schema are preserved.')

log.info('case 1 - Test the cases in the original schema are preserved.')

tsfile = topology_st.standalone.schemadir + '/98test.ldif'
tsfd = open(tsfile, "w")
Mozattr0 = "MoZiLLaaTTRiBuTe"
testschema = "dn: cn=schema\nattributetypes: ( 8.9.10.11.12.13.14 NAME '" + Mozattr0 + "' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'Mozilla Dummy Schema' )\nobjectclasses: ( 1.2.3.4.5.6.7 NAME 'MozillaObject' SUP top MUST ( objectclass $ cn ) MAY ( " + Mozattr0 + " ) X-ORIGIN 'user defined' )"
tsfd.write(testschema)
tsfd.close()

try:
# run the schema reload task with the default schemadir
topology_st.standalone.tasks.schemaReload(schemadir=topology_st.standalone.schemadir,
args={TASK_WAIT: False})
except ValueError:
log.error('Schema Reload task failed.')
assert False

time.sleep(5)

try:
schemaentry = topology_st.standalone.search_s("cn=schema", ldap.SCOPE_BASE,
'objectclass=top',
["objectclasses"])
oclist = schemaentry[0].data.get("objectclasses")
except ldap.LDAPError as e:
log.error('Failed to get schema entry: error (%s)' % e.args[0]['desc'])
raise e

found = 0
for oc in oclist:
log.info('OC: %s' % oc)
moz = re.findall(Mozattr0, oc.decode('utf-8'))
if moz:
found = 1
log.info('case 1: %s is in the objectclasses list -- PASS' % Mozattr0)

if found == 0:
log.error('case 1: %s is not in the objectclasses list -- FAILURE' % Mozattr0)
> assert False
E assert False

tickets/ticket47973_test.py:156: AssertionError
------------------------------ Captured log call -------------------------------
INFO lib389:tasks.py:1107 Schema Reload task (task-05292019_213048) completed successfully ERROR tests.tickets.ticket47973_test:ticket47973_test.py:155 case 1: MoZiLLaaTTRiBuTe is not in the objectclasses list -- FAILURE
Failed tickets/ticket47988_test.py::test_ticket47988_init 6.76
topology_m2 = <lib389.topologies.TopologyMain object at 0x7fc7a91ef128>

def test_ticket47988_init(topology_m2):
"""
It adds
- Objectclass with MAY 'member'
- an entry ('bind_entry') with which we bind to test the 'SELFDN' operation
It deletes the anonymous aci

"""

_header(topology_m2, 'test_ticket47988_init')

# enable acl error logging
mod = [(ldap.MOD_REPLACE, 'nsslapd-errorlog-level', ensure_bytes(str(8192)))] # REPL
topology_m2.ms["master1"].modify_s(DN_CONFIG, mod)
topology_m2.ms["master2"].modify_s(DN_CONFIG, mod)

mod = [(ldap.MOD_REPLACE, 'nsslapd-accesslog-level', ensure_bytes(str(260)))] # Internal op
topology_m2.ms["master1"].modify_s(DN_CONFIG, mod)
topology_m2.ms["master2"].modify_s(DN_CONFIG, mod)

# add dummy entries
for cpt in range(MAX_OTHERS):
name = "%s%d" % (OTHER_NAME, cpt)
topology_m2.ms["master1"].add_s(Entry(("cn=%s,%s" % (name, SUFFIX), {
'objectclass': "top person".split(),
'sn': name,
'cn': name})))

# check that entry 0 is replicated before
loop = 0
entryDN = "cn=%s0,%s" % (OTHER_NAME, SUFFIX)
while loop <= 10:
try:
ent = topology_m2.ms["master2"].getEntry(entryDN, ldap.SCOPE_BASE, "(objectclass=*)", ['telephonenumber'])
break
except ldap.NO_SUCH_OBJECT:
time.sleep(1)
loop += 1
assert (loop <= 10)

topology_m2.ms["master1"].stop(timeout=10)
topology_m2.ms["master2"].stop(timeout=10)

# install the specific schema M1: ipa3.3, M2: ipa4.1
schema_file = os.path.join(topology_m2.ms["master1"].getDir(__file__, DATA_DIR), "ticket47988/schema_ipa3.3.tar.gz")
_install_schema(topology_m2.ms["master1"], schema_file)
schema_file = os.path.join(topology_m2.ms["master1"].getDir(__file__, DATA_DIR), "ticket47988/schema_ipa4.1.tar.gz")
_install_schema(topology_m2.ms["master2"], schema_file)

> topology_m2.ms["master1"].start(timeout=10)

/export/tests/tickets/ticket47988_test.py:157:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:1138: in start
"dirsrv@%s" % self.serverid])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

popenargs = (['systemctl', 'start', 'dirsrv@master1'],), kwargs = {}
retcode = 1, cmd = ['systemctl', 'start', 'dirsrv@master1']

def check_call(*popenargs, **kwargs):
"""Run command with arguments. Wait for command to complete. If
the exit code was zero then return, otherwise raise
CalledProcessError. The CalledProcessError object will have the
return code in the returncode attribute.

The arguments are the same as for the call function. Example:

check_call(["ls", "-l"])
"""
retcode = call(*popenargs, **kwargs)
if retcode:
cmd = kwargs.get("args")
if cmd is None:
cmd = popenargs[0]
> raise CalledProcessError(retcode, cmd)
E subprocess.CalledProcessError: Command '['systemctl', 'start', 'dirsrv@master1']' returned non-zero exit status 1.

/usr/lib64/python3.7/subprocess.py:347: CalledProcessError
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:139 Creating replication topology. INFO lib389.topologies:topologies.py:153 Joining master master2 to master1 ... INFO lib389.replica:replica.py:1535 SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO lib389.replica:replica.py:1604 SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO lib389.topologies:topologies.py:161 Ensuring master master1 to master2 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO lib389.topologies:topologies.py:161 Ensuring master master2 to master1 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists----------------------------- Captured stderr call -----------------------------
Job for dirsrv@master1.service failed because the control process exited with error code. See "systemctl status dirsrv@master1.service" and "journalctl -xe" for details. ------------------------------ Captured log call -------------------------------
INFO lib389:ticket47988_test.py:64 ############################################### INFO lib389:ticket47988_test.py:65 ####### INFO lib389:ticket47988_test.py:66 ####### test_ticket47988_init INFO lib389:ticket47988_test.py:67 ####### INFO lib389:ticket47988_test.py:68 ################################################### INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/02common.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/50ns-admin.ldif INFO lib389:ticket47988_test.py:98 replace /etc/dirsrv/slapd-master1/schema/99user.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/60nss-ldap.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/60autofs.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/50ns-web.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/60samba.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/10dna-plugin.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/05rfc4523.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/60basev2.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/10automember-plugin.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/05rfc2927.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/10mep-plugin.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/60ipadns.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/10rfc2307.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/50ns-mail.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/05rfc4524.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/60trust.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/60ipaconfig.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/50ns-directory.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/60eduperson.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/60mozilla.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/65ipasudo.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/60rfc3712.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/60rfc2739.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/50ns-value.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/60acctpolicy.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/01core389.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/60sabayon.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/60pam-plugin.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/00core.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/25java-object.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/60sudo.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/70ipaotp.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/60pureftpd.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/61kerberos-ipav3.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/60kerberos.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/60basev3.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/06inetorgperson.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/30ns-common.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/28pilot.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/20subscriber.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/50ns-certificate.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master1/schema/60posix-winsync-plugin.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/02common.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/50ns-admin.ldif INFO lib389:ticket47988_test.py:98 replace /etc/dirsrv/slapd-master2/schema/99user.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/60nss-ldap.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/60autofs.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/50ns-web.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/60samba.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/10dna-plugin.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/05rfc4523.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/60basev2.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/10automember-plugin.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/05rfc2927.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/10mep-plugin.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/60ipadns.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/10rfc2307.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/50ns-mail.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/05rfc4524.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/60trust.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/60ipaconfig.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/50ns-directory.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/60eduperson.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/60mozilla.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/65ipasudo.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/60rfc3712.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/60rfc2739.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/50ns-value.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/60acctpolicy.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/01core389.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/60sabayon.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/60pam-plugin.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/00core.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/25java-object.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/60sudo.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/70ipaotp.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/60pureftpd.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/61kerberos-ipav3.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/60kerberos.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/60basev3.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/06inetorgperson.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/30ns-common.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/28pilot.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/20subscriber.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/50ns-certificate.ldif INFO lib389:ticket47988_test.py:102 add /etc/dirsrv/slapd-master2/schema/60posix-winsync-plugin.ldif
Failed tickets/ticket47988_test.py::test_ticket47988_1 0.00
topology_m2 = <lib389.topologies.TopologyMain object at 0x7fc7a91ef128>

def test_ticket47988_1(topology_m2):
'''
Check that replication is working and pause replication M2->M1
'''
_header(topology_m2, 'test_ticket47988_1')

topology_m2.ms["master1"].log.debug("\n\nCheck that replication is working and pause replication M2->M1\n")
> _do_update_entry(supplier=topology_m2.ms["master2"], consumer=topology_m2.ms["master1"], attempts=5)

/export/tests/tickets/ticket47988_test.py:234:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/export/tests/tickets/ticket47988_test.py:184: in _do_update_entry
supplier.modify_s(entryDN, mod)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:631: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:604: in modify_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:751: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:758: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:331: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/local/lib64/python3.7/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7aa6a3da0>
func = <built-in method result4 of LDAP object at 0x7fc7a87e3f08>
args = (27, 1, -1, 0, 0, 0), kwargs = {}, diagnostic_message_success = None
exc_type = None, exc_value = None, exc_traceback = None

def _ldap_call(self,func,*args,**kwargs):
"""
Wrapper method mainly for serializing calls into OpenLDAP libs
and trace logs
"""
self._ldap_object_lock.acquire()
if __debug__:
if self._trace_level>=1:
self._trace_file.write('*** %s %s - %s\n%s\n' % (
repr(self),
self._uri,
'.'.join((self.__class__.__name__,func.__name__)),
pprint.pformat((args,kwargs))
))
if self._trace_level>=9:
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
diagnostic_message_success = None
try:
try:
> result = func(*args,**kwargs)
E ldap.SERVER_DOWN: {'desc': "Can't contact LDAP server"}

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:315: SERVER_DOWN
------------------------------ Captured log call -------------------------------
INFO lib389:ticket47988_test.py:64 ############################################### INFO lib389:ticket47988_test.py:65 ####### INFO lib389:ticket47988_test.py:66 ####### test_ticket47988_1 INFO lib389:ticket47988_test.py:67 ####### INFO lib389:ticket47988_test.py:68 ###################################################
Failed tickets/ticket47988_test.py::test_ticket47988_2 0.00
topology_m2 = <lib389.topologies.TopologyMain object at 0x7fc7a91ef128>

def test_ticket47988_2(topology_m2):
'''
Update M1 schema and trigger update M1->M2
So M1 should learn new/extended definitions that are in M2 schema
'''
_header(topology_m2, 'test_ticket47988_2')

topology_m2.ms["master1"].log.debug("\n\nUpdate M1 schema and an entry on M1\n")
> master1_schema_csn = topology_m2.ms["master1"].schema.get_schema_csn()

/export/tests/tickets/ticket47988_test.py:246:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.7/site-packages/lib389/schema.py:568: in get_schema_csn
"objectclass=*", ['nsSchemaCSN'])
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:854: in search_s
return self.search_ext_s(base,scope,filterstr,attrlist,attrsonly,None,None,timeout=self.timeout)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:848: in search_ext_s
return self.result(msgid,all=1,timeout=timeout)[1]
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:167: in inner
objtype, data = f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:740: in result
resp_type, resp_data, resp_msgid = self.result2(msgid,all,timeout)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:744: in result2
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all,timeout)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:751: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:758: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:331: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/local/lib64/python3.7/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7a9dee6d8>
func = <built-in method result4 of LDAP object at 0x7fc7a8cda350>
args = (63, 1, -1, 0, 0, 0), kwargs = {}, diagnostic_message_success = None
exc_type = None, exc_value = None, exc_traceback = None

def _ldap_call(self,func,*args,**kwargs):
"""
Wrapper method mainly for serializing calls into OpenLDAP libs
and trace logs
"""
self._ldap_object_lock.acquire()
if __debug__:
if self._trace_level>=1:
self._trace_file.write('*** %s %s - %s\n%s\n' % (
repr(self),
self._uri,
'.'.join((self.__class__.__name__,func.__name__)),
pprint.pformat((args,kwargs))
))
if self._trace_level>=9:
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
diagnostic_message_success = None
try:
try:
> result = func(*args,**kwargs)
E ldap.SERVER_DOWN: {'desc': "Can't contact LDAP server"}

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:315: SERVER_DOWN
------------------------------ Captured log call -------------------------------
INFO lib389:ticket47988_test.py:64 ############################################### INFO lib389:ticket47988_test.py:65 ####### INFO lib389:ticket47988_test.py:66 ####### test_ticket47988_2 INFO lib389:ticket47988_test.py:67 ####### INFO lib389:ticket47988_test.py:68 ###################################################
Failed tickets/ticket47988_test.py::test_ticket47988_3 0.00
topology_m2 = <lib389.topologies.TopologyMain object at 0x7fc7a91ef128>

def test_ticket47988_3(topology_m2):
'''
Resume replication M2->M1 and check replication is still working
'''
_header(topology_m2, 'test_ticket47988_3')

> _resume_M2_to_M1(topology_m2)

/export/tests/tickets/ticket47988_test.py:283:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/export/tests/tickets/ticket47988_test.py:222: in _resume_M2_to_M1
ents = topology_m2.ms["master2"].agreement.list(suffix=SUFFIX)
/usr/local/lib/python3.7/site-packages/lib389/agreement.py:873: in list
replica_entries = self.conn.replica.list(suffix)
/usr/local/lib/python3.7/site-packages/lib389/replica.py:170: in list
ents = self.conn.search_s(base, ldap.SCOPE_SUBTREE, filtr)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:854: in search_s
return self.search_ext_s(base,scope,filterstr,attrlist,attrsonly,None,None,timeout=self.timeout)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:847: in search_ext_s
msgid = self.search_ext(base,scope,filterstr,attrlist,attrsonly,serverctrls,clientctrls,timeout,sizelimit)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:843: in search_ext
timeout,sizelimit,
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:331: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/local/lib64/python3.7/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7aa6a3da0>
func = <built-in method search_ext of LDAP object at 0x7fc7a87e3f08>
args = ('cn=mapping tree,cn=config', 2, '(&(objectclass=nsds5Replica)(nsDS5ReplicaRoot=dc=example,dc=com))', None, 0, None, ...)
kwargs = {}, diagnostic_message_success = None, exc_type = None
exc_value = None, exc_traceback = None

def _ldap_call(self,func,*args,**kwargs):
"""
Wrapper method mainly for serializing calls into OpenLDAP libs
and trace logs
"""
self._ldap_object_lock.acquire()
if __debug__:
if self._trace_level>=1:
self._trace_file.write('*** %s %s - %s\n%s\n' % (
repr(self),
self._uri,
'.'.join((self.__class__.__name__,func.__name__)),
pprint.pformat((args,kwargs))
))
if self._trace_level>=9:
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
diagnostic_message_success = None
try:
try:
> result = func(*args,**kwargs)
E ldap.SERVER_DOWN: {'desc': "Can't contact LDAP server"}

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:315: SERVER_DOWN
------------------------------ Captured log call -------------------------------
INFO lib389:ticket47988_test.py:64 ############################################### INFO lib389:ticket47988_test.py:65 ####### INFO lib389:ticket47988_test.py:66 ####### test_ticket47988_3 INFO lib389:ticket47988_test.py:67 ####### INFO lib389:ticket47988_test.py:68 ################################################### INFO lib389:ticket47988_test.py:221 ######################### resume RA M2->M1 ######################
Failed tickets/ticket47988_test.py::test_ticket47988_4 0.00
topology_m2 = <lib389.topologies.TopologyMain object at 0x7fc7a91ef128>

def test_ticket47988_4(topology_m2):
'''
Check schemaCSN is identical on both server
And save the nsschemaCSN to later check they do not change unexpectedly
'''
_header(topology_m2, 'test_ticket47988_4')

> master1_schema_csn = topology_m2.ms["master1"].schema.get_schema_csn()

/export/tests/tickets/ticket47988_test.py:295:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.7/site-packages/lib389/schema.py:568: in get_schema_csn
"objectclass=*", ['nsSchemaCSN'])
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:854: in search_s
return self.search_ext_s(base,scope,filterstr,attrlist,attrsonly,None,None,timeout=self.timeout)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:847: in search_ext_s
msgid = self.search_ext(base,scope,filterstr,attrlist,attrsonly,serverctrls,clientctrls,timeout,sizelimit)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:843: in search_ext
timeout,sizelimit,
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:331: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/local/lib64/python3.7/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7a9dee6d8>
func = <built-in method search_ext of LDAP object at 0x7fc7a8cda350>
args = ('cn=schema', 0, 'objectclass=*', ['nsSchemaCSN'], 0, None, ...)
kwargs = {}, diagnostic_message_success = None, exc_type = None
exc_value = None, exc_traceback = None

def _ldap_call(self,func,*args,**kwargs):
"""
Wrapper method mainly for serializing calls into OpenLDAP libs
and trace logs
"""
self._ldap_object_lock.acquire()
if __debug__:
if self._trace_level>=1:
self._trace_file.write('*** %s %s - %s\n%s\n' % (
repr(self),
self._uri,
'.'.join((self.__class__.__name__,func.__name__)),
pprint.pformat((args,kwargs))
))
if self._trace_level>=9:
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
diagnostic_message_success = None
try:
try:
> result = func(*args,**kwargs)
E ldap.SERVER_DOWN: {'desc': "Can't contact LDAP server"}

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:315: SERVER_DOWN
------------------------------ Captured log call -------------------------------
INFO lib389:ticket47988_test.py:64 ############################################### INFO lib389:ticket47988_test.py:65 ####### INFO lib389:ticket47988_test.py:66 ####### test_ticket47988_4 INFO lib389:ticket47988_test.py:67 ####### INFO lib389:ticket47988_test.py:68 ###################################################
Failed tickets/ticket47988_test.py::test_ticket47988_5 0.00
topology_m2 = <lib389.topologies.TopologyMain object at 0x7fc7a91ef128>

def test_ticket47988_5(topology_m2):
'''
Check schemaCSN do not change unexpectedly
'''
_header(topology_m2, 'test_ticket47988_5')

> _do_update_entry(supplier=topology_m2.ms["master1"], consumer=topology_m2.ms["master2"], attempts=5)

/export/tests/tickets/ticket47988_test.py:313:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/export/tests/tickets/ticket47988_test.py:184: in _do_update_entry
supplier.modify_s(entryDN, mod)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:631: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:603: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:600: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:331: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/local/lib64/python3.7/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7a9dee6d8>
func = <built-in method modify_ext of LDAP object at 0x7fc7a8cda350>
args = ('cn=other_entry0,dc=example,dc=com', [(2, 'telephonenumber', b'180')], None, None)
kwargs = {}, diagnostic_message_success = None, exc_type = None
exc_value = None, exc_traceback = None

def _ldap_call(self,func,*args,**kwargs):
"""
Wrapper method mainly for serializing calls into OpenLDAP libs
and trace logs
"""
self._ldap_object_lock.acquire()
if __debug__:
if self._trace_level>=1:
self._trace_file.write('*** %s %s - %s\n%s\n' % (
repr(self),
self._uri,
'.'.join((self.__class__.__name__,func.__name__)),
pprint.pformat((args,kwargs))
))
if self._trace_level>=9:
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
diagnostic_message_success = None
try:
try:
> result = func(*args,**kwargs)
E ldap.SERVER_DOWN: {'desc': "Can't contact LDAP server"}

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:315: SERVER_DOWN
------------------------------ Captured log call -------------------------------
INFO lib389:ticket47988_test.py:64 ############################################### INFO lib389:ticket47988_test.py:65 ####### INFO lib389:ticket47988_test.py:66 ####### test_ticket47988_5 INFO lib389:ticket47988_test.py:67 ####### INFO lib389:ticket47988_test.py:68 ###################################################
Failed tickets/ticket47988_test.py::test_ticket47988_6 0.00
topology_m2 = <lib389.topologies.TopologyMain object at 0x7fc7a91ef128>

def test_ticket47988_6(topology_m2):
'''
Update M1 schema and trigger update M2->M1
So M2 should learn new/extended definitions that are in M1 schema
'''

_header(topology_m2, 'test_ticket47988_6')

topology_m2.ms["master1"].log.debug("\n\nUpdate M1 schema and an entry on M1\n")
> master1_schema_csn = topology_m2.ms["master1"].schema.get_schema_csn()

/export/tests/tickets/ticket47988_test.py:336:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.7/site-packages/lib389/schema.py:568: in get_schema_csn
"objectclass=*", ['nsSchemaCSN'])
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:854: in search_s
return self.search_ext_s(base,scope,filterstr,attrlist,attrsonly,None,None,timeout=self.timeout)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:847: in search_ext_s
msgid = self.search_ext(base,scope,filterstr,attrlist,attrsonly,serverctrls,clientctrls,timeout,sizelimit)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:843: in search_ext
timeout,sizelimit,
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:331: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/local/lib64/python3.7/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7a9dee6d8>
func = <built-in method search_ext of LDAP object at 0x7fc7a8cda350>
args = ('cn=schema', 0, 'objectclass=*', ['nsSchemaCSN'], 0, None, ...)
kwargs = {}, diagnostic_message_success = None, exc_type = None
exc_value = None, exc_traceback = None

def _ldap_call(self,func,*args,**kwargs):
"""
Wrapper method mainly for serializing calls into OpenLDAP libs
and trace logs
"""
self._ldap_object_lock.acquire()
if __debug__:
if self._trace_level>=1:
self._trace_file.write('*** %s %s - %s\n%s\n' % (
repr(self),
self._uri,
'.'.join((self.__class__.__name__,func.__name__)),
pprint.pformat((args,kwargs))
))
if self._trace_level>=9:
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
diagnostic_message_success = None
try:
try:
> result = func(*args,**kwargs)
E ldap.SERVER_DOWN: {'desc': "Can't contact LDAP server"}

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:315: SERVER_DOWN
------------------------------ Captured log call -------------------------------
INFO lib389:ticket47988_test.py:64 ############################################### INFO lib389:ticket47988_test.py:65 ####### INFO lib389:ticket47988_test.py:66 ####### test_ticket47988_6 INFO lib389:ticket47988_test.py:67 ####### INFO lib389:ticket47988_test.py:68 ###################################################
Failed tickets/ticket48005_test.py::test_ticket48005_usn 4.81
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7a8938470>

def test_ticket48005_usn(topology_st):
'''
Enable entryusn
Delete all user entries.
Run USN tombstone cleanup task
Shutdown the server
Check if a core file was generated or not
If no core was found, this test case was successful.
'''
log.info("Ticket 48005 usn test...")
topology_st.standalone.plugins.enable(name=PLUGIN_USN)

topology_st.standalone.restart(timeout=10)

try:
> entries = topology_st.standalone.search_s(SUFFIX, ldap.SCOPE_SUBTREE, "(objectclass=inetorgperson)")

/export/tests/tickets/ticket48005_test.py:283:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:854: in search_s
return self.search_ext_s(base,scope,filterstr,attrlist,attrsonly,None,None,timeout=self.timeout)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:848: in search_ext_s
return self.result(msgid,all=1,timeout=timeout)[1]
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:167: in inner
objtype, data = f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:740: in result
resp_type, resp_data, resp_msgid = self.result2(msgid,all,timeout)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:744: in result2
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all,timeout)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:751: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:758: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:331: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/local/lib64/python3.7/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7a82dac18>
func = <built-in method result4 of LDAP object at 0x7fc7a8970328>
args = (2, 1, -1, 0, 0, 0), kwargs = {}, diagnostic_message_success = None
exc_type = None, exc_value = None, exc_traceback = None

def _ldap_call(self,func,*args,**kwargs):
"""
Wrapper method mainly for serializing calls into OpenLDAP libs
and trace logs
"""
self._ldap_object_lock.acquire()
if __debug__:
if self._trace_level>=1:
self._trace_file.write('*** %s %s - %s\n%s\n' % (
repr(self),
self._uri,
'.'.join((self.__class__.__name__,func.__name__)),
pprint.pformat((args,kwargs))
))
if self._trace_level>=9:
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
diagnostic_message_success = None
try:
try:
> result = func(*args,**kwargs)
E ldap.NO_SUCH_OBJECT: {'desc': 'No such object'}

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:315: NO_SUCH_OBJECT
------------------------------ Captured log call -------------------------------
INFO tests.tickets.ticket48005_test:ticket48005_test.py:277 Ticket 48005 usn test...
Failed tickets/ticket48194_test.py::test_init 5.47
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7a85d3da0>

def test_init(topology_st):
"""
Generate self signed cert and import it to the DS cert db.
Enable SSL
"""
_header(topology_st, 'Testing Ticket 48194 - harden the list of ciphers available by default')

nss_ssl = NssSsl(dbpath=topology_st.standalone.get_cert_dir())
nss_ssl.reinit()
nss_ssl.create_rsa_ca()
nss_ssl.create_rsa_key_and_cert()

log.info("\n######################### enable SSL in the directory server with all ciphers ######################\n")
topology_st.standalone.simple_bind_s(DN_DM, PASSWORD)
topology_st.standalone.modify_s(ENCRYPTION_DN, [(ldap.MOD_REPLACE, 'nsSSL3', b'off'),
(ldap.MOD_REPLACE, 'nsTLS1', b'on'),
(ldap.MOD_REPLACE, 'nsSSLClientAuth', b'allowed'),
(ldap.MOD_REPLACE, 'allowWeakCipher', b'on'),
(ldap.MOD_REPLACE, 'nsSSL3Ciphers', b'+all')])

topology_st.standalone.modify_s(CONFIG_DN, [(ldap.MOD_REPLACE, 'nsslapd-security', b'on'),
(ldap.MOD_REPLACE, 'nsslapd-ssl-check-hostname', b'off'),
(ldap.MOD_REPLACE, 'nsslapd-secureport', ensure_bytes(LDAPSPORT))])

topology_st.standalone.add_s(Entry((RSA_DN, {'objectclass': "top nsEncryptionModule".split(),
'cn': RSA,
'nsSSLPersonalitySSL': SERVERCERT,
'nsSSLToken': 'internal (software)',
> 'nsSSLActivation': 'on'})))

/export/tests/tickets/ticket48194_test.py:73:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:195: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:430: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:197: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:416: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:751: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:758: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:331: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/local/lib64/python3.7/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7bb38b5c0>
func = <built-in method result4 of LDAP object at 0x7fc7a858b558>
args = (6, 1, -1, 0, 0, 0), kwargs = {}, diagnostic_message_success = None
exc_type = None, exc_value = None, exc_traceback = None

def _ldap_call(self,func,*args,**kwargs):
"""
Wrapper method mainly for serializing calls into OpenLDAP libs
and trace logs
"""
self._ldap_object_lock.acquire()
if __debug__:
if self._trace_level>=1:
self._trace_file.write('*** %s %s - %s\n%s\n' % (
repr(self),
self._uri,
'.'.join((self.__class__.__name__,func.__name__)),
pprint.pformat((args,kwargs))
))
if self._trace_level>=9:
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
diagnostic_message_success = None
try:
try:
> result = func(*args,**kwargs)
E ldap.ALREADY_EXISTS: {'desc': 'Already exists'}

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:315: ALREADY_EXISTS
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
INFO lib389:ticket48194_test.py:40 ############################################### INFO lib389:ticket48194_test.py:41 ####### Testing Ticket 48194 - harden the list of ciphers available by default INFO lib389:ticket48194_test.py:42 ############################################### INFO lib389.utils:ticket48194_test.py:57 ######################### enable SSL in the directory server with all ciphers ######################
Failed tickets/ticket48194_test.py::test_run_1 5.73
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7a85d3da0>

def test_run_1(topology_st):
"""
Check nsSSL3Ciphers: +all
All ciphers are enabled except null.
Note: default allowWeakCipher (i.e., off) for +all
"""
_header(topology_st, 'Test Case 2 - Check the ciphers availability for "+all" with default allowWeakCiphers')

topology_st.standalone.simple_bind_s(DN_DM, PASSWORD)
topology_st.standalone.modify_s(CONFIG_DN, [(ldap.MOD_REPLACE, 'nsslapd-errorlog-level', b'64')])
# Make sure allowWeakCipher is not set.
topology_st.standalone.modify_s(ENCRYPTION_DN, [(ldap.MOD_DELETE, 'allowWeakCipher', None)])

log.info("\n######################### Restarting the server ######################\n")
topology_st.standalone.stop(timeout=10)
os.system('mv %s %s.48194_0' % (topology_st.standalone.errlog, topology_st.standalone.errlog))
os.system('touch %s' % (topology_st.standalone.errlog))
time.sleep(2)
topology_st.standalone.start(timeout=120)

> connectWithOpenssl(topology_st, 'DES-CBC3-SHA', False)

/export/tests/tickets/ticket48194_test.py:157:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

topology_st = <lib389.topologies.TopologyMain object at 0x7fc7a85d3da0>
cipher = 'DES-CBC3-SHA', expect = False

def connectWithOpenssl(topology_st, cipher, expect):
"""
Connect with the given cipher
Condition:
If expect is True, the handshake should be successful.
If expect is False, the handshake should be refused with
access log: "Cannot communicate securely with peer:
no common encryption algorithm(s)."
"""
log.info("Testing %s -- expect to handshake %s", cipher, "successfully" if expect else "failed")

myurl = 'localhost:%s' % LDAPSPORT
cmdline = ['/usr/bin/openssl', 's_client', '-connect', myurl, '-cipher', cipher]

strcmdline = '/usr/bin/openssl s_client -connect localhost:%s -cipher %s' % (LDAPSPORT, cipher)
log.info("Running cmdline: %s", strcmdline)

try:
proc = subprocess.Popen(cmdline, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.STDOUT)
except ValueError:
log.info("%s failed: %s", cmdline, ValueError)
proc.kill()

while True:
l = proc.stdout.readline()
if l == b"":
break
if b'Cipher is' in l:
log.info("Found: %s", l)
if expect:
if b'(NONE)' in l:
assert False
else:
proc.stdin.close()
assert True
else:
if b'(NONE)' in l:
assert True
else:
proc.stdin.close()
> assert False
E assert False

/export/tests/tickets/ticket48194_test.py:116: AssertionError
------------------------------ Captured log call -------------------------------
INFO lib389:ticket48194_test.py:40 ############################################### INFO lib389:ticket48194_test.py:41 ####### Test Case 2 - Check the ciphers availability for "+all" with default allowWeakCiphers INFO lib389:ticket48194_test.py:42 ############################################### INFO lib389.utils:ticket48194_test.py:150 ######################### Restarting the server ###################### INFO lib389.utils:ticket48194_test.py:85 Testing DES-CBC3-SHA -- expect to handshake failed INFO lib389.utils:ticket48194_test.py:91 Running cmdline: /usr/bin/openssl s_client -connect localhost:63601 -cipher DES-CBC3-SHA INFO lib389.utils:ticket48194_test.py:104 Found: b'New, TLSv1.3, Cipher is TLS_AES_128_GCM_SHA256\n'
Failed tickets/ticket48194_test.py::test_run_2 5.82
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7a85d3da0>

def test_run_2(topology_st):
"""
Check nsSSL3Ciphers: +rsa_aes_128_sha,+rsa_aes_256_sha
rsa_aes_128_sha, tls_rsa_aes_128_sha, rsa_aes_256_sha, tls_rsa_aes_256_sha are enabled.
default allowWeakCipher
"""
_header(topology_st,
'Test Case 3 - Check the ciphers availability for "+rsa_aes_128_sha,+rsa_aes_256_sha" with default allowWeakCipher')

topology_st.standalone.simple_bind_s(DN_DM, PASSWORD)
topology_st.standalone.modify_s(ENCRYPTION_DN,
[(ldap.MOD_REPLACE, 'nsSSL3Ciphers', b'+rsa_aes_128_sha,+rsa_aes_256_sha')])

log.info("\n######################### Restarting the server ######################\n")
topology_st.standalone.stop(timeout=10)
os.system('mv %s %s.48194_1' % (topology_st.standalone.errlog, topology_st.standalone.errlog))
os.system('touch %s' % (topology_st.standalone.errlog))
time.sleep(2)
topology_st.standalone.start(timeout=120)

connectWithOpenssl(topology_st, 'DES-CBC3-SHA', False)
connectWithOpenssl(topology_st, 'AES256-SHA256', False)
> connectWithOpenssl(topology_st, 'AES128-SHA', True)

/export/tests/tickets/ticket48194_test.py:183:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

topology_st = <lib389.topologies.TopologyMain object at 0x7fc7a85d3da0>
cipher = 'AES128-SHA', expect = True

def connectWithOpenssl(topology_st, cipher, expect):
"""
Connect with the given cipher
Condition:
If expect is True, the handshake should be successful.
If expect is False, the handshake should be refused with
access log: "Cannot communicate securely with peer:
no common encryption algorithm(s)."
"""
log.info("Testing %s -- expect to handshake %s", cipher, "successfully" if expect else "failed")

myurl = 'localhost:%s' % LDAPSPORT
cmdline = ['/usr/bin/openssl', 's_client', '-connect', myurl, '-cipher', cipher]

strcmdline = '/usr/bin/openssl s_client -connect localhost:%s -cipher %s' % (LDAPSPORT, cipher)
log.info("Running cmdline: %s", strcmdline)

try:
proc = subprocess.Popen(cmdline, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.STDOUT)
except ValueError:
log.info("%s failed: %s", cmdline, ValueError)
proc.kill()

while True:
l = proc.stdout.readline()
if l == b"":
break
if b'Cipher is' in l:
log.info("Found: %s", l)
if expect:
if b'(NONE)' in l:
> assert False
E assert False

/export/tests/tickets/ticket48194_test.py:107: AssertionError
------------------------------ Captured log call -------------------------------
INFO lib389:ticket48194_test.py:40 ############################################### INFO lib389:ticket48194_test.py:41 ####### Test Case 3 - Check the ciphers availability for "+rsa_aes_128_sha,+rsa_aes_256_sha" with default allowWeakCipher INFO lib389:ticket48194_test.py:42 ############################################### INFO lib389.utils:ticket48194_test.py:174 ######################### Restarting the server ###################### INFO lib389.utils:ticket48194_test.py:85 Testing DES-CBC3-SHA -- expect to handshake failed INFO lib389.utils:ticket48194_test.py:91 Running cmdline: /usr/bin/openssl s_client -connect localhost:63601 -cipher DES-CBC3-SHA INFO lib389.utils:ticket48194_test.py:104 Found: b'New, (NONE), Cipher is (NONE)\n' INFO lib389.utils:ticket48194_test.py:85 Testing AES256-SHA256 -- expect to handshake failed INFO lib389.utils:ticket48194_test.py:91 Running cmdline: /usr/bin/openssl s_client -connect localhost:63601 -cipher AES256-SHA256 INFO lib389.utils:ticket48194_test.py:104 Found: b'New, (NONE), Cipher is (NONE)\n' INFO lib389.utils:ticket48194_test.py:85 Testing AES128-SHA -- expect to handshake successfully INFO lib389.utils:ticket48194_test.py:91 Running cmdline: /usr/bin/openssl s_client -connect localhost:63601 -cipher AES128-SHA INFO lib389.utils:ticket48194_test.py:104 Found: b'New, (NONE), Cipher is (NONE)\n'
Failed tickets/ticket48194_test.py::test_run_4 5.96
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7a85d3da0>

def test_run_4(topology_st):
"""
Check no nsSSL3Ciphers
Default ciphers are enabled.
default allowWeakCipher
"""
_header(topology_st, 'Test Case 5 - Check no nsSSL3Ciphers (-all) with default allowWeakCipher')

topology_st.standalone.simple_bind_s(DN_DM, PASSWORD)
topology_st.standalone.modify_s(ENCRYPTION_DN, [(ldap.MOD_DELETE, 'nsSSL3Ciphers', b'-all')])

log.info("\n######################### Restarting the server ######################\n")
topology_st.standalone.stop(timeout=10)
os.system('mv %s %s.48194_3' % (topology_st.standalone.errlog, topology_st.standalone.errlog))
os.system('touch %s' % (topology_st.standalone.errlog))
time.sleep(2)
topology_st.standalone.start(timeout=120)

> connectWithOpenssl(topology_st, 'DES-CBC3-SHA', False)

/export/tests/tickets/ticket48194_test.py:227:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

topology_st = <lib389.topologies.TopologyMain object at 0x7fc7a85d3da0>
cipher = 'DES-CBC3-SHA', expect = False

def connectWithOpenssl(topology_st, cipher, expect):
"""
Connect with the given cipher
Condition:
If expect is True, the handshake should be successful.
If expect is False, the handshake should be refused with
access log: "Cannot communicate securely with peer:
no common encryption algorithm(s)."
"""
log.info("Testing %s -- expect to handshake %s", cipher, "successfully" if expect else "failed")

myurl = 'localhost:%s' % LDAPSPORT
cmdline = ['/usr/bin/openssl', 's_client', '-connect', myurl, '-cipher', cipher]

strcmdline = '/usr/bin/openssl s_client -connect localhost:%s -cipher %s' % (LDAPSPORT, cipher)
log.info("Running cmdline: %s", strcmdline)

try:
proc = subprocess.Popen(cmdline, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.STDOUT)
except ValueError:
log.info("%s failed: %s", cmdline, ValueError)
proc.kill()

while True:
l = proc.stdout.readline()
if l == b"":
break
if b'Cipher is' in l:
log.info("Found: %s", l)
if expect:
if b'(NONE)' in l:
assert False
else:
proc.stdin.close()
assert True
else:
if b'(NONE)' in l:
assert True
else:
proc.stdin.close()
> assert False
E assert False

/export/tests/tickets/ticket48194_test.py:116: AssertionError
------------------------------ Captured log call -------------------------------
INFO lib389:ticket48194_test.py:40 ############################################### INFO lib389:ticket48194_test.py:41 ####### Test Case 5 - Check no nsSSL3Ciphers (-all) with default allowWeakCipher INFO lib389:ticket48194_test.py:42 ############################################### INFO lib389.utils:ticket48194_test.py:220 ######################### Restarting the server ###################### INFO lib389.utils:ticket48194_test.py:85 Testing DES-CBC3-SHA -- expect to handshake failed INFO lib389.utils:ticket48194_test.py:91 Running cmdline: /usr/bin/openssl s_client -connect localhost:63601 -cipher DES-CBC3-SHA INFO lib389.utils:ticket48194_test.py:104 Found: b'New, TLSv1.3, Cipher is TLS_AES_128_GCM_SHA256\n'
Failed tickets/ticket48194_test.py::test_run_5 5.83
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7a85d3da0>

def test_run_5(topology_st):
"""
Check nsSSL3Ciphers: default
Default ciphers are enabled.
default allowWeakCipher
"""
_header(topology_st, 'Test Case 6 - Check default nsSSL3Ciphers (default setting) with default allowWeakCipher')

topology_st.standalone.simple_bind_s(DN_DM, PASSWORD)
topology_st.standalone.modify_s(ENCRYPTION_DN, [(ldap.MOD_REPLACE, 'nsSSL3Ciphers', b'default')])

log.info("\n######################### Restarting the server ######################\n")
topology_st.standalone.stop(timeout=10)
os.system('mv %s %s.48194_4' % (topology_st.standalone.errlog, topology_st.standalone.errlog))
os.system('touch %s' % (topology_st.standalone.errlog))
time.sleep(2)
topology_st.standalone.start(timeout=120)

> connectWithOpenssl(topology_st, 'DES-CBC3-SHA', False)

/export/tests/tickets/ticket48194_test.py:249:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

topology_st = <lib389.topologies.TopologyMain object at 0x7fc7a85d3da0>
cipher = 'DES-CBC3-SHA', expect = False

def connectWithOpenssl(topology_st, cipher, expect):
"""
Connect with the given cipher
Condition:
If expect is True, the handshake should be successful.
If expect is False, the handshake should be refused with
access log: "Cannot communicate securely with peer:
no common encryption algorithm(s)."
"""
log.info("Testing %s -- expect to handshake %s", cipher, "successfully" if expect else "failed")

myurl = 'localhost:%s' % LDAPSPORT
cmdline = ['/usr/bin/openssl', 's_client', '-connect', myurl, '-cipher', cipher]

strcmdline = '/usr/bin/openssl s_client -connect localhost:%s -cipher %s' % (LDAPSPORT, cipher)
log.info("Running cmdline: %s", strcmdline)

try:
proc = subprocess.Popen(cmdline, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.STDOUT)
except ValueError:
log.info("%s failed: %s", cmdline, ValueError)
proc.kill()

while True:
l = proc.stdout.readline()
if l == b"":
break
if b'Cipher is' in l:
log.info("Found: %s", l)
if expect:
if b'(NONE)' in l:
assert False
else:
proc.stdin.close()
assert True
else:
if b'(NONE)' in l:
assert True
else:
proc.stdin.close()
> assert False
E assert False

/export/tests/tickets/ticket48194_test.py:116: AssertionError
------------------------------ Captured log call -------------------------------
INFO lib389:ticket48194_test.py:40 ############################################### INFO lib389:ticket48194_test.py:41 ####### Test Case 6 - Check default nsSSL3Ciphers (default setting) with default allowWeakCipher INFO lib389:ticket48194_test.py:42 ############################################### INFO lib389.utils:ticket48194_test.py:242 ######################### Restarting the server ###################### INFO lib389.utils:ticket48194_test.py:85 Testing DES-CBC3-SHA -- expect to handshake failed INFO lib389.utils:ticket48194_test.py:91 Running cmdline: /usr/bin/openssl s_client -connect localhost:63601 -cipher DES-CBC3-SHA INFO lib389.utils:ticket48194_test.py:104 Found: b'New, TLSv1.3, Cipher is TLS_AES_128_GCM_SHA256\n'
Failed tickets/ticket48194_test.py::test_run_6 5.87
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7a85d3da0>

def test_run_6(topology_st):
"""
Check nsSSL3Ciphers: +all,-TLS_RSA_WITH_AES_256_CBC_SHA256
All ciphers are disabled.
default allowWeakCipher
"""
_header(topology_st,
'Test Case 7 - Check nsSSL3Ciphers: +all,-TLS_RSA_WITH_AES_256_CBC_SHA256 with default allowWeakCipher')

topology_st.standalone.simple_bind_s(DN_DM, PASSWORD)
topology_st.standalone.modify_s(ENCRYPTION_DN,
[(ldap.MOD_REPLACE, 'nsSSL3Ciphers', b'+all,-TLS_RSA_WITH_AES_256_CBC_SHA256')])

log.info("\n######################### Restarting the server ######################\n")
topology_st.standalone.stop(timeout=10)
os.system('mv %s %s.48194_5' % (topology_st.standalone.errlog, topology_st.standalone.errlog))
os.system('touch %s' % (topology_st.standalone.errlog))
time.sleep(2)
topology_st.standalone.start(timeout=120)

> connectWithOpenssl(topology_st, 'DES-CBC3-SHA', False)

/export/tests/tickets/ticket48194_test.py:273:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

topology_st = <lib389.topologies.TopologyMain object at 0x7fc7a85d3da0>
cipher = 'DES-CBC3-SHA', expect = False

def connectWithOpenssl(topology_st, cipher, expect):
"""
Connect with the given cipher
Condition:
If expect is True, the handshake should be successful.
If expect is False, the handshake should be refused with
access log: "Cannot communicate securely with peer:
no common encryption algorithm(s)."
"""
log.info("Testing %s -- expect to handshake %s", cipher, "successfully" if expect else "failed")

myurl = 'localhost:%s' % LDAPSPORT
cmdline = ['/usr/bin/openssl', 's_client', '-connect', myurl, '-cipher', cipher]

strcmdline = '/usr/bin/openssl s_client -connect localhost:%s -cipher %s' % (LDAPSPORT, cipher)
log.info("Running cmdline: %s", strcmdline)

try:
proc = subprocess.Popen(cmdline, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.STDOUT)
except ValueError:
log.info("%s failed: %s", cmdline, ValueError)
proc.kill()

while True:
l = proc.stdout.readline()
if l == b"":
break
if b'Cipher is' in l:
log.info("Found: %s", l)
if expect:
if b'(NONE)' in l:
assert False
else:
proc.stdin.close()
assert True
else:
if b'(NONE)' in l:
assert True
else:
proc.stdin.close()
> assert False
E assert False

/export/tests/tickets/ticket48194_test.py:116: AssertionError
------------------------------ Captured log call -------------------------------
INFO lib389:ticket48194_test.py:40 ############################################### INFO lib389:ticket48194_test.py:41 ####### Test Case 7 - Check nsSSL3Ciphers: +all,-TLS_RSA_WITH_AES_256_CBC_SHA256 with default allowWeakCipher INFO lib389:ticket48194_test.py:42 ############################################### INFO lib389.utils:ticket48194_test.py:266 ######################### Restarting the server ###################### INFO lib389.utils:ticket48194_test.py:85 Testing DES-CBC3-SHA -- expect to handshake failed INFO lib389.utils:ticket48194_test.py:91 Running cmdline: /usr/bin/openssl s_client -connect localhost:63601 -cipher DES-CBC3-SHA INFO lib389.utils:ticket48194_test.py:104 Found: b'New, TLSv1.3, Cipher is TLS_AES_128_GCM_SHA256\n'
Failed tickets/ticket48194_test.py::test_run_8 5.95
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7a85d3da0>

def test_run_8(topology_st):
"""
Check nsSSL3Ciphers: default + allowWeakCipher: off
Strong Default ciphers are enabled.
"""
_header(topology_st, 'Test Case 9 - Check default nsSSL3Ciphers (default setting + allowWeakCipher: off)')

topology_st.standalone.simple_bind_s(DN_DM, PASSWORD)
topology_st.standalone.modify_s(ENCRYPTION_DN, [(ldap.MOD_REPLACE, 'nsSSL3Ciphers', b'default'),
(ldap.MOD_REPLACE, 'allowWeakCipher', b'off')])

log.info("\n######################### Restarting the server ######################\n")
topology_st.standalone.stop(timeout=10)
os.system('mv %s %s.48194_7' % (topology_st.standalone.errlog, topology_st.standalone.errlog))
os.system('touch %s' % (topology_st.standalone.errlog))
time.sleep(2)
topology_st.standalone.start(timeout=120)

> connectWithOpenssl(topology_st, 'DES-CBC3-SHA', False)

/export/tests/tickets/ticket48194_test.py:296:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

topology_st = <lib389.topologies.TopologyMain object at 0x7fc7a85d3da0>
cipher = 'DES-CBC3-SHA', expect = False

def connectWithOpenssl(topology_st, cipher, expect):
"""
Connect with the given cipher
Condition:
If expect is True, the handshake should be successful.
If expect is False, the handshake should be refused with
access log: "Cannot communicate securely with peer:
no common encryption algorithm(s)."
"""
log.info("Testing %s -- expect to handshake %s", cipher, "successfully" if expect else "failed")

myurl = 'localhost:%s' % LDAPSPORT
cmdline = ['/usr/bin/openssl', 's_client', '-connect', myurl, '-cipher', cipher]

strcmdline = '/usr/bin/openssl s_client -connect localhost:%s -cipher %s' % (LDAPSPORT, cipher)
log.info("Running cmdline: %s", strcmdline)

try:
proc = subprocess.Popen(cmdline, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.STDOUT)
except ValueError:
log.info("%s failed: %s", cmdline, ValueError)
proc.kill()

while True:
l = proc.stdout.readline()
if l == b"":
break
if b'Cipher is' in l:
log.info("Found: %s", l)
if expect:
if b'(NONE)' in l:
assert False
else:
proc.stdin.close()
assert True
else:
if b'(NONE)' in l:
assert True
else:
proc.stdin.close()
> assert False
E assert False

/export/tests/tickets/ticket48194_test.py:116: AssertionError
------------------------------ Captured log call -------------------------------
INFO lib389:ticket48194_test.py:40 ############################################### INFO lib389:ticket48194_test.py:41 ####### Test Case 9 - Check default nsSSL3Ciphers (default setting + allowWeakCipher: off) INFO lib389:ticket48194_test.py:42 ############################################### INFO lib389.utils:ticket48194_test.py:289 ######################### Restarting the server ###################### INFO lib389.utils:ticket48194_test.py:85 Testing DES-CBC3-SHA -- expect to handshake failed INFO lib389.utils:ticket48194_test.py:91 Running cmdline: /usr/bin/openssl s_client -connect localhost:63601 -cipher DES-CBC3-SHA INFO lib389.utils:ticket48194_test.py:104 Found: b'New, TLSv1.3, Cipher is TLS_AES_128_GCM_SHA256\n'
Failed tickets/ticket48226_test.py::test_ticket48226_set_purgedelay 0.01
topology_m2 = <lib389.topologies.TopologyMain object at 0x7fc7a8714b00>

def test_ticket48226_set_purgedelay(topology_m2):
args = {REPLICA_PURGE_DELAY: '5',
REPLICA_PURGE_INTERVAL: '5'}
try:
> topology_m2.ms["master1"].replica.setProperties(DEFAULT_SUFFIX, None, None, args)

/export/tests/tickets/ticket48226_test.py:27:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.replica.ReplicaLegacy object at 0x7fc7a86f9f98>
suffix = 'dc=example,dc=com', replica_dn = None, replica_entry = None
properties = {'ReplicaPurgeDelay': '5', 'ReplicaTombstonePurgeInterval': '5'}

def setProperties(self, suffix=None, replica_dn=None, replica_entry=None,
properties=None):
'''
Set the properties of the replica. If an 'replica_entry' (Entry) is
provided, it updates the entry, else it updates the entry on the
server. If the 'replica_dn' is provided it retrieves the entry
using it, else it retrieve the replica using the 'suffix'.

@param suffix : suffix stored in that replica (online update)
@param replica_dn: DN of the replica (online update)
@param replica_entry: Entry of a replica (offline update)
@param properties: dictionary of properties
Supported properties are:
REPLICA_SUFFIX
REPLICA_ID
REPLICA_TYPE
REPLICA_BINDDN
REPLICA_PURGE_DELAY
REPLICA_PRECISE_PURGING
REPLICA_REFERRAL
REPLICA_FLAGS

@return None

@raise ValueError: if unknown properties
ValueError: if invalid replica_entry
ValueError: if replica_dn or suffix are not associated to
a replica

'''

# No properties provided
if len(properties) == 0:
return

# check that the given properties are valid
for prop in properties:
# skip the prefix to add/del value
if not inProperties(prop, REPLICA_PROPNAME_TO_ATTRNAME):
raise ValueError("unknown property: %s" % prop)
else:
self.log.debug("setProperties: %s:%s",
prop, properties[prop])

# At least we need to have suffix/replica_dn/replica_entry
if not suffix and not replica_dn and not replica_entry:
raise InvalidArgumentError("suffix and replica_dn and replica_" +
"entry are missing")

# the caller provides a set of properties to set into a replica entry
if replica_entry:
if not isinstance(replica_entry, Entry):
raise ValueError("invalid instance of the replica_entry")

# that is fine, now set the values
for prop in properties:
val = rawProperty(prop)

# for Entry update it is a replace
replica_entry.update({REPLICA_PROPNAME_TO_ATTRNAME[val]:
properties[prop]})

return

# If it provides the suffix or the replicaDN, replica.list will
# return the appropriate entry
ents = self.conn.replica.list(suffix=suffix, replica_dn=replica_dn)
if len(ents) != 1:
if replica_dn:
raise ValueError("invalid replica DN: %s" % replica_dn)
else:
raise ValueError("invalid suffix: %s" % suffix)

# build the MODS
mods = []
for prop in properties:
# take the operation type from the property name
val = rawProperty(prop)
if str(prop).startswith('+'):
op = ldap.MOD_ADD
elif str(prop).startswith('-'):
op = ldap.MOD_DELETE
else:
op = ldap.MOD_REPLACE

mods.append((op, REPLICA_PROPNAME_TO_ATTRNAME[val],
properties[prop]))

# that is fine now to apply the MOD
> self.conn.modify_s(ents[0].dn, mods)

/usr/local/lib/python3.7/site-packages/lib389/replica.py:262:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

args = ('cn=replica,cn=dc\\3Dexample\\2Cdc\\3Dcom,cn=mapping tree,cn=config', [(2, 'nsds5ReplicaPurgeDelay', '5'), (2, 'nsds5ReplicaTombstonePurgeInterval', '5')])
kwargs = {}
c_stack = [FrameInfo(frame=<frame at 0x55b93ec99418, file '/usr/local/lib/python3.7/site-packages/lib389/__init__.py', line 199,..., code_context=[' firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,\n'], index=0), ...]
frame = FrameInfo(frame=<frame at 0x55b941e47e18, file '/usr/local/lib/python3.7/site-packages/lib389/replica.py', line 262, c...ca.py', lineno=262, function='setProperties', code_context=[' self.conn.modify_s(ents[0].dn, mods)\n'], index=0)

def inner(*args, **kwargs):
if name in [
'add_s',
'bind_s',
'delete_s',
'modify_s',
'modrdn_s',
'rename_s',
'sasl_interactive_bind_s',
'search_s',
'search_ext_s',
'simple_bind_s',
'unbind_s',
'getEntry',
] and not ('escapehatch' in kwargs and kwargs['escapehatch'] == 'i am sure'):
c_stack = inspect.stack()
frame = c_stack[1]

warnings.warn(DeprecationWarning("Use of raw ldap function %s. This will be removed in a future release. "
"Found in: %s:%s" % (name, frame.filename, frame.lineno)))
# Later, we will add a sleep here to make it even more painful.
# Finally, it will raise an exception.
elif 'escapehatch' in kwargs:
kwargs.pop('escapehatch')

if name == 'result':
objtype, data = f(*args, **kwargs)
# data is either a 2-tuple or a list of 2-tuples
# print data
if data:
if isinstance(data, tuple):
return objtype, Entry(data)
elif isinstance(data, list):
# AD sends back these search references
# if objtype == ldap.RES_SEARCH_RESULT and \
# isinstance(data[-1],tuple) and \
# not data[-1][0]:
# print "Received search reference: "
# pprint.pprint(data[-1][1])
# data.pop() # remove the last non-entry element

return objtype, [Entry(x) for x in data]
else:
raise TypeError("unknown data type %s returned by result" %
type(data))
else:
return objtype, data
elif name.startswith('add'):
# the first arg is self
# the second and third arg are the dn and the data to send
# We need to convert the Entry into the format used by
# python-ldap
ent = args[0]
if isinstance(ent, Entry):
return f(ent.dn, ent.toTupleList(), *args[2:])
else:
return f(*args, **kwargs)
else:
> return f(*args, **kwargs)

/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7a8959eb8>
dn = 'cn=replica,cn=dc\\3Dexample\\2Cdc\\3Dcom,cn=mapping tree,cn=config'
modlist = [(2, 'nsds5ReplicaPurgeDelay', '5'), (2, 'nsds5ReplicaTombstonePurgeInterval', '5')]

def modify_s(self,dn,modlist):
> return self.modify_ext_s(dn,modlist,None,None)

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:631:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

args = ('cn=replica,cn=dc\\3Dexample\\2Cdc\\3Dcom,cn=mapping tree,cn=config', [(2, 'nsds5ReplicaPurgeDelay', '5'), (2, 'nsds5ReplicaTombstonePurgeInterval', '5')], None, None)
kwargs = {}

def inner(*args, **kwargs):
if name in [
'add_s',
'bind_s',
'delete_s',
'modify_s',
'modrdn_s',
'rename_s',
'sasl_interactive_bind_s',
'search_s',
'search_ext_s',
'simple_bind_s',
'unbind_s',
'getEntry',
] and not ('escapehatch' in kwargs and kwargs['escapehatch'] == 'i am sure'):
c_stack = inspect.stack()
frame = c_stack[1]

warnings.warn(DeprecationWarning("Use of raw ldap function %s. This will be removed in a future release. "
"Found in: %s:%s" % (name, frame.filename, frame.lineno)))
# Later, we will add a sleep here to make it even more painful.
# Finally, it will raise an exception.
elif 'escapehatch' in kwargs:
kwargs.pop('escapehatch')

if name == 'result':
objtype, data = f(*args, **kwargs)
# data is either a 2-tuple or a list of 2-tuples
# print data
if data:
if isinstance(data, tuple):
return objtype, Entry(data)
elif isinstance(data, list):
# AD sends back these search references
# if objtype == ldap.RES_SEARCH_RESULT and \
# isinstance(data[-1],tuple) and \
# not data[-1][0]:
# print "Received search reference: "
# pprint.pprint(data[-1][1])
# data.pop() # remove the last non-entry element

return objtype, [Entry(x) for x in data]
else:
raise TypeError("unknown data type %s returned by result" %
type(data))
else:
return objtype, data
elif name.startswith('add'):
# the first arg is self
# the second and third arg are the dn and the data to send
# We need to convert the Entry into the format used by
# python-ldap
ent = args[0]
if isinstance(ent, Entry):
return f(ent.dn, ent.toTupleList(), *args[2:])
else:
return f(*args, **kwargs)
else:
> return f(*args, **kwargs)

/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7a8959eb8>
dn = 'cn=replica,cn=dc\\3Dexample\\2Cdc\\3Dcom,cn=mapping tree,cn=config'
modlist = [(2, 'nsds5ReplicaPurgeDelay', '5'), (2, 'nsds5ReplicaTombstonePurgeInterval', '5')]
serverctrls = None, clientctrls = None

def modify_ext_s(self,dn,modlist,serverctrls=None,clientctrls=None):
> msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:603:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

args = ('cn=replica,cn=dc\\3Dexample\\2Cdc\\3Dcom,cn=mapping tree,cn=config', [(2, 'nsds5ReplicaPurgeDelay', '5'), (2, 'nsds5ReplicaTombstonePurgeInterval', '5')], None, None)
kwargs = {}

def inner(*args, **kwargs):
if name in [
'add_s',
'bind_s',
'delete_s',
'modify_s',
'modrdn_s',
'rename_s',
'sasl_interactive_bind_s',
'search_s',
'search_ext_s',
'simple_bind_s',
'unbind_s',
'getEntry',
] and not ('escapehatch' in kwargs and kwargs['escapehatch'] == 'i am sure'):
c_stack = inspect.stack()
frame = c_stack[1]

warnings.warn(DeprecationWarning("Use of raw ldap function %s. This will be removed in a future release. "
"Found in: %s:%s" % (name, frame.filename, frame.lineno)))
# Later, we will add a sleep here to make it even more painful.
# Finally, it will raise an exception.
elif 'escapehatch' in kwargs:
kwargs.pop('escapehatch')

if name == 'result':
objtype, data = f(*args, **kwargs)
# data is either a 2-tuple or a list of 2-tuples
# print data
if data:
if isinstance(data, tuple):
return objtype, Entry(data)
elif isinstance(data, list):
# AD sends back these search references
# if objtype == ldap.RES_SEARCH_RESULT and \
# isinstance(data[-1],tuple) and \
# not data[-1][0]:
# print "Received search reference: "
# pprint.pprint(data[-1][1])
# data.pop() # remove the last non-entry element

return objtype, [Entry(x) for x in data]
else:
raise TypeError("unknown data type %s returned by result" %
type(data))
else:
return objtype, data
elif name.startswith('add'):
# the first arg is self
# the second and third arg are the dn and the data to send
# We need to convert the Entry into the format used by
# python-ldap
ent = args[0]
if isinstance(ent, Entry):
return f(ent.dn, ent.toTupleList(), *args[2:])
else:
return f(*args, **kwargs)
else:
> return f(*args, **kwargs)

/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7a8959eb8>
dn = 'cn=replica,cn=dc\\3Dexample\\2Cdc\\3Dcom,cn=mapping tree,cn=config'
modlist = [(2, 'nsds5ReplicaPurgeDelay', '5'), (2, 'nsds5ReplicaTombstonePurgeInterval', '5')]
serverctrls = None, clientctrls = None

def modify_ext(self,dn,modlist,serverctrls=None,clientctrls=None):
"""
modify_ext(dn, modlist[,serverctrls=None[,clientctrls=None]]) -> int
"""
if PY2:
dn = self._bytesify_input('dn', dn)
modlist = self._bytesify_modlist('modlist', modlist, with_opcode=True)
> return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:600:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

args = (<built-in method modify_ext of LDAP object at 0x7fc7a86ec468>, 'cn=replica,cn=dc\\3Dexample\\2Cdc\\3Dcom,cn=mapping tree,cn=config', [(2, 'nsds5ReplicaPurgeDelay', '5'), (2, 'nsds5ReplicaTombstonePurgeInterval', '5')], None, None)
kwargs = {}

def inner(*args, **kwargs):
if name in [
'add_s',
'bind_s',
'delete_s',
'modify_s',
'modrdn_s',
'rename_s',
'sasl_interactive_bind_s',
'search_s',
'search_ext_s',
'simple_bind_s',
'unbind_s',
'getEntry',
] and not ('escapehatch' in kwargs and kwargs['escapehatch'] == 'i am sure'):
c_stack = inspect.stack()
frame = c_stack[1]

warnings.warn(DeprecationWarning("Use of raw ldap function %s. This will be removed in a future release. "
"Found in: %s:%s" % (name, frame.filename, frame.lineno)))
# Later, we will add a sleep here to make it even more painful.
# Finally, it will raise an exception.
elif 'escapehatch' in kwargs:
kwargs.pop('escapehatch')

if name == 'result':
objtype, data = f(*args, **kwargs)
# data is either a 2-tuple or a list of 2-tuples
# print data
if data:
if isinstance(data, tuple):
return objtype, Entry(data)
elif isinstance(data, list):
# AD sends back these search references
# if objtype == ldap.RES_SEARCH_RESULT and \
# isinstance(data[-1],tuple) and \
# not data[-1][0]:
# print "Received search reference: "
# pprint.pprint(data[-1][1])
# data.pop() # remove the last non-entry element

return objtype, [Entry(x) for x in data]
else:
raise TypeError("unknown data type %s returned by result" %
type(data))
else:
return objtype, data
elif name.startswith('add'):
# the first arg is self
# the second and third arg are the dn and the data to send
# We need to convert the Entry into the format used by
# python-ldap
ent = args[0]
if isinstance(ent, Entry):
return f(ent.dn, ent.toTupleList(), *args[2:])
else:
return f(*args, **kwargs)
else:
> return f(*args, **kwargs)

/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7a8959eb8>
func = <built-in method modify_ext of LDAP object at 0x7fc7a86ec468>
args = ('cn=replica,cn=dc\\3Dexample\\2Cdc\\3Dcom,cn=mapping tree,cn=config', [(2, 'nsds5ReplicaPurgeDelay', '5'), (2, 'nsds5ReplicaTombstonePurgeInterval', '5')], None, None)
kwargs = {}, diagnostic_message_success = None

def _ldap_call(self,func,*args,**kwargs):
"""
Wrapper method mainly for serializing calls into OpenLDAP libs
and trace logs
"""
self._ldap_object_lock.acquire()
if __debug__:
if self._trace_level>=1:
self._trace_file.write('*** %s %s - %s\n%s\n' % (
repr(self),
self._uri,
'.'.join((self.__class__.__name__,func.__name__)),
pprint.pformat((args,kwargs))
))
if self._trace_level>=9:
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
diagnostic_message_success = None
try:
try:
> result = func(*args,**kwargs)
E TypeError: ('Tuple_to_LDAPMod(): expected a byte string in the list', '5')

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:315: TypeError

During handling of the above exception, another exception occurred:

topology_m2 = <lib389.topologies.TopologyMain object at 0x7fc7a8714b00>

def test_ticket48226_set_purgedelay(topology_m2):
args = {REPLICA_PURGE_DELAY: '5',
REPLICA_PURGE_INTERVAL: '5'}
try:
topology_m2.ms["master1"].replica.setProperties(DEFAULT_SUFFIX, None, None, args)
except:
log.fatal('Failed to configure replica')
> assert False
E assert False

/export/tests/tickets/ticket48226_test.py:30: AssertionError
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:139 Creating replication topology. INFO lib389.topologies:topologies.py:153 Joining master master2 to master1 ... INFO lib389.replica:replica.py:1535 SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO lib389.replica:replica.py:1604 SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO lib389.topologies:topologies.py:161 Ensuring master master1 to master2 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO lib389.topologies:topologies.py:161 Ensuring master master2 to master1 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists------------------------------ Captured log call -------------------------------
CRITICAL tests.tickets.ticket48226_test:ticket48226_test.py:29 Failed to configure replica
Failed tickets/ticket48226_test.py::test_ticket48226_1 0.02
topology_m2 = <lib389.topologies.TopologyMain object at 0x7fc7a8714b00>

def test_ticket48226_1(topology_m2):
name = 'test_entry'
dn = "cn=%s,%s" % (name, SUFFIX)

topology_m2.ms["master1"].add_s(Entry((dn, {'objectclass': "top person".split(),
'sn': name,
'cn': name})))

# First do an update that is replicated
mods = [(ldap.MOD_ADD, 'description', '5')]
> topology_m2.ms["master1"].modify_s(dn, mods)

/export/tests/tickets/ticket48226_test.py:52:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:631: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:603: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:600: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7a8959eb8>
func = <built-in method modify_ext of LDAP object at 0x7fc7a86ec468>
args = ('cn=test_entry,dc=example,dc=com', [(0, 'description', '5')], None, None)
kwargs = {}, diagnostic_message_success = None

def _ldap_call(self,func,*args,**kwargs):
"""
Wrapper method mainly for serializing calls into OpenLDAP libs
and trace logs
"""
self._ldap_object_lock.acquire()
if __debug__:
if self._trace_level>=1:
self._trace_file.write('*** %s %s - %s\n%s\n' % (
repr(self),
self._uri,
'.'.join((self.__class__.__name__,func.__name__)),
pprint.pformat((args,kwargs))
))
if self._trace_level>=9:
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
diagnostic_message_success = None
try:
try:
> result = func(*args,**kwargs)
E TypeError: ('Tuple_to_LDAPMod(): expected a byte string in the list', '5')

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:315: TypeError
Failed tickets/ticket48637_test.py::test_ticket48637 4.60
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7a83ecd68>

def test_ticket48637(topology_st):
"""Test for entry cache corruption

This requires automember and managed entry plugins to be configured.

Then remove the group that automember would use to trigger a failure when
adding a new entry. Automember fails, and then managed entry also fails.

Make sure a base search on the entry returns error 32
"""

if DEBUGGING:
# Add debugging steps(if any)...
pass

#
# Add our setup entries
#
try:
topology_st.standalone.add_s(Entry((PEOPLE_OU, {
'objectclass': 'top organizationalunit'.split(),
'ou': 'people'})))
except ldap.ALREADY_EXISTS:
pass
except ldap.LDAPError as e:
log.fatal('Failed to add people ou: ' + str(e))
assert False

try:
topology_st.standalone.add_s(Entry((GROUP_OU, {
'objectclass': 'top organizationalunit'.split(),
'ou': 'groups'})))
except ldap.ALREADY_EXISTS:
pass
except ldap.LDAPError as e:
log.fatal('Failed to add groups ou: ' + str(e))
assert False

try:
topology_st.standalone.add_s(Entry((MEP_OU, {
'objectclass': 'top extensibleObject'.split(),
'ou': 'mep'})))
except ldap.LDAPError as e:
log.fatal('Failed to add MEP ou: ' + str(e))
assert False

try:
topology_st.standalone.add_s(Entry((MEP_TEMPLATE, {
'objectclass': 'top mepTemplateEntry'.split(),
'cn': 'mep template',
'mepRDNAttr': 'cn',
'mepStaticAttr': 'objectclass: groupofuniquenames',
'mepMappedAttr': 'cn: $uid'})))
except ldap.LDAPError as e:
log.fatal('Failed to add MEP ou: ' + str(e))
assert False

#
# Configure automember
#
try:
topology_st.standalone.add_s(Entry((AUTO_DN, {
'cn': 'All Users',
'objectclass': ['top', 'autoMemberDefinition'],
'autoMemberScope': 'dc=example,dc=com',
'autoMemberFilter': 'objectclass=person',
'autoMemberDefaultGroup': GROUP_DN,
'autoMemberGroupingAttr': 'uniquemember:dn'})))
except ldap.LDAPError as e:
log.fatal('Failed to configure automember plugin : ' + str(e))
assert False

#
# Configure managed entry plugin
#
try:
topology_st.standalone.add_s(Entry((MEP_DN, {
'cn': 'MEP Definition',
'objectclass': ['top', 'extensibleObject'],
'originScope': 'ou=people,dc=example,dc=com',
'originFilter': 'objectclass=person',
'managedBase': 'ou=groups,dc=example,dc=com',
'managedTemplate': MEP_TEMPLATE})))
except ldap.LDAPError as e:
log.fatal('Failed to configure managed entry plugin : ' + str(e))
assert False

#
# Restart DS
#
topology_st.standalone.restart(timeout=30)

#
# Add entry that should fail since the automember group does not exist
#
try:
topology_st.standalone.add_s(Entry((USER_DN, {
'uid': 'test',
'objectclass': ['top', 'person', 'extensibleObject'],
'sn': 'test',
'cn': 'test'})))
except ldap.LDAPError as e:
pass

#
# Search for the entry - it should not be returned
#
try:
entry = topology_st.standalone.search_s(USER_DN, ldap.SCOPE_SUBTREE,
'objectclass=*')
if entry:
log.fatal('Entry was incorrectly returned')
> assert False
E assert False

/export/tests/tickets/ticket48637_test.py:139: AssertionError
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
CRITICAL tests.tickets.ticket48637_test:ticket48637_test.py:138 Entry was incorrectly returned
Failed tickets/ticket48755_test.py::test_ticket48755 0.00
Fixture "add_ou_entry" called directly. Fixtures are not meant to be called directly,
but are created automatically when test functions request them as parameters.
See https://docs.pytest.org/en/latest/fixture.html for more information about fixtures, and
https://docs.pytest.org/en/latest/deprecations.html#calling-fixtures-directly about how to update your code.
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:139 Creating replication topology. INFO lib389.topologies:topologies.py:153 Joining master master2 to master1 ... INFO lib389.replica:replica.py:1535 SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO lib389.replica:replica.py:1604 SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO lib389.topologies:topologies.py:161 Ensuring master master1 to master2 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO lib389.topologies:topologies.py:161 Ensuring master master2 to master1 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists------------------------------ Captured log call -------------------------------
INFO tests.tickets.ticket48755_test:ticket48755_test.py:84 Ticket 48755 - moving an entry could make the online init fail INFO tests.tickets.ticket48755_test:ticket48755_test.py:89 Generating DIT_0
Failed tickets/ticket48784_test.py::test_ticket48784 26.11
Fixture "add_entry" called directly. Fixtures are not meant to be called directly,
but are created automatically when test functions request them as parameters.
See https://docs.pytest.org/en/latest/fixture.html for more information about fixtures, and
https://docs.pytest.org/en/latest/deprecations.html#calling-fixtures-directly about how to update your code.
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:139 Creating replication topology. INFO lib389.topologies:topologies.py:153 Joining master master2 to master1 ... INFO lib389.replica:replica.py:1535 SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO lib389.replica:replica.py:1604 SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO lib389.topologies:topologies.py:161 Ensuring master master1 to master2 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO lib389.topologies:topologies.py:161 Ensuring master master2 to master1 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists------------------------------ Captured log call -------------------------------
INFO tests.tickets.ticket48784_test:ticket48784_test.py:90 Ticket 48784 - Allow usage of OpenLDAP libraries that don't use NSS for crypto INFO tests.tickets.ticket48784_test:ticket48784_test.py:50 ######################### Configure SSL/TLS agreements ###################### INFO tests.tickets.ticket48784_test:ticket48784_test.py:51 ######################## master1 <-- startTLS -> master2 ##################### INFO tests.tickets.ticket48784_test:ticket48784_test.py:53 ##### Update the agreement of master1 INFO tests.tickets.ticket48784_test:ticket48784_test.py:58 ##### Update the agreement of master2 INFO tests.tickets.ticket48784_test:ticket48784_test.py:68 ######################### Configure SSL/TLS agreements Done ######################
Failed tickets/ticket48798_test.py::test_ticket48798 7.25
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7a82191d0>

def test_ticket48798(topology_st):
"""
Test DH param sizes offered by DS.

"""
topology_st.standalone.enable_tls()

# Confirm that we have a connection, and that it has DH

# Open a socket to the port.
# Check the security settings.
> size = check_socket_dh_param_size(topology_st.standalone.host, topology_st.standalone.sslport)

/export/tests/tickets/ticket48798_test.py:46:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/export/tests/tickets/ticket48798_test.py:23: in check_socket_dh_param_size
output = check_output(cmd, shell=True)
/usr/lib64/python3.7/subprocess.py:395: in check_output
**kwargs).stdout
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

input = None, capture_output = False, timeout = None, check = True
popenargs = ('echo quit | openssl s_client -connect server.example.com:63601 -msg -cipher DH | grep -A 1 ServerKeyExchange',)
kwargs = {'shell': True, 'stdout': -1}
process = <subprocess.Popen object at 0x7fc7a8219780>, stdout = b''
stderr = None, retcode = 1

def run(*popenargs,
input=None, capture_output=False, timeout=None, check=False, **kwargs):
"""Run command with arguments and return a CompletedProcess instance.

The returned instance will have attributes args, returncode, stdout and
stderr. By default, stdout and stderr are not captured, and those attributes
will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them.

If check is True and the exit code was non-zero, it raises a
CalledProcessError. The CalledProcessError object will have the return code
in the returncode attribute, and output & stderr attributes if those streams
were captured.

If timeout is given, and the process takes too long, a TimeoutExpired
exception will be raised.

There is an optional argument "input", allowing you to
pass bytes or a string to the subprocess's stdin. If you use this argument
you may not also use the Popen constructor's "stdin" argument, as
it will be used internally.

By default, all communication is in bytes, and therefore any "input" should
be bytes, and the stdout and stderr will be bytes. If in text mode, any
"input" should be a string, and stdout and stderr will be strings decoded
according to locale encoding, or by "encoding" if set. Text mode is
triggered by setting any of text, encoding, errors or universal_newlines.

The other arguments are the same as for the Popen constructor.
"""
if input is not None:
if 'stdin' in kwargs:
raise ValueError('stdin and input arguments may not both be used.')
kwargs['stdin'] = PIPE

if capture_output:
if ('stdout' in kwargs) or ('stderr' in kwargs):
raise ValueError('stdout and stderr arguments may not be used '
'with capture_output.')
kwargs['stdout'] = PIPE
kwargs['stderr'] = PIPE

with Popen(*popenargs, **kwargs) as process:
try:
stdout, stderr = process.communicate(input, timeout=timeout)
except TimeoutExpired:
process.kill()
stdout, stderr = process.communicate()
raise TimeoutExpired(process.args, timeout, output=stdout,
stderr=stderr)
except: # Including KeyboardInterrupt, communicate handled that.
process.kill()
# We don't call process.wait() as .__exit__ does that for us.
raise
retcode = process.poll()
if check and retcode:
raise CalledProcessError(retcode, process.args,
> output=stdout, stderr=stderr)
E subprocess.CalledProcessError: Command 'echo quit | openssl s_client -connect server.example.com:63601 -msg -cipher DH | grep -A 1 ServerKeyExchange' returned non-zero exit status 1.

/usr/lib64/python3.7/subprocess.py:487: CalledProcessError
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.----------------------------- Captured stderr call -----------------------------
depth=1 C = AU, ST = Queensland, L = 389ds, O = testing, CN = ssca.389ds.example.com verify error:num=19:self signed certificate in certificate chain verify return:1 depth=1 C = AU, ST = Queensland, L = 389ds, O = testing, CN = ssca.389ds.example.com verify return:1 depth=0 C = AU, ST = Queensland, L = 389ds, O = testing, GN = 976593db-7424-4840-8cca-8cebe59c269e, CN = server.example.com verify return:1 DONE
Failed tickets/ticket48961_test.py::test_ticket48961_storagescheme 0.01
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7a82bb710>

def test_ticket48961_storagescheme(topology_st):
"""
Test deleting of the storage scheme.
"""

default = topology_st.standalone.config.get_attr_val('passwordStorageScheme')
# Change it
topology_st.standalone.config.set('passwordStorageScheme', 'CLEAR')
# Now delete it
> topology_st.standalone.config.remove('passwordStorageScheme', None)

/export/tests/tickets/ticket48961_test.py:28:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.7/site-packages/lib389/_mapped_object.py:304: in remove
self.set(key, value, action=ldap.MOD_DELETE)
/usr/local/lib/python3.7/site-packages/lib389/_mapped_object.py:387: in set
escapehatch='i am sure')
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:604: in modify_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:751: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:758: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:331: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/local/lib64/python3.7/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7a8306ac8>
func = <built-in method result4 of LDAP object at 0x7fc7a839eb48>
args = (4, 1, -1, 0, 0, 0), kwargs = {}, diagnostic_message_success = None
exc_type = None, exc_value = None, exc_traceback = None

def _ldap_call(self,func,*args,**kwargs):
"""
Wrapper method mainly for serializing calls into OpenLDAP libs
and trace logs
"""
self._ldap_object_lock.acquire()
if __debug__:
if self._trace_level>=1:
self._trace_file.write('*** %s %s - %s\n%s\n' % (
repr(self),
self._uri,
'.'.join((self.__class__.__name__,func.__name__)),
pprint.pformat((args,kwargs))
))
if self._trace_level>=9:
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
diagnostic_message_success = None
try:
try:
> result = func(*args,**kwargs)
E ldap.OPERATIONS_ERROR: {'desc': 'Operations error', 'info': 'passwordStorageScheme: deleting the value is not allowed.'}

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:315: OPERATIONS_ERROR
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Failed tickets/ticket48961_test.py::test_ticket48961_deleteall 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7fc7a82bb710>

def test_ticket48961_deleteall(topology_st):
"""
Test that we can delete all valid attrs, and that a few are rejected.
"""
attr_to_test = {
'nsslapd-listenhost': 'localhost',
'nsslapd-securelistenhost': 'localhost',
'nsslapd-allowed-sasl-mechanisms': 'GSSAPI',
'nsslapd-svrtab': 'Some bogus data', # This one could reset?
}
attr_to_fail = {
# These are the values that should always be dn dse.ldif too
'nsslapd-localuser': 'dirsrv',
'nsslapd-defaultnamingcontext': 'dc=example,dc=com', # Can't delete
'nsslapd-accesslog': '/opt/dirsrv/var/log/dirsrv/slapd-standalone/access',
'nsslapd-auditlog': '/opt/dirsrv/var/log/dirsrv/slapd-standalone/audit',
'nsslapd-errorlog': '/opt/dirsrv/var/log/dirsrv/slapd-standalone/errors',
'nsslapd-tmpdir': '/tmp',
'nsslapd-rundir': '/opt/dirsrv/var/run/dirsrv',
'nsslapd-bakdir': '/opt/dirsrv/var/lib/dirsrv/slapd-standalone/bak',
'nsslapd-certdir': '/opt/dirsrv/etc/dirsrv/slapd-standalone',
'nsslapd-instancedir': '/opt/dirsrv/lib/dirsrv/slapd-standalone',
'nsslapd-ldifdir': '/opt/dirsrv/var/lib/dirsrv/slapd-standalone/ldif',
'nsslapd-lockdir': '/opt/dirsrv/var/lock/dirsrv/slapd-standalone',
'nsslapd-schemadir': '/opt/dirsrv/etc/dirsrv/slapd-standalone/schema',
'nsslapd-workingdir': '/opt/dirsrv/var/log/dirsrv/slapd-standalone',
'nsslapd-localhost': 'localhost.localdomain',
# These can't be reset, but might be in dse.ldif. Probably in libglobs.
'nsslapd-certmap-basedn': 'cn=certmap,cn=config',
'nsslapd-port': '38931', # Can't delete
'nsslapd-secureport': '636', # Can't delete
'nsslapd-conntablesize': '1048576',
'nsslapd-rootpw': '{SSHA512}...',
# These are hardcoded server magic.
'nsslapd-hash-filters': 'off', # Can't delete
'nsslapd-requiresrestart': 'cn=config:nsslapd-port', # Can't change
'nsslapd-plugin': 'cn=case ignore string syntax,cn=plugins,cn=config', # Can't change
'nsslapd-privatenamespaces': 'cn=schema', # Can't change
'nsslapd-allowed-to-delete-attrs': 'None', # Can't delete
'nsslapd-accesslog-list': 'List!', # Can't delete
'nsslapd-auditfaillog-list': 'List!',
'nsslapd-auditlog-list': 'List!',
'nsslapd-errorlog-list': 'List!',
'nsslapd-config': 'cn=config',
'nsslapd-versionstring': '389-Directory/1.3.6.0',
'objectclass': '',
'cn': '',
# These are the odd values
'nsslapd-backendconfig': 'cn=config,cn=userRoot,cn=ldbm database,cn=plugins,cn=config', # Doesn't exist?
'nsslapd-betype': 'ldbm database', # Doesn't exist?
'nsslapd-connection-buffer': 1, # Has an ldap problem
'nsslapd-malloc-mmap-threshold': '-10', # Defunct anyway
'nsslapd-malloc-mxfast': '-10',
'nsslapd-malloc-trim-threshold': '-10',
'nsslapd-referralmode': '',
'nsslapd-saslpath': '',
'passwordadmindn': '',
}

> config_entry = topology_st.standalone.config.raw_entry()
E TypeError: 'NoneType' object is not callable

/export/tests/tickets/ticket48961_test.py:101: TypeError
Failed tickets/ticket49071_test.py::test_ticket49071 8.39
topo = <lib389.topologies.TopologyMain object at 0x7fc7a80fb5f8>

def test_ticket49071(topo):
"""Verify- Import ldif with duplicate DNs, should not log error "unable to flush"

:id: dce2b898-119d-42b8-a236-1130f58bff17
:feature: It is to verify bug:1406101, ticket:49071
:setup: Standalone instance, ldif file with duplicate entries
:steps: 1. Create a ldif file with duplicate entries
2. Import ldif file to DS
3. Check error log file, it should not log "unable to flush"
4. Check error log file, it should log "Duplicated DN detected"
:expectedresults: Error log should not contain "unable to flush" error
"""

log.info('ticket 49071: Create import file')
l = """dn: dc=example,dc=com
objectclass: top
objectclass: domain
dc: example

dn: ou=myDups00001,dc=example,dc=com
objectclass: top
objectclass: organizationalUnit
ou: myDups00001

dn: ou=myDups00001,dc=example,dc=com
objectclass: top
objectclass: organizationalUnit
ou: myDups00001
"""

ldif_dir = topo.standalone.get_ldif_dir()
ldif_file = os.path.join(ldif_dir, 'data.ldif')
with open(ldif_file, "w") as fd:
fd.write(l)
fd.close()

log.info('ticket 49071: Import ldif having duplicate entry')
try:
topo.standalone.tasks.importLDIF(suffix=DEFAULT_SUFFIX,
input_file=ldif_file,
args={TASK_WAIT: True})
except ValueError:
log.fatal('ticket 49104: Online import failed')
raise

log.info('ticket 49071: Error log should not have - unable to flush')
assert not topo.standalone.ds_error_log.match('.*unable to flush.*')

log.info('ticket 49071: Error log should have - Duplicated DN detected')
> assert topo.standalone.ds_error_log.match('.*Duplicated DN detected.*')
E AssertionError: assert []
E + where [] = <bound method DirsrvLog.match of <lib389.dirsrv_log.DirsrvErrorLog object at 0x7fc7a8571eb8>>('.*Duplicated DN detected.*')
E + where <bound method DirsrvLog.match of <lib389.dirsrv_log.DirsrvErrorLog object at 0x7fc7a8571eb8>> = <lib389.dirsrv_log.DirsrvErrorLog object at 0x7fc7a8571eb8>.match
E + where <lib389.dirsrv_log.DirsrvErrorLog object at 0x7fc7a8571eb8> = <lib389.DirSrv object at 0x7fc7a8302978>.ds_error_log
E + where <lib389.DirSrv object at 0x7fc7a8302978> = <lib389.topologies.TopologyMain object at 0x7fc7a80fb5f8>.standalone

/export/tests/tickets/ticket49071_test.py:66: AssertionError
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
INFO tests.tickets.ticket49071_test:ticket49071_test.py:30 ticket 49071: Create import file INFO tests.tickets.ticket49071_test:ticket49071_test.py:53 ticket 49071: Import ldif having duplicate entry ERROR lib389:tasks.py:434 Error: import task import_05292019_215826 for file /var/lib/dirsrv/slapd-standalone1/ldif/data.ldif exited with -23 INFO tests.tickets.ticket49071_test:ticket49071_test.py:62 ticket 49071: Error log should not have - unable to flush INFO tests.tickets.ticket49071_test:ticket49071_test.py:65 ticket 49071: Error log should have - Duplicated DN detected
Failed tickets/ticket49073_test.py::test_ticket49073 8.78
topology_m2 = <lib389.topologies.TopologyMain object at 0x7fc7a7f8c390>

def test_ticket49073(topology_m2):
"""Write your replication test here.

To access each DirSrv instance use: topology_m2.ms["master1"], topology_m2.ms["master2"],
..., topology_m2.hub1, ..., topology_m2.consumer1,...

Also, if you need any testcase initialization,
please, write additional fixture for that(include finalizer).
"""
topology_m2.ms["master1"].plugins.enable(name=PLUGIN_MEMBER_OF)
topology_m2.ms["master1"].restart(timeout=10)
topology_m2.ms["master2"].plugins.enable(name=PLUGIN_MEMBER_OF)
topology_m2.ms["master2"].restart(timeout=10)

# Configure fractional to prevent total init to send memberof
ents = topology_m2.ms["master1"].agreement.list(suffix=SUFFIX)
assert len(ents) == 1
log.info('update %s to add nsDS5ReplicatedAttributeListTotal' % ents[0].dn)
topology_m2.ms["master1"].modify_s(ents[0].dn,
[(ldap.MOD_REPLACE,
'nsDS5ReplicatedAttributeListTotal',
'(objectclass=*) $ EXCLUDE '),
(ldap.MOD_REPLACE,
'nsDS5ReplicatedAttributeList',
> '(objectclass=*) $ EXCLUDE memberOf')])

/export/tests/tickets/ticket49073_test.py:103:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:631: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:603: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:600: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7bb4e7438>
func = <built-in method modify_ext of LDAP object at 0x7fc7a8124670>
args = ('cn=002,cn=replica,cn=dc\\3Dexample\\2Cdc\\3Dcom,cn=mapping tree,cn=config', [(2, 'nsDS5ReplicatedAttributeListTotal', '(objectclass=*) $ EXCLUDE '), (2, 'nsDS5ReplicatedAttributeList', '(objectclass=*) $ EXCLUDE memberOf')], None, None)
kwargs = {}, diagnostic_message_success = None

def _ldap_call(self,func,*args,**kwargs):
"""
Wrapper method mainly for serializing calls into OpenLDAP libs
and trace logs
"""
self._ldap_object_lock.acquire()
if __debug__:
if self._trace_level>=1:
self._trace_file.write('*** %s %s - %s\n%s\n' % (
repr(self),
self._uri,
'.'.join((self.__class__.__name__,func.__name__)),
pprint.pformat((args,kwargs))
))
if self._trace_level>=9:
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
diagnostic_message_success = None
try:
try:
> result = func(*args,**kwargs)
E TypeError: ('Tuple_to_LDAPMod(): expected a byte string in the list', '(')

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:315: TypeError
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:139 Creating replication topology. INFO lib389.topologies:topologies.py:153 Joining master master2 to master1 ... INFO lib389.replica:replica.py:1535 SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO lib389.replica:replica.py:1604 SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO lib389.topologies:topologies.py:161 Ensuring master master1 to master2 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO lib389.topologies:topologies.py:161 Ensuring master master2 to master1 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists------------------------------ Captured log call -------------------------------
INFO tests.tickets.ticket49073_test:ticket49073_test.py:96 update cn=002,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config to add nsDS5ReplicatedAttributeListTotal
Failed tickets/ticket49192_test.py::test_ticket49192 0.00
topo = <lib389.topologies.TopologyMain object at 0x7fc7a82ddfd0>

def test_ticket49192(topo):
"""Trigger deadlock when removing suffix
"""

#
# Create a second suffix/backend
#
log.info('Creating second backend...')
topo.standalone.backends.create(None, properties={
BACKEND_NAME: "Second_Backend",
> 'suffix': "o=hang.com",
})

/export/tests/tickets/ticket49192_test.py:37:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.7/site-packages/lib389/_mapped_object.py:1117: in create
return co.create(rdn, properties, self._basedn)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.backend.Backend object at 0x7fc7a85b8a58>, dn = None
properties = {'name': 'Second_Backend', 'suffix': 'o=hang.com'}
basedn = 'cn=ldbm database,cn=plugins,cn=config'

def create(self, dn=None, properties=None, basedn=DN_LDBM):
"""Add a new backend entry, create mapping tree,
and, if requested, sample entries

:param dn: DN of the new entry
:type dn: str
:param properties: Attributes and parameters for the new entry
:type properties: dict
:param basedn: Base DN of the new entry
:type basedn: str

:returns: DSLdapObject of the created entry
"""

# normalize suffix (remove spaces between comps)
if dn is not None:
dn_comps = ldap.dn.explode_dn(dn.lower())
dn = ",".join(dn_comps)

if properties is not None:
> suffix_dn = properties['nsslapd-suffix'].lower()
E KeyError: 'nsslapd-suffix'

/usr/local/lib/python3.7/site-packages/lib389/backend.py:489: KeyError
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
INFO tests.tickets.ticket49192_test:ticket49192_test.py:34 Creating second backend...
Failed tickets/ticket49303_test.py::test_ticket49303 14.40
topo = <lib389.topologies.TopologyMain object at 0x7fc7a85b8518>

def test_ticket49303(topo):
"""
Test the nsTLSAllowClientRenegotiation setting.
"""
sslport = SECUREPORT_STANDALONE1

log.info("Ticket 49303 - Allow disabling of SSL renegotiation")

# No value set, defaults to reneg allowed
enable_ssl(topo.standalone, sslport)
> assert try_reneg(HOST_STANDALONE1, sslport) is True
E AssertionError: assert False is True
E + where False = try_reneg('localhost', 63601)

/export/tests/tickets/ticket49303_test.py:88: AssertionError
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
INFO tests.tickets.ticket49303_test:ticket49303_test.py:84 Ticket 49303 - Allow disabling of SSL renegotiation
XFailed suites/acl/syntax_test.py::test_aci_invalid_syntax_fail[test_targattrfilters_18] 0.01
topo = <lib389.topologies.TopologyMain object at 0x7fc7bad5cc88>
real_value = '(target = ldap:///cn=Jeff Vedder,ou=Product Development,dc=example,dc=com)(targetattr=*)(version 3.0; acl "Name of th...3123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123";)'

@pytest.mark.xfail(reason='https://bugzilla.redhat.com/show_bug.cgi?id=1691473')
@pytest.mark.parametrize("real_value", [a[1] for a in FAILED],
ids=[a[0] for a in FAILED])
def test_aci_invalid_syntax_fail(topo, real_value):
"""

Try to set wrong ACI syntax.

:id: d544d09a-6ed1-11e8-8872-8c16451d917b
:setup: Standalone Instance
:steps:
1. Create ACI
2. Try to setup the ACI with Instance
:expectedresults:
1. It should pass
2. It should not pass
"""
domain = Domain(topo.standalone, DEFAULT_SUFFIX)
with pytest.raises(ldap.INVALID_SYNTAX):
> domain.add("aci", real_value)
E Failed: DID NOT RAISE <class 'ldap.INVALID_SYNTAX'>

suites/acl/syntax_test.py:214: Failed
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
XFailed suites/acl/syntax_test.py::test_aci_invalid_syntax_fail[test_targattrfilters_20] 0.02
topo = <lib389.topologies.TopologyMain object at 0x7fc7bad5cc88>
real_value = '(target = ldap:///cn=Jeff Vedder,ou=Product Development,dc=example,dc=com)(targetattr=*)(version 3.0; acl "Name of the ACI"; deny(write)userdns="ldap:///anyone";)'

@pytest.mark.xfail(reason='https://bugzilla.redhat.com/show_bug.cgi?id=1691473')
@pytest.mark.parametrize("real_value", [a[1] for a in FAILED],
ids=[a[0] for a in FAILED])
def test_aci_invalid_syntax_fail(topo, real_value):
"""

Try to set wrong ACI syntax.

:id: d544d09a-6ed1-11e8-8872-8c16451d917b
:setup: Standalone Instance
:steps:
1. Create ACI
2. Try to setup the ACI with Instance
:expectedresults:
1. It should pass
2. It should not pass
"""
domain = Domain(topo.standalone, DEFAULT_SUFFIX)
with pytest.raises(ldap.INVALID_SYNTAX):
> domain.add("aci", real_value)
E Failed: DID NOT RAISE <class 'ldap.INVALID_SYNTAX'>

suites/acl/syntax_test.py:214: Failed
XFailed suites/acl/syntax_test.py::test_aci_invalid_syntax_fail[test_bind_rule_set_with_more_than_three] 0.01
topo = <lib389.topologies.TopologyMain object at 0x7fc7bad5cc88>
real_value = '(target = ldap:///dc=example,dc=com)(targetattr=*)(version 3.0; acl "Name of the ACI"; deny absolute (all)userdn="ldap:////////anyone";)'

@pytest.mark.xfail(reason='https://bugzilla.redhat.com/show_bug.cgi?id=1691473')
@pytest.mark.parametrize("real_value", [a[1] for a in FAILED],
ids=[a[0] for a in FAILED])
def test_aci_invalid_syntax_fail(topo, real_value):
"""

Try to set wrong ACI syntax.

:id: d544d09a-6ed1-11e8-8872-8c16451d917b
:setup: Standalone Instance
:steps:
1. Create ACI
2. Try to setup the ACI with Instance
:expectedresults:
1. It should pass
2. It should not pass
"""
domain = Domain(topo.standalone, DEFAULT_SUFFIX)
with pytest.raises(ldap.INVALID_SYNTAX):
> domain.add("aci", real_value)
E Failed: DID NOT RAISE <class 'ldap.INVALID_SYNTAX'>

suites/acl/syntax_test.py:214: Failed
XFailed suites/acl/syntax_test.py::test_aci_invalid_syntax_fail[test_Use_double_equal_instead_of_equal_in_the_targetattr] 0.02
topo = <lib389.topologies.TopologyMain object at 0x7fc7bad5cc88>
real_value = '(target = ldap:///dc=example,dc=com)(targetattr==*)(version 3.0; acl "Name of the ACI"; deny absolute (all)userdn="ldap:///anyone";)'

@pytest.mark.xfail(reason='https://bugzilla.redhat.com/show_bug.cgi?id=1691473')
@pytest.mark.parametrize("real_value", [a[1] for a in FAILED],
ids=[a[0] for a in FAILED])
def test_aci_invalid_syntax_fail(topo, real_value):
"""

Try to set wrong ACI syntax.

:id: d544d09a-6ed1-11e8-8872-8c16451d917b
:setup: Standalone Instance
:steps:
1. Create ACI
2. Try to setup the ACI with Instance
:expectedresults:
1. It should pass
2. It should not pass
"""
domain = Domain(topo.standalone, DEFAULT_SUFFIX)
with pytest.raises(ldap.INVALID_SYNTAX):
> domain.add("aci", real_value)
E Failed: DID NOT RAISE <class 'ldap.INVALID_SYNTAX'>

suites/acl/syntax_test.py:214: Failed
XFailed suites/acl/syntax_test.py::test_aci_invalid_syntax_fail[test_Use_double_equal_instead_of_equal_in_the_targetfilter] 0.01
topo = <lib389.topologies.TopologyMain object at 0x7fc7bad5cc88>
real_value = '(target = ldap:///dc=example,dc=com)(targetfilter==*)(version 3.0; acl "Name of the ACI"; deny absolute (all)userdn="ldap:///anyone";)'

@pytest.mark.xfail(reason='https://bugzilla.redhat.com/show_bug.cgi?id=1691473')
@pytest.mark.parametrize("real_value", [a[1] for a in FAILED],
ids=[a[0] for a in FAILED])
def test_aci_invalid_syntax_fail(topo, real_value):
"""

Try to set wrong ACI syntax.

:id: d544d09a-6ed1-11e8-8872-8c16451d917b
:setup: Standalone Instance
:steps:
1. Create ACI
2. Try to setup the ACI with Instance
:expectedresults:
1. It should pass
2. It should not pass
"""
domain = Domain(topo.standalone, DEFAULT_SUFFIX)
with pytest.raises(ldap.INVALID_SYNTAX):
> domain.add("aci", real_value)
E Failed: DID NOT RAISE <class 'ldap.INVALID_SYNTAX'>

suites/acl/syntax_test.py:214: Failed
XFailed suites/acl/userattr_test.py::test_mod_see_also_positive[(LEVEL_3, CHILDREN)] 0.05
topo = <lib389.topologies.TopologyMain object at 0x7fc7bc452cf8>
_add_user = None, user = 'uid=Grandparent,ou=Inheritance,dc=example,dc=com'
entry = 'ou=CHILDREN,ou=PARENTS,ou=GRANDPARENTS,ou=ANCESTORS,ou=Inheritance,dc=example,dc=com'

@pytest.mark.parametrize("user,entry", [
(CAN, ROLEDNACCESS),
(CAN, USERDNACCESS),
(CAN, GROUPDNACCESS),
(CAN, LDAPURLACCESS),
(CAN, ATTRNAMEACCESS),
(LEVEL_0, OU_2),
(LEVEL_1, ANCESTORS),
(LEVEL_2, GRANDPARENTS),
(LEVEL_4, OU_2),
(LEVEL_4, ANCESTORS),
(LEVEL_4, GRANDPARENTS),
(LEVEL_4, PARENTS),
(LEVEL_4, CHILDREN),
pytest.param(LEVEL_3, CHILDREN, marks=pytest.mark.xfail(reason="May be some bug")),
], ids=[
"(CAN,ROLEDNACCESS)",
"(CAN,USERDNACCESS)",
"(CAN,GROUPDNACCESS)",
"(CAN,LDAPURLACCESS)",
"(CAN,ATTRNAMEACCESS)",
"(LEVEL_0, OU_2)",
"(LEVEL_1,ANCESTORS)",
"(LEVEL_2,GRANDPARENTS)",
"(LEVEL_4,OU_2)",
"(LEVEL_4, ANCESTORS)",
"(LEVEL_4,GRANDPARENTS)",
"(LEVEL_4,PARENTS)",
"(LEVEL_4,CHILDREN)",
"(LEVEL_3, CHILDREN)"
])
def test_mod_see_also_positive(topo, _add_user, user, entry):
"""
Try to set seeAlso on entry with binding specific user, it will success
as per the ACI .
:id: 65745426-7a01-11e8-8ac2-8c16451d917b
:setup: Standalone Instance
:steps:
1. Add test entry
2. Add ACI
3. User should follow ACI role
:expectedresults:
1. Entry should be added
2. Operation should succeed
3. Operation should succeed
"""
conn = UserAccount(topo.standalone, user).bind(PW_DM)
> UserAccount(conn, entry).replace('seeAlso', 'cn=1')

suites/acl/userattr_test.py:214:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.7/site-packages/lib389/_mapped_object.py:268: in replace
self.set(key, value, action=ldap.MOD_REPLACE)
/usr/local/lib/python3.7/site-packages/lib389/_mapped_object.py:387: in set
escapehatch='i am sure')
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:604: in modify_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:751: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:758: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.7/site-packages/lib389/__init__.py:199: in inner
return f(*args, **kwargs)
/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:331: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/local/lib64/python3.7/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7fc7bb5180f0>
func = <built-in method result4 of LDAP object at 0x7fc7bafca8c8>
args = (2, 1, -1, 0, 0, 0), kwargs = {}, diagnostic_message_success = None
exc_type = None, exc_value = None, exc_traceback = None

def _ldap_call(self,func,*args,**kwargs):
"""
Wrapper method mainly for serializing calls into OpenLDAP libs
and trace logs
"""
self._ldap_object_lock.acquire()
if __debug__:
if self._trace_level>=1:
self._trace_file.write('*** %s %s - %s\n%s\n' % (
repr(self),
self._uri,
'.'.join((self.__class__.__name__,func.__name__)),
pprint.pformat((args,kwargs))
))
if self._trace_level>=9:
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
diagnostic_message_success = None
try:
try:
> result = func(*args,**kwargs)
E ldap.INSUFFICIENT_ACCESS: {'desc': 'Insufficient access', 'info': "Insufficient 'write' privilege to the 'seeAlso' attribute of entry 'ou=children,ou=parents,ou=grandparents,ou=ancestors,ou=inheritance,dc=example,dc=com'.\n"}

/usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:315: INSUFFICIENT_ACCESS
XFailed suites/replication/conflict_resolve_test.py::TestTwoMasters::test_memberof_groups 0.00
self = <tests.suites.replication.conflict_resolve_test.TestTwoMasters object at 0x7fc7aa6d3588>
topology_m2 = <lib389.topologies.TopologyMain object at 0x7fc7a9b7a0b8>
base_m2 = <lib389.idm.nscontainer.nsContainer object at 0x7fc7aa6d32b0>

def test_memberof_groups(self, topology_m2, base_m2):
"""Check that conflict properly resolved for operations
with memberOf and groups

:id: 77f09b18-03d1-45da-940b-1ad2c2908eb3
:setup: Two master replication, test container for entries, enable plugin logging,
audit log, error log for replica and access log for internal
:steps:
1. Enable memberOf plugin
2. Add 30 users to m1 and wait for replication to happen
3. Pause replication
4. Create a group on m1 and m2
5. Create a group on m1 and m2, delete from m1
6. Create a group on m1, delete from m1, and create on m2,
7. Create a group on m2 and m1, delete from m1
8. Create two different groups on m2
9. Resume replication
10. Check that the entries on both masters are the same and replication is working
:expectedresults:
1. It should pass
2. It should pass
3. It should pass
4. It should pass
5. It should pass
6. It should pass
7. It should pass
8. It should pass
9. It should pass
10. It should pass
"""

> pytest.xfail("Issue 49591 - work in progress")
E _pytest.outcomes.XFailed: Issue 49591 - work in progress

suites/replication/conflict_resolve_test.py:401: XFailed
XFailed suites/replication/conflict_resolve_test.py::TestTwoMasters::test_managed_entries 0.00
self = <tests.suites.replication.conflict_resolve_test.TestTwoMasters object at 0x7fc7a9312d30>
topology_m2 = <lib389.topologies.TopologyMain object at 0x7fc7a9b7a0b8>

def test_managed_entries(self, topology_m2):
"""Check that conflict properly resolved for operations
with managed entries

:id: 77f09b18-03d1-45da-940b-1ad2c2908eb4
:setup: Two master replication, test container for entries, enable plugin logging,
audit log, error log for replica and access log for internal
:steps:
1. Create ou=managed_users and ou=managed_groups under test container
2. Configure managed entries plugin and add a template to test container
3. Add a user to m1 and wait for replication to happen
4. Pause replication
5. Create a user on m1 and m2 with a same group ID on both master
6. Create a user on m1 and m2 with a different group ID on both master
7. Resume replication
8. Check that the entries on both masters are the same and replication is working
:expectedresults:
1. It should pass
2. It should pass
3. It should pass
4. It should pass
5. It should pass
6. It should pass
7. It should pass
8. It should pass
"""

> pytest.xfail("Issue 49591 - work in progress")
E _pytest.outcomes.XFailed: Issue 49591 - work in progress

suites/replication/conflict_resolve_test.py:492: XFailed
XFailed suites/replication/conflict_resolve_test.py::TestTwoMasters::test_nested_entries_with_children 0.00
self = <tests.suites.replication.conflict_resolve_test.TestTwoMasters object at 0x7fc7a9b509b0>
topology_m2 = <lib389.topologies.TopologyMain object at 0x7fc7a9b7a0b8>
base_m2 = <lib389.idm.nscontainer.nsContainer object at 0x7fc7a9b50898>

def test_nested_entries_with_children(self, topology_m2, base_m2):
"""Check that conflict properly resolved for operations
with nested entries with children

:id: 77f09b18-03d1-45da-940b-1ad2c2908eb5
:setup: Two master replication, test container for entries, enable plugin logging,
audit log, error log for replica and access log for internal
:steps:
1. Add 15 containers to m1 and wait for replication to happen
2. Pause replication
3. Create parent-child on master2 and master1
4. Create parent-child on master1 and master2
5. Create parent-child on master1 and master2 different child rdn
6. Create parent-child on master1 and delete parent on master2
7. Create parent on master1, delete it and parent-child on master2, delete them
8. Create parent on master1, delete it and parent-two children on master2
9. Create parent-two children on master1 and parent-child on master2, delete them
10. Create three subsets inside existing container entry, applying only part of changes on m2
11. Create more combinations of the subset with parent-child on m1 and parent on m2
12. Delete container on m1, modify user1 on m1, create parent on m2 and modify user2 on m2
13. Resume replication
14. Check that the entries on both masters are the same and replication is working
:expectedresults:
1. It should pass
2. It should pass
3. It should pass
4. It should pass
5. It should pass
6. It should pass
7. It should pass
8. It should pass
9. It should pass
10. It should pass
11. It should pass
12. It should pass
13. It should pass
14. It should pass
"""

> pytest.xfail("Issue 49591 - work in progress")
E _pytest.outcomes.XFailed: Issue 49591 - work in progress

suites/replication/conflict_resolve_test.py:583: XFailed
XFailed suites/replication/conflict_resolve_test.py::TestThreeMasters::test_nested_entries 0.00
self = <tests.suites.replication.conflict_resolve_test.TestThreeMasters object at 0x7fc7aa6b5b00>
topology_m3 = <lib389.topologies.TopologyMain object at 0x7fc7a9b790b8>
base_m3 = <lib389.idm.nscontainer.nsContainer object at 0x7fc7a932f940>

def test_nested_entries(self, topology_m3, base_m3):
"""Check that conflict properly resolved for operations
with nested entries with children

:id: 77f09b18-03d1-45da-940b-1ad2c2908eb6
:setup: Three master replication, test container for entries, enable plugin logging,
audit log, error log for replica and access log for internal
:steps:
1. Add 15 containers to m1 and wait for replication to happen
2. Pause replication
3. Create two child entries under each of two entries
4. Create three child entries under each of three entries
5. Create two parents on m1 and m2, then on m1 - create a child and delete one parent,
on m2 - delete one parent and create a child
6. Test a few more parent-child combinations with three instances
7. Resume replication
8. Check that the entries on both masters are the same and replication is working
:expectedresults:
1. It should pass
2. It should pass
3. It should pass
4. It should pass
5. It should pass
6. It should pass
7. It should pass
8. It should pass
"""

> pytest.xfail("Issue 49591 - work in progress")
E _pytest.outcomes.XFailed: Issue 49591 - work in progress

suites/replication/conflict_resolve_test.py:796: XFailed
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39003, 'ldap-secureport': 63703, 'server-id': 'master3', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:139 Creating replication topology. INFO lib389.topologies:topologies.py:153 Joining master master2 to master1 ... INFO lib389.replica:replica.py:1535 SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO lib389.replica:replica.py:1604 SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO lib389.topologies:topologies.py:153 Joining master master3 to master1 ... INFO lib389.replica:replica.py:1535 SUCCESS: bootstrap to ldap://server.example.com:39003 completed INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39003 is was created INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39003 to ldap://server.example.com:39001 is was created INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39003 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39003 to ldap://server.example.com:39001 is working INFO lib389.replica:replica.py:1604 SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39003 INFO lib389.topologies:topologies.py:161 Ensuring master master1 to master2 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO lib389.topologies:topologies.py:161 Ensuring master master1 to master3 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39003 already exists INFO lib389.topologies:topologies.py:161 Ensuring master master2 to master1 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists INFO lib389.topologies:topologies.py:161 Ensuring master master2 to master3 ... INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39003 is was created INFO lib389.topologies:topologies.py:161 Ensuring master master3 to master1 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39003 to ldap://server.example.com:39001 already exists INFO lib389.topologies:topologies.py:161 Ensuring master master3 to master2 ... INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39003 to ldap://server.example.com:39002 is was created
XFailed suites/replication/replica_config_test.py::test_agmt_num_add[nsds5ReplicaPort-0-65535-9999999999999999999999999999999999999999999999999999999999999999999-invalid-389] 0.04
topo = <lib389.topologies.TopologyMain object at 0x7fc7a930de10>
attr = 'nsds5ReplicaPort', too_small = '0', too_big = '65535'
overflow = '9999999999999999999999999999999999999999999999999999999999999999999'
notnum = 'invalid', valid = '389'

@pytest.mark.xfail(reason="Agreement validation current does not work.")
@pytest.mark.parametrize("attr, too_small, too_big, overflow, notnum, valid", agmt_attrs)
def test_agmt_num_add(topo, attr, too_small, too_big, overflow, notnum, valid):
"""Test all the number values you can set for a replica config entry

:id: a8b47d4a-a089-4d70-8070-e6181209bf94
:setup: standalone instance
:steps:
1. Use a value that is too small
2. Use a value that is too big
3. Use a value that overflows the int
4. Use a value with character value (not a number)
5. Use a valid value
:expectedresults:
1. Add is rejected
2. Add is rejected
3. Add is rejected
4. Add is rejected
5. Add is allowed
"""

agmt_reset(topo)
replica = replica_setup(topo)

agmts = Agreements(topo.standalone, basedn=replica.dn)

# Test too small
perform_invalid_create(agmts, agmt_dict, attr, too_small)
# Test too big
> perform_invalid_create(agmts, agmt_dict, attr, too_big)

suites/replication/replica_config_test.py:212:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

many = <lib389.agreement.Agreements object at 0x7fc7aa3be8d0>
properties = {'cn': 'test_agreement', 'nsDS5ReplicaBindDN': 'uid=tester', 'nsDS5ReplicaBindMethod': 'SIMPLE', 'nsDS5ReplicaHost': 'localhost.localdomain', ...}
attr = 'nsds5ReplicaPort', value = '65535'

def perform_invalid_create(many, properties, attr, value):
my_properties = copy.deepcopy(properties)
my_properties[attr] = value
with pytest.raises(ldap.LDAPError):
> many.create(properties=my_properties)
E Failed: DID NOT RAISE <class 'ldap.LDAPError'>

suites/replication/replica_config_test.py:108: Failed
XFailed suites/replication/replica_config_test.py::test_agmt_num_modify[nsds5ReplicaPort-0-65535-9999999999999999999999999999999999999999999999999999999999999999999-invalid-389] 0.14
topo = <lib389.topologies.TopologyMain object at 0x7fc7a930de10>
attr = 'nsds5ReplicaPort', too_small = '0', too_big = '65535'
overflow = '9999999999999999999999999999999999999999999999999999999999999999999'
notnum = 'invalid', valid = '389'

@pytest.mark.xfail(reason="Agreement validation current does not work.")
@pytest.mark.parametrize("attr, too_small, too_big, overflow, notnum, valid", agmt_attrs)
def test_agmt_num_modify(topo, attr, too_small, too_big, overflow, notnum, valid):
"""Test all the number values you can set for a replica config entry

:id: a8b47d4a-a089-4d70-8070-e6181209bf95
:setup: standalone instance
:steps:
1. Replace a value that is too small
2. Replace a value that is too big
3. Replace a value that overflows the int
4. Replace a value with character value (not a number)
5. Replace a vlue with a valid value
:expectedresults:
1. Value is rejected
2. Value is rejected
3. Value is rejected
4. Value is rejected
5. Value is allowed
"""

agmt = agmt_setup(topo)

# Value too small
> perform_invalid_modify(agmt, attr, too_small)

suites/replication/replica_config_test.py:247:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

o = <lib389.agreement.Agreement object at 0x7fc7a9b43438>
attr = 'nsds5ReplicaPort', value = '0'

def perform_invalid_modify(o, attr, value):
with pytest.raises(ldap.LDAPError):
> o.replace(attr, value)
E Failed: DID NOT RAISE <class 'ldap.LDAPError'>

suites/replication/replica_config_test.py:112: Failed
XFailed suites/replication/replica_config_test.py::test_agmt_num_modify[nsds5ReplicaTimeout--1-9223372036854775807-9999999999999999999999999999999999999999999999999999999999999999999-invalid-6] 0.18
topo = <lib389.topologies.TopologyMain object at 0x7fc7a930de10>
attr = 'nsds5ReplicaTimeout', too_small = '-1', too_big = '9223372036854775807'
overflow = '9999999999999999999999999999999999999999999999999999999999999999999'
notnum = 'invalid', valid = '6'

@pytest.mark.xfail(reason="Agreement validation current does not work.")
@pytest.mark.parametrize("attr, too_small, too_big, overflow, notnum, valid", agmt_attrs)
def test_agmt_num_modify(topo, attr, too_small, too_big, overflow, notnum, valid):
"""Test all the number values you can set for a replica config entry

:id: a8b47d4a-a089-4d70-8070-e6181209bf95
:setup: standalone instance
:steps:
1. Replace a value that is too small
2. Replace a value that is too big
3. Replace a value that overflows the int
4. Replace a value with character value (not a number)
5. Replace a vlue with a valid value
:expectedresults:
1. Value is rejected
2. Value is rejected
3. Value is rejected
4. Value is rejected
5. Value is allowed
"""

agmt = agmt_setup(topo)

# Value too small
perform_invalid_modify(agmt, attr, too_small)
# Value too big
> perform_invalid_modify(agmt, attr, too_big)

suites/replication/replica_config_test.py:249:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

o = <lib389.agreement.Agreement object at 0x7fc7a9b79940>
attr = 'nsds5ReplicaTimeout', value = '9223372036854775807'

def perform_invalid_modify(o, attr, value):
with pytest.raises(ldap.LDAPError):
> o.replace(attr, value)
E Failed: DID NOT RAISE <class 'ldap.LDAPError'>

suites/replication/replica_config_test.py:112: Failed
XFailed suites/replication/replica_config_test.py::test_agmt_num_modify[nsds5ReplicaBusyWaitTime--1-9223372036854775807-9999999999999999999999999999999999999999999999999999999999999999999-invalid-6] 0.15
topo = <lib389.topologies.TopologyMain object at 0x7fc7a930de10>
attr = 'nsds5ReplicaBusyWaitTime', too_small = '-1'
too_big = '9223372036854775807'
overflow = '9999999999999999999999999999999999999999999999999999999999999999999'
notnum = 'invalid', valid = '6'

@pytest.mark.xfail(reason="Agreement validation current does not work.")
@pytest.mark.parametrize("attr, too_small, too_big, overflow, notnum, valid", agmt_attrs)
def test_agmt_num_modify(topo, attr, too_small, too_big, overflow, notnum, valid):
"""Test all the number values you can set for a replica config entry

:id: a8b47d4a-a089-4d70-8070-e6181209bf95
:setup: standalone instance
:steps:
1. Replace a value that is too small
2. Replace a value that is too big
3. Replace a value that overflows the int
4. Replace a value with character value (not a number)
5. Replace a vlue with a valid value
:expectedresults:
1. Value is rejected
2. Value is rejected
3. Value is rejected
4. Value is rejected
5. Value is allowed
"""

agmt = agmt_setup(topo)

# Value too small
perform_invalid_modify(agmt, attr, too_small)
# Value too big
> perform_invalid_modify(agmt, attr, too_big)

suites/replication/replica_config_test.py:249:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

o = <lib389.agreement.Agreement object at 0x7fc7aa32a2e8>
attr = 'nsds5ReplicaBusyWaitTime', value = '9223372036854775807'

def perform_invalid_modify(o, attr, value):
with pytest.raises(ldap.LDAPError):
> o.replace(attr, value)
E Failed: DID NOT RAISE <class 'ldap.LDAPError'>

suites/replication/replica_config_test.py:112: Failed
XFailed suites/replication/replica_config_test.py::test_agmt_num_modify[nsds5ReplicaSessionPauseTime--1-9223372036854775807-9999999999999999999999999999999999999999999999999999999999999999999-invalid-6] 0.14
topo = <lib389.topologies.TopologyMain object at 0x7fc7a930de10>
attr = 'nsds5ReplicaSessionPauseTime', too_small = '-1'
too_big = '9223372036854775807'
overflow = '9999999999999999999999999999999999999999999999999999999999999999999'
notnum = 'invalid', valid = '6'

@pytest.mark.xfail(reason="Agreement validation current does not work.")
@pytest.mark.parametrize("attr, too_small, too_big, overflow, notnum, valid", agmt_attrs)
def test_agmt_num_modify(topo, attr, too_small, too_big, overflow, notnum, valid):
"""Test all the number values you can set for a replica config entry

:id: a8b47d4a-a089-4d70-8070-e6181209bf95
:setup: standalone instance
:steps:
1. Replace a value that is too small
2. Replace a value that is too big
3. Replace a value that overflows the int
4. Replace a value with character value (not a number)
5. Replace a vlue with a valid value
:expectedresults:
1. Value is rejected
2. Value is rejected
3. Value is rejected
4. Value is rejected
5. Value is allowed
"""

agmt = agmt_setup(topo)

# Value too small
perform_invalid_modify(agmt, attr, too_small)
# Value too big
> perform_invalid_modify(agmt, attr, too_big)

suites/replication/replica_config_test.py:249:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

o = <lib389.agreement.Agreement object at 0x7fc7aa7657f0>
attr = 'nsds5ReplicaSessionPauseTime', value = '9223372036854775807'

def perform_invalid_modify(o, attr, value):
with pytest.raises(ldap.LDAPError):
> o.replace(attr, value)
E Failed: DID NOT RAISE <class 'ldap.LDAPError'>

suites/replication/replica_config_test.py:112: Failed
XFailed suites/replication/replica_config_test.py::test_agmt_num_modify[nsds5ReplicaFlowControlWindow--1-9223372036854775807-9999999999999999999999999999999999999999999999999999999999999999999-invalid-6] 0.14
topo = <lib389.topologies.TopologyMain object at 0x7fc7a930de10>
attr = 'nsds5ReplicaFlowControlWindow', too_small = '-1'
too_big = '9223372036854775807'
overflow = '9999999999999999999999999999999999999999999999999999999999999999999'
notnum = 'invalid', valid = '6'

@pytest.mark.xfail(reason="Agreement validation current does not work.")
@pytest.mark.parametrize("attr, too_small, too_big, overflow, notnum, valid", agmt_attrs)
def test_agmt_num_modify(topo, attr, too_small, too_big, overflow, notnum, valid):
"""Test all the number values you can set for a replica config entry

:id: a8b47d4a-a089-4d70-8070-e6181209bf95
:setup: standalone instance
:steps:
1. Replace a value that is too small
2. Replace a value that is too big
3. Replace a value that overflows the int
4. Replace a value with character value (not a number)
5. Replace a vlue with a valid value
:expectedresults:
1. Value is rejected
2. Value is rejected
3. Value is rejected
4. Value is rejected
5. Value is allowed
"""

agmt = agmt_setup(topo)

# Value too small
perform_invalid_modify(agmt, attr, too_small)
# Value too big
> perform_invalid_modify(agmt, attr, too_big)

suites/replication/replica_config_test.py:249:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

o = <lib389.agreement.Agreement object at 0x7fc7abdb1748>
attr = 'nsds5ReplicaFlowControlWindow', value = '9223372036854775807'

def perform_invalid_modify(o, attr, value):
with pytest.raises(ldap.LDAPError):
> o.replace(attr, value)
E Failed: DID NOT RAISE <class 'ldap.LDAPError'>

suites/replication/replica_config_test.py:112: Failed
XFailed suites/replication/replica_config_test.py::test_agmt_num_modify[nsds5ReplicaFlowControlPause--1-9223372036854775807-9999999999999999999999999999999999999999999999999999999999999999999-invalid-6] 0.16
topo = <lib389.topologies.TopologyMain object at 0x7fc7a930de10>
attr = 'nsds5ReplicaFlowControlPause', too_small = '-1'
too_big = '9223372036854775807'
overflow = '9999999999999999999999999999999999999999999999999999999999999999999'
notnum = 'invalid', valid = '6'

@pytest.mark.xfail(reason="Agreement validation current does not work.")
@pytest.mark.parametrize("attr, too_small, too_big, overflow, notnum, valid", agmt_attrs)
def test_agmt_num_modify(topo, attr, too_small, too_big, overflow, notnum, valid):
"""Test all the number values you can set for a replica config entry

:id: a8b47d4a-a089-4d70-8070-e6181209bf95
:setup: standalone instance
:steps:
1. Replace a value that is too small
2. Replace a value that is too big
3. Replace a value that overflows the int
4. Replace a value with character value (not a number)
5. Replace a vlue with a valid value
:expectedresults:
1. Value is rejected
2. Value is rejected
3. Value is rejected
4. Value is rejected
5. Value is allowed
"""

agmt = agmt_setup(topo)

# Value too small
perform_invalid_modify(agmt, attr, too_small)
# Value too big
> perform_invalid_modify(agmt, attr, too_big)

suites/replication/replica_config_test.py:249:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

o = <lib389.agreement.Agreement object at 0x7fc7aa24b940>
attr = 'nsds5ReplicaFlowControlPause', value = '9223372036854775807'

def perform_invalid_modify(o, attr, value):
with pytest.raises(ldap.LDAPError):
> o.replace(attr, value)
E Failed: DID NOT RAISE <class 'ldap.LDAPError'>

suites/replication/replica_config_test.py:112: Failed
XFailed suites/replication/replica_config_test.py::test_agmt_num_modify[nsds5ReplicaProtocolTimeout--1-9223372036854775807-9999999999999999999999999999999999999999999999999999999999999999999-invalid-6] 0.16
topo = <lib389.topologies.TopologyMain object at 0x7fc7a930de10>
attr = 'nsds5ReplicaProtocolTimeout', too_small = '-1'
too_big = '9223372036854775807'
overflow = '9999999999999999999999999999999999999999999999999999999999999999999'
notnum = 'invalid', valid = '6'

@pytest.mark.xfail(reason="Agreement validation current does not work.")
@pytest.mark.parametrize("attr, too_small, too_big, overflow, notnum, valid", agmt_attrs)
def test_agmt_num_modify(topo, attr, too_small, too_big, overflow, notnum, valid):
"""Test all the number values you can set for a replica config entry

:id: a8b47d4a-a089-4d70-8070-e6181209bf95
:setup: standalone instance
:steps:
1. Replace a value that is too small
2. Replace a value that is too big
3. Replace a value that overflows the int
4. Replace a value with character value (not a number)
5. Replace a vlue with a valid value
:expectedresults:
1. Value is rejected
2. Value is rejected
3. Value is rejected
4. Value is rejected
5. Value is allowed
"""

agmt = agmt_setup(topo)

# Value too small
perform_invalid_modify(agmt, attr, too_small)
# Value too big
> perform_invalid_modify(agmt, attr, too_big)

suites/replication/replica_config_test.py:249:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

o = <lib389.agreement.Agreement object at 0x7fc7ab0d9080>
attr = 'nsds5ReplicaProtocolTimeout', value = '9223372036854775807'

def perform_invalid_modify(o, attr, value):
with pytest.raises(ldap.LDAPError):
> o.replace(attr, value)
E Failed: DID NOT RAISE <class 'ldap.LDAPError'>

suites/replication/replica_config_test.py:112: Failed
XFailed suites/replication/ruvstore_test.py::test_memoryruv_sync_with_databaseruv 0.04
topo = <lib389.topologies.TopologyMain object at 0x7fc7aa6a3978>

@pytest.mark.xfail(reason="No method to safety access DB ruv currently exists online.")
def test_memoryruv_sync_with_databaseruv(topo):
"""Check if memory ruv and database ruv are synced

:id: 5f38ac5f-6353-460d-bf60-49cafffda5b3
:setup: Replication with two masters.
:steps: 1. Add user to server and compare memory ruv and database ruv.
2. Modify description of user and compare memory ruv and database ruv.
3. Modrdn of user and compare memory ruv and database ruv.
4. Delete user and compare memory ruv and database ruv.
:expectedresults:
1. For add user, the memory ruv and database ruv should be the same.
2. For modify operation, the memory ruv and database ruv should be the same.
3. For modrdn operation, the memory ruv and database ruv should be the same.
4. For delete operation, the memory ruv and database ruv should be the same.
"""

log.info('Adding user: {} to master1'.format(TEST_ENTRY_NAME))
users = UserAccounts(topo.ms['master1'], DEFAULT_SUFFIX)
tuser = users.create(properties=USER_PROPERTIES)
> _compare_memoryruv_and_databaseruv(topo, 'add')

suites/replication/ruvstore_test.py:139:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

topo = <lib389.topologies.TopologyMain object at 0x7fc7aa6a3978>
operation_type = 'add'

def _compare_memoryruv_and_databaseruv(topo, operation_type):
"""Compare the memoryruv and databaseruv for ldap operations"""

log.info('Checking memory ruv for ldap: {} operation'.format(operation_type))
replicas = Replicas(topo.ms['master1'])
replica = replicas.list()[0]
memory_ruv = replica.get_attr_val_utf8('nsds50ruv')

log.info('Checking database ruv for ldap: {} operation'.format(operation_type))
> entry = replicas.get_ruv_entry(DEFAULT_SUFFIX)
E AttributeError: 'Replicas' object has no attribute 'get_ruv_entry'

suites/replication/ruvstore_test.py:81: AttributeError
------------------------------ Captured log call -------------------------------
INFO tests.suites.replication.ruvstore_test:ruvstore_test.py:136 Adding user: rep2lusr to master1 INFO tests.suites.replication.ruvstore_test:ruvstore_test.py:75 Checking memory ruv for ldap: add operation INFO tests.suites.replication.ruvstore_test:ruvstore_test.py:80 Checking database ruv for ldap: add operation
XPassed suites/replication/replica_config_test.py::test_agmt_num_add[nsds5ReplicaTimeout--1-9223372036854775807-9999999999999999999999999999999999999999999999999999999999999999999-invalid-6] 0.16
No log output captured.
XPassed suites/replication/replica_config_test.py::test_agmt_num_add[nsds5ReplicaBusyWaitTime--1-9223372036854775807-9999999999999999999999999999999999999999999999999999999999999999999-invalid-6] 0.42
No log output captured.
XPassed suites/replication/replica_config_test.py::test_agmt_num_add[nsds5ReplicaSessionPauseTime--1-9223372036854775807-9999999999999999999999999999999999999999999999999999999999999999999-invalid-6] 0.16
No log output captured.
XPassed suites/replication/replica_config_test.py::test_agmt_num_add[nsds5ReplicaFlowControlWindow--1-9223372036854775807-9999999999999999999999999999999999999999999999999999999999999999999-invalid-6] 0.17
No log output captured.
XPassed suites/replication/replica_config_test.py::test_agmt_num_add[nsds5ReplicaFlowControlPause--1-9223372036854775807-9999999999999999999999999999999999999999999999999999999999999999999-invalid-6] 0.42
No log output captured.
XPassed suites/replication/replica_config_test.py::test_agmt_num_add[nsds5ReplicaProtocolTimeout--1-9223372036854775807-9999999999999999999999999999999999999999999999999999999999999999999-invalid-6] 0.16
No log output captured.
Skipped suites/config/regression_test.py::test_set_cachememsize_to_custom_value::setup 0.00
('suites/config/regression_test.py', 33, 'Skipped: available memory is too low')
Skipped suites/filter/filterscanlimit_test.py::test_invalid_configuration::setup 0.00
('suites/filter/filterscanlimit_test.py', 171, 'Skipped: https://pagure.io/389-ds-base/issue/50201')
Skipped suites/memory_leaks/range_search_test.py::test_range_search::setup 0.00
('suites/memory_leaks/range_search_test.py', 23, "Skipped: Don't run if ASAN is not enabled")
Skipped tickets/ticket47815_test.py::test_ticket47815::setup 0.00
('tickets/ticket47815_test.py', 25, 'Skipped: Not implemented, or invalid by nsMemberOf')
Skipped tickets/ticket49121_test.py::test_ticket49121::setup 0.00
('tickets/ticket49121_test.py', 31, "Skipped: Don't run if ASAN is not enabled")
Passed suites/acl/acivattr_test.py::test_positive[(ENG_USER, ENG_MANAGER, REAL_EQ_ACI)] 0.04
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/acl/acivattr_test.py::test_positive[(ENG_USER, ENG_MANAGER, REAL_PRES_ACI)] 0.04
No log output captured.
Passed suites/acl/acivattr_test.py::test_positive[(ENG_USER, ENG_MANAGER, REAL_SUB_ACI)] 0.04
No log output captured.
Passed suites/acl/acivattr_test.py::test_positive[(ENG_USER, ENG_MANAGER, ROLE_PRES_ACI)] 0.04
No log output captured.
Passed suites/acl/acivattr_test.py::test_positive[(ENG_USER, ENG_MANAGER, ROLE_SUB_ACI)] 0.10
No log output captured.
Passed suites/acl/acivattr_test.py::test_positive[(ENG_USER, ENG_MANAGER, COS_EQ_ACI)] 0.04
No log output captured.
Passed suites/acl/acivattr_test.py::test_positive[(ENG_USER, ENG_MANAGER, COS_PRES_ACI)] 0.04
No log output captured.
Passed suites/acl/acivattr_test.py::test_positive[(ENG_USER, ENG_MANAGER, COS_SUB_ACI)] 0.04
No log output captured.
Passed suites/acl/acivattr_test.py::test_positive[(ENG_USER, ENG_MANAGER, LDAPURL_ACI)] 0.04
No log output captured.
Passed suites/acl/acivattr_test.py::test_negative[(ENG_USER, SALES_MANAGER, REAL_EQ_ACI)] 0.05
No log output captured.
Passed suites/acl/acivattr_test.py::test_negative[(ENG_USER, SALES_OU, REAL_PRES_ACI)] 0.05
No log output captured.
Passed suites/acl/acivattr_test.py::test_negative[(ENG_USER, SALES_MANAGER, REAL_SUB_ACI)] 0.04
No log output captured.
Passed suites/acl/acivattr_test.py::test_negative[(ENG_USER, SALES_MANAGER, ROLE_EQ_ACI)] 0.05
No log output captured.
Passed suites/acl/acivattr_test.py::test_negative[(ENG_USER, SALES_MANAGER, ROLE_PRES_ACI)] 0.05
No log output captured.
Passed suites/acl/acivattr_test.py::test_negative[(ENG_USER, SALES_MANAGER, ROLE_SUB_ACI)] 0.05
No log output captured.
Passed suites/acl/acivattr_test.py::test_negative[(ENG_USER, SALES_MANAGER, COS_EQ_ACI)] 0.05
No log output captured.
Passed suites/acl/acivattr_test.py::test_negative[(ENG_USER, SALES_MANAGER, COS_PRES_ACI)] 0.05
No log output captured.
Passed suites/acl/acivattr_test.py::test_negative[(ENG_USER, SALES_MANAGER, COS_SUB_ACI)] 0.05
No log output captured.
Passed suites/acl/acivattr_test.py::test_negative[(SALES_UESER, SALES_MANAGER, LDAPURL_ACI)] 0.05
No log output captured.
Passed suites/acl/acivattr_test.py::test_negative[(ENG_USER, ENG_MANAGER, ROLE_EQ_ACI)] 0.04
No log output captured.
Passed suites/acl/acl_deny_test.py::test_multi_deny_aci 11.75
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. INFO lib389:acl_deny_test.py:39 Add uid=tuser1,ou=People,dc=example,dc=com INFO lib389:acl_deny_test.py:50 Add uid=tuser,ou=People,dc=example,dc=com------------------------------ Captured log call -------------------------------
INFO lib389:acl_deny_test.py:82 Pass 1 INFO lib389:acl_deny_test.py:85 Testing two searches behave the same... INFO lib389:acl_deny_test.py:128 Testing search does not return any entries... INFO lib389:acl_deny_test.py:82 Pass 2 INFO lib389:acl_deny_test.py:85 Testing two searches behave the same... INFO lib389:acl_deny_test.py:128 Testing search does not return any entries... INFO lib389:acl_deny_test.py:192 Test PASSED
Passed suites/acl/acl_test.py::test_aci_attr_subtype_targetattr[lang-ja] 0.00
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:139 Creating replication topology. INFO lib389.topologies:topologies.py:153 Joining master master2 to master1 ... INFO lib389.replica:replica.py:1535 SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO lib389.replica:replica.py:1604 SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO lib389.topologies:topologies.py:161 Ensuring master master1 to master2 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO lib389.topologies:topologies.py:161 Ensuring master master2 to master1 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists INFO tests.suites.acl.acl_test:acl_test.py:77 ========Executing test with 'lang-ja' subtype======== INFO tests.suites.acl.acl_test:acl_test.py:78 Add a target attribute INFO tests.suites.acl.acl_test:acl_test.py:81 Add a user attribute INFO tests.suites.acl.acl_test:acl_test.py:89 Add an ACI with attribute subtype------------------------------ Captured log call -------------------------------
INFO tests.suites.acl.acl_test:acl_test.py:118 Search for the added attribute INFO tests.suites.acl.acl_test:acl_test.py:125 The added attribute was found
Passed suites/acl/acl_test.py::test_aci_attr_subtype_targetattr[binary] 0.00
------------------------------ Captured log setup ------------------------------
INFO tests.suites.acl.acl_test:acl_test.py:77 ========Executing test with 'binary' subtype======== INFO tests.suites.acl.acl_test:acl_test.py:78 Add a target attribute INFO tests.suites.acl.acl_test:acl_test.py:81 Add a user attribute INFO tests.suites.acl.acl_test:acl_test.py:89 Add an ACI with attribute subtype------------------------------ Captured log call -------------------------------
INFO tests.suites.acl.acl_test:acl_test.py:118 Search for the added attribute INFO tests.suites.acl.acl_test:acl_test.py:125 The added attribute was found
Passed suites/acl/acl_test.py::test_aci_attr_subtype_targetattr[phonetic] 0.00
------------------------------ Captured log setup ------------------------------
INFO tests.suites.acl.acl_test:acl_test.py:77 ========Executing test with 'phonetic' subtype======== INFO tests.suites.acl.acl_test:acl_test.py:78 Add a target attribute INFO tests.suites.acl.acl_test:acl_test.py:81 Add a user attribute INFO tests.suites.acl.acl_test:acl_test.py:89 Add an ACI with attribute subtype------------------------------ Captured log call -------------------------------
INFO tests.suites.acl.acl_test:acl_test.py:118 Search for the added attribute INFO tests.suites.acl.acl_test:acl_test.py:125 The added attribute was found
Passed suites/acl/acl_test.py::test_mode_default_add_deny 0.04
------------------------------ Captured log setup ------------------------------
INFO lib389:acl_test.py:233 ######## INITIALIZATION ######## INFO lib389:acl_test.py:236 Add uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:246 Add cn=staged user,dc=example,dc=com INFO lib389:acl_test.py:250 Add cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:254 Add cn=excepts,cn=accounts,dc=example,dc=com------------------------------ Captured log call -------------------------------
INFO lib389:acl_test.py:286 ######## mode moddn_aci : ADD (should fail) ######## INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:294 Try to add cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:303 Exception (expected): INSUFFICIENT_ACCESS
Passed suites/acl/acl_test.py::test_mode_default_delete_deny 0.05
------------------------------ Captured log call -------------------------------
INFO lib389:acl_test.py:321 ######## DELETE (should fail) ######## INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:328 Try to delete cn=staged user,dc=example,dc=com INFO lib389:acl_test.py:333 Exception (expected): INSUFFICIENT_ACCESS
Passed suites/acl/acl_test.py::test_moddn_staging_prod[0-cn=staged user,dc=example,dc=com-cn=accounts,dc=example,dc=com-False] 0.39
------------------------------ Captured log call -------------------------------
INFO lib389:acl_test.py:367 ######## MOVE staging -> Prod (0) ######## INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:379 Try to MODDN uid=new_account0,cn=staged user,dc=example,dc=com -> uid=new_account0,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:386 Exception (expected): INSUFFICIENT_ACCESS INFO lib389:acl_test.py:390 ######## MOVE to and from equality filter ######## INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:397 Try to MODDN uid=new_account0,cn=staged user,dc=example,dc=com -> uid=new_account0,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com
Passed suites/acl/acl_test.py::test_moddn_staging_prod[1-cn=staged user,dc=example,dc=com-cn=accounts,dc=example,dc=com-False] 0.35
------------------------------ Captured log call -------------------------------
INFO lib389:acl_test.py:367 ######## MOVE staging -> Prod (1) ######## INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:379 Try to MODDN uid=new_account1,cn=staged user,dc=example,dc=com -> uid=new_account1,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:386 Exception (expected): INSUFFICIENT_ACCESS INFO lib389:acl_test.py:390 ######## MOVE to and from equality filter ######## INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:397 Try to MODDN uid=new_account1,cn=staged user,dc=example,dc=com -> uid=new_account1,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com
Passed suites/acl/acl_test.py::test_moddn_staging_prod[2-cn=staged user,dc=example,dc=com-cn=bad*,dc=example,dc=com-True] 0.35
------------------------------ Captured log call -------------------------------
INFO lib389:acl_test.py:367 ######## MOVE staging -> Prod (2) ######## INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:379 Try to MODDN uid=new_account2,cn=staged user,dc=example,dc=com -> uid=new_account2,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:386 Exception (expected): INSUFFICIENT_ACCESS INFO lib389:acl_test.py:390 ######## MOVE to and from equality filter ######## INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:397 Try to MODDN uid=new_account2,cn=staged user,dc=example,dc=com -> uid=new_account2,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:400 Exception (expected): INSUFFICIENT_ACCESS INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com
Passed suites/acl/acl_test.py::test_moddn_staging_prod[3-cn=st*,dc=example,dc=com-cn=accounts,dc=example,dc=com-False] 0.34
------------------------------ Captured log call -------------------------------
INFO lib389:acl_test.py:367 ######## MOVE staging -> Prod (3) ######## INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:379 Try to MODDN uid=new_account3,cn=staged user,dc=example,dc=com -> uid=new_account3,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:386 Exception (expected): INSUFFICIENT_ACCESS INFO lib389:acl_test.py:390 ######## MOVE to and from equality filter ######## INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:397 Try to MODDN uid=new_account3,cn=staged user,dc=example,dc=com -> uid=new_account3,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com
Passed suites/acl/acl_test.py::test_moddn_staging_prod[4-cn=bad*,dc=example,dc=com-cn=accounts,dc=example,dc=com-True] 0.34
------------------------------ Captured log call -------------------------------
INFO lib389:acl_test.py:367 ######## MOVE staging -> Prod (4) ######## INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:379 Try to MODDN uid=new_account4,cn=staged user,dc=example,dc=com -> uid=new_account4,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:386 Exception (expected): INSUFFICIENT_ACCESS INFO lib389:acl_test.py:390 ######## MOVE to and from equality filter ######## INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:397 Try to MODDN uid=new_account4,cn=staged user,dc=example,dc=com -> uid=new_account4,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:400 Exception (expected): INSUFFICIENT_ACCESS INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com
Passed suites/acl/acl_test.py::test_moddn_staging_prod[5-cn=st*,dc=example,dc=com-cn=ac*,dc=example,dc=com-False] 0.34
------------------------------ Captured log call -------------------------------
INFO lib389:acl_test.py:367 ######## MOVE staging -> Prod (5) ######## INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:379 Try to MODDN uid=new_account5,cn=staged user,dc=example,dc=com -> uid=new_account5,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:386 Exception (expected): INSUFFICIENT_ACCESS INFO lib389:acl_test.py:390 ######## MOVE to and from equality filter ######## INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:397 Try to MODDN uid=new_account5,cn=staged user,dc=example,dc=com -> uid=new_account5,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com
Passed suites/acl/acl_test.py::test_moddn_staging_prod[6-None-cn=ac*,dc=example,dc=com-False] 0.34
------------------------------ Captured log call -------------------------------
INFO lib389:acl_test.py:367 ######## MOVE staging -> Prod (6) ######## INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:379 Try to MODDN uid=new_account6,cn=staged user,dc=example,dc=com -> uid=new_account6,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:386 Exception (expected): INSUFFICIENT_ACCESS INFO lib389:acl_test.py:390 ######## MOVE to and from equality filter ######## INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:397 Try to MODDN uid=new_account6,cn=staged user,dc=example,dc=com -> uid=new_account6,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com
Passed suites/acl/acl_test.py::test_moddn_staging_prod[7-cn=st*,dc=example,dc=com-None-False] 0.36
------------------------------ Captured log call -------------------------------
INFO lib389:acl_test.py:367 ######## MOVE staging -> Prod (7) ######## INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:379 Try to MODDN uid=new_account7,cn=staged user,dc=example,dc=com -> uid=new_account7,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:386 Exception (expected): INSUFFICIENT_ACCESS INFO lib389:acl_test.py:390 ######## MOVE to and from equality filter ######## INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:397 Try to MODDN uid=new_account7,cn=staged user,dc=example,dc=com -> uid=new_account7,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com
Passed suites/acl/acl_test.py::test_moddn_staging_prod[8-None-None-False] 0.34
------------------------------ Captured log call -------------------------------
INFO lib389:acl_test.py:367 ######## MOVE staging -> Prod (8) ######## INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:379 Try to MODDN uid=new_account8,cn=staged user,dc=example,dc=com -> uid=new_account8,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:386 Exception (expected): INSUFFICIENT_ACCESS INFO lib389:acl_test.py:390 ######## MOVE to and from equality filter ######## INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:397 Try to MODDN uid=new_account8,cn=staged user,dc=example,dc=com -> uid=new_account8,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com
Passed suites/acl/acl_test.py::test_moddn_staging_prod_9 1.55
------------------------------ Captured log call -------------------------------
INFO lib389:acl_test.py:443 ######## MOVE staging -> Prod (9) ######## INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:456 Try to MODDN uid=new_account9,cn=staged user,dc=example,dc=com -> uid=new_account9,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:463 Exception (expected): INSUFFICIENT_ACCESS INFO lib389:acl_test.py:469 Disable the moddn right INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:474 ######## MOVE to and from equality filter ######## INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:482 Try to MODDN uid=new_account9,cn=staged user,dc=example,dc=com -> uid=new_account9,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:489 Exception (expected): INSUFFICIENT_ACCESS INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:511 Try to MODDN uid=new_account9,cn=staged user,dc=example,dc=com -> uid=new_account9,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:522 Enable the moddn right INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:526 ######## MOVE staging -> Prod (10) ######## INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:538 Try to MODDN uid=new_account10,cn=staged user,dc=example,dc=com -> uid=new_account10,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:545 Exception (expected): INSUFFICIENT_ACCESS INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:562 Try to MODDN uid=new_account10,cn=staged user,dc=example,dc=com -> uid=new_account10,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:569 Exception (expected): INSUFFICIENT_ACCESS INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:578 ######## MOVE to and from equality filter ######## INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:584 Try to MODDN uid=new_account10,cn=staged user,dc=example,dc=com -> uid=new_account10,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com
Passed suites/acl/acl_test.py::test_moddn_prod_staging 0.62
------------------------------ Captured log call -------------------------------
INFO lib389:acl_test.py:613 ######## MOVE staging -> Prod (11) ######## INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:626 Try to MODDN uid=new_account11,cn=staged user,dc=example,dc=com -> uid=new_account11,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:633 Exception (expected): INSUFFICIENT_ACCESS INFO lib389:acl_test.py:637 ######## MOVE to and from equality filter ######## INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:643 Try to MODDN uid=new_account11,cn=staged user,dc=example,dc=com -> uid=new_account11,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:658 Try to move back MODDN uid=new_account11,cn=accounts,dc=example,dc=com -> uid=new_account11,cn=staged user,dc=example,dc=com INFO lib389:acl_test.py:665 Exception (expected): INSUFFICIENT_ACCESS INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com
Passed suites/acl/acl_test.py::test_check_repl_M2_to_M1 1.12
------------------------------ Captured log call -------------------------------
INFO lib389:acl_test.py:695 Bind as cn=Directory Manager (M2) INFO lib389:acl_test.py:715 Update (M2) uid=new_account12,cn=staged user,dc=example,dc=com (description) INFO lib389:acl_test.py:728 Update uid=new_account12,cn=staged user,dc=example,dc=com (description) replicated on M1
Passed suites/acl/acl_test.py::test_moddn_staging_prod_except 0.36
------------------------------ Captured log call -------------------------------
INFO lib389:acl_test.py:753 ######## MOVE staging -> Prod (13) ######## INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:765 Try to MODDN uid=new_account13,cn=staged user,dc=example,dc=com -> uid=new_account13,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:772 Exception (expected): INSUFFICIENT_ACCESS INFO lib389:acl_test.py:776 ######## MOVE to and from equality filter ######## INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:160 Add a DENY aci under cn=excepts,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:783 Try to MODDN uid=new_account13,cn=staged user,dc=example,dc=com -> uid=new_account13,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:789 ######## MOVE staging -> Prod/Except (14) ######## INFO lib389:acl_test.py:795 Try to MODDN uid=new_account14,cn=staged user,dc=example,dc=com -> uid=new_account14,cn=excepts,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:802 Exception (expected): INSUFFICIENT_ACCESS INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:160 Add a DENY aci under cn=excepts,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com
Passed suites/acl/acl_test.py::test_mode_default_ger_no_moddn 0.00
------------------------------ Captured log call -------------------------------
INFO lib389:acl_test.py:829 ######## mode moddn_aci : GER no moddn ######## INFO lib389:acl_test.py:840 dn: cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:840 dn: cn=excepts,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:840 dn: uid=new_account0,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:840 dn: uid=new_account1,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:840 dn: uid=new_account3,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:840 dn: uid=new_account5,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:840 dn: uid=new_account6,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:840 dn: uid=new_account7,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:840 dn: uid=new_account8,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:840 dn: uid=new_account9,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:840 dn: uid=new_account10,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:840 dn: uid=new_account11,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:840 dn: uid=new_account13,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:843 ######## entryLevelRights: b'v'
Passed suites/acl/acl_test.py::test_mode_default_ger_with_moddn 0.45
------------------------------ Captured log call -------------------------------
INFO lib389:acl_test.py:867 ######## mode moddn_aci: GER with moddn ######## INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:885 dn: cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:885 dn: cn=excepts,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:885 dn: uid=new_account0,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:885 dn: uid=new_account1,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:885 dn: uid=new_account3,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:885 dn: uid=new_account5,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:885 dn: uid=new_account6,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:885 dn: uid=new_account7,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:885 dn: uid=new_account8,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:885 dn: uid=new_account9,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:885 dn: uid=new_account10,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:885 dn: uid=new_account11,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:885 dn: uid=new_account13,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:888 ######## entryLevelRights: b'vn' INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com
Passed suites/acl/acl_test.py::test_mode_legacy_ger_no_moddn1 0.12
------------------------------ Captured log call -------------------------------
INFO lib389:acl_test.py:918 ######## Disable the moddn aci mod ######## INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:922 ######## mode legacy 1: GER no moddn ######## INFO lib389:acl_test.py:932 dn: cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:932 dn: cn=excepts,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:932 dn: uid=new_account0,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:932 dn: uid=new_account1,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:932 dn: uid=new_account3,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:932 dn: uid=new_account5,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:932 dn: uid=new_account6,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:932 dn: uid=new_account7,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:932 dn: uid=new_account8,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:932 dn: uid=new_account9,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:932 dn: uid=new_account10,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:932 dn: uid=new_account11,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:932 dn: uid=new_account13,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:935 ######## entryLevelRights: b'v'
Passed suites/acl/acl_test.py::test_mode_legacy_ger_no_moddn2 0.42
------------------------------ Captured log call -------------------------------
INFO lib389:acl_test.py:961 ######## Disable the moddn aci mod ######## INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:965 ######## mode legacy 2: GER no moddn ######## INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:982 dn: cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:982 dn: cn=excepts,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:982 dn: uid=new_account0,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:982 dn: uid=new_account1,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:982 dn: uid=new_account3,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:982 dn: uid=new_account5,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:982 dn: uid=new_account6,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:982 dn: uid=new_account7,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:982 dn: uid=new_account8,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:982 dn: uid=new_account9,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:982 dn: uid=new_account10,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:982 dn: uid=new_account11,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:982 dn: uid=new_account13,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:985 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com
Passed suites/acl/acl_test.py::test_mode_legacy_ger_with_moddn 0.38
------------------------------ Captured log call -------------------------------
INFO lib389:acl_test.py:1021 ######## Disable the moddn aci mod ######## INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:1025 ######## mode legacy : GER with moddn ######## INFO lib389:acl_test.py:133 Bind as cn=Directory Manager INFO lib389:acl_test.py:139 Bind as uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:1047 dn: cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1047 dn: cn=excepts,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1047 dn: uid=new_account0,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1047 dn: uid=new_account1,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1047 dn: uid=new_account3,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1047 dn: uid=new_account5,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1047 dn: uid=new_account6,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1047 dn: uid=new_account7,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1047 dn: uid=new_account8,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1047 dn: uid=new_account9,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1047 dn: uid=new_account10,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1047 dn: uid=new_account11,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1047 dn: uid=new_account13,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1050 ######## entryLevelRights: b'vn' INFO lib389:acl_test.py:133 Bind as cn=Directory Manager
Passed suites/acl/acl_test.py::test_rdn_write_get_ger 0.01
------------------------------ Captured log setup ------------------------------
INFO lib389:acl_test.py:1061 ######## Add entry tuser ########------------------------------ Captured log call -------------------------------
INFO lib389:acl_test.py:1085 ######## GER rights for anonymous ######## INFO lib389:acl_test.py:1095 dn: dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: cn=Directory Administrators,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: ou=Groups,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: ou=People,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: ou=Special Users,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: cn=Accounting Managers,ou=Groups,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: cn=HR Managers,ou=Groups,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: cn=QA Managers,ou=Groups,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: cn=PD Managers,ou=Groups,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: cn=replication_managers,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: ou=Services,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: cn=server.example.com:63701,ou=Services,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: cn=server.example.com:63702,ou=Services,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: uid=bind_entry,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: cn=staged user,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: cn=excepts,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: uid=new_account0,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: uid=new_account1,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: uid=new_account2,cn=staged user,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: uid=new_account3,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: uid=new_account4,cn=staged user,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: uid=new_account5,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: uid=new_account6,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: uid=new_account7,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: uid=new_account8,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: uid=new_account9,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: uid=new_account10,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: uid=new_account11,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: uid=new_account12,cn=staged user,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: uid=new_account13,cn=accounts,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: uid=new_account14,cn=staged user,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: uid=new_account15,cn=staged user,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: uid=new_account16,cn=staged user,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: uid=new_account17,cn=staged user,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: uid=new_account18,cn=staged user,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: uid=new_account19,cn=staged user,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v' INFO lib389:acl_test.py:1095 dn: cn=tuser,dc=example,dc=com INFO lib389:acl_test.py:1097 ######## entryLevelRights: b'v'
Passed suites/acl/acl_test.py::test_rdn_write_modrdn_anonymous 0.13
------------------------------ Captured log call -------------------------------
INFO lib389:acl_test.py:1124 dn: INFO lib389:acl_test.py:1126 ######## 'objectClass': [b'top'] INFO lib389:acl_test.py:1126 ######## 'defaultnamingcontext': [b'dc=example,dc=com'] INFO lib389:acl_test.py:1126 ######## 'dataversion': [b'020190529231909'] INFO lib389:acl_test.py:1126 ######## 'netscapemdsuffix': [b'cn=ldap://dc=server,dc=example,dc=com:39001'] INFO lib389:acl_test.py:1131 Exception (expected): INSUFFICIENT_ACCESS INFO lib389:acl_test.py:1138 The entry was not renamed (expected) INFO lib389:acl_test.py:133 Bind as cn=Directory Manager
Passed suites/acl/deladd_test.py::test_allow_delete_access_to_groupdn 0.06
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/acl/deladd_test.py::test_allow_add_access_to_anyone 0.05
No log output captured.
Passed suites/acl/deladd_test.py::test_allow_delete_access_to_anyone 0.05
No log output captured.
Passed suites/acl/deladd_test.py::test_allow_delete_access_not_to_userdn 0.06
No log output captured.
Passed suites/acl/deladd_test.py::test_allow_delete_access_not_to_group 0.05
No log output captured.
Passed suites/acl/deladd_test.py::test_allow_add_access_to_parent 0.05
No log output captured.
Passed suites/acl/deladd_test.py::test_allow_delete_access_to_parent 0.05
No log output captured.
Passed suites/acl/deladd_test.py::test_allow_delete_access_to_dynamic_group 0.05
No log output captured.
Passed suites/acl/deladd_test.py::test_allow_delete_access_to_dynamic_group_uid 0.05
No log output captured.
Passed suites/acl/deladd_test.py::test_allow_delete_access_not_to_dynamic_group 0.05
No log output captured.
Passed suites/acl/enhanced_aci_modrnd_test.py::test_enhanced_aci_modrnd 0.05
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. INFO tests.suites.acl.enhanced_aci_modrnd_test:enhanced_aci_modrnd_test.py:32 Add a container: ou=test_ou_1,dc=example,dc=com INFO tests.suites.acl.enhanced_aci_modrnd_test:enhanced_aci_modrnd_test.py:39 Add a container: ou=test_ou_2,dc=example,dc=com INFO tests.suites.acl.enhanced_aci_modrnd_test:enhanced_aci_modrnd_test.py:46 Add a user: cn=test_user,ou=test_ou_1,dc=example,dc=com INFO tests.suites.acl.enhanced_aci_modrnd_test:enhanced_aci_modrnd_test.py:61 Add an ACI 'allow (all)' by cn=test_user,ou=test_ou_1,dc=example,dc=com to the ou=test_ou_1,dc=example,dc=com INFO tests.suites.acl.enhanced_aci_modrnd_test:enhanced_aci_modrnd_test.py:65 Add an ACI 'allow (all)' by cn=test_user,ou=test_ou_1,dc=example,dc=com to the ou=test_ou_2,dc=example,dc=com------------------------------ Captured log call -------------------------------
INFO tests.suites.acl.enhanced_aci_modrnd_test:enhanced_aci_modrnd_test.py:95 Bind as cn=test_user,ou=test_ou_1,dc=example,dc=com INFO tests.suites.acl.enhanced_aci_modrnd_test:enhanced_aci_modrnd_test.py:100 User MODRDN operation from ou=test_ou_1,dc=example,dc=com to ou=test_ou_2,dc=example,dc=com INFO tests.suites.acl.enhanced_aci_modrnd_test:enhanced_aci_modrnd_test.py:105 Check there is no user in ou=test_ou_1,dc=example,dc=com INFO tests.suites.acl.enhanced_aci_modrnd_test:enhanced_aci_modrnd_test.py:111 Check there is our user in ou=test_ou_2,dc=example,dc=com
Passed suites/acl/globalgroup_part2_test.py::test_undefined_in_group_eval_five 0.05
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/acl/globalgroup_part2_test.py::test_undefined_in_group_eval_six 0.05
No log output captured.
Passed suites/acl/globalgroup_part2_test.py::test_undefined_in_group_eval_seven 0.05
No log output captured.
Passed suites/acl/globalgroup_part2_test.py::test_undefined_in_group_eval_eight 0.05
No log output captured.
Passed suites/acl/globalgroup_part2_test.py::test_undefined_in_group_eval_nine 0.05
No log output captured.
Passed suites/acl/globalgroup_part2_test.py::test_undefined_in_group_eval_ten 0.05
No log output captured.
Passed suites/acl/globalgroup_part2_test.py::test_undefined_in_group_eval_eleven 0.05
No log output captured.
Passed suites/acl/globalgroup_part2_test.py::test_undefined_in_group_eval_twelve 0.05
No log output captured.
Passed suites/acl/globalgroup_part2_test.py::test_undefined_in_group_eval_fourteen 0.06
No log output captured.
Passed suites/acl/globalgroup_part2_test.py::test_undefined_in_group_eval_fifteen 0.05
No log output captured.
Passed suites/acl/globalgroup_part2_test.py::test_undefined_in_group_eval_sixteen 0.05
No log output captured.
Passed suites/acl/globalgroup_part2_test.py::test_undefined_in_group_eval_seventeen 0.05
No log output captured.
Passed suites/acl/globalgroup_part2_test.py::test_undefined_in_group_eval_eighteen 0.05
No log output captured.
Passed suites/acl/globalgroup_test.py::test_caching_changes 0.05
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/acl/globalgroup_test.py::test_deny_group_member_all_rights_to_user 0.05
No log output captured.
Passed suites/acl/globalgroup_test.py::test_deny_group_member_all_rights_to_group_members 0.05
No log output captured.
Passed suites/acl/globalgroup_test.py::test_deeply_nested_groups_aci_denial 0.05
No log output captured.
Passed suites/acl/globalgroup_test.py::test_deeply_nested_groups_aci_denial_two 0.05
No log output captured.
Passed suites/acl/globalgroup_test.py::test_deeply_nested_groups_aci_allow 0.04
No log output captured.
Passed suites/acl/globalgroup_test.py::test_deeply_nested_groups_aci_allow_two 0.04
No log output captured.
Passed suites/acl/globalgroup_test.py::test_undefined_in_group_eval 0.04
No log output captured.
Passed suites/acl/globalgroup_test.py::test_undefined_in_group_eval_two 0.04
No log output captured.
Passed suites/acl/globalgroup_test.py::test_undefined_in_group_eval_three 0.04
No log output captured.
Passed suites/acl/globalgroup_test.py::test_undefined_in_group_eval_four 0.05
No log output captured.
Passed suites/acl/keywords_part2_test.py::test_access_from_certain_network_only_ip 4.10
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/acl/keywords_part2_test.py::test_connectin_from_an_unauthorized_network 0.19
No log output captured.
Passed suites/acl/keywords_part2_test.py::test_ip_keyword_test_noip_cannot 0.12
No log output captured.
Passed suites/acl/keywords_part2_test.py::test_user_can_access_the_data_at_any_time 0.06
No log output captured.
Passed suites/acl/keywords_part2_test.py::test_user_can_access_the_data_only_in_the_morning 0.07
No log output captured.
Passed suites/acl/keywords_part2_test.py::test_user_can_access_the_data_only_in_the_afternoon 0.05
No log output captured.
Passed suites/acl/keywords_part2_test.py::test_timeofday_keyword 1.11
No log output captured.
Passed suites/acl/keywords_part2_test.py::test_dayofweek_keyword_test_everyday_can_access 0.05
No log output captured.
Passed suites/acl/keywords_part2_test.py::test_dayofweek_keyword_today_can_access 0.05
No log output captured.
Passed suites/acl/keywords_part2_test.py::test_user_cannot_access_the_data_at_all 0.06
No log output captured.
Passed suites/acl/keywords_test.py::test_user_binds_with_a_password_and_can_access_the_data 0.05
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/acl/keywords_test.py::test_user_binds_with_a_bad_password_and_cannot_access_the_data 0.01
No log output captured.
Passed suites/acl/keywords_test.py::test_anonymous_user_cannot_access_the_data 0.02
No log output captured.
Passed suites/acl/keywords_test.py::test_authenticated_but_has_no_rigth_on_the_data 0.05
No log output captured.
Passed suites/acl/keywords_test.py::test_the_bind_client_is_accessing_the_directory 0.04
No log output captured.
Passed suites/acl/keywords_test.py::test_users_binds_with_a_password_and_can_access_the_data 0.04
No log output captured.
Passed suites/acl/keywords_test.py::test_user_binds_without_any_password_and_cannot_access_the_data 0.02
No log output captured.
Passed suites/acl/keywords_test.py::test_user_can_access_the_data_when_connecting_from_any_machine 0.04
No log output captured.
Passed suites/acl/keywords_test.py::test_user_can_access_the_data_when_connecting_from_internal_ds_network_only 0.04
No log output captured.
Passed suites/acl/keywords_test.py::test_user_can_access_the_data_when_connecting_from_some_network_only 0.04
No log output captured.
Passed suites/acl/keywords_test.py::test_from_an_unauthorized_network 0.14
No log output captured.
Passed suites/acl/keywords_test.py::test_user_cannot_access_the_data_when_connecting_from_an_unauthorized_network_2 0.37
No log output captured.
Passed suites/acl/keywords_test.py::test_user_cannot_access_the_data_if_not_from_a_certain_domain 0.05
No log output captured.
Passed suites/acl/keywords_test.py::test_dnsalias_keyword_test_nodns_cannot 0.38
No log output captured.
Passed suites/acl/keywords_test.py::test_user_can_access_the_data_when_connecting_from_any_machine_2 0.04
No log output captured.
Passed suites/acl/misc_test.py::test_accept_aci_in_addition_to_acl 0.11
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/acl/misc_test.py::test_more_then_40_acl_will_crash_slapd 0.24
------------------------------ Captured log setup ------------------------------
INFO lib389:misc_test.py:65 Exception (expected): ALREADY_EXISTS
Passed suites/acl/misc_test.py::test_search_access_should_not_include_read_access 0.01
------------------------------ Captured log setup ------------------------------
INFO lib389:misc_test.py:65 Exception (expected): ALREADY_EXISTS
Passed suites/acl/misc_test.py::test_only_allow_some_targetattr 0.05
------------------------------ Captured log setup ------------------------------
INFO lib389:misc_test.py:65 Exception (expected): ALREADY_EXISTS
Passed suites/acl/misc_test.py::test_only_allow_some_targetattr_two 0.32
------------------------------ Captured log setup ------------------------------
INFO lib389:misc_test.py:65 Exception (expected): ALREADY_EXISTS
Passed suites/acl/misc_test.py::test_memberurl_needs_to_be_normalized 0.14
------------------------------ Captured log setup ------------------------------
INFO lib389:misc_test.py:65 Exception (expected): ALREADY_EXISTS
Passed suites/acl/misc_test.py::test_greater_than_200_acls_can_be_created 3.10
------------------------------ Captured log setup ------------------------------
INFO lib389:misc_test.py:65 Exception (expected): ALREADY_EXISTS
Passed suites/acl/misc_test.py::test_server_bahaves_properly_with_very_long_attribute_names 0.06
------------------------------ Captured log setup ------------------------------
INFO lib389:misc_test.py:65 Exception (expected): ALREADY_EXISTS
Passed suites/acl/misc_test.py::test_do_bind_as_201_distinct_users 14.55
------------------------------ Captured log setup ------------------------------
INFO lib389:misc_test.py:65 Exception (expected): ALREADY_EXISTS
Passed suites/acl/modify_test.py::test_allow_write_access_to_targetattr_with_a_single_attribute 0.07
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/acl/modify_test.py::test_allow_write_access_to_targetattr_with_multiple_attibutes 0.06
No log output captured.
Passed suites/acl/modify_test.py::test_allow_write_access_to_userdn_all 0.14
No log output captured.
Passed suites/acl/modify_test.py::test_allow_write_access_to_userdn_with_wildcards_in_dn 0.08
No log output captured.
Passed suites/acl/modify_test.py::test_allow_write_access_to_userdn_with_multiple_dns 0.19
No log output captured.
Passed suites/acl/modify_test.py::test_allow_write_access_to_target_with_wildcards 0.19
No log output captured.
Passed suites/acl/modify_test.py::test_allow_write_access_to_userdnattr 0.38
No log output captured.
Passed suites/acl/modify_test.py::test_allow_selfwrite_access_to_anyone 0.10
No log output captured.
Passed suites/acl/modify_test.py::test_uniquemember_should_also_be_the_owner 0.20
No log output captured.
Passed suites/acl/modify_test.py::test_aci_with_both_allow_and_deny 0.16
No log output captured.
Passed suites/acl/modify_test.py::test_allow_owner_to_modify_entry 0.12
No log output captured.
Passed suites/acl/modrdn_test.py::test_allow_write_privilege_to_anyone 0.03
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/acl/modrdn_test.py::test_allow_write_privilege_to_dynamic_group_with_scope_set_to_base_in_ldap_url 0.05
No log output captured.
Passed suites/acl/modrdn_test.py::test_write_access_to_naming_atributes 0.05
No log output captured.
Passed suites/acl/modrdn_test.py::test_write_access_to_naming_atributes_two 0.08
No log output captured.
Passed suites/acl/modrdn_test.py::test_access_aci_list_contains_any_deny_rule 0.13
No log output captured.
Passed suites/acl/modrdn_test.py::test_renaming_target_entry 0.12
No log output captured.
Passed suites/acl/repeated_ldap_add_test.py::test_repeated_ldap_add 33.28
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.----------------------------- Captured stdout call -----------------------------
uid=buser123,ou=BOU,dc=example,dc=com inactivated. ------------------------------ Captured log call -------------------------------
INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:184 Testing Bug 1347760 - Information disclosure via repeated use of LDAP ADD operation, etc. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:186 Disabling accesslog logbuffering INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:189 Bind as {cn=Directory Manager,password} INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:192 Adding ou=BOU a bind user belongs to. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:197 Adding a bind user. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:204 Adding a test user. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:211 Deleting aci in dc=example,dc=com. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:214 While binding as DM, acquire an access log path and instance dir INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:220 Bind case 1. the bind user has no rights to read the entry itself, bind should be successful. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:221 Bind as {uid=buser123,ou=BOU,dc=example,dc=com,buser123} who has no access rights. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:229 Access log path: /var/log/dirsrv/slapd-standalone1/access INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:232 Bind case 2-1. the bind user does not exist, bind should fail with error INVALID_CREDENTIALS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:233 Bind as {uid=bogus,dc=example,dc=com,bogus} who does not exist. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:237 Exception (expected): INVALID_CREDENTIALS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:238 Desc Invalid credentials INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:246 Cause found - [29/May/2019:19:21:19.681878951 -0400] conn=1 op=10 RESULT err=49 tag=97 nentries=0 etime=0.0003833955 - No such entry INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:250 Bind case 2-2. the bind user's suffix does not exist, bind should fail with error INVALID_CREDENTIALS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:251 Bind as {uid=bogus,ou=people,dc=bogus,bogus} who does not exist. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:260 Cause found - [29/May/2019:19:21:20.690686538 -0400] conn=1 op=11 RESULT err=49 tag=97 nentries=0 etime=0.0003329637 - No suffix for bind dn found INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:264 Bind case 2-3. the bind user's password is wrong, bind should fail with error INVALID_CREDENTIALS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:265 Bind as {uid=buser123,ou=BOU,dc=example,dc=com,bogus} who does not exist. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:269 Exception (expected): INVALID_CREDENTIALS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:270 Desc Invalid credentials INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:278 Cause found - [29/May/2019:19:21:21.726531532 -0400] conn=1 op=12 RESULT err=49 tag=97 nentries=0 etime=0.0032448421 - Invalid credentials INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:281 Adding aci for uid=buser123,ou=BOU,dc=example,dc=com to ou=BOU,dc=example,dc=com. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:283 aci: (targetattr="*")(version 3.0; acl "buser123"; allow(all) userdn = "ldap:///uid=buser123,ou=BOU,dc=example,dc=com";) INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:284 Bind as {cn=Directory Manager,password} INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:289 Bind case 3. the bind user has the right to read the entry itself, bind should be successful. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:290 Bind as {uid=buser123,ou=BOU,dc=example,dc=com,buser123} which should be ok. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:293 The following operations are against the subtree the bind user uid=buser123,ou=BOU,dc=example,dc=com has no rights. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:298 Search case 1. the bind user has no rights to read the search entry, it should return no search results with <class 'ldap.SUCCESS'> INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:108 Searching existing entry uid=tuser0,ou=people,dc=example,dc=com, which should be ok. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:141 Search should return none INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:148 PASSED INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:304 Search case 2-1. the search entry does not exist, the search should return no search results with SUCCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:108 Searching non-existing entry uid=bogus,dc=example,dc=com, which should be ok. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:141 Search should return none INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:148 PASSED INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:310 Search case 2-2. the search entry does not exist, the search should return no search results with SUCCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:108 Searching non-existing entry uid=bogus,ou=people,dc=example,dc=com, which should be ok. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:141 Search should return none INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:148 PASSED INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:317 Add case 1. the bind user has no rights AND the adding entry exists, it should fail with INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:108 Adding existing entry uid=tuser0,ou=people,dc=example,dc=com, which should fail with INSUFFICIENT_ACCESS. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:131 Exception (expected): INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:132 Desc Insufficient access INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:148 PASSED INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:323 Add case 2-1. the bind user has no rights AND the adding entry does not exist, it should fail with INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:108 Adding non-existing entry uid=bogus,dc=example,dc=com, which should fail with INSUFFICIENT_ACCESS. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:131 Exception (expected): INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:132 Desc Insufficient access INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:148 PASSED INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:329 Add case 2-2. the bind user has no rights AND the adding entry does not exist, it should fail with INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:108 Adding non-existing entry uid=bogus,ou=people,dc=example,dc=com, which should fail with INSUFFICIENT_ACCESS. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:131 Exception (expected): INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:132 Desc Insufficient access INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:148 PASSED INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:336 Modify case 1. the bind user has no rights AND the modifying entry exists, it should fail with INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:108 Modifying existing entry uid=tuser0,ou=people,dc=example,dc=com, which should fail with INSUFFICIENT_ACCESS. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:131 Exception (expected): INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:132 Desc Insufficient access INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:148 PASSED INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:342 Modify case 2-1. the bind user has no rights AND the modifying entry does not exist, it should fail with INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:108 Modifying non-existing entry uid=bogus,dc=example,dc=com, which should fail with INSUFFICIENT_ACCESS. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:131 Exception (expected): INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:132 Desc Insufficient access INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:148 PASSED INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:348 Modify case 2-2. the bind user has no rights AND the modifying entry does not exist, it should fail with INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:108 Modifying non-existing entry uid=bogus,ou=people,dc=example,dc=com, which should fail with INSUFFICIENT_ACCESS. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:131 Exception (expected): INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:132 Desc Insufficient access INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:148 PASSED INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:355 Modrdn case 1. the bind user has no rights AND the renaming entry exists, it should fail with INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:108 Renaming existing entry uid=tuser0,ou=people,dc=example,dc=com, which should fail with INSUFFICIENT_ACCESS. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:131 Exception (expected): INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:132 Desc Insufficient access INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:148 PASSED INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:361 Modrdn case 2-1. the bind user has no rights AND the renaming entry does not exist, it should fail with INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:108 Renaming non-existing entry uid=bogus,dc=example,dc=com, which should fail with INSUFFICIENT_ACCESS. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:131 Exception (expected): INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:132 Desc Insufficient access INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:148 PASSED INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:367 Modrdn case 2-2. the bind user has no rights AND the renaming entry does not exist, it should fail with INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:108 Renaming non-existing entry uid=bogus,ou=people,dc=example,dc=com, which should fail with INSUFFICIENT_ACCESS. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:131 Exception (expected): INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:132 Desc Insufficient access INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:148 PASSED INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:373 Modrdn case 3. the bind user has no rights AND the node moving an entry to exists, it should fail with INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:108 Moving to existing superior ou=groups,dc=example,dc=com, which should fail with INSUFFICIENT_ACCESS. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:131 Exception (expected): INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:132 Desc Insufficient access INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:148 PASSED INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:379 Modrdn case 4-1. the bind user has no rights AND the node moving an entry to does not, it should fail with INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:108 Moving to non-existing superior ou=OU,dc=example,dc=com, which should fail with INSUFFICIENT_ACCESS. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:131 Exception (expected): INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:132 Desc Insufficient access INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:148 PASSED INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:385 Modrdn case 4-2. the bind user has no rights AND the node moving an entry to does not, it should fail with INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:108 Moving to non-existing superior ou=OU,dc=example,dc=com, which should fail with INSUFFICIENT_ACCESS. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:131 Exception (expected): INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:132 Desc Insufficient access INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:148 PASSED INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:392 Delete case 1. the bind user has no rights AND the deleting entry exists, it should fail with INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:108 Deleting existing entry uid=tuser0,ou=people,dc=example,dc=com, which should fail with INSUFFICIENT_ACCESS. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:131 Exception (expected): INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:132 Desc Insufficient access INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:148 PASSED INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:398 Delete case 2-1. the bind user has no rights AND the deleting entry does not exist, it should fail with INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:108 Deleting non-existing entry uid=bogus,dc=example,dc=com, which should fail with INSUFFICIENT_ACCESS. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:131 Exception (expected): INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:132 Desc Insufficient access INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:148 PASSED INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:404 Delete case 2-2. the bind user has no rights AND the deleting entry does not exist, it should fail with INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:108 Deleting non-existing entry uid=bogus,ou=people,dc=example,dc=com, which should fail with INSUFFICIENT_ACCESS. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:131 Exception (expected): INSUFFICIENT_ACCESS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:132 Desc Insufficient access INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:148 PASSED INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:407 EXTRA: Check no regressions INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:408 Adding aci for uid=buser123,ou=BOU,dc=example,dc=com to dc=example,dc=com. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:410 Bind as {cn=Directory Manager,password} INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:415 Bind as {uid=buser123,ou=BOU,dc=example,dc=com,buser123}. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:425 Search case. the search entry does not exist, the search should fail with NO_SUCH_OBJECT INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:108 Searching non-existing entry uid=bogus,ou=people,dc=example,dc=com, which should fail with NO_SUCH_OBJECT. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:131 Exception (expected): NO_SUCH_OBJECT INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:132 Desc No such object INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:148 PASSED INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:431 Add case. the adding entry already exists, it should fail with ALREADY_EXISTS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:108 Adding existing entry uid=tuser0,ou=people,dc=example,dc=com, which should fail with ALREADY_EXISTS. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:131 Exception (expected): ALREADY_EXISTS INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:132 Desc Already exists INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:148 PASSED INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:436 Modify case. the modifying entry does not exist, it should fail with NO_SUCH_OBJECT INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:108 Modifying non-existing entry uid=bogus,dc=example,dc=com, which should fail with NO_SUCH_OBJECT. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:131 Exception (expected): NO_SUCH_OBJECT INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:132 Desc No such object INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:148 PASSED INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:441 Modrdn case 1. the renaming entry does not exist, it should fail with NO_SUCH_OBJECT INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:108 Renaming non-existing entry uid=bogus,dc=example,dc=com, which should fail with NO_SUCH_OBJECT. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:131 Exception (expected): NO_SUCH_OBJECT INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:132 Desc No such object INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:148 PASSED INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:446 Modrdn case 2. the node moving an entry to does not, it should fail with NO_SUCH_OBJECT INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:108 Moving to non-existing superior ou=OU,dc=example,dc=com, which should fail with NO_SUCH_OBJECT. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:131 Exception (expected): NO_SUCH_OBJECT INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:132 Desc No such object INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:148 PASSED INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:451 Delete case. the deleting entry does not exist, it should fail with NO_SUCH_OBJECT INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:108 Deleting non-existing entry uid=bogus,dc=example,dc=com, which should fail with NO_SUCH_OBJECT. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:131 Exception (expected): NO_SUCH_OBJECT INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:132 Desc No such object INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:148 PASSED INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:454 Inactivate uid=buser123,ou=BOU,dc=example,dc=com INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:461 ['/usr/sbin/ns-inactivate.pl', '-Z', 'standalone1', '-D', 'cn=Directory Manager', '-w', 'password', '-I', 'uid=buser123,ou=BOU,dc=example,dc=com'] INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:465 Bind as {uid=buser123,ou=BOU,dc=example,dc=com,buser123} which should fail with UNWILLING_TO_PERFORM. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:469 Exception (expected): UNWILLING_TO_PERFORM INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:470 Desc Server is unwilling to perform INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:473 Bind as {uid=buser123,ou=BOU,dc=example,dc=com,bogus} which should fail with UNWILLING_TO_PERFORM. INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:477 Exception (expected): UNWILLING_TO_PERFORM INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:478 Desc Server is unwilling to perform INFO tests.suites.acl.repeated_ldap_add_test:repeated_ldap_add_test.py:481 SUCCESS
Passed suites/acl/roledn_test.py::test_mod_seealso_positive[(STEVE_ROLE, NESTED_ROLE_TESTER)] 0.05
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/acl/roledn_test.py::test_mod_seealso_positive[(HARRY_ROLE, NESTED_ROLE_TESTER)] 0.04
No log output captured.
Passed suites/acl/roledn_test.py::test_mod_seealso_positive[(MARY_ROLE, NOT_RULE_ACCESS)] 0.04
No log output captured.
Passed suites/acl/roledn_test.py::test_mod_seealso_positive[(STEVE_ROLE, OR_RULE_ACCESS)] 0.04
No log output captured.
Passed suites/acl/roledn_test.py::test_mod_seealso_positive[(HARRY_ROLE, OR_RULE_ACCESS)] 0.04
No log output captured.
Passed suites/acl/roledn_test.py::test_mod_seealso_positive[(STEVE_ROLE, ALL_ACCESS)] 0.04
No log output captured.
Passed suites/acl/roledn_test.py::test_mod_seealso_positive[(HARRY_ROLE, ALL_ACCESS)] 0.04
No log output captured.
Passed suites/acl/roledn_test.py::test_mod_seealso_positive[(MARY_ROLE, ALL_ACCESS)] 0.04
No log output captured.
Passed suites/acl/roledn_test.py::test_mod_seealso_negative[(MARY_ROLE, NESTED_ROLE_TESTER)] 0.05
No log output captured.
Passed suites/acl/roledn_test.py::test_mod_seealso_negative[(STEVE_ROLE, NOT_RULE_ACCESS)] 0.04
No log output captured.
Passed suites/acl/roledn_test.py::test_mod_seealso_negative[(HARRY_ROLE, NOT_RULE_ACCESS)] 0.04
No log output captured.
Passed suites/acl/roledn_test.py::test_mod_seealso_negative[(MARY_ROLE , OR_RULE_ACCESS)] 0.04
No log output captured.
Passed suites/acl/roledn_test.py::test_mod_anonseealso_positive[NOT_RULE_ACCESS] 0.01
No log output captured.
Passed suites/acl/roledn_test.py::test_mod_anonseealso_positive[ALL_ACCESS] 0.01
No log output captured.
Passed suites/acl/roledn_test.py::test_mod_anonseealso_negaive[NESTED_ROLE_TESTER] 0.01
No log output captured.
Passed suites/acl/roledn_test.py::test_mod_anonseealso_negaive[OR_RULE_ACCESS] 0.01
No log output captured.
Passed suites/acl/search_real_part2_test.py::test_deny_all_access_with__target_set_on_non_leaf 0.84
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/acl/search_real_part2_test.py::test_deny_all_access_with__target_set_on_wildcard_non_leaf 0.80
No log output captured.
Passed suites/acl/search_real_part2_test.py::test_deny_all_access_with__target_set_on_wildcard_leaf 0.79
No log output captured.
Passed suites/acl/search_real_part2_test.py::test_deny_all_access_with_targetfilter_using_equality_search 0.66
No log output captured.
Passed suites/acl/search_real_part2_test.py::test_deny_all_access_with_targetfilter_using_equality_search_two 0.92
No log output captured.
Passed suites/acl/search_real_part2_test.py::test_deny_all_access_with_targetfilter_using_substring_search 0.64
No log output captured.
Passed suites/acl/search_real_part2_test.py::test_deny_all_access_with_targetfilter_using_substring_search_two 0.93
No log output captured.
Passed suites/acl/search_real_part2_test.py::test_deny_all_access_with_targetfilter_using_boolean_or_of_two_equality_search 0.20
No log output captured.
Passed suites/acl/search_real_part2_test.py::test_deny_all_access_to__userdn_two 0.75
No log output captured.
Passed suites/acl/search_real_part2_test.py::test_deny_all_access_with_userdn 0.78
No log output captured.
Passed suites/acl/search_real_part2_test.py::test_deny_all_access_with_targetfilter_using_presence_search 0.10
No log output captured.
Passed suites/acl/search_real_part3_test.py::test_deny_search_access_to_userdn_with_ldap_url 1.13
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/acl/search_real_part3_test.py::test_deny_search_access_to_userdn_with_ldap_url_two 0.60
No log output captured.
Passed suites/acl/search_real_part3_test.py::test_deny_search_access_to_userdn_with_ldap_url_matching_all_users 0.93
No log output captured.
Passed suites/acl/search_real_part3_test.py::test_deny_read_access_to_a_dynamic_group 0.54
No log output captured.
Passed suites/acl/search_real_part3_test.py::test_deny_read_access_to_dynamic_group_with_host_port_set_on_ldap_url 0.45
No log output captured.
Passed suites/acl/search_real_part3_test.py::test_deny_read_access_to_dynamic_group_with_scope_set_to_one_in_ldap_url 0.48
No log output captured.
Passed suites/acl/search_real_part3_test.py::test_deny_read_access_to_dynamic_group_two 0.73
No log output captured.
Passed suites/acl/search_real_part3_test.py::test_deny_access_to_group_should_deny_access_to_all_uniquemember 0.71
No log output captured.
Passed suites/acl/search_real_part3_test.py::test_entry_with_lots_100_attributes 7.65
No log output captured.
Passed suites/acl/search_real_part3_test.py::test_groupdnattr_value_is_another_group 0.12
No log output captured.
Passed suites/acl/search_real_test.py::test_deny_all_access_with_target_set 0.72
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/acl/search_real_test.py::test_deny_all_access_to_a_target_with_wild_card 0.70
No log output captured.
Passed suites/acl/search_real_test.py::test_deny_all_access_without_a_target_set 0.90
No log output captured.
Passed suites/acl/search_real_test.py::test_deny_read_search_and_compare_access_with_target_and_targetattr_set 0.72
No log output captured.
Passed suites/acl/search_real_test.py::test_deny_read_access_to_multiple_groupdns 0.86
No log output captured.
Passed suites/acl/search_real_test.py::test_deny_all_access_to_userdnattr 0.65
No log output captured.
Passed suites/acl/search_real_test.py::test_deny_all_access_with__target_set 0.92
No log output captured.
Passed suites/acl/search_real_test.py::test_deny_all_access_with__targetattr_set 1.26
No log output captured.
Passed suites/acl/search_real_test.py::test_deny_all_access_with_targetattr_set 0.67
No log output captured.
Passed suites/acl/selfdn_permissions_test.py::test_selfdn_permission_add 0.48
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. INFO lib389:selfdn_permissions_test.py:58 Add OCticket47653 that allows 'member' attribute INFO lib389:selfdn_permissions_test.py:63 Add cn=bind_entry, dc=example,dc=com------------------------------ Captured log call -------------------------------
INFO lib389:selfdn_permissions_test.py:106 ######################### ADD ###################### INFO lib389:selfdn_permissions_test.py:109 Bind as cn=bind_entry, dc=example,dc=com INFO lib389:selfdn_permissions_test.py:139 Try to add Add cn=test_entry, dc=example,dc=com (aci is missing): dn: cn=test_entry, dc=example,dc=com cn: test_entry member: cn=bind_entry, dc=example,dc=com objectclass: top objectclass: person objectclass: OCticket47653 postalAddress: here postalCode: 1234 sn: test_entry INFO lib389:selfdn_permissions_test.py:143 Exception (expected): INSUFFICIENT_ACCESS INFO lib389:selfdn_permissions_test.py:147 Bind as cn=Directory Manager and add the ADD SELFDN aci INFO lib389:selfdn_permissions_test.py:159 Bind as cn=bind_entry, dc=example,dc=com INFO lib389:selfdn_permissions_test.py:164 Try to add Add cn=test_entry, dc=example,dc=com (member is missing) INFO lib389:selfdn_permissions_test.py:172 Exception (expected): INSUFFICIENT_ACCESS INFO lib389:selfdn_permissions_test.py:178 Try to add Add cn=test_entry, dc=example,dc=com (with several member values) INFO lib389:selfdn_permissions_test.py:181 Exception (expected): INSUFFICIENT_ACCESS INFO lib389:selfdn_permissions_test.py:184 Try to add Add cn=test_entry, dc=example,dc=com should be successful
Passed suites/acl/selfdn_permissions_test.py::test_selfdn_permission_search 0.36
------------------------------ Captured log call -------------------------------
INFO lib389:selfdn_permissions_test.py:205 ######################### SEARCH ###################### INFO lib389:selfdn_permissions_test.py:207 Bind as cn=bind_entry, dc=example,dc=com INFO lib389:selfdn_permissions_test.py:211 Try to search cn=test_entry, dc=example,dc=com (aci is missing) INFO lib389:selfdn_permissions_test.py:216 Bind as cn=Directory Manager and add the READ/SEARCH SELFDN aci INFO lib389:selfdn_permissions_test.py:229 Bind as cn=bind_entry, dc=example,dc=com INFO lib389:selfdn_permissions_test.py:233 Try to search cn=test_entry, dc=example,dc=com should be successful
Passed suites/acl/selfdn_permissions_test.py::test_selfdn_permission_modify 0.58
------------------------------ Captured log call -------------------------------
INFO lib389:selfdn_permissions_test.py:256 Bind as cn=bind_entry, dc=example,dc=com INFO lib389:selfdn_permissions_test.py:259 ######################### MODIFY ###################### INFO lib389:selfdn_permissions_test.py:263 Try to modify cn=test_entry, dc=example,dc=com (aci is missing) INFO lib389:selfdn_permissions_test.py:267 Exception (expected): INSUFFICIENT_ACCESS INFO lib389:selfdn_permissions_test.py:271 Bind as cn=Directory Manager and add the WRITE SELFDN aci INFO lib389:selfdn_permissions_test.py:284 Bind as cn=bind_entry, dc=example,dc=com INFO lib389:selfdn_permissions_test.py:288 Try to modify cn=test_entry, dc=example,dc=com. It should succeeds
Passed suites/acl/selfdn_permissions_test.py::test_selfdn_permission_delete 0.33
------------------------------ Captured log call -------------------------------
INFO lib389:selfdn_permissions_test.py:313 ######################### DELETE ###################### INFO lib389:selfdn_permissions_test.py:316 Bind as cn=bind_entry, dc=example,dc=com INFO lib389:selfdn_permissions_test.py:321 Try to delete cn=test_entry, dc=example,dc=com (aci is missing) INFO lib389:selfdn_permissions_test.py:324 Exception (expected): INSUFFICIENT_ACCESS INFO lib389:selfdn_permissions_test.py:328 Bind as cn=Directory Manager and add the READ/SEARCH SELFDN aci INFO lib389:selfdn_permissions_test.py:340 Bind as cn=bind_entry, dc=example,dc=com INFO lib389:selfdn_permissions_test.py:344 Try to delete cn=test_entry, dc=example,dc=com should be successful
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_targattrfilters_1] 0.02
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_targattrfilters_2] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_targattrfilters_3] 0.02
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_targattrfilters_4] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_targattrfilters_5] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_targattrfilters_6] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_targattrfilters_7] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_targattrfilters_8] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_targattrfilters_9] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_targattrfilters_10] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_targattrfilters_11] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_targattrfilters_12] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_targattrfilters_13] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_targattrfilters_14] 0.02
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_targattrfilters_15] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_targattrfilters_16] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_targattrfilters_17] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_targattrfilters_19] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_targattrfilters_21] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_targattrfilters_22] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_targattrfilters_23] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_Missing_acl_mispel] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_Missing_acl_string] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_Wrong_version_string] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_Missing_version_string] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_Authenticate_statement] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_Multiple_targets] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_Target_set_to_self] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_target_set_with_ldap_instead_of_ldap] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_target_set_with_more_than_three] 0.02
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_target_set_with_less_than_three] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_bind_rule_set_with_less_than_three] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_Use_semicolon_instead_of_comma_in_permission] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_Use_double_equal_instead_of_equal_in_the_target] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_use_double_equal_instead_of_equal_in_user_and_group_access] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_donot_cote_the_name_of_the_aci] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_extra_parentheses_case_1] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_extra_parentheses_case_2] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_extra_parentheses_case_3] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_no_semicolon_at_the_end_of_the_aci] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_a_character_different_of_a_semicolon_at_the_end_of_the_aci] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_bad_filter] 0.02
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_Use_double_equal_instead_of_equal_in_the_targattrfilters] 0.02
No log output captured.
Passed suites/acl/syntax_test.py::test_aci_invalid_syntax[test_Use_double_equal_instead_of_equal_inside_the_targattrfilters] 0.01
No log output captured.
Passed suites/acl/syntax_test.py::test_target_set_above_the_entry_test 0.01
No log output captured.
Passed suites/acl/userattr_test.py::test_mod_see_also_positive[(CAN,ROLEDNACCESS)] 0.04
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/acl/userattr_test.py::test_mod_see_also_positive[(CAN,USERDNACCESS)] 0.04
No log output captured.
Passed suites/acl/userattr_test.py::test_mod_see_also_positive[(CAN,GROUPDNACCESS)] 0.04
No log output captured.
Passed suites/acl/userattr_test.py::test_mod_see_also_positive[(CAN,LDAPURLACCESS)] 0.04
No log output captured.
Passed suites/acl/userattr_test.py::test_mod_see_also_positive[(CAN,ATTRNAMEACCESS)] 0.04
No log output captured.
Passed suites/acl/userattr_test.py::test_mod_see_also_positive[(LEVEL_0, OU_2)] 0.04
No log output captured.
Passed suites/acl/userattr_test.py::test_mod_see_also_positive[(LEVEL_1,ANCESTORS)] 0.04
No log output captured.
Passed suites/acl/userattr_test.py::test_mod_see_also_positive[(LEVEL_2,GRANDPARENTS)] 0.04
No log output captured.
Passed suites/acl/userattr_test.py::test_mod_see_also_positive[(LEVEL_4,OU_2)] 0.04
No log output captured.
Passed suites/acl/userattr_test.py::test_mod_see_also_positive[(LEVEL_4, ANCESTORS)] 0.04
No log output captured.
Passed suites/acl/userattr_test.py::test_mod_see_also_positive[(LEVEL_4,GRANDPARENTS)] 0.04
No log output captured.
Passed suites/acl/userattr_test.py::test_mod_see_also_positive[(LEVEL_4,PARENTS)] 0.04
No log output captured.
Passed suites/acl/userattr_test.py::test_mod_see_also_positive[(LEVEL_4,CHILDREN)] 0.06
No log output captured.
Passed suites/acl/userattr_test.py::test_mod_see_also_negative[(CANNOT,ROLEDNACCESS)] 0.04
No log output captured.
Passed suites/acl/userattr_test.py::test_mod_see_also_negative[(CANNOT,USERDNACCESS)] 0.04
No log output captured.
Passed suites/acl/userattr_test.py::test_mod_see_also_negative[(CANNOT,GROUPDNACCESS)] 0.04
No log output captured.
Passed suites/acl/userattr_test.py::test_mod_see_also_negative[(CANNOT,LDAPURLACCESS)] 0.04
No log output captured.
Passed suites/acl/userattr_test.py::test_mod_see_also_negative[(CANNOT,ATTRNAMEACCESS)] 0.05
No log output captured.
Passed suites/acl/userattr_test.py::test_mod_see_also_negative[(LEVEL_0, ANCESTORS)] 0.04
No log output captured.
Passed suites/acl/userattr_test.py::test_mod_see_also_negative[(LEVEL_0,GRANDPARENTS)] 0.04
No log output captured.
Passed suites/acl/userattr_test.py::test_mod_see_also_negative[(LEVEL_0,PARENTS)] 0.04
No log output captured.
Passed suites/acl/userattr_test.py::test_mod_see_also_negative[(LEVEL_0,CHILDREN)] 0.04
No log output captured.
Passed suites/acl/userattr_test.py::test_mod_see_also_negative[(LEVEL_2,PARENTS)] 0.04
No log output captured.
Passed suites/acl/userattr_test.py::test_mod_see_also_negative[(LEVEL_4,GRANDSONS)] 0.05
No log output captured.
Passed suites/acl/userattr_test.py::test_last_three[uid=Ananda Borah,ou=Accounting,dc=example,dc=com-uid=USERDNACCESS,ou=Accounting,dc=example,dc=com] 0.04
No log output captured.
Passed suites/acl/userattr_test.py::test_last_three[uid=Ananda Borah,ou=Accounting,dc=example,dc=com-uid=ROLEDNACCESS,ou=Accounting,dc=example,dc=com] 0.05
No log output captured.
Passed suites/acl/userattr_test.py::test_last_three[uid=Ananda Borah,ou=Accounting,dc=example,dc=com-uid=GROUPDNACCESS,ou=Accounting,dc=example,dc=com] 0.05
No log output captured.
Passed suites/acl/valueacl_part2_test.py::test_we_can_search_as_expected 0.01
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/acl/valueacl_part2_test.py::test_we_can_mod_title_as_expected 0.05
No log output captured.
Passed suites/acl/valueacl_part2_test.py::test_modify_with_multiple_filters 0.04
No log output captured.
Passed suites/acl/valueacl_part2_test.py::test_denied_by_multiple_filters 0.06
No log output captured.
Passed suites/acl/valueacl_part2_test.py::test_allowed_add_one_attribute 0.04
No log output captured.
Passed suites/acl/valueacl_part2_test.py::test_cannot_add_an_entry_with_attribute_values_we_are_not_allowed_add 0.06
No log output captured.
Passed suites/acl/valueacl_part2_test.py::test_on_modrdn 0.04
No log output captured.
Passed suites/acl/valueacl_part2_test.py::test_on_modrdn_allow 0.06
No log output captured.
Passed suites/acl/valueacl_part2_test.py::test_targattrfilters_keyword 1.20
No log output captured.
Passed suites/acl/valueacl_test.py::test_delete_an_attribute_value_we_are_not_allowed_to_delete 0.05
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/acl/valueacl_test.py::test_donot_allow_write_access_to_title_if_value_is_not_architect 0.05
No log output captured.
Passed suites/acl/valueacl_test.py::test_delete_an_attribute_value_we_are_allowed_to_delete 0.04
No log output captured.
Passed suites/acl/valueacl_test.py::test_delete_an_attribute_value_we_are_not_allowed_to_deleted 0.05
No log output captured.
Passed suites/acl/valueacl_test.py::test_allow_modify_replace 0.06
No log output captured.
Passed suites/acl/valueacl_test.py::test_allow_modify_delete 0.09
No log output captured.
Passed suites/acl/valueacl_test.py::test_replace_an_attribute_if_we_lack 0.06
No log output captured.
Passed suites/acl/valueacl_test.py::test_remove_an_attribute_if_we_have_del_rights_to_all_attr_value 0.05
No log output captured.
Passed suites/acl/valueacl_test.py::test_remove_an_attribute_if_we_donot_have_del_rights_to_all_attr_value 0.05
No log output captured.
Passed suites/acl/valueacl_test.py::test_remove_an_attribute_if_we_have_del_rights_to_all_attr_values 0.05
No log output captured.
Passed suites/acl/valueacl_test.py::test_cantnot_delete_an_entry_with_attribute_values_we_are_not_allowed_delete 0.05
No log output captured.
Passed suites/acl/valueacl_test.py::test_we_can_add_and_delete_an_entry_with_attribute_values_we_are_allowed_add_and_delete 0.05
No log output captured.
Passed suites/acl/valueacl_test.py::test_allow_title 0.05
No log output captured.
Passed suites/acl/valueacl_test.py::test_allow_to_modify 0.05
No log output captured.
Passed suites/acl/valueacl_test.py::test_selfwrite_does_not_confer_write_on_a_targattrfilters_atribute 0.05
No log output captured.
Passed suites/acl/valueacl_test.py::test_selfwrite_continues_to_give_rights_to_attr_in_targetattr_list 0.05
No log output captured.
Passed suites/acl/valueacl_test.py::test_add_an_attribute_value_we_are_allowed_to_add_with_ldapanyone 0.05
No log output captured.
Passed suites/acl/valueacl_test.py::test_hierarchy 0.05
No log output captured.
Passed suites/acl/valueacl_test.py::test_targattrfilters_and_search_permissions_and_that_ldapmodify_works_as_expected 0.04
No log output captured.
Passed suites/acl/valueacl_test.py::test_targattrfilters_and_search_permissions_and_that_ldapmodify_works_as_expected_two 0.01
No log output captured.
Passed suites/attr_encryption/attr_encryption_test.py::test_basic 4.67
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:35 Enable TLS for attribute encryption INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:38 Enables attribute encryption INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:42 Enables attribute encryption for employeeNumber and telephoneNumber INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:46 Add a test user with encrypted attributes------------------------------ Captured log call -------------------------------
INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:80 Restart the server INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:86 Extracting values of cn from the list of objects in encrypt_attrs INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:87 And appending the cn values in a list INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:92 Check employeenumber encryption is enabled INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:95 Check telephoneNumber encryption is enabled INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:98 Check that encrypted attribute is present for user i.e. telephonenumber
Passed suites/attr_encryption/attr_encryption_test.py::test_export_import_ciphertext 11.47
----------------------------- Captured stderr call -----------------------------
ldiffile: /var/lib/dirsrv/slapd-standalone1/ldif/export_ciphertext.ldif ------------------------------ Captured log call -------------------------------
INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:125 Export data as ciphertext INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:136 Check that the attribute is present in the exported file INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:137 Check that the encrypted value of attribute is not present in the exported file INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:143 Delete the test user entry with encrypted data INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:146 Import data as ciphertext, which was exported previously INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:157 Check that the data with encrypted attribute is imported properly
Passed suites/attr_encryption/attr_encryption_test.py::test_export_import_plaintext 10.90
----------------------------- Captured stderr call -----------------------------
[29/May/2019:19:24:16.476147601 -0400] - INFO - slapd_extract_cert - CA CERT NAME: Self-Signed-CA [29/May/2019:19:24:16.480672507 -0400] - WARN - Security Initialization - SSL alert: Sending pin request to SVRCore. You may need to run systemd-tty-ask-password-agent to provide the password. [29/May/2019:19:24:16.486997408 -0400] - INFO - slapd_extract_cert - SERVER CERT NAME: Server-Cert ldiffile: /var/lib/dirsrv/slapd-standalone1/ldif/export_plaintext.ldif [29/May/2019:19:24:21.457749209 -0400] - INFO - slapd_extract_cert - CA CERT NAME: Self-Signed-CA [29/May/2019:19:24:21.463033050 -0400] - WARN - Security Initialization - SSL alert: Sending pin request to SVRCore. You may need to run systemd-tty-ask-password-agent to provide the password. [29/May/2019:19:24:21.467612263 -0400] - INFO - slapd_extract_cert - SERVER CERT NAME: Server-Cert ------------------------------ Captured log call -------------------------------
INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:186 Export data as plain text INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:197 Check that the attribute is present in the exported file INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:198 Check that the plain text value of the encrypted attribute is present in the exported file INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:202 Delete the test user entry with encrypted data INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:205 Import data as plain text, which was exported previously INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:216 Check that the attribute is imported properly
Passed suites/attr_encryption/attr_encryption_test.py::test_attr_encryption_unindexed 4.89
----------------------------- Captured stderr call -----------------------------
ldiffile: /var/lib/dirsrv/slapd-standalone1/ldif/emp_num_ciphertext.ldif ------------------------------ Captured log call -------------------------------
INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:238 Export data as cipher text INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:249 Check that the attribute is present in the exported file INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:250 Check that the encrypted value of attribute is not present in the exported file
Passed suites/attr_encryption/attr_encryption_test.py::test_attr_encryption_multiple_backends 6.99
----------------------------- Captured stderr call -----------------------------
ldiffile: /var/lib/dirsrv/slapd-standalone1/ldif/export_db1.ldif ldiffile: /var/lib/dirsrv/slapd-standalone1/ldif/export_db2.ldif ------------------------------ Captured log call -------------------------------
INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:282 Add two test backends INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:302 Enables attribute encryption for telephoneNumber in test_backend1 INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:307 Enables attribute encryption for employeeNumber in test_backend2 INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:312 Add a test user with encrypted attributes in both backends INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:321 Export data as ciphertext from both backends INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:338 Check that the attribute is present in the exported file in db1 INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:339 Check that the encrypted value of attribute is not present in the exported file in db1 INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:345 Check that the attribute is present in the exported file in db2 INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:346 Check that the encrypted value of attribute is not present in the exported file in db2 INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:352 Delete test backends
Passed suites/attr_encryption/attr_encryption_test.py::test_attr_encryption_backends 5.80
----------------------------- Captured stderr call -----------------------------
ldiffile: /var/lib/dirsrv/slapd-standalone1/ldif/export_db1.ldif ldiffile: /var/lib/dirsrv/slapd-standalone1/ldif/export_db2.ldif ------------------------------ Captured log call -------------------------------
INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:380 Add two test backends INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:399 Enables attribute encryption for telephoneNumber in test_backend1 INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:404 Add a test user with telephoneNumber in both backends INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:413 Export data as ciphertext from both backends INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:430 Check that the attribute is present in the exported file in db1 INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:431 Check that the encrypted value of attribute is not present in the exported file in db1 INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:437 Check that the attribute is present in the exported file in db2 INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:438 Check that the value of attribute is also present in the exported file in db2 INFO tests.suites.attr_encryption.attr_encryption_test:attr_encryption_test.py:444 Delete test backends
Passed suites/automember_plugin/automember_mod_test.py::test_mods 11.29
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
INFO tests.suites.automember_plugin.automember_mod_test:automember_mod_test.py:135 Test PASSED
Passed suites/automember_plugin/automember_test.py::test_automemberscope 0.00
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/automember_plugin/automember_test.py::test_automemberfilter 0.03
No log output captured.
Passed suites/automember_plugin/automember_test.py::test_adduser 0.05
No log output captured.
Passed suites/automember_plugin/automember_test.py::test_delete_default_group 4.56
No log output captured.
Passed suites/automember_plugin/automember_test.py::test_delete_target_group 4.65
No log output captured.
Passed suites/basic/basic_test.py::test_basic_ops 0.15
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/basic/basic_test.py::test_basic_db2index 11.78
----------------------------- Captured stderr call -----------------------------
[29/May/2019:19:25:48.631661126 -0400] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000 [29/May/2019:19:25:48.635417141 -0400] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000 [29/May/2019:19:25:48.640229971 -0400] - INFO - check_and_set_import_cache - pagesize: 4096, available bytes 7739240448, process usage 22896640 [29/May/2019:19:25:48.646693948 -0400] - INFO - check_and_set_import_cache - Import allocates 3023140KB import cache. [29/May/2019:19:25:48.649519344 -0400] - ERR - dblayer_copy_directory - Failed to open dir /var/lib/dirsrv/slapd-standalone1/db/userRoot [29/May/2019:19:25:48.651999277 -0400] - ERR - ldbm_back_upgradedb - Failed to backup index files (instance /var/lib/dirsrv/slapd-standalone1/db/userRoot). [29/May/2019:19:25:48.654252894 -0400] - INFO - dblayer_pre_close - All database threads now stopped [29/May/2019:19:25:48.806812040 -0400] - INFO - slapd_exemode_db2index - Backend Instance: userRoot [29/May/2019:19:25:48.811138302 -0400] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000 [29/May/2019:19:25:48.814117923 -0400] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000 [29/May/2019:19:25:48.819589166 -0400] - INFO - dblayer_instance_start - Import is running with nsslapd-db-private-import-mem on; No other process is allowed to access the database [29/May/2019:19:25:48.822441666 -0400] - INFO - check_and_set_import_cache - pagesize: 4096, available bytes 7739043840, process usage 22908928 [29/May/2019:19:25:48.825556539 -0400] - INFO - check_and_set_import_cache - Import allocates 3023064KB import cache. [29/May/2019:19:25:48.983829577 -0400] - INFO - ldbm_back_ldbm2index - userRoot: Indexing attribute: uid [29/May/2019:19:25:48.986587440 -0400] - INFO - ldbm_back_ldbm2index - userRoot: Finished indexing. [29/May/2019:19:25:48.999532297 -0400] - INFO - dblayer_pre_close - All database threads now stopped
Passed suites/basic/basic_test.py::test_basic_referrals 3.59
No log output captured.
Passed suites/basic/basic_test.py::test_basic_systemctl 12.29
----------------------------- Captured stderr call -----------------------------
Job for dirsrv@standalone1.service failed because the control process exited with error code. See "systemctl status dirsrv@standalone1.service" and "journalctl -xe" for details.
Passed suites/basic/basic_test.py::test_basic_ldapagent 5.02
No log output captured.
Passed suites/basic/basic_test.py::test_basic_dse_survives_kill9 11.41
No log output captured.
Passed suites/basic/basic_test.py::test_def_rootdse_attr[namingContexts] 0.02
No log output captured.
Passed suites/basic/basic_test.py::test_def_rootdse_attr[supportedLDAPVersion] 0.02
No log output captured.
Passed suites/basic/basic_test.py::test_def_rootdse_attr[supportedControl] 0.02
No log output captured.
Passed suites/basic/basic_test.py::test_def_rootdse_attr[supportedExtension] 0.01
No log output captured.
Passed suites/basic/basic_test.py::test_def_rootdse_attr[supportedSASLMechanisms] 0.01
No log output captured.
Passed suites/basic/basic_test.py::test_def_rootdse_attr[vendorName] 0.01
No log output captured.
Passed suites/basic/basic_test.py::test_def_rootdse_attr[vendorVersion] 0.02
No log output captured.
Passed suites/basic/basic_test.py::test_mod_def_rootdse_attr[namingContexts] 0.00
No log output captured.
Passed suites/basic/basic_test.py::test_mod_def_rootdse_attr[supportedLDAPVersion] 0.00
No log output captured.
Passed suites/basic/basic_test.py::test_mod_def_rootdse_attr[supportedControl] 0.00
No log output captured.
Passed suites/basic/basic_test.py::test_mod_def_rootdse_attr[supportedExtension] 0.00
No log output captured.
Passed suites/basic/basic_test.py::test_mod_def_rootdse_attr[supportedSASLMechanisms] 0.00
No log output captured.
Passed suites/basic/basic_test.py::test_mod_def_rootdse_attr[vendorName] 0.00
No log output captured.
Passed suites/basic/basic_test.py::test_mod_def_rootdse_attr[vendorVersion] 0.00
No log output captured.
Passed suites/basic/basic_test.py::test_connection_buffer_size 0.03
No log output captured.
Passed suites/basic/basic_test.py::test_ldbm_modification_audit_log 12.51
No log output captured.
Passed suites/basic/basic_test.py::test_dscreate 11.46
----------------------------- Captured stdout call -----------------------------
Starting installation... Completed installation for test_dscreate
Passed suites/betxns/betxn_test.py::test_betxt_7bit 4.59
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
INFO tests.suites.betxns.betxn_test:betxn_test.py:50 Running test_betxt_7bit... INFO tests.suites.betxns.betxn_test:betxn_test.py:76 test_betxt_7bit: PASSED
Passed suites/betxns/betxn_test.py::test_betxn_attr_uniqueness 4.59
------------------------------ Captured log call -------------------------------
INFO tests.suites.betxns.betxn_test:betxn_test.py:127 test_betxn_attr_uniqueness: PASSED
Passed suites/betxns/betxn_test.py::test_betxn_memberof 4.62
------------------------------ Captured log call -------------------------------
INFO tests.suites.betxns.betxn_test:betxn_test.py:173 test_betxn_memberof: PASSED
Passed suites/betxns/betxn_test.py::test_betxn_modrdn_memberof_cache_corruption 4.63
------------------------------ Captured log call -------------------------------
INFO tests.suites.betxns.betxn_test:betxn_test.py:227 test_betxn_modrdn_memberof: PASSED
Passed suites/betxns/betxn_test.py::test_ri_and_mep_cache_corruption 0.55
------------------------------ Captured log call -------------------------------
INFO tests.suites.betxns.betxn_test:betxn_test.py:337 Test PASSED
Passed suites/clu/clu_test.py::test_clu_pwdhash 0.04
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
INFO tests.suites.clu.clu_test:clu_test.py:40 Running test_clu_pwdhash... INFO tests.suites.clu.clu_test:clu_test.py:54 pwdhash generated: {SSHA}1XnAbEnuROF4wV7GPGrPX1kRFEDgJimmcqeX6A== INFO tests.suites.clu.clu_test:clu_test.py:55 test_clu_pwdhash: PASSED
Passed suites/clu/clu_test.py::test_clu_pwdhash_mod 0.05
------------------------------ Captured log call -------------------------------
INFO tests.suites.clu.clu_test:clu_test.py:78 Running test_clu_pwdhash_mod... INFO tests.suites.clu.clu_test:clu_test.py:87 pwdhash generated: {SSHA256}fwt+jqA2cCpcFX6b8jYC7wisB1QMK4PWZ4mVBSpslUvJF0bs9qfWYA== INFO tests.suites.clu.clu_test:clu_test.py:88 returned the hashed string using the algorithm set in nsslapd-rootpwstoragescheme
Passed suites/config/autotuning_test.py::test_threads_basic 0.02
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
INFO tests.suites.config.autotuning_test:autotuning_test.py:39 Set nsslapd-threadnumber: -1 to enable autotuning INFO tests.suites.config.autotuning_test:autotuning_test.py:42 Assert nsslapd-threadnumber is equal to the documented expected value
Passed suites/config/autotuning_test.py::test_threads_invalid_value[-2] 0.01
------------------------------ Captured log call -------------------------------
INFO tests.suites.config.autotuning_test:autotuning_test.py:58 Set nsslapd-threadnumber: -2. Operation should fail
Passed suites/config/autotuning_test.py::test_threads_invalid_value[0] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.config.autotuning_test:autotuning_test.py:58 Set nsslapd-threadnumber: 0. Operation should fail
Passed suites/config/autotuning_test.py::test_threads_invalid_value[invalid] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.config.autotuning_test:autotuning_test.py:58 Set nsslapd-threadnumber: invalid. Operation should fail
Passed suites/config/autotuning_test.py::test_threads_back_from_manual_value 0.05
------------------------------ Captured log call -------------------------------
INFO tests.suites.config.autotuning_test:autotuning_test.py:80 Set nsslapd-threadnumber: -1 to enable autotuning and save the new value INFO tests.suites.config.autotuning_test:autotuning_test.py:84 Set nsslapd-threadnumber to the autotuned value decreased by 2 INFO tests.suites.config.autotuning_test:autotuning_test.py:89 Set nsslapd-threadnumber: -1 to enable autotuning INFO tests.suites.config.autotuning_test:autotuning_test.py:92 Assert nsslapd-threadnumber is back to the autotuned value
Passed suites/config/autotuning_test.py::test_cache_autosize_non_zero[-] 4.11
------------------------------ Captured log call -------------------------------
INFO tests.suites.config.autotuning_test:autotuning_test.py:132 Check nsslapd-dbcachesize and nsslapd-cachememsize before the test INFO tests.suites.config.autotuning_test:autotuning_test.py:133 nsslapd-dbcachesize == b'167228456' INFO tests.suites.config.autotuning_test:autotuning_test.py:134 nsslapd-cachememsize == b'603979776' INFO tests.suites.config.autotuning_test:autotuning_test.py:135 nsslapd-dncachememsize == b'67108864' INFO tests.suites.config.autotuning_test:autotuning_test.py:136 nsslapd-cache-autosize == b'10' INFO tests.suites.config.autotuning_test:autotuning_test.py:137 nsslapd-cache-autosize-split == b'25' INFO tests.suites.config.autotuning_test:autotuning_test.py:143 Delete nsslapd-cache-autosize INFO tests.suites.config.autotuning_test:autotuning_test.py:153 Delete nsslapd-cache-autosize-split INFO tests.suites.config.autotuning_test:autotuning_test.py:159 Trying to set nsslapd-cachememsize to 33333333 INFO tests.suites.config.autotuning_test:autotuning_test.py:162 Trying to set nsslapd-dbcachesize to 33333333 INFO tests.suites.config.autotuning_test:autotuning_test.py:173 Check nsslapd-dbcachesize and nsslapd-cachememsize in the appropriate range. INFO tests.suites.config.autotuning_test:autotuning_test.py:174 nsslapd-dbcachesize == b'167228456' INFO tests.suites.config.autotuning_test:autotuning_test.py:175 nsslapd-cachememsize == b'603979776' INFO tests.suites.config.autotuning_test:autotuning_test.py:176 nsslapd-dncachememsize == b'67108864' INFO tests.suites.config.autotuning_test:autotuning_test.py:177 nsslapd-cache-autosize == b'10' INFO tests.suites.config.autotuning_test:autotuning_test.py:178 nsslapd-cache-autosize-split == b'25'
Passed suites/config/autotuning_test.py::test_cache_autosize_non_zero[-0] 4.61
------------------------------ Captured log call -------------------------------
INFO tests.suites.config.autotuning_test:autotuning_test.py:132 Check nsslapd-dbcachesize and nsslapd-cachememsize before the test INFO tests.suites.config.autotuning_test:autotuning_test.py:133 nsslapd-dbcachesize == b'167228456' INFO tests.suites.config.autotuning_test:autotuning_test.py:134 nsslapd-cachememsize == b'603979776' INFO tests.suites.config.autotuning_test:autotuning_test.py:135 nsslapd-dncachememsize == b'67108864' INFO tests.suites.config.autotuning_test:autotuning_test.py:136 nsslapd-cache-autosize == b'10' INFO tests.suites.config.autotuning_test:autotuning_test.py:137 nsslapd-cache-autosize-split == b'25' INFO tests.suites.config.autotuning_test:autotuning_test.py:143 Delete nsslapd-cache-autosize INFO tests.suites.config.autotuning_test:autotuning_test.py:150 Set nsslapd-cache-autosize-split to 0 INFO tests.suites.config.autotuning_test:autotuning_test.py:159 Trying to set nsslapd-cachememsize to 33333333 INFO tests.suites.config.autotuning_test:autotuning_test.py:162 Trying to set nsslapd-dbcachesize to 33333333 INFO tests.suites.config.autotuning_test:autotuning_test.py:173 Check nsslapd-dbcachesize and nsslapd-cachememsize in the appropriate range. INFO tests.suites.config.autotuning_test:autotuning_test.py:174 nsslapd-dbcachesize == b'167228456' INFO tests.suites.config.autotuning_test:autotuning_test.py:175 nsslapd-cachememsize == b'603979776' INFO tests.suites.config.autotuning_test:autotuning_test.py:176 nsslapd-dncachememsize == b'67108864' INFO tests.suites.config.autotuning_test:autotuning_test.py:177 nsslapd-cache-autosize == b'10' INFO tests.suites.config.autotuning_test:autotuning_test.py:178 nsslapd-cache-autosize-split == b'0'
Passed suites/config/autotuning_test.py::test_cache_autosize_non_zero[10-400] 5.01
------------------------------ Captured log call -------------------------------
INFO tests.suites.config.autotuning_test:autotuning_test.py:132 Check nsslapd-dbcachesize and nsslapd-cachememsize before the test INFO tests.suites.config.autotuning_test:autotuning_test.py:133 nsslapd-dbcachesize == b'167228456' INFO tests.suites.config.autotuning_test:autotuning_test.py:134 nsslapd-cachememsize == b'603979776' INFO tests.suites.config.autotuning_test:autotuning_test.py:135 nsslapd-dncachememsize == b'67108864' INFO tests.suites.config.autotuning_test:autotuning_test.py:136 nsslapd-cache-autosize == b'10' INFO tests.suites.config.autotuning_test:autotuning_test.py:137 nsslapd-cache-autosize-split == b'0' INFO tests.suites.config.autotuning_test:autotuning_test.py:140 Set nsslapd-cache-autosize to 10 INFO tests.suites.config.autotuning_test:autotuning_test.py:150 Set nsslapd-cache-autosize-split to 40 INFO tests.suites.config.autotuning_test:autotuning_test.py:159 Trying to set nsslapd-cachememsize to 33333333 INFO tests.suites.config.autotuning_test:autotuning_test.py:162 Trying to set nsslapd-dbcachesize to 33333333 INFO tests.suites.config.autotuning_test:autotuning_test.py:173 Check nsslapd-dbcachesize and nsslapd-cachememsize in the appropriate range. INFO tests.suites.config.autotuning_test:autotuning_test.py:174 nsslapd-dbcachesize == b'267565530' INFO tests.suites.config.autotuning_test:autotuning_test.py:175 nsslapd-cachememsize == b'469762048' INFO tests.suites.config.autotuning_test:autotuning_test.py:176 nsslapd-dncachememsize == b'67108864' INFO tests.suites.config.autotuning_test:autotuning_test.py:177 nsslapd-cache-autosize == b'10' INFO tests.suites.config.autotuning_test:autotuning_test.py:178 nsslapd-cache-autosize-split == b'40'
Passed suites/config/autotuning_test.py::test_cache_autosize_non_zero[-40] 4.59
------------------------------ Captured log call -------------------------------
INFO tests.suites.config.autotuning_test:autotuning_test.py:132 Check nsslapd-dbcachesize and nsslapd-cachememsize before the test INFO tests.suites.config.autotuning_test:autotuning_test.py:133 nsslapd-dbcachesize == b'267565530' INFO tests.suites.config.autotuning_test:autotuning_test.py:134 nsslapd-cachememsize == b'469762048' INFO tests.suites.config.autotuning_test:autotuning_test.py:135 nsslapd-dncachememsize == b'67108864' INFO tests.suites.config.autotuning_test:autotuning_test.py:136 nsslapd-cache-autosize == b'10' INFO tests.suites.config.autotuning_test:autotuning_test.py:137 nsslapd-cache-autosize-split == b'40' INFO tests.suites.config.autotuning_test:autotuning_test.py:143 Delete nsslapd-cache-autosize INFO tests.suites.config.autotuning_test:autotuning_test.py:150 Set nsslapd-cache-autosize-split to 40 INFO tests.suites.config.autotuning_test:autotuning_test.py:159 Trying to set nsslapd-cachememsize to 33333333 INFO tests.suites.config.autotuning_test:autotuning_test.py:162 Trying to set nsslapd-dbcachesize to 33333333 INFO tests.suites.config.autotuning_test:autotuning_test.py:173 Check nsslapd-dbcachesize and nsslapd-cachememsize in the appropriate range. INFO tests.suites.config.autotuning_test:autotuning_test.py:174 nsslapd-dbcachesize == b'267565530' INFO tests.suites.config.autotuning_test:autotuning_test.py:175 nsslapd-cachememsize == b'469762048' INFO tests.suites.config.autotuning_test:autotuning_test.py:176 nsslapd-dncachememsize == b'67108864' INFO tests.suites.config.autotuning_test:autotuning_test.py:177 nsslapd-cache-autosize == b'10' INFO tests.suites.config.autotuning_test:autotuning_test.py:178 nsslapd-cache-autosize-split == b'40'
Passed suites/config/autotuning_test.py::test_cache_autosize_non_zero[10-] 4.70
------------------------------ Captured log call -------------------------------
INFO tests.suites.config.autotuning_test:autotuning_test.py:132 Check nsslapd-dbcachesize and nsslapd-cachememsize before the test INFO tests.suites.config.autotuning_test:autotuning_test.py:133 nsslapd-dbcachesize == b'267565530' INFO tests.suites.config.autotuning_test:autotuning_test.py:134 nsslapd-cachememsize == b'469762048' INFO tests.suites.config.autotuning_test:autotuning_test.py:135 nsslapd-dncachememsize == b'67108864' INFO tests.suites.config.autotuning_test:autotuning_test.py:136 nsslapd-cache-autosize == b'10' INFO tests.suites.config.autotuning_test:autotuning_test.py:137 nsslapd-cache-autosize-split == b'40' INFO tests.suites.config.autotuning_test:autotuning_test.py:140 Set nsslapd-cache-autosize to 10 INFO tests.suites.config.autotuning_test:autotuning_test.py:153 Delete nsslapd-cache-autosize-split INFO tests.suites.config.autotuning_test:autotuning_test.py:159 Trying to set nsslapd-cachememsize to 33333333 INFO tests.suites.config.autotuning_test:autotuning_test.py:162 Trying to set nsslapd-dbcachesize to 33333333 INFO tests.suites.config.autotuning_test:autotuning_test.py:173 Check nsslapd-dbcachesize and nsslapd-cachememsize in the appropriate range. INFO tests.suites.config.autotuning_test:autotuning_test.py:174 nsslapd-dbcachesize == b'167228456' INFO tests.suites.config.autotuning_test:autotuning_test.py:175 nsslapd-cachememsize == b'603979776' INFO tests.suites.config.autotuning_test:autotuning_test.py:176 nsslapd-dncachememsize == b'67108864' INFO tests.suites.config.autotuning_test:autotuning_test.py:177 nsslapd-cache-autosize == b'10' INFO tests.suites.config.autotuning_test:autotuning_test.py:178 nsslapd-cache-autosize-split == b'25'
Passed suites/config/autotuning_test.py::test_cache_autosize_non_zero[10-401] 4.67
------------------------------ Captured log call -------------------------------
INFO tests.suites.config.autotuning_test:autotuning_test.py:132 Check nsslapd-dbcachesize and nsslapd-cachememsize before the test INFO tests.suites.config.autotuning_test:autotuning_test.py:133 nsslapd-dbcachesize == b'167228456' INFO tests.suites.config.autotuning_test:autotuning_test.py:134 nsslapd-cachememsize == b'603979776' INFO tests.suites.config.autotuning_test:autotuning_test.py:135 nsslapd-dncachememsize == b'67108864' INFO tests.suites.config.autotuning_test:autotuning_test.py:136 nsslapd-cache-autosize == b'10' INFO tests.suites.config.autotuning_test:autotuning_test.py:137 nsslapd-cache-autosize-split == b'25' INFO tests.suites.config.autotuning_test:autotuning_test.py:140 Set nsslapd-cache-autosize to 10 INFO tests.suites.config.autotuning_test:autotuning_test.py:150 Set nsslapd-cache-autosize-split to 40 INFO tests.suites.config.autotuning_test:autotuning_test.py:159 Trying to set nsslapd-cachememsize to 33333333 INFO tests.suites.config.autotuning_test:autotuning_test.py:162 Trying to set nsslapd-dbcachesize to 33333333 INFO tests.suites.config.autotuning_test:autotuning_test.py:173 Check nsslapd-dbcachesize and nsslapd-cachememsize in the appropriate range. INFO tests.suites.config.autotuning_test:autotuning_test.py:174 nsslapd-dbcachesize == b'267565530' INFO tests.suites.config.autotuning_test:autotuning_test.py:175 nsslapd-cachememsize == b'469762048' INFO tests.suites.config.autotuning_test:autotuning_test.py:176 nsslapd-dncachememsize == b'67108864' INFO tests.suites.config.autotuning_test:autotuning_test.py:177 nsslapd-cache-autosize == b'10' INFO tests.suites.config.autotuning_test:autotuning_test.py:178 nsslapd-cache-autosize-split == b'40'
Passed suites/config/autotuning_test.py::test_cache_autosize_non_zero[10-0] 4.66
------------------------------ Captured log call -------------------------------
INFO tests.suites.config.autotuning_test:autotuning_test.py:132 Check nsslapd-dbcachesize and nsslapd-cachememsize before the test INFO tests.suites.config.autotuning_test:autotuning_test.py:133 nsslapd-dbcachesize == b'267565530' INFO tests.suites.config.autotuning_test:autotuning_test.py:134 nsslapd-cachememsize == b'469762048' INFO tests.suites.config.autotuning_test:autotuning_test.py:135 nsslapd-dncachememsize == b'67108864' INFO tests.suites.config.autotuning_test:autotuning_test.py:136 nsslapd-cache-autosize == b'10' INFO tests.suites.config.autotuning_test:autotuning_test.py:137 nsslapd-cache-autosize-split == b'40' INFO tests.suites.config.autotuning_test:autotuning_test.py:140 Set nsslapd-cache-autosize to 10 INFO tests.suites.config.autotuning_test:autotuning_test.py:150 Set nsslapd-cache-autosize-split to 0 INFO tests.suites.config.autotuning_test:autotuning_test.py:159 Trying to set nsslapd-cachememsize to 33333333 INFO tests.suites.config.autotuning_test:autotuning_test.py:162 Trying to set nsslapd-dbcachesize to 33333333 INFO tests.suites.config.autotuning_test:autotuning_test.py:173 Check nsslapd-dbcachesize and nsslapd-cachememsize in the appropriate range. INFO tests.suites.config.autotuning_test:autotuning_test.py:174 nsslapd-dbcachesize == b'167228456' INFO tests.suites.config.autotuning_test:autotuning_test.py:175 nsslapd-cachememsize == b'603979776' INFO tests.suites.config.autotuning_test:autotuning_test.py:176 nsslapd-dncachememsize == b'67108864' INFO tests.suites.config.autotuning_test:autotuning_test.py:177 nsslapd-cache-autosize == b'10' INFO tests.suites.config.autotuning_test:autotuning_test.py:178 nsslapd-cache-autosize-split == b'0'
Passed suites/config/autotuning_test.py::test_cache_autosize_basic_sane[0] 9.24
------------------------------ Captured log call -------------------------------
INFO tests.suites.config.autotuning_test:autotuning_test.py:222 Check nsslapd-dbcachesize and nsslapd-cachememsize before the test INFO tests.suites.config.autotuning_test:autotuning_test.py:223 nsslapd-dbcachesize == b'167228456' INFO tests.suites.config.autotuning_test:autotuning_test.py:224 nsslapd-cachememsize == b'603979776' INFO tests.suites.config.autotuning_test:autotuning_test.py:225 nsslapd-cache-autosize == b'0' INFO tests.suites.config.autotuning_test:autotuning_test.py:226 nsslapd-cache-autosize-split == b'0' INFO tests.suites.config.autotuning_test:autotuning_test.py:229 Set nsslapd-cache-autosize-split to 0 INFO tests.suites.config.autotuning_test:autotuning_test.py:238 Set nsslapd-dbcachesize to 0 INFO tests.suites.config.autotuning_test:autotuning_test.py:240 Set nsslapd-cachememsize to 0 INFO tests.suites.config.autotuning_test:autotuning_test.py:250 Check nsslapd-dbcachesize and nsslapd-cachememsize in the appropriate range. INFO tests.suites.config.autotuning_test:autotuning_test.py:251 nsslapd-dbcachesize == b'167228456' INFO tests.suites.config.autotuning_test:autotuning_test.py:252 nsslapd-cachememsize == b'603979776' INFO tests.suites.config.autotuning_test:autotuning_test.py:253 nsslapd-dncachememsize == b'67108864' INFO tests.suites.config.autotuning_test:autotuning_test.py:254 nsslapd-cache-autosize == b'0' INFO tests.suites.config.autotuning_test:autotuning_test.py:255 nsslapd-cache-autosize-split == b'0' INFO tests.suites.config.autotuning_test:autotuning_test.py:222 Check nsslapd-dbcachesize and nsslapd-cachememsize before the test INFO tests.suites.config.autotuning_test:autotuning_test.py:223 nsslapd-dbcachesize == b'167228456' INFO tests.suites.config.autotuning_test:autotuning_test.py:224 nsslapd-cachememsize == b'603979776' INFO tests.suites.config.autotuning_test:autotuning_test.py:225 nsslapd-cache-autosize == b'0' INFO tests.suites.config.autotuning_test:autotuning_test.py:226 nsslapd-cache-autosize-split == b'0' INFO tests.suites.config.autotuning_test:autotuning_test.py:229 Set nsslapd-cache-autosize-split to 0 INFO tests.suites.config.autotuning_test:autotuning_test.py:238 Set nsslapd-dbcachesize to 33333333 INFO tests.suites.config.autotuning_test:autotuning_test.py:240 Set nsslapd-cachememsize to 33333333 INFO tests.suites.config.autotuning_test:autotuning_test.py:250 Check nsslapd-dbcachesize and nsslapd-cachememsize in the appropriate range. INFO tests.suites.config.autotuning_test:autotuning_test.py:251 nsslapd-dbcachesize == b'33333333' INFO tests.suites.config.autotuning_test:autotuning_test.py:252 nsslapd-cachememsize == b'33333333' INFO tests.suites.config.autotuning_test:autotuning_test.py:253 nsslapd-dncachememsize == b'67108864' INFO tests.suites.config.autotuning_test:autotuning_test.py:254 nsslapd-cache-autosize == b'0' INFO tests.suites.config.autotuning_test:autotuning_test.py:255 nsslapd-cache-autosize-split == b'0'
Passed suites/config/autotuning_test.py::test_cache_autosize_basic_sane[] 9.39
------------------------------ Captured log call -------------------------------
INFO tests.suites.config.autotuning_test:autotuning_test.py:222 Check nsslapd-dbcachesize and nsslapd-cachememsize before the test INFO tests.suites.config.autotuning_test:autotuning_test.py:223 nsslapd-dbcachesize == b'33333333' INFO tests.suites.config.autotuning_test:autotuning_test.py:224 nsslapd-cachememsize == b'33333333' INFO tests.suites.config.autotuning_test:autotuning_test.py:225 nsslapd-cache-autosize == b'0' INFO tests.suites.config.autotuning_test:autotuning_test.py:226 nsslapd-cache-autosize-split == b'0' INFO tests.suites.config.autotuning_test:autotuning_test.py:232 Delete nsslapd-cache-autosize-split INFO tests.suites.config.autotuning_test:autotuning_test.py:238 Set nsslapd-dbcachesize to 0 INFO tests.suites.config.autotuning_test:autotuning_test.py:240 Set nsslapd-cachememsize to 0 INFO tests.suites.config.autotuning_test:autotuning_test.py:250 Check nsslapd-dbcachesize and nsslapd-cachememsize in the appropriate range. INFO tests.suites.config.autotuning_test:autotuning_test.py:251 nsslapd-dbcachesize == b'167228456' INFO tests.suites.config.autotuning_test:autotuning_test.py:252 nsslapd-cachememsize == b'603979776' INFO tests.suites.config.autotuning_test:autotuning_test.py:253 nsslapd-dncachememsize == b'67108864' INFO tests.suites.config.autotuning_test:autotuning_test.py:254 nsslapd-cache-autosize == b'0' INFO tests.suites.config.autotuning_test:autotuning_test.py:255 nsslapd-cache-autosize-split == b'25' INFO tests.suites.config.autotuning_test:autotuning_test.py:222 Check nsslapd-dbcachesize and nsslapd-cachememsize before the test INFO tests.suites.config.autotuning_test:autotuning_test.py:223 nsslapd-dbcachesize == b'167228456' INFO tests.suites.config.autotuning_test:autotuning_test.py:224 nsslapd-cachememsize == b'603979776' INFO tests.suites.config.autotuning_test:autotuning_test.py:225 nsslapd-cache-autosize == b'0' INFO tests.suites.config.autotuning_test:autotuning_test.py:226 nsslapd-cache-autosize-split == b'25' INFO tests.suites.config.autotuning_test:autotuning_test.py:232 Delete nsslapd-cache-autosize-split INFO tests.suites.config.autotuning_test:autotuning_test.py:238 Set nsslapd-dbcachesize to 33333333 INFO tests.suites.config.autotuning_test:autotuning_test.py:240 Set nsslapd-cachememsize to 33333333 INFO tests.suites.config.autotuning_test:autotuning_test.py:250 Check nsslapd-dbcachesize and nsslapd-cachememsize in the appropriate range. INFO tests.suites.config.autotuning_test:autotuning_test.py:251 nsslapd-dbcachesize == b'33333333' INFO tests.suites.config.autotuning_test:autotuning_test.py:252 nsslapd-cachememsize == b'33333333' INFO tests.suites.config.autotuning_test:autotuning_test.py:253 nsslapd-dncachememsize == b'67108864' INFO tests.suites.config.autotuning_test:autotuning_test.py:254 nsslapd-cache-autosize == b'0' INFO tests.suites.config.autotuning_test:autotuning_test.py:255 nsslapd-cache-autosize-split == b'25'
Passed suites/config/autotuning_test.py::test_cache_autosize_basic_sane[40] 9.42
------------------------------ Captured log call -------------------------------
INFO tests.suites.config.autotuning_test:autotuning_test.py:222 Check nsslapd-dbcachesize and nsslapd-cachememsize before the test INFO tests.suites.config.autotuning_test:autotuning_test.py:223 nsslapd-dbcachesize == b'33333333' INFO tests.suites.config.autotuning_test:autotuning_test.py:224 nsslapd-cachememsize == b'33333333' INFO tests.suites.config.autotuning_test:autotuning_test.py:225 nsslapd-cache-autosize == b'0' INFO tests.suites.config.autotuning_test:autotuning_test.py:226 nsslapd-cache-autosize-split == b'25' INFO tests.suites.config.autotuning_test:autotuning_test.py:229 Set nsslapd-cache-autosize-split to 40 INFO tests.suites.config.autotuning_test:autotuning_test.py:238 Set nsslapd-dbcachesize to 0 INFO tests.suites.config.autotuning_test:autotuning_test.py:240 Set nsslapd-cachememsize to 0 INFO tests.suites.config.autotuning_test:autotuning_test.py:250 Check nsslapd-dbcachesize and nsslapd-cachememsize in the appropriate range. INFO tests.suites.config.autotuning_test:autotuning_test.py:251 nsslapd-dbcachesize == b'267565530' INFO tests.suites.config.autotuning_test:autotuning_test.py:252 nsslapd-cachememsize == b'469762048' INFO tests.suites.config.autotuning_test:autotuning_test.py:253 nsslapd-dncachememsize == b'67108864' INFO tests.suites.config.autotuning_test:autotuning_test.py:254 nsslapd-cache-autosize == b'0' INFO tests.suites.config.autotuning_test:autotuning_test.py:255 nsslapd-cache-autosize-split == b'40' INFO tests.suites.config.autotuning_test:autotuning_test.py:222 Check nsslapd-dbcachesize and nsslapd-cachememsize before the test INFO tests.suites.config.autotuning_test:autotuning_test.py:223 nsslapd-dbcachesize == b'267565530' INFO tests.suites.config.autotuning_test:autotuning_test.py:224 nsslapd-cachememsize == b'469762048' INFO tests.suites.config.autotuning_test:autotuning_test.py:225 nsslapd-cache-autosize == b'0' INFO tests.suites.config.autotuning_test:autotuning_test.py:226 nsslapd-cache-autosize-split == b'40' INFO tests.suites.config.autotuning_test:autotuning_test.py:229 Set nsslapd-cache-autosize-split to 40 INFO tests.suites.config.autotuning_test:autotuning_test.py:238 Set nsslapd-dbcachesize to 33333333 INFO tests.suites.config.autotuning_test:autotuning_test.py:240 Set nsslapd-cachememsize to 33333333 INFO tests.suites.config.autotuning_test:autotuning_test.py:250 Check nsslapd-dbcachesize and nsslapd-cachememsize in the appropriate range. INFO tests.suites.config.autotuning_test:autotuning_test.py:251 nsslapd-dbcachesize == b'33333333' INFO tests.suites.config.autotuning_test:autotuning_test.py:252 nsslapd-cachememsize == b'33333333' INFO tests.suites.config.autotuning_test:autotuning_test.py:253 nsslapd-dncachememsize == b'67108864' INFO tests.suites.config.autotuning_test:autotuning_test.py:254 nsslapd-cache-autosize == b'0' INFO tests.suites.config.autotuning_test:autotuning_test.py:255 nsslapd-cache-autosize-split == b'40'
Passed suites/config/autotuning_test.py::test_cache_autosize_invalid_values[-2] 0.05
------------------------------ Captured log call -------------------------------
INFO tests.suites.config.autotuning_test:autotuning_test.py:283 Set nsslapd-cache-autosize-split to -2 INFO tests.suites.config.autotuning_test:autotuning_test.py:289 Set nsslapd-cache-autosize to -2
Passed suites/config/autotuning_test.py::test_cache_autosize_invalid_values[102] 0.02
------------------------------ Captured log call -------------------------------
INFO tests.suites.config.autotuning_test:autotuning_test.py:283 Set nsslapd-cache-autosize-split to 102 INFO tests.suites.config.autotuning_test:autotuning_test.py:289 Set nsslapd-cache-autosize to 102
Passed suites/config/autotuning_test.py::test_cache_autosize_invalid_values[invalid] 0.02
------------------------------ Captured log call -------------------------------
INFO tests.suites.config.autotuning_test:autotuning_test.py:283 Set nsslapd-cache-autosize-split to invalid INFO tests.suites.config.autotuning_test:autotuning_test.py:289 Set nsslapd-cache-autosize to invalid
Passed suites/config/regression_test.py::test_maxbersize_repl 7.27
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
INFO tests.suites.config.regression_test:regression_test.py:100 Set nsslapd-errorlog-maxlogsize before nsslapd-errorlog-logmaxdiskspace INFO tests.suites.config.regression_test:regression_test.py:104 Assert no init_dse_file errors in the error log INFO tests.suites.config.regression_test:regression_test.py:108 Set nsslapd-errorlog-maxlogsize after nsslapd-errorlog-logmaxdiskspace INFO tests.suites.config.regression_test:regression_test.py:112 Assert no init_dse_file errors in the error log
Passed suites/config/removed_config_49298_test.py::test_restore_config 3.55
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
INFO tests.suites.config.removed_config_49298_test:removed_config_49298_test.py:43 /etc/dirsrv/slapd-standalone1
Passed suites/config/removed_config_49298_test.py::test_removed_config 2.40
----------------------------- Captured stderr call -----------------------------
Job for dirsrv@standalone1.service failed because the control process exited with error code. See "systemctl status dirsrv@standalone1.service" and "journalctl -xe" for details. ------------------------------ Captured log call -------------------------------
INFO tests.suites.config.removed_config_49298_test:removed_config_49298_test.py:72 /etc/dirsrv/slapd-standalone1
Passed suites/cos/cos_test.py::test_positive 0.05
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/cos/indirect_cos_test.py::test_indirect_cos 1.38
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. INFO tests.suites.cos.indirect_cos_test:indirect_cos_test.py:107 Add custom schema... INFO tests.suites.cos.indirect_cos_test:indirect_cos_test.py:120 Add test user... INFO tests.suites.cos.indirect_cos_test:indirect_cos_test.py:137 Setup indirect COS...------------------------------ Captured log call -------------------------------
INFO tests.suites.cos.indirect_cos_test:indirect_cos_test.py:157 Checking user... INFO tests.suites.cos.indirect_cos_test:indirect_cos_test.py:56 Create password policy for subtree ou=people,dc=example,dc=com INFO tests.suites.cos.indirect_cos_test:indirect_cos_test.py:164 Checking user...
Passed suites/disk_monitoring/disk_monitoring_test.py::test_verify_operation_when_disk_monitoring_is_off 4.59
---------------------------- Captured stdout setup -----------------------------
Relabeled /var/log/dirsrv/slapd-standalone1 from unconfined_u:object_r:user_tmp_t:s0 to system_u:object_r:dirsrv_var_log_t:s0 ---------------------------- Captured stderr setup -----------------------------
chown: cannot access '/var/log/dirsrv/slapd-standalone1/*': No such file or directory ------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.----------------------------- Captured stderr call -----------------------------
25+0 records in 25+0 records out 26214400 bytes (26 MB, 25 MiB) copied, 0.0132384 s, 2.0 GB/s dd: error writing '/var/log/dirsrv/slapd-standalone1/foo1': No space left on device 10+0 records in 9+0 records out 10465280 bytes (10 MB, 10 MiB) copied, 0.00509672 s, 2.1 GB/s
Passed suites/disk_monitoring/disk_monitoring_test.py::test_free_up_the_disk_space_and_change_ds_config 4.47
No log output captured.
Passed suites/disk_monitoring/disk_monitoring_test.py::test_verify_operation_with_nsslapd_disk_monitoring_logging_critical_off 34.63
----------------------------- Captured stderr call -----------------------------
10+0 records in 10+0 records out 10485760 bytes (10 MB, 10 MiB) copied, 0.00690388 s, 1.5 GB/s
Passed suites/disk_monitoring/disk_monitoring_test.py::test_operation_with_nsslapd_disk_monitoring_logging_critical_on_below_half_of_the_threshold 25.53
----------------------------- Captured stderr call -----------------------------
31+0 records in 31+0 records out 32505856 bytes (33 MB, 31 MiB) copied, 0.0169256 s, 1.9 GB/s
Passed suites/disk_monitoring/disk_monitoring_test.py::test_setting_nsslapd_disk_monitoring_logging_critical_to_off 4.15
No log output captured.
Passed suites/disk_monitoring/disk_monitoring_test.py::test_operation_with_nsslapd_disk_monitoring_logging_critical_off 82.06
----------------------------- Captured stderr call -----------------------------
10+0 records in 10+0 records out 10485760 bytes (10 MB, 10 MiB) copied, 0.0188376 s, 557 MB/s
Passed suites/disk_monitoring/disk_monitoring_test.py::test_operation_with_nsslapd_disk_monitoring_logging_critical_off_below_half_of_the_threshold 160.05
----------------------------- Captured stderr call -----------------------------
30+0 records in 30+0 records out 31457280 bytes (31 MB, 30 MiB) copied, 0.0385469 s, 816 MB/s
Passed suites/disk_monitoring/disk_monitoring_test.py::test_go_straight_below_half_of_the_threshold 108.24
----------------------------- Captured stderr call -----------------------------
31+0 records in 31+0 records out 32505856 bytes (33 MB, 31 MiB) copied, 0.0527443 s, 616 MB/s
Passed suites/disk_monitoring/disk_monitoring_test.py::test_go_straight_below_4kb 18.16
----------------------------- Captured stderr call -----------------------------
25+0 records in 25+0 records out 26214400 bytes (26 MB, 25 MiB) copied, 0.029346 s, 893 MB/s dd: error writing '/var/log/dirsrv/slapd-standalone1/foo1': No space left on device 10+0 records in 9+0 records out 10366976 bytes (10 MB, 9.9 MiB) copied, 0.01317 s, 787 MB/s
Passed suites/disk_monitoring/disk_monitoring_test.py::test_threshold_to_overflow_value 0.04
No log output captured.
Passed suites/disk_monitoring/disk_monitoring_test.py::test_threshold_is_reached_to_half 14.47
----------------------------- Captured stderr call -----------------------------
10+0 records in 10+0 records out 10485760 bytes (10 MB, 10 MiB) copied, 0.0100808 s, 1.0 GB/s
Passed suites/disk_monitoring/disk_monitoring_test.py::test_negagtive_parameterize[nsslapd-disk-monitoring-threshold--2] 0.00
No log output captured.
Passed suites/disk_monitoring/disk_monitoring_test.py::test_negagtive_parameterize[nsslapd-disk-monitoring-threshold-9223372036854775808] 0.00
No log output captured.
Passed suites/disk_monitoring/disk_monitoring_test.py::test_negagtive_parameterize[nsslapd-disk-monitoring-threshold-2047] 0.00
No log output captured.
Passed suites/disk_monitoring/disk_monitoring_test.py::test_negagtive_parameterize[nsslapd-disk-monitoring-threshold-0] 0.00
No log output captured.
Passed suites/disk_monitoring/disk_monitoring_test.py::test_negagtive_parameterize[nsslapd-disk-monitoring-threshold--1294967296] 0.00
No log output captured.
Passed suites/disk_monitoring/disk_monitoring_test.py::test_negagtive_parameterize[nsslapd-disk-monitoring-threshold-invalid] 0.00
No log output captured.
Passed suites/disk_monitoring/disk_monitoring_test.py::test_negagtive_parameterize[nsslapd-disk-monitoring-invalid] 0.00
No log output captured.
Passed suites/disk_monitoring/disk_monitoring_test.py::test_negagtive_parameterize[nsslapd-disk-monitoring-1] 0.00
No log output captured.
Passed suites/disk_monitoring/disk_monitoring_test.py::test_negagtive_parameterize[nsslapd-disk-monitoring-grace-period-00] 0.00
No log output captured.
Passed suites/disk_monitoring/disk_monitoring_test.py::test_negagtive_parameterize[nsslapd-disk-monitoring-grace-period-525 948] 0.00
No log output captured.
Passed suites/disk_monitoring/disk_monitoring_test.py::test_negagtive_parameterize[nsslapd-disk-monitoring-grace-period--10] 0.00
No log output captured.
Passed suites/disk_monitoring/disk_monitoring_test.py::test_negagtive_parameterize[nsslapd-disk-monitoring-logging-critical-oninvalid] 0.00
No log output captured.
Passed suites/disk_monitoring/disk_monitoring_test.py::test_negagtive_parameterize[nsslapd-disk-monitoring-grace-period--11] 0.00
No log output captured.
Passed suites/disk_monitoring/disk_monitoring_test.py::test_negagtive_parameterize[nsslapd-disk-monitoring-grace-period-01] 0.00
No log output captured.
Passed suites/disk_monitoring/disk_monitoring_test.py::test_valid_operations_are_permitted 4.23
No log output captured.
Passed suites/ds_logs/ds_logs_test.py::test_check_default 0.00
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
DEBUG tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:160 on
Passed suites/ds_logs/ds_logs_test.py::test_plugin_set_invalid 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:179 test_plugin_set_invalid - Expect to fail with junk value
Passed suites/ds_logs/ds_logs_test.py::test_log_plugin_on 4.52
------------------------------ Captured log call -------------------------------
INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:206 Bug 1273549 - Check access logs for millisecond, when attribute is ON INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:207 perform any ldap operation, which will trigger the logs INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:32 Adding 10 users INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:211 Restart the server to flush the logs INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:214 parse the access logs
Passed suites/ds_logs/ds_logs_test.py::test_log_plugin_off 13.31
------------------------------ Captured log call -------------------------------
INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:246 Bug 1273549 - Check access logs for missing millisecond, when attribute is OFF INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:248 test_log_plugin_off - set the configuration attribute to OFF INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:251 Restart the server to flush the logs INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:254 test_log_plugin_off - delete the previous access logs INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:260 Restart the server to flush the logs INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:263 check access log that microseconds are not present
Passed suites/ds_logs/ds_logs_test.py::test_internal_log_server_level_0 12.37
------------------------------ Captured log call -------------------------------
INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:287 Delete the previous access logs INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:290 Set nsslapd-plugin-logging to on INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:293 Configure access log level to 0 INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:297 Restart the server to flush the logs INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:301 Check if access log does not contain internal log of MOD operation INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:307 Check if the other internal operations are not present INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:311 Delete the previous access logs for the next test
Passed suites/ds_logs/ds_logs_test.py::test_internal_log_server_level_4 11.83
------------------------------ Captured log call -------------------------------
INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:337 Delete the previous access logs for the next test INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:340 Set nsslapd-plugin-logging to on INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:343 Configure access log level to 4 INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:347 Restart the server to flush the logs INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:351 Check if access log contains internal MOD operation in correct format INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:357 Check if the other internal operations have the correct format INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:361 Delete the previous access logs for the next test
Passed suites/ds_logs/ds_logs_test.py::test_internal_log_level_260 8.37
------------------------------ Captured log setup ------------------------------
INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:98 Enable automember plugin INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:102 Enable Referential Integrity plugin INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:106 Set nsslapd-plugin-logging to on INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:109 Restart the server INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:115 Configure access log level to 260 (4 + 256) INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:82 Renaming user INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:85 Delete the user INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:88 Delete automember entry, org. unit and group for the next test------------------------------ Captured log call -------------------------------
INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:396 Restart the server to flush the logs INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:400 Check the access logs for ADD operation of the user INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:416 Check the access logs for MOD operation of the user INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:429 Check the access logs for DEL operation of the user INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:440 Check if the other internal operations have the correct format INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:444 Delete the previous access logs for the next test
Passed suites/ds_logs/ds_logs_test.py::test_internal_log_level_131076 8.18
------------------------------ Captured log setup ------------------------------
INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:131 Configure access log level to 131076 (4 + 131072) INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:82 Renaming user INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:85 Delete the user INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:88 Delete automember entry, org. unit and group for the next test------------------------------ Captured log call -------------------------------
INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:480 Restart the server to flush the logs INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:484 Check the access logs for ADD operation of the user INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:500 Check the access logs for MOD operation of the user INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:513 Check the access logs for DEL operation of the user INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:524 Check if the other internal operations have the correct format INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:528 Delete the previous access logs for the next test
Passed suites/ds_logs/ds_logs_test.py::test_internal_log_level_516 8.36
------------------------------ Captured log setup ------------------------------
INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:123 Configure access log level to 516 (4 + 512) INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:82 Renaming user INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:85 Delete the user INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:88 Delete automember entry, org. unit and group for the next test------------------------------ Captured log call -------------------------------
INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:564 Restart the server to flush the logs INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:568 Check the access logs for ADD operation of the user INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:587 Check the access logs for MOD operation of the user INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:603 Check the access logs for DEL operation of the user INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:617 Check if the other internal operations have the correct format INFO tests.suites.ds_logs.ds_logs_test:ds_logs_test.py:621 Delete the previous access logs for the next test
Passed suites/ds_logs/regression_test.py::test_default_loglevel_stripped[24576] 0.01
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/ds_logs/regression_test.py::test_default_loglevel_stripped[16512] 0.02
No log output captured.
Passed suites/ds_logs/regression_test.py::test_default_loglevel_stripped[16385] 0.69
No log output captured.
Passed suites/ds_logs/regression_test.py::test_dse_config_loglevel_error 15.26
No log output captured.
Passed suites/ds_tools/logpipe_test.py::test_user_permissions 0.03
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. INFO tests.suites.ds_tools.logpipe_test:logpipe_test.py:32 Add system test user - dirsrv_testuser------------------------------ Captured log call -------------------------------
INFO tests.suites.ds_tools.logpipe_test:logpipe_test.py:68 Try to create a logpipe in the log directory with "-u" option specifying the user
Passed suites/ds_tools/replcheck_test.py::test_state 0.48
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:139 Creating replication topology. INFO lib389.topologies:topologies.py:153 Joining master master2 to master1 ... INFO lib389.replica:replica.py:1535 SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO lib389.replica:replica.py:1604 SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO lib389.topologies:topologies.py:161 Ensuring master master1 to master2 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO lib389.topologies:topologies.py:161 Ensuring master master2 to master1 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldaps://server.example.com:63701 to ldaps://server.example.com:63702 is working INFO tests.suites.ds_tools.replcheck_test:replcheck_test.py:101 Export LDAPTLS_CACERTDIR env variable for ds-replcheck INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldaps://server.example.com:63701 to ldaps://server.example.com:63702 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldaps://server.example.com:63702 to ldaps://server.example.com:63701 is working
Passed suites/ds_tools/replcheck_test.py::test_check_ruv 16.72
----------------------------- Captured stderr call -----------------------------
ldiffile: /tmp/export_master1.ldif ldiffile: /tmp/export_master2.ldif
Passed suites/ds_tools/replcheck_test.py::test_missing_entries 17.54
----------------------------- Captured stderr call -----------------------------
ldiffile: /tmp/export_master1.ldif ldiffile: /tmp/export_master2.ldif
Passed suites/ds_tools/replcheck_test.py::test_tombstones 17.85
----------------------------- Captured stderr call -----------------------------
ldiffile: /tmp/export_master1.ldif ldiffile: /tmp/export_master2.ldif
Passed suites/ds_tools/replcheck_test.py::test_conflict_entries 27.47
----------------------------- Captured stderr call -----------------------------
ldiffile: /tmp/export_master1.ldif ldiffile: /tmp/export_master2.ldif
Passed suites/dynamic_plugins/dynamic_plugins_test.py::test_acceptance 38.95
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:139 Creating replication topology. INFO lib389.topologies:topologies.py:153 Joining master master2 to master1 ... INFO lib389.replica:replica.py:1535 SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO lib389.replica:replica.py:1604 SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO lib389.topologies:topologies.py:161 Ensuring master master1 to master2 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO lib389.topologies:topologies.py:161 Ensuring master master2 to master1 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists------------------------------ Captured log call -------------------------------
INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working
Passed suites/dynamic_plugins/dynamic_plugins_test.py::test_memory_corruption 41.32
------------------------------ Captured log call -------------------------------
INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working
Passed suites/dynamic_plugins/dynamic_plugins_test.py::test_stress 515.60
------------------------------ Captured log call -------------------------------
INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working
Passed suites/filter/basic_filter_test.py::test_search_attr 0.07
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/filter/bitw_filter_test.py::test_bitwise_plugin_status 0.00
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/filter/bitw_filter_test.py::test_search_disabled_accounts 0.00
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_plugin_can_be_disabled 3.56
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_plugin_is_disabled 0.00
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_enabling_works_fine 4.54
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_all_together[(& (objectclass=testperson) (testUserAccountControl:1.2.840.113556.1.4.803:=513))-1] 0.00
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_all_together[(& (objectclass=testperson) (testUserAccountControl:1.2.840.113556.1.4.803:=16777216))-1] 0.00
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_all_together[(& (objectclass=testperson) (testUserAccountControl:1.2.840.113556.1.4.803:=8388608))-1] 0.00
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_all_together[(& (objectclass=testperson) (testUserAccountControl:1.2.840.113556.1.4.804:=5))-3] 0.00
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_all_together[(& (objectclass=testperson) (testUserAccountControl:1.2.840.113556.1.4.804:=8))-3] 0.00
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_all_together[(& (objectclass=testperson) (testUserAccountControl:1.2.840.113556.1.4.804:=7))-5] 0.00
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_all_together[(& (objectclass=testerperson) (testUserAccountControl:1.2.840.113556.1.4.804:=7))-0] 0.00
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_all_together[(& (objectclass=testperson) (&(testUserAccountControl:1.2.840.113556.1.4.803:=98536)(testUserAccountControl:1.2.840.113556.1.4.803:=912)))-0] 0.00
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_all_together[(& (objectclass=testperson) (&(testUserAccountControl:1.2.840.113556.1.4.804:=87)(testUserAccountControl:1.2.840.113556.1.4.804:=91)))-8] 0.01
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_all_together[(& (objectclass=testperson) (&(testUserAccountControl:1.2.840.113556.1.4.803:=89536)(testUserAccountControl:1.2.840.113556.1.4.804:=79)))-1] 0.00
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_all_together[(& (objectclass=testperson) (|(testUserAccountControl:1.2.840.113556.1.4.803:=89536)(testUserAccountControl:1.2.840.113556.1.4.804:=79)))-8] 0.00
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_all_together[(& (objectclass=testperson) (|(testUserAccountControl:1.2.840.113556.1.4.803:=89)(testUserAccountControl:1.2.840.113556.1.4.803:=536)))-0] 0.00
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_all_together[(& (objectclass=testperson) (testUserAccountControl:1.2.840.113556.1.4.803:=x))-13] 0.01
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_all_together[(& (objectclass=testperson) (testUserAccountControl:1.2.840.113556.1.4.803:=&\\*#$%))-13] 0.01
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_all_together[(& (objectclass=testperson) (testUserAccountControl:1.2.840.113556.1.4.803:=-65536))-0] 0.00
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_all_together[(& (objectclass=testperson) (testUserAccountControl:1.2.840.113556.1.4.803:=-1))-0] 0.00
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_all_together[(& (objectclass=testperson) (testUserAccountControl:1.2.840.113556.1.4.803:=-))-13] 0.01
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_all_together[(& (objectclass=testperson) (testUserAccountControl:1.2.840.113556.1.4.803:=))-13] 0.01
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_all_together[(& (objectclass=testperson) (testUserAccountControl:1.2.840.113556.1.4.803:=\\*))-13] 0.01
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_all_together[(& (objectclass=testperson) (testUserAccountControl:1.2.840.113556.1.4.804:=\\*))-0] 0.00
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_all_together[(& (objectclass=testperson) (testUserAccountControl:1.2.840.113556.1.4.803:=6552))-0] 0.00
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_all_together[(& (objectclass=testperson\\))(testUserAccountControl:1.2.840.113556.1.4.804:=6552))-0] 0.00
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_all_together[(& (objectclass=testperson) (testUserAccountControl:1.2.840.113556.1.4.803:=65536))-5] 0.00
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_5_entries 0.21
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_5_entries1 0.19
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_5_entries3 0.02
No log output captured.
Passed suites/filter/bitw_filter_test.py::test_5_entries4 0.02
No log output captured.
Passed suites/filter/complex_filters_test.py::test_filters[(&(uid=uid1)(sn=last1)(givenname=first1))-1] 0.01
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(&(uid=uid1)(sn=last1)(givenname=first1))"...
Passed suites/filter/complex_filters_test.py::test_filters[(&(uid=uid1)(&(sn=last1)(givenname=first1)))-1] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(&(uid=uid1)(&(sn=last1)(givenname=first1)))"...
Passed suites/filter/complex_filters_test.py::test_filters[(&(uid=uid1)(&(&(sn=last1))(&(givenname=first1))))-1] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(&(uid=uid1)(&(&(sn=last1))(&(givenname=first1))))"...
Passed suites/filter/complex_filters_test.py::test_filters[(&(uid=*)(sn=last3)(givenname=*))-1] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(&(uid=*)(sn=last3)(givenname=*))"...
Passed suites/filter/complex_filters_test.py::test_filters[(&(uid=*)(&(sn=last3)(givenname=*)))-1] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(&(uid=*)(&(sn=last3)(givenname=*)))"...
Passed suites/filter/complex_filters_test.py::test_filters[(&(uid=uid5)(&(&(sn=*))(&(givenname=*))))-1] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(&(uid=uid5)(&(&(sn=*))(&(givenname=*))))"...
Passed suites/filter/complex_filters_test.py::test_filters[(&(objectclass=*)(uid=*)(sn=last*))-5] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(&(objectclass=*)(uid=*)(sn=last*))"...
Passed suites/filter/complex_filters_test.py::test_filters[(&(objectclass=*)(uid=*)(sn=last1))-1] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(&(objectclass=*)(uid=*)(sn=last1))"...
Passed suites/filter/complex_filters_test.py::test_filters[(|(uid=uid1)(sn=last1)(givenname=first1))-1] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(|(uid=uid1)(sn=last1)(givenname=first1))"...
Passed suites/filter/complex_filters_test.py::test_filters[(|(uid=uid1)(|(sn=last1)(givenname=first1)))-1] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(|(uid=uid1)(|(sn=last1)(givenname=first1)))"...
Passed suites/filter/complex_filters_test.py::test_filters[(|(uid=uid1)(|(|(sn=last1))(|(givenname=first1))))-1] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(|(uid=uid1)(|(|(sn=last1))(|(givenname=first1))))"...
Passed suites/filter/complex_filters_test.py::test_filters[(|(objectclass=*)(sn=last1)(|(givenname=first1)))-14] 0.01
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(|(objectclass=*)(sn=last1)(|(givenname=first1)))"...
Passed suites/filter/complex_filters_test.py::test_filters[(|(&(objectclass=*)(sn=last1))(|(givenname=first1)))-1] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(|(&(objectclass=*)(sn=last1))(|(givenname=first1)))"...
Passed suites/filter/complex_filters_test.py::test_filters[(|(&(objectclass=*)(sn=last))(|(givenname=first1)))-1] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(|(&(objectclass=*)(sn=last))(|(givenname=first1)))"...
Passed suites/filter/complex_filters_test.py::test_filters[(&(uid=uid1)(!(cn=NULL)))-1] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(&(uid=uid1)(!(cn=NULL)))"...
Passed suites/filter/complex_filters_test.py::test_filters[(&(!(cn=NULL))(uid=uid1))-1] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(&(!(cn=NULL))(uid=uid1))"...
Passed suites/filter/complex_filters_test.py::test_filters[(&(uid=*)(&(!(uid=1))(!(givenname=first1))))-4] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(&(uid=*)(&(!(uid=1))(!(givenname=first1))))"...
Passed suites/filter/complex_filters_test.py::test_filters[(&(|(uid=uid1)(uid=NULL))(sn=last1))-1] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(&(|(uid=uid1)(uid=NULL))(sn=last1))"...
Passed suites/filter/complex_filters_test.py::test_filters[(&(|(uid=uid1)(uid=NULL))(!(sn=NULL)))-1] 0.01
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(&(|(uid=uid1)(uid=NULL))(!(sn=NULL)))"...
Passed suites/filter/complex_filters_test.py::test_filters[(&(|(uid=uid1)(sn=last2))(givenname=first1))-1] 0.19
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(&(|(uid=uid1)(sn=last2))(givenname=first1))"...
Passed suites/filter/complex_filters_test.py::test_filters[(|(&(uid=uid1)(!(uid=NULL)))(sn=last2))-2] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(|(&(uid=uid1)(!(uid=NULL)))(sn=last2))"...
Passed suites/filter/complex_filters_test.py::test_filters[(|(&(uid=uid1)(uid=NULL))(sn=last2))-1] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(|(&(uid=uid1)(uid=NULL))(sn=last2))"...
Passed suites/filter/complex_filters_test.py::test_filters[(&(uid=uid5)(sn=*)(cn=*)(givenname=*)(uid=u*)(sn=la*)(cn=full*)(givenname=f*)(uid>=u)(!(givenname=NULL)))-1] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(&(uid=uid5)(sn=*)(cn=*)(givenname=*)(uid=u*)(sn=la*)(cn=full*)(givenname=f*)(uid>=u)(!(givenname=NULL)))"...
Passed suites/filter/complex_filters_test.py::test_filters[(|(&(objectclass=*)(sn=last))(&(givenname=first1)))-1] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(|(&(objectclass=*)(sn=last))(&(givenname=first1)))"...
Passed suites/filter/complex_filters_test.py::test_filters[(&(uid=uid1)(sn=last1)(givenname=NULL))-0] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(&(uid=uid1)(sn=last1)(givenname=NULL))"...
Passed suites/filter/complex_filters_test.py::test_filters[(&(uid=uid1)(&(sn=last1)(givenname=NULL)))-0] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(&(uid=uid1)(&(sn=last1)(givenname=NULL)))"...
Passed suites/filter/complex_filters_test.py::test_filters[(&(uid=uid1)(&(&(sn=last1))(&(givenname=NULL))))-0] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(&(uid=uid1)(&(&(sn=last1))(&(givenname=NULL))))"...
Passed suites/filter/complex_filters_test.py::test_filters[(&(uid=uid1)(&(&(sn=last1))(&(givenname=NULL)(sn=*)))(|(sn=NULL)))-0] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(&(uid=uid1)(&(&(sn=last1))(&(givenname=NULL)(sn=*)))(|(sn=NULL)))"...
Passed suites/filter/complex_filters_test.py::test_filters[(&(uid=uid1)(&(&(sn=last*))(&(givenname=first*)))(&(sn=NULL)))-0] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(&(uid=uid1)(&(&(sn=last*))(&(givenname=first*)))(&(sn=NULL)))"...
Passed suites/filter/complex_filters_test.py::test_filters[(|(uid=NULL)(sn=NULL)(givenname=NULL))-0] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(|(uid=NULL)(sn=NULL)(givenname=NULL))"...
Passed suites/filter/complex_filters_test.py::test_filters[(|(uid=NULL)(|(sn=NULL)(givenname=NULL)))-0] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(|(uid=NULL)(|(sn=NULL)(givenname=NULL)))"...
Passed suites/filter/complex_filters_test.py::test_filters[(|(uid=NULL)(|(|(sn=NULL))(|(givenname=NULL))))-0] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(|(uid=NULL)(|(|(sn=NULL))(|(givenname=NULL))))"...
Passed suites/filter/complex_filters_test.py::test_filters[(|(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*))-5] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(|(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*)(uid=*))"...
Passed suites/filter/complex_filters_test.py::test_filters[(uid>=uid3)-3] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(uid>=uid3)"...
Passed suites/filter/complex_filters_test.py::test_filters[(&(uid=*)(uid>=uid3))-3] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(&(uid=*)(uid>=uid3))"...
Passed suites/filter/complex_filters_test.py::test_filters[(|(uid>=uid3)(uid<=uid5))-5] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(|(uid>=uid3)(uid<=uid5))"...
Passed suites/filter/complex_filters_test.py::test_filters[(&(uid>=uid3)(uid<=uid5))-3] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(&(uid>=uid3)(uid<=uid5))"...
Passed suites/filter/complex_filters_test.py::test_filters[(|(&(uid>=uid3)(uid<=uid5))(uid=*))-5] 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.complex_filters_test:complex_filters_test.py:121 Testing filter "(|(&(uid>=uid3)(uid<=uid5))(uid=*))"...
Passed suites/filter/filter_logic_test.py::test_eq 0.00
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/filter/filter_logic_test.py::test_sub 0.00
No log output captured.
Passed suites/filter/filter_logic_test.py::test_not_eq 0.00
No log output captured.
Passed suites/filter/filter_logic_test.py::test_ranges 0.01
No log output captured.
Passed suites/filter/filter_logic_test.py::test_and_eq 0.01
No log output captured.
Passed suites/filter/filter_logic_test.py::test_range 0.00
No log output captured.
Passed suites/filter/filter_logic_test.py::test_and_allid_shortcut 0.01
No log output captured.
Passed suites/filter/filter_logic_test.py::test_or_eq 0.01
No log output captured.
Passed suites/filter/filter_logic_test.py::test_and_not_eq 0.01
No log output captured.
Passed suites/filter/filter_logic_test.py::test_or_not_eq 0.00
No log output captured.
Passed suites/filter/filter_logic_test.py::test_and_range 0.02
No log output captured.
Passed suites/filter/filter_logic_test.py::test_or_range 0.01
No log output captured.
Passed suites/filter/filter_logic_test.py::test_and_and_eq 0.01
No log output captured.
Passed suites/filter/filter_logic_test.py::test_or_or_eq 0.01
No log output captured.
Passed suites/filter/filter_logic_test.py::test_and_or_eq 0.01
No log output captured.
Passed suites/filter/filter_logic_test.py::test_or_and_eq 0.01
No log output captured.
Passed suites/filter/filter_test.py::test_filter_escaped 0.10
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.filter_test:filter_test.py:42 Running test_filter_escaped... INFO tests.suites.filter.filter_test:filter_test.py:78 test_filter_escaped: PASSED
Passed suites/filter/filter_test.py::test_filter_search_original_attrs 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.filter_test:filter_test.py:95 Running test_filter_search_original_attrs... INFO tests.suites.filter.filter_test:filter_test.py:108 test_filter_search_original_attrs: PASSED
Passed suites/filter/filter_test.py::test_filter_scope_one 0.00
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.filter_test:filter_test.py:128 Search user using ldapsearch with scope one INFO tests.suites.filter.filter_test:filter_test.py:130 [dn: cn=Directory Administrators,dc=example,dc=com cn: Directory Administrators ] INFO tests.suites.filter.filter_test:filter_test.py:132 Search should only have one entry
Passed suites/filter/filter_test.py::test_filter_with_attribute_subtype 0.14
------------------------------ Captured log call -------------------------------
INFO lib389:filter_test.py:157 Bind as cn=Directory Manager INFO lib389:filter_test.py:164 ######################### ADD ###################### INFO lib389:filter_test.py:187 Try to add Add cn=test_entry both, dc=example,dc=com: dn: cn=test_entry both, dc=example,dc=com cn: test_entry both cn;en: test_entry en cn;fr: test_entry fr objectclass: top objectclass: person sn: test_entry both INFO lib389:filter_test.py:190 Try to add Add cn=test_entry en only, dc=example,dc=com: dn: cn=test_entry en only, dc=example,dc=com cn: test_entry en only cn;en: test_entry en objectclass: top objectclass: person sn: test_entry en only INFO lib389:filter_test.py:193 ######################### SEARCH ###################### INFO lib389:filter_test.py:197 Try to search with filter (&(sn=test_entry en only)(!(cn=test_entry fr))) INFO lib389:filter_test.py:201 Found cn=test_entry en only,dc=example,dc=com INFO lib389:filter_test.py:205 Try to search with filter (&(sn=test_entry en only)(!(cn;fr=test_entry fr))) INFO lib389:filter_test.py:209 Found cn=test_entry en only,dc=example,dc=com INFO lib389:filter_test.py:213 Try to search with filter (&(sn=test_entry en only)(!(cn;en=test_entry en))) INFO lib389:filter_test.py:216 Found none INFO lib389:filter_test.py:218 ######################### DELETE ###################### INFO lib389:filter_test.py:220 Try to delete cn=test_entry both, dc=example,dc=com INFO lib389:filter_test.py:223 Try to delete cn=test_entry en only, dc=example,dc=com INFO tests.suites.filter.filter_test:filter_test.py:226 Testcase PASSED
Passed suites/filter/filter_test.py::test_extended_search 0.03
------------------------------ Captured log call -------------------------------
INFO tests.suites.filter.filter_test:filter_test.py:254 Running test_filter_escaped... INFO lib389:filter_test.py:271 Try to search with filter (cn:de:=ext-test-entry) INFO lib389:filter_test.py:277 Try to search with filter (cn:caseIgnoreIA5Match:=EXT-TEST-ENTRY) INFO lib389:filter_test.py:283 Try to search with filter (cn:caseIgnoreMatch:=EXT-TEST-ENTRY) INFO lib389:filter_test.py:289 Try to search with filter (cn:caseExactMatch:=EXT-TEST-ENTRY) INFO lib389:filter_test.py:295 Try to search with filter (cn:caseExactMatch:=ext-test-entry) INFO lib389:filter_test.py:301 Try to search with filter (cn:caseExactIA5Match:=EXT-TEST-ENTRY) INFO lib389:filter_test.py:307 Try to search with filter (cn:caseExactIA5Match:=ext-test-entry)
Passed suites/filter/filterscanlimit_test.py::test_idlistscanlimit 9.77
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/filter/rfc3673_all_oper_attrs_test.py::test_supported_features 0.00
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-False-oper_attr_list0] 0.11
------------------------------ Captured log call -------------------------------
INFO lib389.utils:rfc3673_all_oper_attrs_test.py:146 bound as: cn=Directory Manager
Passed suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-False-oper_attr_list0-*] 0.12
------------------------------ Captured log call -------------------------------
INFO lib389.utils:rfc3673_all_oper_attrs_test.py:146 bound as: cn=Directory Manager
Passed suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-False-oper_attr_list0-objectClass] 0.12
------------------------------ Captured log call -------------------------------
INFO lib389.utils:rfc3673_all_oper_attrs_test.py:146 bound as: cn=Directory Manager
Passed suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-True-oper_attr_list1] 0.03
------------------------------ Captured log call -------------------------------
INFO lib389.utils:rfc3673_all_oper_attrs_test.py:143 bound as: uid=all_attrs_test,ou=people,dc=example,dc=com
Passed suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-True-oper_attr_list1-*] 0.03
------------------------------ Captured log call -------------------------------
INFO lib389.utils:rfc3673_all_oper_attrs_test.py:143 bound as: uid=all_attrs_test,ou=people,dc=example,dc=com
Passed suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-True-oper_attr_list1-objectClass] 0.03
------------------------------ Captured log call -------------------------------
INFO lib389.utils:rfc3673_all_oper_attrs_test.py:143 bound as: uid=all_attrs_test,ou=people,dc=example,dc=com
Passed suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-False-oper_attr_list2] 0.11
------------------------------ Captured log call -------------------------------
INFO lib389.utils:rfc3673_all_oper_attrs_test.py:146 bound as: cn=Directory Manager
Passed suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-False-oper_attr_list2-*] 0.11
------------------------------ Captured log call -------------------------------
INFO lib389.utils:rfc3673_all_oper_attrs_test.py:146 bound as: cn=Directory Manager
Passed suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-False-oper_attr_list2-objectClass] 0.11
------------------------------ Captured log call -------------------------------
INFO lib389.utils:rfc3673_all_oper_attrs_test.py:146 bound as: cn=Directory Manager
Passed suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-True-oper_attr_list3] 0.03
------------------------------ Captured log call -------------------------------
INFO lib389.utils:rfc3673_all_oper_attrs_test.py:143 bound as: uid=all_attrs_test,ou=people,dc=example,dc=com
Passed suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-True-oper_attr_list3-*] 0.03
------------------------------ Captured log call -------------------------------
INFO lib389.utils:rfc3673_all_oper_attrs_test.py:143 bound as: uid=all_attrs_test,ou=people,dc=example,dc=com
Passed suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-True-oper_attr_list3-objectClass] 0.03
------------------------------ Captured log call -------------------------------
INFO lib389.utils:rfc3673_all_oper_attrs_test.py:143 bound as: uid=all_attrs_test,ou=people,dc=example,dc=com
Passed suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-False-oper_attr_list4] 0.11
------------------------------ Captured log call -------------------------------
INFO lib389.utils:rfc3673_all_oper_attrs_test.py:146 bound as: cn=Directory Manager
Passed suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-False-oper_attr_list4-*] 0.11
------------------------------ Captured log call -------------------------------
INFO lib389.utils:rfc3673_all_oper_attrs_test.py:146 bound as: cn=Directory Manager
Passed suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-False-oper_attr_list4-objectClass] 0.11
------------------------------ Captured log call -------------------------------
INFO lib389.utils:rfc3673_all_oper_attrs_test.py:146 bound as: cn=Directory Manager
Passed suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-True-oper_attr_list5] 0.03
------------------------------ Captured log call -------------------------------
INFO lib389.utils:rfc3673_all_oper_attrs_test.py:143 bound as: uid=all_attrs_test,ou=people,dc=example,dc=com
Passed suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-True-oper_attr_list5-*] 0.03
------------------------------ Captured log call -------------------------------
INFO lib389.utils:rfc3673_all_oper_attrs_test.py:143 bound as: uid=all_attrs_test,ou=people,dc=example,dc=com
Passed suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-True-oper_attr_list5-objectClass] 0.03
------------------------------ Captured log call -------------------------------
INFO lib389.utils:rfc3673_all_oper_attrs_test.py:143 bound as: uid=all_attrs_test,ou=people,dc=example,dc=com
Passed suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[cn=config-False-oper_attr_list6] 0.11
------------------------------ Captured log call -------------------------------
INFO lib389.utils:rfc3673_all_oper_attrs_test.py:146 bound as: cn=Directory Manager
Passed suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[cn=config-False-oper_attr_list6-*] 0.12
------------------------------ Captured log call -------------------------------
INFO lib389.utils:rfc3673_all_oper_attrs_test.py:146 bound as: cn=Directory Manager
Passed suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[cn=config-False-oper_attr_list6-objectClass] 0.11
------------------------------ Captured log call -------------------------------
INFO lib389.utils:rfc3673_all_oper_attrs_test.py:146 bound as: cn=Directory Manager
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(& (| (nsRoleDN=cn=new managed role) (sn=Hall)) (l=sunnyvale))-condition0-cn] 0.01
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(& (| (nsRoleDN=cn=new managed role) (sn=Hall)) (l=sunnyvale))-condition1-cn] 0.01
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(& (| (nsRoleDN=cn=new managed role) (sn=Hall)) (l=sunnyvale))-condition2-cn] 0.01
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(& (| (nsRoleDN=cn=new managed role) (sn=Hall)) (l=sunnyvale))-condition3-cn] 0.01
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(& (| (nsRoleDN=cn=new managed role) (sn=Hall)) (l=sunnyvale))-condition4-modifiersName] 0.01
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(& (| (nsRoleDN=cn=new managed role) (sn=Hall)) (l=sunnyvale))-condition5-modifyTimestamp] 0.01
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(& (| (nsRoleDN=cn=new managed role) (sn=Hall)) (l=sunnyvale))-condition6-modifiersName] 0.01
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(& (| (nsRoleDN=cn=new managed role) (sn=Hall)) (l=sunnyvale))-condition7-modifyTimestamp] 0.01
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(& (| (nsRoleDN=cn=new managed role) (sn=Hall)) (l=sunnyvale))-condition8-modifiersName] 0.01
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(& (| (nsRoleDN=cn=new managed role) (sn=Hall)) (l=sunnyvale))-condition9-modifyTimestamp] 0.01
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(& (| (nsRoleDN=cn=new managed role) (sn=Hall)) (l=sunnyvale))-condition10-cn] 0.01
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(& (| (nsRoleDN=cn=new managed role) (sn=Hall)) (l=sunnyvale))-condition11-cn] 0.01
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(& (| (nsRoleDN=cn=new managed role) (sn=Hall)) (l=sunnyvale))-condition12-modifiersName] 0.01
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(& (| (nsRoleDN=cn=new managed role) (sn=Hall)) (l=sunnyvale))-condition13-nsRoleDN] 0.01
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(& (| (nsRoleDN=cn=new managed role) (sn=Hall)) (l=sunnyvale))-condition14-cn] 0.01
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(& (| (nsRoleDN=cn=new managed role) (sn=Hall)) (l=sunnyvale))-condition15-modifiersName] 0.01
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(& (| (nsRoleDN=cn=new managed role) (sn=Hall)) (l=sunnyvale))-condition16-nsRoleDN] 0.01
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(uid=rjense2)-condition17-mailquota] 0.01
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(uid=rjense2)-condition18-mailquota] 0.00
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(uid=rjense2)-condition19-mailquota] 0.00
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(uid=rjense2)-condition20-mailquota] 0.00
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(uid=rjense2)-condition21-nsRoleDN] 0.01
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(nsRoleDN=cn=new managed *)-condition22-cn] 0.01
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(nsRoleDN=cn=new managed *)-condition23-nsRoleDN] 0.01
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(& (nsRoleDN=cn=new managed *) (uid=mtyler))-condition24-mailquota] 0.01
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(& (nsRoleDN=cn=new managed *) (uid=mtyler))-condition25-nsRoleDN] 0.00
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(& (nsRoleDN=cn=new managed *) (uid=mtyler))-condition26-mailquota] 0.00
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(& (nsRoleDN=cn=new managed *) (uid=mtyler))-condition27-modifiersName] 0.01
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(& (nsRoleDN=cn=new managed *) (uid=mtyler))-condition28-nsRoleDN] 0.00
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(& (nsRoleDN=cn=new managed *) (uid=mtyler))-condition29-nsRoleDN] 0.00
No log output captured.
Passed suites/filter/vfilter_attribute_test.py::test_all_together_positive[(& (nsRoleDN=cn=new managed *) (uid=mtyler))-condition30-modifiersName] 0.00
No log output captured.
Passed suites/fourwaymmr/fourwaymmr_test.py::test_verify_trees 3.04
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39003, 'ldap-secureport': 63703, 'server-id': 'master3', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39004, 'ldap-secureport': 63704, 'server-id': 'master4', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:139 Creating replication topology. INFO lib389.topologies:topologies.py:153 Joining master master2 to master1 ... INFO lib389.replica:replica.py:1535 SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO lib389.replica:replica.py:1604 SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO lib389.topologies:topologies.py:153 Joining master master3 to master1 ... INFO lib389.replica:replica.py:1535 SUCCESS: bootstrap to ldap://server.example.com:39003 completed INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39003 is was created INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39003 to ldap://server.example.com:39001 is was created INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39003 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39003 to ldap://server.example.com:39001 is working INFO lib389.replica:replica.py:1604 SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39003 INFO lib389.topologies:topologies.py:153 Joining master master4 to master1 ... INFO lib389.replica:replica.py:1535 SUCCESS: bootstrap to ldap://server.example.com:39004 completed INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39004 is was created INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39004 to ldap://server.example.com:39001 is was created INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39004 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39004 to ldap://server.example.com:39001 is working INFO lib389.replica:replica.py:1604 SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39004 INFO lib389.topologies:topologies.py:161 Ensuring master master1 to master2 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO lib389.topologies:topologies.py:161 Ensuring master master1 to master3 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39003 already exists INFO lib389.topologies:topologies.py:161 Ensuring master master1 to master4 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39004 already exists INFO lib389.topologies:topologies.py:161 Ensuring master master2 to master1 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists INFO lib389.topologies:topologies.py:161 Ensuring master master2 to master3 ... INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39003 is was created INFO lib389.topologies:topologies.py:161 Ensuring master master2 to master4 ... INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39004 is was created INFO lib389.topologies:topologies.py:161 Ensuring master master3 to master1 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39003 to ldap://server.example.com:39001 already exists INFO lib389.topologies:topologies.py:161 Ensuring master master3 to master2 ... INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39003 to ldap://server.example.com:39002 is was created INFO lib389.topologies:topologies.py:161 Ensuring master master3 to master4 ... INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39003 to ldap://server.example.com:39004 is was created INFO lib389.topologies:topologies.py:161 Ensuring master master4 to master1 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39004 to ldap://server.example.com:39001 already exists INFO lib389.topologies:topologies.py:161 Ensuring master master4 to master2 ... INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39004 to ldap://server.example.com:39002 is was created INFO lib389.topologies:topologies.py:161 Ensuring master master4 to master3 ... INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39004 to ldap://server.example.com:39003 is was created------------------------------ Captured log call -------------------------------
INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39003 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39004 is working
Passed suites/fourwaymmr/fourwaymmr_test.py::test_sync_through_to_all_4_masters 3.03
------------------------------ Captured log call -------------------------------
INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39003 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39004 is working
Passed suites/fourwaymmr/fourwaymmr_test.py::test_modify_some_data_in_m3 8.16
------------------------------ Captured log call -------------------------------
INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39003 to ldap://server.example.com:39001 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39003 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39003 to ldap://server.example.com:39004 is working
Passed suites/fourwaymmr/fourwaymmr_test.py::test_delete_a_few_entries_in_m4 7.10
------------------------------ Captured log call -------------------------------
INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39004 to ldap://server.example.com:39001 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39004 to ldap://server.example.com:39001 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39004 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39004 to ldap://server.example.com:39003 is working
Passed suites/fourwaymmr/fourwaymmr_test.py::test_replicated_multivalued_entries 1.07
------------------------------ Captured log call -------------------------------
INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39004 to ldap://server.example.com:39001 is working
Passed suites/fourwaymmr/fourwaymmr_test.py::test_bad_replication_agreement 24.98
No log output captured.
Passed suites/fourwaymmr/fourwaymmr_test.py::test_nsds5replicaenabled_verify 69.05
------------------------------ Captured log call -------------------------------
INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working
Passed suites/fourwaymmr/fourwaymmr_test.py::test_create_an_entry_on_the_supplier 3.30
No log output captured.
Passed suites/fourwaymmr/fourwaymmr_test.py::test_bob_acceptance_tests 6.71
------------------------------ Captured log call -------------------------------
INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working
Passed suites/fourwaymmr/fourwaymmr_test.py::test_replica_backup_and_restore 29.15
----------------------------- Captured stderr call -----------------------------
ldiffile: /tmp/output_file [29/May/2019:19:56:45.827532840 -0400] - INFO - slapd_exemode_ldif2db - Backend Instance: userRoot ------------------------------ Captured log call -------------------------------
INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working
Passed suites/get_effective_rights/acceptance_test.py::test_group_aci_entry_exists 0.02
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. INFO tests.suites.get_effective_rights.acceptance_test:acceptance_test.py:30 Adding user testuser------------------------------ Captured log call -------------------------------
INFO tests.suites.get_effective_rights.acceptance_test:acceptance_test.py:57 Adding group group1 INFO tests.suites.get_effective_rights.acceptance_test:acceptance_test.py:70 Add an ACI granting add access to a user matching the groupdn INFO lib389:acceptance_test.py:79 dn: uid=testuser,dc=example,dc=com INFO lib389:acceptance_test.py:81 ######## entryLevelRights: b'vadn'
Passed suites/get_effective_rights/acceptance_test.py::test_group_aci_template_entry 0.01
------------------------------ Captured log call -------------------------------
INFO tests.suites.get_effective_rights.acceptance_test:acceptance_test.py:105 Add an ACI granting add access to a user matching the userdn INFO lib389:acceptance_test.py:115 dn: cn=template_person_objectclass,dc=example,dc=com INFO lib389:acceptance_test.py:117 ######## entryLevelRights: b'vadn' INFO lib389:acceptance_test.py:120 dn: cn=template_groupofnames_objectclass,dc=example,dc=com INFO lib389:acceptance_test.py:122 ######## entryLevelRights: b'v'
Passed suites/gssapi/simple_gssapi_test.py::test_gssapi_bind 0.25
---------------------------- Captured stdout setup -----------------------------
Kerberos master password: rbM6j07W3fDsLfliz6d6b.wsHysOvkFJxC3n5Nv1CFXg0Gxm58ch.p4qjoe6GFvlZ Loading random data Initializing database '/var/kerberos/krb5kdc/principal' for realm 'EXAMPLE.COM', master key name 'K/M@EXAMPLE.COM' Authenticating as principal root/admin@EXAMPLE.COM with password. Principal "ldap/server.example.com@EXAMPLE.COM" created. Authenticating as principal root/admin@EXAMPLE.COM with password. K/M@EXAMPLE.COM kadmin/admin@EXAMPLE.COM kadmin/changepw@EXAMPLE.COM kadmin/server.example.com@EXAMPLE.COM kiprop/server.example.com@EXAMPLE.COM krbtgt/EXAMPLE.COM@EXAMPLE.COM ldap/server.example.com@EXAMPLE.COM Authenticating as principal root/admin@EXAMPLE.COM with password. Entry for principal ldap/server.example.com@EXAMPLE.COM with kvno 2, encryption type aes256-cts-hmac-sha1-96 added to keytab WRFILE:/etc/krb5.keytab. Entry for principal ldap/server.example.com@EXAMPLE.COM with kvno 2, encryption type aes128-cts-hmac-sha1-96 added to keytab WRFILE:/etc/krb5.keytab. Authenticating as principal root/admin@EXAMPLE.COM with password. Principal "testuser@EXAMPLE.COM" created. Authenticating as principal root/admin@EXAMPLE.COM with password. K/M@EXAMPLE.COM kadmin/admin@EXAMPLE.COM kadmin/changepw@EXAMPLE.COM kadmin/server.example.com@EXAMPLE.COM kiprop/server.example.com@EXAMPLE.COM krbtgt/EXAMPLE.COM@EXAMPLE.COM ldap/server.example.com@EXAMPLE.COM testuser@EXAMPLE.COM Authenticating as principal root/admin@EXAMPLE.COM with password. Entry for principal testuser@EXAMPLE.COM with kvno 2, encryption type aes256-cts-hmac-sha1-96 added to keytab WRFILE:/tmp/testuser.keytab. Entry for principal testuser@EXAMPLE.COM with kvno 2, encryption type aes128-cts-hmac-sha1-96 added to keytab WRFILE:/tmp/testuser.keytab. ---------------------------- Captured stderr setup -----------------------------
WARNING: no policy specified for ldap/server.example.com@EXAMPLE.COM; defaulting to no policy WARNING: no policy specified for testuser@EXAMPLE.COM; defaulting to no policy ------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/gssapi/simple_gssapi_test.py::test_invalid_sasl_map 0.20
No log output captured.
Passed suites/gssapi/simple_gssapi_test.py::test_missing_user 0.98
----------------------------- Captured stdout call -----------------------------
Authenticating as principal testuser/admin@EXAMPLE.COM with password. Principal "doesnotexist@EXAMPLE.COM" created. Authenticating as principal testuser/admin@EXAMPLE.COM with password. K/M@EXAMPLE.COM doesnotexist@EXAMPLE.COM kadmin/admin@EXAMPLE.COM kadmin/changepw@EXAMPLE.COM kadmin/server.example.com@EXAMPLE.COM kiprop/server.example.com@EXAMPLE.COM krbtgt/EXAMPLE.COM@EXAMPLE.COM ldap/server.example.com@EXAMPLE.COM testuser@EXAMPLE.COM Authenticating as principal testuser/admin@EXAMPLE.COM with password. Entry for principal doesnotexist@EXAMPLE.COM with kvno 2, encryption type aes256-cts-hmac-sha1-96 added to keytab WRFILE:/tmp/doesnotexist.keytab. Entry for principal doesnotexist@EXAMPLE.COM with kvno 2, encryption type aes128-cts-hmac-sha1-96 added to keytab WRFILE:/tmp/doesnotexist.keytab. ----------------------------- Captured stderr call -----------------------------
WARNING: no policy specified for doesnotexist@EXAMPLE.COM; defaulting to no policy
Passed suites/gssapi/simple_gssapi_test.py::test_support_mech 0.19
No log output captured.
Passed suites/gssapi/simple_gssapi_test.py::test_rejected_mech 0.19
No log output captured.
Passed suites/gssapi_repl/gssapi_repl_test.py::test_gssapi_repl 0.00
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:139 Creating replication topology. INFO lib389.topologies:topologies.py:153 Joining master master2 to master1 ... INFO lib389.replica:replica.py:1535 SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO lib389.replica:replica.py:1604 SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO lib389.topologies:topologies.py:161 Ensuring master master1 to master2 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO lib389.topologies:topologies.py:161 Ensuring master master2 to master1 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists
Passed suites/import/regression_test.py::test_import_be_default 6.22
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
INFO tests.suites.import.regression_test:regression_test.py:51 Adding suffix:dc=default,dc=com and backend: default... INFO tests.suites.import.regression_test:regression_test.py:56 Create LDIF file and import it... INFO tests.suites.import.regression_test:regression_test.py:61 Stopping the server and running offline import... INFO tests.suites.import.regression_test:regression_test.py:67 Verifying entry count after import... INFO tests.suites.import.regression_test:regression_test.py:73 Test PASSED
Passed suites/import/regression_test.py::test_del_suffix_import 5.82
------------------------------ Captured log call -------------------------------
INFO tests.suites.import.regression_test:regression_test.py:90 Adding suffix:dc=importest1,dc=com and backend: importest1 INFO tests.suites.import.regression_test:regression_test.py:95 Create LDIF file and import it INFO tests.suites.import.regression_test:regression_test.py:101 Stopping the server and running offline import INFO tests.suites.import.regression_test:regression_test.py:106 Deleting suffix-dc=importest2,dc=com INFO tests.suites.import.regression_test:regression_test.py:109 Adding the same database-importest1 after deleting it
Passed suites/import/regression_test.py::test_del_suffix_backend 8.03
------------------------------ Captured log call -------------------------------
INFO tests.suites.import.regression_test:regression_test.py:128 Adding suffix:dc=importest2,dc=com and backend: importest2 INFO tests.suites.import.regression_test:regression_test.py:133 Create LDIF file and import it INFO lib389:tasks.py:437 Import task import_05292019_195806 for file /var/lib/dirsrv/slapd-standalone1/ldif/suffix_del2.ldif completed successfully INFO tests.suites.import.regression_test:regression_test.py:141 Deleting suffix-dc=importest2,dc=com INFO tests.suites.import.regression_test:regression_test.py:144 Adding the same database-importest2 after deleting it INFO tests.suites.import.regression_test:regression_test.py:147 Checking if server can be restarted after re-adding the same database
Passed suites/lib389/config_compare_test.py::test_config_compare 0.01
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38902, 'ldap-secureport': 63602, 'server-id': 'standalone2', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/lib389/dsldapobject/dn_construct_test.py::test_mul_explicit_rdn 0.01
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/lib389/dsldapobject/dn_construct_test.py::test_mul_derive_single_dn 0.12
No log output captured.
Passed suites/lib389/dsldapobject/dn_construct_test.py::test_mul_derive_mult_dn 0.01
No log output captured.
Passed suites/lib389/dsldapobject/dn_construct_test.py::test_sin_explicit_dn 0.01
No log output captured.
Passed suites/lib389/dsldapobject/dn_construct_test.py::test_sin_explicit_rdn 0.01
No log output captured.
Passed suites/lib389/dsldapobject/dn_construct_test.py::test_sin_derive_single_dn 0.01
No log output captured.
Passed suites/lib389/dsldapobject/dn_construct_test.py::test_sin_derive_mult_dn 0.01
No log output captured.
Passed suites/lib389/dsldapobject/dn_construct_test.py::test_sin_invalid_no_basedn 0.00
No log output captured.
Passed suites/lib389/dsldapobject/dn_construct_test.py::test_sin_invalid_no_rdn 0.00
No log output captured.
Passed suites/lib389/dsldapobject/dn_construct_test.py::test_sin_non_present_rdn 0.02
No log output captured.
Passed suites/lib389/idm/user_compare_i2_test.py::test_user_compare_i2 0.06
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38902, 'ldap-secureport': 63602, 'server-id': 'standalone2', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/lib389/idm/user_compare_m2Repl_test.py::test_user_compare_m2Repl 1.06
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:139 Creating replication topology. INFO lib389.topologies:topologies.py:153 Joining master master2 to master1 ... INFO lib389.replica:replica.py:1535 SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO lib389.replica:replica.py:1604 SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO lib389.topologies:topologies.py:161 Ensuring master master1 to master2 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO lib389.topologies:topologies.py:161 Ensuring master master2 to master1 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists------------------------------ Captured log call -------------------------------
INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working
Passed suites/lib389/idm/user_compare_st_test.py::test_user_compare 0.05
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/mapping_tree/referral_during_tot_init_test.py::test_referral_during_tot 8.24
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:139 Creating replication topology. INFO lib389.topologies:topologies.py:153 Joining master master2 to master1 ... INFO lib389.replica:replica.py:1535 SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO lib389.replica:replica.py:1604 SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO lib389.topologies:topologies.py:161 Ensuring master master1 to master2 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO lib389.topologies:topologies.py:161 Ensuring master master2 to master1 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists----------------------------- Captured stderr call -----------------------------
[29/May/2019:19:59:46.954305543 -0400] - INFO - slapd_exemode_ldif2db - Backend Instance: userRoot
Passed suites/memberof_plugin/regression_test.py::test_memberof_with_repl 96.18
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39101, 'ldap-secureport': 63801, 'server-id': 'hub1', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39201, 'ldap-secureport': 63901, 'server-id': 'consumer1', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:471 Creating replication topology. INFO lib389.replica:replica.py:1535 SUCCESS: bootstrap to ldap://server.example.com:39101 completed INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39101 is was created INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39101 is working INFO lib389.replica:replica.py:1662 SUCCESS: joined consumer from ldap://server.example.com:39001 to ldap://server.example.com:39101 INFO lib389.replica:replica.py:1535 SUCCESS: bootstrap to ldap://server.example.com:39201 completed INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39101 to ldap://server.example.com:39201 is was created INFO lib389.replica:replica.py:1719 SUCCESS: joined consumer from ldap://server.example.com:39101 to ldap://server.example.com:39201 INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39201 is working------------------------------ Captured log call -------------------------------
INFO tests.suites.memberof_plugin.regression_test:regression_test.py:77 update cn=101,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config to add nsDS5ReplicatedAttributeListTotal INFO tests.suites.memberof_plugin.regression_test:regression_test.py:77 update cn=201,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config to add nsDS5ReplicatedAttributeListTotal
Passed suites/memberof_plugin/regression_test.py::test_scheme_violation_errors_logged 3.82
---------------------------- Captured stdout setup -----------------------------
Instance slapd-master1 removed. ------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:139 Creating replication topology. INFO lib389.topologies:topologies.py:153 Joining master master2 to master1 ... INFO lib389.replica:replica.py:1535 SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO lib389.replica:replica.py:1816 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO lib389.replica:replica.py:1604 SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO lib389.topologies:topologies.py:161 Ensuring master master1 to master2 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO lib389.topologies:topologies.py:161 Ensuring master master2 to master1 ... INFO lib389.replica:replica.py:1789 SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists------------------------------ Captured log call -------------------------------
INFO tests.suites.memberof_plugin.regression_test:regression_test.py:318 memberOf attr value - cn=group1,ou=Groups,dc=example,dc=com INFO tests.suites.memberof_plugin.regression_test:regression_test.py:321 pattern = .*oc_check_allowed_sv.*uid=user_,ou=People,dc=example,dc=com.*memberOf.*not allowed.*
Passed suites/memberof_plugin/regression_test.py::test_memberof_with_changelog_reset 64.19
------------------------------ Captured log call -------------------------------
INFO tests.suites.memberof_plugin.regression_test:regression_test.py:353 Configure memberof on M1 and M2 INFO tests.suites.memberof_plugin.regression_test:regression_test.py:364 On M1, add 999 test entries allowing memberof INFO tests.suites.memberof_plugin.regression_test:regression_test.py:51 Adding 999 users INFO tests.suites.memberof_plugin.regression_test:regression_test.py:367 On M1, add a group with these 999 entries as members INFO tests.suites.memberof_plugin.regression_test:regression_test.py:375 Adding the test group using async function INFO tests.suites.memberof_plugin.regression_test:regression_test.py:385 Check the log messages for error INFO tests.suites.memberof_plugin.regression_test:regression_test.py:389 Check that the replication is working fine both ways, M1 <-> M2 INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO lib389.replica:replica.py:1947 SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working
Passed suites/memberof_plugin/regression_test.py::test_memberof_group 4.72
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
INFO tests.suites.memberof_plugin.regression_test:regression_test.py:480 Enable memberof plugin and set the scope as cn=sub1,dc=example,dc=com INFO lib389:regression_test.py:439 !!!!!!! uid=test_m1,cn=sub1,dc=example,dc=com: memberof->b'cn=g1,cn=sub1,dc=example,dc=com' INFO lib389:regression_test.py:439 !!!!!!! uid=test_m2,cn=sub1,dc=example,dc=com: memberof->b'cn=g1,cn=sub1,dc=example,dc=com' INFO lib389:regression_test.py:439 !!!!!!! uid=test_m1,cn=sub1,dc=example,dc=com: memberof->b'cn=g1,cn=sub1,dc=example,dc=com' INFO lib389:regression_test.py:439 !!!!!!! uid=test_m2,cn=sub1,dc=example,dc=com: memberof->b'cn=g1,cn=sub1,dc=example,dc=com' CRITICAL tests.suites.memberof_plugin.regression_test:regression_test.py:426 Renaming user (cn=g2,cn=sub2,dc=example,dc=com): new cn=g2-new INFO lib389:regression_test.py:439 !!!!!!! uid=test_m1,cn=sub1,dc=example,dc=com: memberof->b'cn=g1,cn=sub1,dc=example,dc=com' INFO lib389:regression_test.py:439 !!!!!!! uid=test_m2,cn=sub1,dc=example,dc=com: memberof->b'cn=g1,cn=sub1,dc=example,dc=com' INFO lib389:regression_test.py:439 !!!!!!! uid=test_m1,cn=sub1,dc=example,dc=com: memberof->b'cn=g1,cn=sub1,dc=example,dc=com' INFO lib389:regression_test.py:439 !!!!!!! uid=test_m1,cn=sub1,dc=example,dc=com: memberof->b'cn=g2-new,cn=sub1,dc=example,dc=com' INFO lib389:regression_test.py:439 !!!!!!! uid=test_m2,cn=sub1,dc=example,dc=com: memberof->b'cn=g1,cn=sub1,dc=example,dc=com' INFO lib389:regression_test.py:439 !!!!!!! uid=test_m2,cn=sub1,dc=example,dc=com: memberof->b'cn=g2-new,cn=sub1,dc=example,dc=com'
Passed suites/memberof_plugin/regression_test.py::test_entrycache_on_modrdn_failure 9.44
------------------------------ Captured log call -------------------------------
CRITICAL tests.suites.memberof_plugin.regression_test:regression_test.py:574 Adding user (cn=user0,ou=people,dc=example,dc=com): CRITICAL tests.suites.memberof_plugin.regression_test:regression_test.py:574 Adding user (cn=user1,ou=people,dc=example,dc=com): CRITICAL tests.suites.memberof_plugin.regression_test:regression_test.py:574 Adding user (cn=user2,ou=people,dc=example,dc=com): CRITICAL tests.suites.memberof_plugin.regression_test:regression_test.py:574 Adding user (cn=user3,ou=people,dc=example,dc=com): CRITICAL tests.suites.memberof_plugin.regression_test:regression_test.py:574 Adding user (cn=user4,ou=people,dc=example,dc=com): CRITICAL tests.suites.memberof_plugin.regression_test:regression_test.py:574 Adding user (cn=user5,ou=people,dc=example,dc=com): CRITICAL tests.suites.memberof_plugin.regression_test:regression_test.py:574 Adding user (cn=user6,ou=people,dc=example,dc=com): CRITICAL tests.suites.memberof_plugin.regression_test:regression_test.py:574 Adding user (cn=user7,ou=people,dc=example,dc=com): CRITICAL tests.suites.memberof_plugin.regression_test:regression_test.py:574 Adding user (cn=user8,ou=people,dc=example,dc=com): CRITICAL tests.suites.memberof_plugin.regression_test:regression_test.py:574 Adding user (cn=user9,ou=people,dc=example,dc=com): INFO lib389:regression_test.py:595 !!!!!!! cn=user0,ou=people,dc=example,dc=com: memberof->b'cn=group_in0,ou=People,dc=example,dc=com' (vs b'cn=group_in0,ou=people,dc=example,dc=com') INFO lib389:regression_test.py:595 !!!!!!! cn=user1,ou=people,dc=example,dc=com: memberof->b'cn=group_in0,ou=People,dc=example,dc=com' (vs b'cn=group_in0,ou=people,dc=example,dc=com') INFO lib389:regression_test.py:617 !!!!!!! cn=user0,ou=people,dc=example,dc=com: memberof->b'cn=group_in0,ou=People,dc=example,dc=com' (vs b'cn=group_out1,dc=example,dc=com') INFO lib389:regression_test.py:617 !!!!!!! cn=user1,ou=people,dc=example,dc=com: memberof->b'cn=group_in0,ou=People,dc=example,dc=com' (vs b'cn=group_out1,dc=example,dc=com') INFO lib389:regression_test.py:632 !!!!!!! cn=user0,ou=people,dc=example,dc=com: memberof->b'cn=group_in0,ou=People,dc=example,dc=com' (vs b'cn=group_in1,ou=people,dc=example,dc=com') INFO lib389:regression_test.py:632 !!!!!!! cn=user0,ou=people,dc=example,dc=com: memberof->b'cn=group_in1,ou=People,dc=example,dc=com' (vs b'cn=group_in1,ou=people,dc=example,dc=com') INFO lib389:regression_test.py:632 !!!!!!! cn=user1,ou=people,dc=example,dc=com: memberof->b'cn=group_in0,ou=People,dc=example,dc=com' (vs b'cn=group_in1,ou=people,dc=example,dc=com') INFO lib389:regression_test.py:632 !!!!!!! cn=user1,ou=people,dc=example,dc=com: memberof->b'cn=group_in1,ou=People,dc=example,dc=com' (vs b'cn=group_in1,ou=people,dc=example,dc=com') INFO lib389:regression_test.py:671 retrieve: cn=group_in0,ou=People,dc=example,dc=com with desc=b'mygroup' INFO lib389:regression_test.py:671 retrieve: cn=group_in1,ou=People,dc=example,dc=com with desc=b'mygroup' INFO lib389:regression_test.py:671 retrieve: cn=group_out2,dc=example,dc=com with desc=b'this is to check that the entry having this description has the appropriate DN'
Passed suites/memberof_plugin/regression_test.py::test_silent_memberof_failure 9.49
------------------------------ Captured log call -------------------------------
CRITICAL tests.suites.memberof_plugin.regression_test:regression_test.py:737 Adding user (cn=user0,ou=people,dc=example,dc=com): CRITICAL tests.suites.memberof_plugin.regression_test:regression_test.py:737 Adding user (cn=user1,ou=people,dc=example,dc=com): CRITICAL tests.suites.memberof_plugin.regression_test:regression_test.py:737 Adding user (cn=user2,ou=people,dc=example,dc=com): CRITICAL tests.suites.memberof_plugin.regression_test:regression_test.py:737 Adding user (cn=user3,ou=people,dc=example,dc=com): CRITICAL tests.suites.memberof_plugin.regression_test:regression_test.py:737 Adding user (cn=user4,ou=people,dc=example,dc=com): CRITICAL tests.suites.memberof_plugin.regression_test:regression_test.py:737 Adding user (cn=user5,ou=people,dc=example,dc=com): CRITICAL tests.suites.memberof_plugin.regression_test:regression_test.py:737 Adding user (cn=user6,ou=people,dc=example,dc=com): CRITICAL tests.suites.memberof_plugin.regression_test:regression_test.py:737 Adding user (cn=user7,ou=people,dc=example,dc=com): CRITICAL tests.suites.memberof_plugin.regression_test:regression_test.py:737 Adding user (cn=user8,ou=people,dc=example,dc=com): CRITICAL tests.suites.memberof_plugin.regression_test:regression_test.py:737 Adding user (cn=user9,ou=people,dc=example,dc=com): INFO lib389:regression_test.py:758 !!!!!!! cn=user0,ou=people,dc=example,dc=com: memberof->b'cn=group_in0,ou=People,dc=example,dc=com' (vs b'cn=group_in0,ou=people,dc=example,dc=com') INFO lib389:regression_test.py:758 !!!!!!! cn=user1,ou=people,dc=example,dc=com: memberof->b'cn=group_in0,ou=People,dc=example,dc=com' (vs b'cn=group_in0,ou=people,dc=example,dc=com') INFO lib389:regression_test.py:780 !!!!!!! cn=user0,ou=people,dc=example,dc=com: memberof->b'cn=group_in0,ou=People,dc=example,dc=com' (vs b'cn=group_out1,dc=example,dc=com') INFO lib389:regression_test.py:780 !!!!!!! cn=user1,ou=people,dc=example,dc=com: memberof->b'cn=group_in0,ou=People,dc=example,dc=com' (vs b'cn=group_out1,dc=example,dc=com') INFO lib389:regression_test.py:795 !!!!!!! cn=user0,ou=people,dc=example,dc=com: memberof->b'cn=group_in0,ou=People,dc=example,dc=com' (vs b'cn=group_in1,ou=people,dc=example,dc=com') INFO lib389:regression_test.py:795 !!!!!!! cn=user0,ou=people,dc=example,dc=com: memberof->b'cn=group_in1,ou=People,dc=example,dc=com' (vs b'cn=group_in1,ou=people,dc=example,dc=com') INFO lib389:regression_test.py:795 !!!!!!! cn=user1,ou=people,dc=example,dc=com: memberof->b'cn=group_in0,ou=People,dc=example,dc=com' (vs b'cn=group_in1,ou=people,dc=example,dc=com') INFO lib389:regression_test.py:795 !!!!!!! cn=user1,ou=people,dc=example,dc=com: memberof->b'cn=group_in1,ou=People,dc=example,dc=com' (vs b'cn=group_in1,ou=people,dc=example,dc=com') INFO lib389:regression_test.py:832 Should assert cn=user2,ou=people,dc=example,dc=com has memberof is False INFO lib389:regression_test.py:832 Should assert cn=user3,ou=people,dc=example,dc=com has memberof is False INFO lib389:regression_test.py:855 Should assert cn=user4,ou=people,dc=example,dc=com has memberof is False INFO lib389:regression_test.py:855 Should assert cn=user5,ou=people,dc=example,dc=com has memberof is False
Passed suites/monitor/monitor_test.py::test_monitor 0.01
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
INFO tests.suites.monitor.monitor_test:monitor_test.py:43 connection: ['64:20190530000417Z:2:1:-:cn=directory manager:0:0:0:1:ip=127.0.0.1'], currentconnections: ['1'], totalconnections: ['1'] INFO tests.suites.monitor.monitor_test:monitor_test.py:47 version :: ['64:20190530000417Z:5:4:-:cn=directory manager:0:0:0:1:ip=127.0.0.1'] INFO tests.suites.monitor.monitor_test:monitor_test.py:51 threads: ['24'],currentconnectionsatmaxthreads: ['0'],maxthreadsperconnhits: ['0'] INFO tests.suites.monitor.monitor_test:monitor_test.py:55 nbackends: ['1'], backendmonitordn: ['cn=monitor,cn=userRoot,cn=ldbm database,cn=plugins,cn=config'] INFO tests.suites.monitor.monitor_test:monitor_test.py:59 opsinitiated: ['11'], opscompleted: ['12'] INFO tests.suites.monitor.monitor_test:monitor_test.py:63 dtablesize: ['1024'],readwaiters: ['0'],entriessent: ['13'],bytessent: ['1019'],currenttime: ['20190530000417Z'],starttime: ['20190530000417Z']
Passed suites/paged_results/paged_results_test.py::test_search_success[6-5] 0.25
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:56 Adding user simplepaged_test------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 5 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:246 Set user bind simplepaged_test INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:196 Running simple paged result search with - search suffix: dc=example,dc=com; filter: (uid=test*); attr list ['dn', 'sn']; page_size = 6; controls: [<ldap.controls.libldap.SimplePagedResultsControl object at 0x7fc7abdb1978>]. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:252 5 results INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 5 users
Passed suites/paged_results/paged_results_test.py::test_search_success[5-5] 0.40
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 5 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:246 Set user bind simplepaged_test INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:196 Running simple paged result search with - search suffix: dc=example,dc=com; filter: (uid=test*); attr list ['dn', 'sn']; page_size = 5; controls: [<ldap.controls.libldap.SimplePagedResultsControl object at 0x7fc7a9ce6940>]. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:252 5 results INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 5 users
Passed suites/paged_results/paged_results_test.py::test_search_success[5-25] 1.19
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 25 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:246 Set user bind simplepaged_test INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:196 Running simple paged result search with - search suffix: dc=example,dc=com; filter: (uid=test*); attr list ['dn', 'sn']; page_size = 5; controls: [<ldap.controls.libldap.SimplePagedResultsControl object at 0x7fc7a615de80>]. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 1 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 2 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 3 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 4 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:252 25 results INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 25 users
Passed suites/paged_results/paged_results_test.py::test_search_limits_fail[50-200-cn=config,cn=ldbm database,cn=plugins,cn=config-nsslapd-idlistscanlimit-100-UNWILLING_TO_PERFORM] 10.10
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 200 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-idlistscanlimit to 100. Previous value - b'4000'. Modified suffix - cn=config,cn=ldbm database,cn=plugins,cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:297 Set user bind INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:300 Create simple paged results control instance INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:306 Initiate ldapsearch with created control instance INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:318 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 200 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-idlistscanlimit to b'4000'. Previous value - b'100'. Modified suffix - cn=config,cn=ldbm database,cn=plugins,cn=config.
Passed suites/paged_results/paged_results_test.py::test_search_limits_fail[5-15-cn=config-nsslapd-timelimit-20-UNAVAILABLE_CRITICAL_EXTENSION] 30.95
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 15 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-timelimit to 20. Previous value - b'3600'. Modified suffix - cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:297 Set user bind INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:300 Create simple paged results control instance INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:306 Initiate ldapsearch with created control instance INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:318 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 15 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-timelimit to b'3600'. Previous value - b'20'. Modified suffix - cn=config.
Passed suites/paged_results/paged_results_test.py::test_search_limits_fail[21-50-cn=config-nsslapd-sizelimit-20-SIZELIMIT_EXCEEDED] 2.58
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 50 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-sizelimit to 20. Previous value - b'2000'. Modified suffix - cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:297 Set user bind INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:300 Create simple paged results control instance INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:306 Initiate ldapsearch with created control instance INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:318 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 50 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-sizelimit to b'2000'. Previous value - b'20'. Modified suffix - cn=config.
Passed suites/paged_results/paged_results_test.py::test_search_limits_fail[21-50-cn=config-nsslapd-pagedsizelimit-5-SIZELIMIT_EXCEEDED] 2.23
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 50 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-pagedsizelimit to 5. Previous value - b'0'. Modified suffix - cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:297 Set user bind INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:300 Create simple paged results control instance INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:306 Initiate ldapsearch with created control instance INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:318 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 50 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-pagedsizelimit to b'0'. Previous value - b'5'. Modified suffix - cn=config.
Passed suites/paged_results/paged_results_test.py::test_search_limits_fail[5-50-cn=config,cn=ldbm database,cn=plugins,cn=config-nsslapd-lookthroughlimit-20-ADMINLIMIT_EXCEEDED] 2.19
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 50 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-lookthroughlimit to 20. Previous value - b'5000'. Modified suffix - cn=config,cn=ldbm database,cn=plugins,cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:297 Set user bind INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:300 Create simple paged results control instance INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:306 Initiate ldapsearch with created control instance INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:318 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 50 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-lookthroughlimit to b'5000'. Previous value - b'20'. Modified suffix - cn=config,cn=ldbm database,cn=plugins,cn=config.
Passed suites/paged_results/paged_results_test.py::test_search_sort_success 2.11
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 50 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:377 Initiate ldapsearch with created control instance INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:378 Collect data with sorting INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:196 Running simple paged result search with - search suffix: dc=example,dc=com; filter: (uid=test*); attr list ['dn', 'sn']; page_size = 5; controls: [<ldap.controls.libldap.SimplePagedResultsControl object at 0x7fc7a615def0>, <lib389._controls.SSSRequestControl object at 0x7fc7a615d860>]. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 1 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 2 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 3 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 4 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 5 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 6 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 7 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 8 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 9 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:383 Substring numbers from user DNs INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:387 Assert that list is sorted INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 50 users
Passed suites/paged_results/paged_results_test.py::test_search_abandon 5.43
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 10 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:418 Set user bind INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:421 Create simple paged results control instance INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:425 Initiate a search with a paged results control INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:428 Abandon the search INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:431 Expect an ldap.TIMEOUT exception, while trying to get the search results INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 10 users
Passed suites/paged_results/paged_results_test.py::test_search_with_timelimit 35.32
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 100 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:467 Set user bind INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:470 Create simple paged results control instance INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:475 Iteration 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:482 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:482 Getting page 1 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:499 Done with this search - sleeping 10 seconds INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:475 Iteration 1 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:482 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:482 Getting page 1 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:499 Done with this search - sleeping 10 seconds INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:475 Iteration 2 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:482 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:482 Getting page 1 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:499 Done with this search - sleeping 10 seconds INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 100 users
Passed suites/paged_results/paged_results_test.py::test_search_dns_ip_aci[dns = "localhost.localdomain"] 4.20
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 100 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:544 Back up current suffix ACI INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:547 Add test ACI INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:553 Set user bind INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:556 Create simple paged results control instance INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:560 Initiate three searches with a paged results control INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:562 1 search INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:196 Running simple paged result search with - search suffix: dc=example,dc=com; filter: (uid=test*); attr list ['dn', 'sn']; page_size = 5; controls: [<ldap.controls.libldap.SimplePagedResultsControl object at 0x7fc7a6156c50>]. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 1 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 2 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 3 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 4 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 5 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 6 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 7 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 8 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 9 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 10 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 11 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 12 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 13 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 14 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 15 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 16 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 17 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 18 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 19 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:565 100 results INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:562 2 search INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:196 Running simple paged result search with - search suffix: dc=example,dc=com; filter: (uid=test*); attr list ['dn', 'sn']; page_size = 5; controls: [<ldap.controls.libldap.SimplePagedResultsControl object at 0x7fc7a6156c50>]. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 1 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 2 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 3 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 4 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 5 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 6 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 7 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 8 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 9 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 10 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 11 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 12 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 13 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 14 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 15 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 16 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 17 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 18 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 19 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:565 100 results INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:562 3 search INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:196 Running simple paged result search with - search suffix: dc=example,dc=com; filter: (uid=test*); attr list ['dn', 'sn']; page_size = 5; controls: [<ldap.controls.libldap.SimplePagedResultsControl object at 0x7fc7a6156c50>]. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 1 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 2 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 3 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 4 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 5 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 6 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 7 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 8 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 9 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 10 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 11 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 12 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 13 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 14 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 15 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 16 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 17 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 18 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 19 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:565 100 results INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:567 If we are here, then no error has happened. We are good. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:570 Restore ACI INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 100 users
Passed suites/paged_results/paged_results_test.py::test_search_dns_ip_aci[ip = "127.0.0.1"] 3.96
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 100 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:544 Back up current suffix ACI INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:547 Add test ACI INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:553 Set user bind INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:556 Create simple paged results control instance INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:560 Initiate three searches with a paged results control INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:562 1 search INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:196 Running simple paged result search with - search suffix: dc=example,dc=com; filter: (uid=test*); attr list ['dn', 'sn']; page_size = 5; controls: [<ldap.controls.libldap.SimplePagedResultsControl object at 0x7fc7a6174668>]. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 1 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 2 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 3 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 4 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 5 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 6 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 7 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 8 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 9 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 10 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 11 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 12 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 13 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 14 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 15 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 16 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 17 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 18 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 19 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:565 100 results INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:562 2 search INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:196 Running simple paged result search with - search suffix: dc=example,dc=com; filter: (uid=test*); attr list ['dn', 'sn']; page_size = 5; controls: [<ldap.controls.libldap.SimplePagedResultsControl object at 0x7fc7a6174668>]. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 1 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 2 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 3 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 4 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 5 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 6 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 7 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 8 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 9 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 10 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 11 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 12 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 13 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 14 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 15 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 16 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 17 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 18 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 19 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:565 100 results INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:562 3 search INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:196 Running simple paged result search with - search suffix: dc=example,dc=com; filter: (uid=test*); attr list ['dn', 'sn']; page_size = 5; controls: [<ldap.controls.libldap.SimplePagedResultsControl object at 0x7fc7a6174668>]. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 1 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 2 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 3 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 4 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 5 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 6 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 7 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 8 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 9 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 10 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 11 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 12 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 13 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 14 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 15 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 16 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 17 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 18 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 19 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:565 100 results INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:567 If we are here, then no error has happened. We are good. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:570 Restore ACI INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 100 users
Passed suites/paged_results/paged_results_test.py::test_search_multiple_paging 4.32
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 100 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:603 Set user bind INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:606 Create simple paged results control instance INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:611 Iteration 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:611 Iteration 1 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:611 Iteration 2 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 100 users
Passed suites/paged_results/paged_results_test.py::test_search_invalid_cookie[1000] 4.06
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 100 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:657 Set user bind INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:660 Create simple paged results control instance INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:669 Put an invalid cookie (1000) to the control. TypeError is expected INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 100 users
Passed suites/paged_results/paged_results_test.py::test_search_invalid_cookie[-1] 3.99
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 100 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:657 Set user bind INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:660 Create simple paged results control instance INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:669 Put an invalid cookie (-1) to the control. TypeError is expected INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 100 users
Passed suites/paged_results/paged_results_test.py::test_search_abandon_with_zero_size 0.45
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 10 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:701 Set user bind INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:704 Create simple paged results control instance INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 10 users
Passed suites/paged_results/paged_results_test.py::test_search_pagedsizelimit_success 1.14
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-pagedsizelimit to 20. Previous value - b'0'. Modified suffix - cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 10 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:750 Set user bind INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:196 Running simple paged result search with - search suffix: dc=example,dc=com; filter: (uid=test*); attr list ['dn', 'sn']; page_size = 10; controls: [<ldap.controls.libldap.SimplePagedResultsControl object at 0x7fc7a616a6a0>]. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:758 10 results INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 10 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-pagedsizelimit to b'0'. Previous value - b'20'. Modified suffix - cn=config.
Passed suites/paged_results/paged_results_test.py::test_search_nspagedsizelimit[5-15-PASS] 0.47
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 10 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-pagedsizelimit to 5. Previous value - b'0'. Modified suffix - cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsPagedSizeLimit to 15. Previous value - None. Modified suffix - uid=simplepaged_test,ou=People,dc=example,dc=com. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:812 Set user bind INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:823 Expect to pass INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:196 Running simple paged result search with - search suffix: dc=example,dc=com; filter: (uid=test*); attr list ['dn', 'sn']; page_size = 10; controls: [<ldap.controls.libldap.SimplePagedResultsControl object at 0x7fc7a61d4c18>]. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:825 10 results INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 10 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-pagedsizelimit to b'0'. Previous value - b'5'. Modified suffix - cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsPagedSizeLimit to None. Previous value - b'15'. Modified suffix - uid=simplepaged_test,ou=People,dc=example,dc=com.
Passed suites/paged_results/paged_results_test.py::test_search_nspagedsizelimit[15-5-SIZELIMIT_EXCEEDED] 0.45
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 10 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-pagedsizelimit to 15. Previous value - b'0'. Modified suffix - cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsPagedSizeLimit to 5. Previous value - None. Modified suffix - uid=simplepaged_test,ou=People,dc=example,dc=com. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:812 Set user bind INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:819 Expect to fail with SIZELIMIT_EXCEEDED INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:196 Running simple paged result search with - search suffix: dc=example,dc=com; filter: (uid=test*); attr list ['dn', 'sn']; page_size = 10; controls: [<ldap.controls.libldap.SimplePagedResultsControl object at 0x7fc7abdb2470>]. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 10 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-pagedsizelimit to b'0'. Previous value - b'15'. Modified suffix - cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsPagedSizeLimit to None. Previous value - b'5'. Modified suffix - uid=simplepaged_test,ou=People,dc=example,dc=com.
Passed suites/paged_results/paged_results_test.py::test_search_paged_limits[conf_attr_values0-ADMINLIMIT_EXCEEDED] 6.77
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 101 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-sizelimit to 5000. Previous value - b'2000'. Modified suffix - cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-pagedsizelimit to 5000. Previous value - b'0'. Modified suffix - cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-idlistscanlimit to 100. Previous value - b'4000'. Modified suffix - cn=config,cn=ldbm database,cn=plugins,cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-lookthroughlimit to 100. Previous value - b'5000'. Modified suffix - cn=config,cn=ldbm database,cn=plugins,cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:883 Set user bind INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:890 Expect to fail with ADMINLIMIT_EXCEEDED INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:196 Running simple paged result search with - search suffix: dc=example,dc=com; filter: (uid=test*); attr list ['dn', 'sn']; page_size = 10; controls: [<ldap.controls.libldap.SimplePagedResultsControl object at 0x7fc7a9ce69e8>]. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 1 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 2 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 3 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 4 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 5 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 6 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 7 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 8 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 101 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-sizelimit to b'2000'. Previous value - b'5000'. Modified suffix - cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-pagedsizelimit to b'0'. Previous value - b'5000'. Modified suffix - cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-lookthroughlimit to b'5000'. Previous value - b'100'. Modified suffix - cn=config,cn=ldbm database,cn=plugins,cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-idlistscanlimit to b'4000'. Previous value - b'100'. Modified suffix - cn=config,cn=ldbm database,cn=plugins,cn=config.
Passed suites/paged_results/paged_results_test.py::test_search_paged_limits[conf_attr_values1-PASS] 4.30
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 101 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-sizelimit to 5000. Previous value - b'2000'. Modified suffix - cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-pagedsizelimit to 5000. Previous value - b'0'. Modified suffix - cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-idlistscanlimit to 120. Previous value - b'4000'. Modified suffix - cn=config,cn=ldbm database,cn=plugins,cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-lookthroughlimit to 122. Previous value - b'5000'. Modified suffix - cn=config,cn=ldbm database,cn=plugins,cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:883 Set user bind INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:894 Expect to pass INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:196 Running simple paged result search with - search suffix: dc=example,dc=com; filter: (uid=test*); attr list ['dn', 'sn']; page_size = 10; controls: [<ldap.controls.libldap.SimplePagedResultsControl object at 0x7fc7aafed7b8>]. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 1 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 2 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 3 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 4 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 5 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 6 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 7 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 8 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 9 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 10 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:896 101 results INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 101 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-sizelimit to b'2000'. Previous value - b'5000'. Modified suffix - cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-pagedsizelimit to b'0'. Previous value - b'5000'. Modified suffix - cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-lookthroughlimit to b'5000'. Previous value - b'122'. Modified suffix - cn=config,cn=ldbm database,cn=plugins,cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-idlistscanlimit to b'4000'. Previous value - b'120'. Modified suffix - cn=config,cn=ldbm database,cn=plugins,cn=config.
Passed suites/paged_results/paged_results_test.py::test_search_paged_user_limits[conf_attr_values0-ADMINLIMIT_EXCEEDED] 4.34
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 101 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-lookthroughlimit to 1000. Previous value - b'5000'. Modified suffix - cn=config,cn=ldbm database,cn=plugins,cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-idlistscanlimit to 1000. Previous value - b'4000'. Modified suffix - cn=config,cn=ldbm database,cn=plugins,cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsPagedIDListScanLimit to 100. Previous value - None. Modified suffix - uid=simplepaged_test,ou=People,dc=example,dc=com. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsPagedLookthroughLimit to 100. Previous value - None. Modified suffix - uid=simplepaged_test,ou=People,dc=example,dc=com. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:956 Set user bind INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:963 Expect to fail with ADMINLIMIT_EXCEEDED INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:196 Running simple paged result search with - search suffix: dc=example,dc=com; filter: (uid=test*); attr list ['dn', 'sn']; page_size = 10; controls: [<ldap.controls.libldap.SimplePagedResultsControl object at 0x7fc7aafd7898>]. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 1 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 2 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 3 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 4 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 5 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 6 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 7 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 8 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 101 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-lookthroughlimit to b'5000'. Previous value - b'1000'. Modified suffix - cn=config,cn=ldbm database,cn=plugins,cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-idlistscanlimit to b'4000'. Previous value - b'1000'. Modified suffix - cn=config,cn=ldbm database,cn=plugins,cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsPagedIDListScanLimit to None. Previous value - b'100'. Modified suffix - uid=simplepaged_test,ou=People,dc=example,dc=com. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsPagedLookthroughLimit to None. Previous value - b'100'. Modified suffix - uid=simplepaged_test,ou=People,dc=example,dc=com.
Passed suites/paged_results/paged_results_test.py::test_search_paged_user_limits[conf_attr_values1-PASS] 4.26
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 101 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-lookthroughlimit to 1000. Previous value - b'5000'. Modified suffix - cn=config,cn=ldbm database,cn=plugins,cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-idlistscanlimit to 1000. Previous value - b'4000'. Modified suffix - cn=config,cn=ldbm database,cn=plugins,cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsPagedIDListScanLimit to 120. Previous value - None. Modified suffix - uid=simplepaged_test,ou=People,dc=example,dc=com. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsPagedLookthroughLimit to 122. Previous value - None. Modified suffix - uid=simplepaged_test,ou=People,dc=example,dc=com. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:956 Set user bind INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:967 Expect to pass INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:196 Running simple paged result search with - search suffix: dc=example,dc=com; filter: (uid=test*); attr list ['dn', 'sn']; page_size = 10; controls: [<ldap.controls.libldap.SimplePagedResultsControl object at 0x7fc7abda6da0>]. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 1 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 2 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 3 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 4 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 5 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 6 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 7 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 8 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 9 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 10 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:969 101 results INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 101 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-lookthroughlimit to b'5000'. Previous value - b'1000'. Modified suffix - cn=config,cn=ldbm database,cn=plugins,cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-idlistscanlimit to b'4000'. Previous value - b'1000'. Modified suffix - cn=config,cn=ldbm database,cn=plugins,cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsPagedIDListScanLimit to None. Previous value - b'120'. Modified suffix - uid=simplepaged_test,ou=People,dc=example,dc=com. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsPagedLookthroughLimit to None. Previous value - b'122'. Modified suffix - uid=simplepaged_test,ou=People,dc=example,dc=com.
Passed suites/paged_results/paged_results_test.py::test_ger_basic 1.54
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 20 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:196 Running simple paged result search with - search suffix: dc=example,dc=com; filter: (uid=test*); attr list ['dn', 'sn']; page_size = 4; controls: [<ldap.controls.libldap.SimplePagedResultsControl object at 0x7fc7abdbdc88>, <ldap.controls.simple.GetEffectiveRightsControl object at 0x7fc7a9ccb278>]. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 1 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 2 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 3 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 4 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 5 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:1007 20 results INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:1009 Check for attributeLevelRights INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:1012 Remove added users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 20 users
Passed suites/paged_results/paged_results_test.py::test_multi_suffix_search 10.11
------------------------------ Captured log setup ------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:87 Adding suffix:o=test_parent and backend: parent_base INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:96 Adding ACI to allow our test user to search INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:108 Adding suffix:ou=child,o=test_parent and backend: child_base------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:1043 Clear the access log INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 10 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 10 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:196 Running simple paged result search with - search suffix: o=test_parent; filter: (uid=test*); attr list ['dn', 'sn']; page_size = 4; controls: [<ldap.controls.libldap.SimplePagedResultsControl object at 0x7fc7a9d82ac8>]. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 1 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 2 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 3 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 4 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 5 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:1054 20 results INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:1057 Restart the server to flush the logs INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:1063 Assert that last pr_cookie == -1 and others pr_cookie == 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:1068 Remove added users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 10 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 10 users
Passed suites/paged_results/paged_results_test.py::test_maxsimplepaged_per_conn_success[None] 0.89
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 20 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:1100 Set user bind INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:196 Running simple paged result search with - search suffix: dc=example,dc=com; filter: (uid=test*); attr list ['dn', 'sn']; page_size = 4; controls: [<ldap.controls.libldap.SimplePagedResultsControl object at 0x7fc7a9bd9358>]. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 1 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 2 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 3 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 4 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:1107 20 results INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:1110 Remove added users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 20 users
Passed suites/paged_results/paged_results_test.py::test_maxsimplepaged_per_conn_success[-1] 0.84
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 20 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-maxsimplepaged-per-conn to -1. Previous value - b'-1'. Modified suffix - cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:1100 Set user bind INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:196 Running simple paged result search with - search suffix: dc=example,dc=com; filter: (uid=test*); attr list ['dn', 'sn']; page_size = 4; controls: [<ldap.controls.libldap.SimplePagedResultsControl object at 0x7fc7a9be3358>]. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 1 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 2 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 3 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 4 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:1107 20 results INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:1110 Remove added users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 20 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-maxsimplepaged-per-conn to b'-1'. Previous value - b'-1'. Modified suffix - cn=config.
Passed suites/paged_results/paged_results_test.py::test_maxsimplepaged_per_conn_success[1000] 0.91
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 20 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-maxsimplepaged-per-conn to 1000. Previous value - b'-1'. Modified suffix - cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:1100 Set user bind INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:196 Running simple paged result search with - search suffix: dc=example,dc=com; filter: (uid=test*); attr list ['dn', 'sn']; page_size = 4; controls: [<ldap.controls.libldap.SimplePagedResultsControl object at 0x7fc7a9db4e48>]. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 0 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 1 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 2 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 3 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:199 Getting page 4 INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:1107 20 results INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:1110 Remove added users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 20 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-maxsimplepaged-per-conn to b'-1'. Previous value - b'1000'. Modified suffix - cn=config.
Passed suites/paged_results/paged_results_test.py::test_maxsimplepaged_per_conn_failure[0] 1.19
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 20 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-maxsimplepaged-per-conn to 0. Previous value - b'-1'. Modified suffix - cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:1144 Set user bind INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:1147 Create simple paged results control instance INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:1162 Remove added users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 20 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-maxsimplepaged-per-conn to b'-1'. Previous value - b'0'. Modified suffix - cn=config.
Passed suites/paged_results/paged_results_test.py::test_maxsimplepaged_per_conn_failure[1] 0.88
------------------------------ Captured log call -------------------------------
INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:133 Adding 20 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-maxsimplepaged-per-conn to 1. Previous value - b'-1'. Modified suffix - cn=config. INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:1144 Set user bind INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:1147 Create simple paged results control instance INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:1162 Remove added users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:155 Deleting 20 users INFO tests.suites.paged_results.paged_results_test:paged_results_test.py:170 Set nsslapd-maxsimplepaged-per-conn to b'-1'. Previous value - b'1'. Modified suffix - cn=config.
Passed suites/password/password_test.py::test_password_delete_specific_password 0.11
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
INFO tests.suites.password.password_test:password_test.py:44 Running test_password_delete_specific_password... INFO tests.suites.password.password_test:password_test.py:65 test_password_delete_specific_password: PASSED
Passed suites/password/pbkdf2_upgrade_plugin_test.py::test_pbkdf2_upgrade 9.45
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/password/pwdAdmin_test.py::test_pwdAdmin_bypass 0.17
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. INFO tests.suites.password.pwdAdmin_test:pwdAdmin_test.py:46 test_pwdAdmin_init: Creating Password Administrator entries... INFO tests.suites.password.pwdAdmin_test:pwdAdmin_test.py:85 test_pwdAdmin_init: Configuring password policy... INFO tests.suites.password.pwdAdmin_test:pwdAdmin_test.py:100 Add aci to allow password admin to add/update entries... INFO tests.suites.password.pwdAdmin_test:pwdAdmin_test.py:115 test_pwdAdmin_init: Bind as the Password Administrator (before activating)... INFO tests.suites.password.pwdAdmin_test:pwdAdmin_test.py:128 test_pwdAdmin_init: Attempt to add entries with invalid passwords, these adds should fail...------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdAdmin_test:pwdAdmin_test.py:167 test_pwdAdmin: Activate the Password Administator...
Passed suites/password/pwdAdmin_test.py::test_pwdAdmin_no_admin 0.08
No log output captured.
Passed suites/password/pwdAdmin_test.py::test_pwdAdmin_modify 0.14
No log output captured.
Passed suites/password/pwdAdmin_test.py::test_pwdAdmin_group 0.15
No log output captured.
Passed suites/password/pwdAdmin_test.py::test_pwdAdmin_config_validation 0.02
No log output captured.
Passed suites/password/pwdModify_test.py::test_pwd_modify_with_different_operation 9.14
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdModify_test:pwdModify_test.py:101 Attempt for Password change for an entry that does not exists INFO tests.suites.password.pwdModify_test:pwdModify_test.py:103 Attempt for Password change for an entry that exists INFO tests.suites.password.pwdModify_test:pwdModify_test.py:105 Attempt for Password change to old for an entry that exists INFO tests.suites.password.pwdModify_test:pwdModify_test.py:107 Attempt for Password Change with Binddn as testuser but with wrong old password INFO tests.suites.password.pwdModify_test:pwdModify_test.py:111 Attempt for Password Change with Binddn as testuser INFO tests.suites.password.pwdModify_test:pwdModify_test.py:113 Attempt for Password Change without giving newpassword INFO tests.suites.password.pwdModify_test:pwdModify_test.py:116 Change password to NEW_PASSWD i.e newpassword INFO tests.suites.password.pwdModify_test:pwdModify_test.py:119 Check binding with old/new password INFO tests.suites.password.pwdModify_test:pwdModify_test.py:124 Change password back to OLD_PASSWD i.e password INFO tests.suites.password.pwdModify_test:pwdModify_test.py:127 Checking password change Operation using a Non-Secure connection INFO tests.suites.password.pwdModify_test:pwdModify_test.py:131 Testuser attempts to change password for testuser2(userPassword attribute is Set) INFO tests.suites.password.pwdModify_test:pwdModify_test.py:147 Directory Manager attempts to change password for testuser2(userPassword attribute is Set) INFO tests.suites.password.pwdModify_test:pwdModify_test.py:150 Changing userPassword attribute to Undefined for testuser2 INFO tests.suites.password.pwdModify_test:pwdModify_test.py:152 Testuser attempts to change password for testuser2(userPassword attribute is Undefined) INFO tests.suites.password.pwdModify_test:pwdModify_test.py:156 Directory Manager attempts to change password for testuser2(userPassword attribute is Undefined) INFO tests.suites.password.pwdModify_test:pwdModify_test.py:159 Create a password syntax policy. Attempt to change to password that violates that policy INFO tests.suites.password.pwdModify_test:pwdModify_test.py:163 Reset password syntax policy INFO tests.suites.password.pwdModify_test:pwdModify_test.py:165 userPassword mod with control results in ber decode error INFO tests.suites.password.pwdModify_test:pwdModify_test.py:169 Reseting the testuser's password
Passed suites/password/pwdModify_test.py::test_pwd_modify_with_password_policy 0.63
------------------------------ Captured log setup ------------------------------
INFO tests.suites.password.pwdModify_test:pwdModify_test.py:44 Change the pwd storage type to clear and change the password once to refresh it(for the rest of tests------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdModify_test:pwdModify_test.py:192 Change the password and check that a new entry has been added to the history INFO tests.suites.password.pwdModify_test:pwdModify_test.py:196 Try changing password to one stored in history. Should fail INFO tests.suites.password.pwdModify_test:pwdModify_test.py:199 Change the password several times in a row, and try binding after each change
Passed suites/password/pwdModify_test.py::test_pwd_modify_with_subsuffix 0.27
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdModify_test:pwdModify_test.py:228 Add a new SubSuffix INFO tests.suites.password.pwdModify_test:pwdModify_test.py:235 Add the container & create password policies INFO tests.suites.password.pwdModify_test:pwdModify_test.py:243 Add two New users under the SubEntry INFO tests.suites.password.pwdModify_test:pwdModify_test.py:265 Changing password of uid=test_user0,ou=TestPeople_bug834047,dc=example,dc=com to newpassword INFO tests.suites.password.pwdModify_test:pwdModify_test.py:270 Try to delete password- case when password is specified INFO tests.suites.password.pwdModify_test:pwdModify_test.py:274 Try to delete password- case when password is not specified
Passed suites/password/pwdPolicy_attribute_test.py::test_change_pwd[on-off-UNWILLING_TO_PERFORM] 2.21
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:39 Adding test user {} INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:66 Create password policy for subtree ou=people,dc=example,dc=com INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:69 Create password policy for user uid=simplepaged_test,ou=people,dc=example,dc=com----------------------------- Captured stdout call -----------------------------
MARK attach gdb ------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:103 Set passwordChange to "on" - ou=people,dc=example,dc=com INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:110 Set passwordChange to "off" - uid=simplepaged_test,ou=people,dc=example,dc=com INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:120 Bind as user and modify userPassword INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:132 Bind as DM
Passed suites/password/pwdPolicy_attribute_test.py::test_change_pwd[off-off-UNWILLING_TO_PERFORM] 2.31
----------------------------- Captured stdout call -----------------------------
MARK attach gdb ------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:103 Set passwordChange to "off" - ou=people,dc=example,dc=com INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:110 Set passwordChange to "off" - uid=simplepaged_test,ou=people,dc=example,dc=com INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:120 Bind as user and modify userPassword INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:132 Bind as DM
Passed suites/password/pwdPolicy_attribute_test.py::test_change_pwd[off-on-False] 2.57
----------------------------- Captured stdout call -----------------------------
MARK attach gdb ------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:103 Set passwordChange to "off" - ou=people,dc=example,dc=com INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:110 Set passwordChange to "on" - uid=simplepaged_test,ou=people,dc=example,dc=com INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:120 Bind as user and modify userPassword INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:132 Bind as DM
Passed suites/password/pwdPolicy_attribute_test.py::test_change_pwd[on-on-False] 2.36
----------------------------- Captured stdout call -----------------------------
MARK attach gdb ------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:103 Set passwordChange to "on" - ou=people,dc=example,dc=com INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:110 Set passwordChange to "on" - uid=simplepaged_test,ou=people,dc=example,dc=com INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:120 Bind as user and modify userPassword INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:132 Bind as DM
Passed suites/password/pwdPolicy_attribute_test.py::test_pwd_min_age 14.35
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:169 Set passwordminage to "10" - ou=people,dc=example,dc=com INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:174 Set passwordminage to "10" - uid=simplepaged_test,ou=people,dc=example,dc=com INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:178 Set passwordminage to "10" - cn=config INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:183 Bind as user and modify userPassword INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:189 Bind as user and modify userPassword straight away after previous change INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:194 Wait 12 second INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:198 Bind as user and modify userPassword INFO tests.suites.password.pwdPolicy_attribute_test:pwdPolicy_attribute_test.py:206 Bind as DM
Passed suites/password/pwdPolicy_controls_test.py::test_pwd_must_change 2.23
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_controls_test:pwdPolicy_controls_test.py:109 Configure password policy with paswordMustChange set to "on" INFO tests.suites.password.pwdPolicy_controls_test:pwdPolicy_controls_test.py:120 Reset userpassword as Directory Manager INFO tests.suites.password.pwdPolicy_controls_test:pwdPolicy_controls_test.py:125 Bind should return ctrl with error code 2 (changeAfterReset)
Passed suites/password/pwdPolicy_controls_test.py::test_pwd_expired_grace_limit 6.70
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_controls_test:pwdPolicy_controls_test.py:159 Configure password policy with grace limit set tot 2 INFO tests.suites.password.pwdPolicy_controls_test:pwdPolicy_controls_test.py:164 Change password and wait for it to expire INFO tests.suites.password.pwdPolicy_controls_test:pwdPolicy_controls_test.py:168 Bind and use up one grace login (only one left) INFO tests.suites.password.pwdPolicy_controls_test:pwdPolicy_controls_test.py:178 Use up last grace login, should get control INFO tests.suites.password.pwdPolicy_controls_test:pwdPolicy_controls_test.py:184 No grace login available, bind should fail, and no control should be returned
Passed suites/password/pwdPolicy_controls_test.py::test_pwd_expiring_with_warning 5.51
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_controls_test:pwdPolicy_controls_test.py:206 Configure password policy INFO tests.suites.password.pwdPolicy_controls_test:pwdPolicy_controls_test.py:211 Change password and get controls INFO tests.suites.password.pwdPolicy_controls_test:pwdPolicy_controls_test.py:222 Warning has been sent, try the bind again, and recheck the expiring time
Passed suites/password/pwdPolicy_controls_test.py::test_pwd_expiring_with_no_warning 6.75
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_controls_test:pwdPolicy_controls_test.py:250 Configure password policy INFO tests.suites.password.pwdPolicy_controls_test:pwdPolicy_controls_test.py:255 When the warning is less than the max age, we never send expiring control response INFO tests.suites.password.pwdPolicy_controls_test:pwdPolicy_controls_test.py:262 Turn on sending expiring control regardless of warning INFO tests.suites.password.pwdPolicy_controls_test:pwdPolicy_controls_test.py:274 Check expiring time again INFO tests.suites.password.pwdPolicy_controls_test:pwdPolicy_controls_test.py:285 Turn off sending expiring control (restore the default setting)
Passed suites/password/pwdPolicy_inherit_global_test.py::test_entry_has_no_restrictions[off-off] 1.17
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:39 Adding user uid=buser,ou=People,dc=example,dc=com INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:46 Adding an aci for the bind user INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:71 Enable fine-grained policy INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:92 Default value of nsslapd-pwpolicy-inherit-global is off INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:92 Default value of passwordCheckSyntax is off------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:118 Set nsslapd-pwpolicy-inherit-global to off INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:119 Set passwordCheckSyntax to off INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:92 Default value of nsslapd-pwpolicy-inherit-global is off INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:92 Default value of passwordCheckSyntax is off INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:128 Bind as test user INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:131 Make sure an entry added to ou=people has no password syntax restrictions.
Passed suites/password/pwdPolicy_inherit_global_test.py::test_entry_has_no_restrictions[on-off] 1.40
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:118 Set nsslapd-pwpolicy-inherit-global to on INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:119 Set passwordCheckSyntax to off INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:92 Default value of nsslapd-pwpolicy-inherit-global is on INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:92 Default value of passwordCheckSyntax is off INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:128 Bind as test user INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:131 Make sure an entry added to ou=people has no password syntax restrictions.
Passed suites/password/pwdPolicy_inherit_global_test.py::test_entry_has_no_restrictions[off-on] 1.18
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:118 Set nsslapd-pwpolicy-inherit-global to off INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:119 Set passwordCheckSyntax to on INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:92 Default value of nsslapd-pwpolicy-inherit-global is off INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:92 Default value of passwordCheckSyntax is on INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:128 Bind as test user INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:131 Make sure an entry added to ou=people has no password syntax restrictions.
Passed suites/password/pwdPolicy_inherit_global_test.py::test_entry_has_restrictions 1.20
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:172 Set nsslapd-pwpolicy-inherit-global to on INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:173 Set passwordCheckSyntax to on INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:92 Default value of nsslapd-pwpolicy-inherit-global is on INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:92 Default value of passwordCheckSyntax is on INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:186 Bind as test user INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:191 Try to add user with a short password (<9) INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:196 Try to add user with a long password (>9) INFO tests.suites.password.pwdPolicy_inherit_global_test:pwdPolicy_inherit_global_test.py:200 Bind as DM user
Passed suites/password/pwdPolicy_syntax_test.py::test_basic 11.68
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. INFO tests.suites.password.pwdPolicy_syntax_test:pwdPolicy_syntax_test.py:33 Enable global password policy. Check for syntax.------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_syntax_test:pwdPolicy_syntax_test.py:96 Invalid password correctly rejected by passwordMinLength: length too short INFO tests.suites.password.pwdPolicy_syntax_test:pwdPolicy_syntax_test.py:96 Invalid password correctly rejected by passwordMinDigits: does not contain minimum number of digits INFO tests.suites.password.pwdPolicy_syntax_test:pwdPolicy_syntax_test.py:96 Invalid password correctly rejected by passwordMinAlphas: does not contain minimum number of alphas INFO tests.suites.password.pwdPolicy_syntax_test:pwdPolicy_syntax_test.py:96 Invalid password correctly rejected by passwordMaxRepeats: too many repeating characters INFO tests.suites.password.pwdPolicy_syntax_test:pwdPolicy_syntax_test.py:96 Invalid password correctly rejected by passwordMinSpecials: does not contain minimum number of special characters INFO tests.suites.password.pwdPolicy_syntax_test:pwdPolicy_syntax_test.py:96 Invalid password correctly rejected by passwordMinLowers: does not contain minimum number of lowercase characters INFO tests.suites.password.pwdPolicy_syntax_test:pwdPolicy_syntax_test.py:96 Invalid password correctly rejected by passwordMinUppers: does not contain minimum number of lowercase characters INFO tests.suites.password.pwdPolicy_syntax_test:pwdPolicy_syntax_test.py:96 Invalid password correctly rejected by passwordDictCheck: Password found in dictionary INFO tests.suites.password.pwdPolicy_syntax_test:pwdPolicy_syntax_test.py:96 Invalid password correctly rejected by passwordPalindrome: Password is palindrome INFO tests.suites.password.pwdPolicy_syntax_test:pwdPolicy_syntax_test.py:96 Invalid password correctly rejected by passwordMaxSequence: Max montonic sequence is not allowed INFO tests.suites.password.pwdPolicy_syntax_test:pwdPolicy_syntax_test.py:96 Invalid password correctly rejected by passwordMaxSequence: Max montonic sequence is not allowed INFO tests.suites.password.pwdPolicy_syntax_test:pwdPolicy_syntax_test.py:96 Invalid password correctly rejected by passwordMaxSequence: Max montonic sequence is not allowed INFO tests.suites.password.pwdPolicy_syntax_test:pwdPolicy_syntax_test.py:96 Invalid password correctly rejected by passwordMaxSequence: Max montonic sequence is not allowed INFO tests.suites.password.pwdPolicy_syntax_test:pwdPolicy_syntax_test.py:96 Invalid password correctly rejected by passwordMaxSeqSets: Max montonic sequence is not allowed INFO tests.suites.password.pwdPolicy_syntax_test:pwdPolicy_syntax_test.py:96 Invalid password correctly rejected by passwordMaxClassChars: Too may consecutive characters from the same class INFO tests.suites.password.pwdPolicy_syntax_test:pwdPolicy_syntax_test.py:96 Invalid password correctly rejected by passwordMaxClassChars: Too may consecutive characters from the same class INFO tests.suites.password.pwdPolicy_syntax_test:pwdPolicy_syntax_test.py:96 Invalid password correctly rejected by passwordMaxClassChars: Too may consecutive characters from the same class INFO tests.suites.password.pwdPolicy_syntax_test:pwdPolicy_syntax_test.py:96 Invalid password correctly rejected by passwordMaxClassChars: Too may consecutive characters from the same class INFO tests.suites.password.pwdPolicy_syntax_test:pwdPolicy_syntax_test.py:96 Invalid password correctly rejected by passwordBadWords: Too may consecutive characters from the same class INFO tests.suites.password.pwdPolicy_syntax_test:pwdPolicy_syntax_test.py:96 Invalid password correctly rejected by passwordBadWords: Too may consecutive characters from the same class INFO tests.suites.password.pwdPolicy_syntax_test:pwdPolicy_syntax_test.py:96 Invalid password correctly rejected by passwordUserAttributes: Password found in user entry INFO tests.suites.password.pwdPolicy_syntax_test:pwdPolicy_syntax_test.py:285 pwdPolicy tests PASSED
Passed suites/password/pwdPolicy_token_test.py::test_token_lengths 4.41
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_token_test:pwdPolicy_token_test.py:67 Testing password len 4 token (test) INFO tests.suites.password.pwdPolicy_token_test:pwdPolicy_token_test.py:72 Password correctly rejected: {'desc': 'Constraint violation', 'info': 'invalid password syntax - password based off of user entry'} INFO tests.suites.password.pwdPolicy_token_test:pwdPolicy_token_test.py:67 Testing password len 6 token (test_u) INFO tests.suites.password.pwdPolicy_token_test:pwdPolicy_token_test.py:72 Password correctly rejected: {'desc': 'Constraint violation', 'info': 'invalid password syntax - password based off of user entry'} INFO tests.suites.password.pwdPolicy_token_test:pwdPolicy_token_test.py:67 Testing password len 10 token (test_user1) INFO tests.suites.password.pwdPolicy_token_test:pwdPolicy_token_test.py:72 Password correctly rejected: {'desc': 'Constraint violation', 'info': 'invalid password syntax - password based off of user entry'}
Passed suites/password/pwdPolicy_warning_test.py::test_different_values[ ] 0.01
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:205 Get the default value INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:209 An invalid value is being tested INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:172 Setting passwordSendExpiringTime to INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:213 Now check the value is unchanged INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:216 Invalid value was rejected correctly
Passed suites/password/pwdPolicy_warning_test.py::test_different_values[junk123] 0.01
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:205 Get the default value INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:209 An invalid value is being tested INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:172 Setting passwordSendExpiringTime to junk123 INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:213 Now check the value is unchanged INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:216 Invalid value junk123 was rejected correctly
Passed suites/password/pwdPolicy_warning_test.py::test_different_values[on] 1.02
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:205 Get the default value INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:218 A valid value is being tested INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:172 Setting passwordSendExpiringTime to on INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:221 Now check that the value has been changed INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:224 passwordSendExpiringTime is now set to on INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:226 Set passwordSendExpiringTime back to the default value INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:172 Setting passwordSendExpiringTime to off
Passed suites/password/pwdPolicy_warning_test.py::test_different_values[off] 1.03
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:205 Get the default value INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:218 A valid value is being tested INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:172 Setting passwordSendExpiringTime to off INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:221 Now check that the value has been changed INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:224 passwordSendExpiringTime is now set to off INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:226 Set passwordSendExpiringTime back to the default value INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:172 Setting passwordSendExpiringTime to off
Passed suites/password/pwdPolicy_warning_test.py::test_expiry_time 0.14
------------------------------ Captured log setup ------------------------------
INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:46 Get the default values INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:53 Set the new values INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:114 Add the user------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:257 Get the password expiry warning time INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:259 Binding with (uid=tuser,ou=people,dc=example,dc=com) and requesting the password expiry warning time INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:159 Bind with the user and request the password expiry warning time INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:262 Check whether the time is returned INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:266 user's password will expire in 172800 seconds INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:268 Rebinding as DM
Passed suites/password/pwdPolicy_warning_test.py::test_password_warning[passwordSendExpiringTime-off] 0.64
------------------------------ Captured log setup ------------------------------
INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:46 Get the default values INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:53 Set the new values INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:114 Add the user------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:299 Set configuration parameter INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:172 Setting passwordSendExpiringTime to off INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:303 Binding with (uid=tuser,ou=people,dc=example,dc=com) and requesting password expiry warning time INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:159 Bind with the user and request the password expiry warning time INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:306 Check the state of the control INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:309 Password Expiry warning time is not returned as passwordSendExpiringTime is set to off INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:314 Rebinding as DM
Passed suites/password/pwdPolicy_warning_test.py::test_password_warning[passwordWarning-3600] 0.65
------------------------------ Captured log setup ------------------------------
INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:46 Get the default values INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:53 Set the new values INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:114 Add the user------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:299 Set configuration parameter INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:172 Setting passwordWarning to 3600 INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:303 Binding with (uid=tuser,ou=people,dc=example,dc=com) and requesting password expiry warning time INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:159 Bind with the user and request the password expiry warning time INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:306 Check the state of the control INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:312 (uid=tuser,ou=people,dc=example,dc=com) password will expire in 172799 seconds INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:314 Rebinding as DM
Passed suites/password/pwdPolicy_warning_test.py::test_with_different_password_states 0.30
------------------------------ Captured log setup ------------------------------
INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:46 Get the default values INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:53 Set the new values INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:114 Add the user------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:347 Expire user's password by changing passwordExpirationTime timestamp INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:351 Old passwordExpirationTime: 20190601000943Z INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:354 New passwordExpirationTime: 20190501000943Z INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:357 Attempting to bind with user uid=tuser,ou=people,dc=example,dc=com and retrive the password expiry warning time INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:159 Bind with the user and request the password expiry warning time INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:361 Bind Failed, error: /usr/local/lib64/python3.7/site-packages/ldap/ldapobject.py:315: ldap.INVALID_CREDENTIALS: {'desc': 'Invalid credentials', 'info': 'password expired!'} INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:363 Rebinding as DM INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:366 Reverting back user's passwordExpirationTime INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:370 Rebinding with uid=tuser,ou=people,dc=example,dc=com and retrieving the password expiry warning time INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:159 Bind with the user and request the password expiry warning time INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:373 Check that the control is returned INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:377 user's password will expire in 172800 seconds INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:379 Rebinding as DM
Passed suites/password/pwdPolicy_warning_test.py::test_default_behavior 0.14
------------------------------ Captured log setup ------------------------------
INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:84 Get the default values INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:90 Set the new values INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:114 Add the user------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:406 Binding with uid=tuser,ou=people,dc=example,dc=com and requesting the password expiry warning time INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:159 Bind with the user and request the password expiry warning time INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:409 Check that no control is returned INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:412 Rebinding as DM
Passed suites/password/pwdPolicy_warning_test.py::test_when_maxage_and_warning_are_the_same 0.22
------------------------------ Captured log setup ------------------------------
INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:84 Get the default values INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:90 Set the new values INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:114 Add the user------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:441 Set the new values INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:445 First change user's password to reset its password expiration time INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:452 Binding with uid=tuser,ou=people,dc=example,dc=com and requesting the password expiry warning time INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:159 Bind with the user and request the password expiry warning time INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:455 Check that control is returned evenif passwordSendExpiringTime is set to off INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:459 user's password will expire in 86400 seconds INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:461 Rebinding as DM
Passed suites/password/pwdPolicy_warning_test.py::test_with_local_policy 0.14
---------------------------- Captured stderr setup -----------------------------
Container entries added. ------------------------------ Captured log setup ------------------------------
INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:46 Get the default values INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:53 Set the new values INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:114 Add the user INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:142 Setting fine grained policy for user (uid=tuser,ou=people,dc=example,dc=com)------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:488 Attempting to get password expiry warning time for user uid=tuser,ou=people,dc=example,dc=com INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:159 Bind with the user and request the password expiry warning time INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:491 Check that the control is not returned INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:494 Password expiry warning time is not returned INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:496 Rebinding as DM
Passed suites/password/pwdPolicy_warning_test.py::test_search_shadowWarning_when_passwordWarning_is_lower 0.46
------------------------------ Captured log setup ------------------------------
INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:46 Get the default values INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:53 Set the new values------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:528 Bind as cn=Directory Manager INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:531 Creating test user INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:536 Setting passwordWarning to smaller value than 86400 INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:539 Bind as test user INFO tests.suites.password.pwdPolicy_warning_test:pwdPolicy_warning_test.py:542 Check if attribute shadowWarning is present
Passed suites/password/pwd_algo_test.py::test_pwd_algo_test[CLEAR] 0.08
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwd_algo_test:pwd_algo_test.py:135 Test CLEAR PASSED
Passed suites/password/pwd_algo_test.py::test_pwd_algo_test[CRYPT] 0.05
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwd_algo_test:pwd_algo_test.py:135 Test CRYPT PASSED
Passed suites/password/pwd_algo_test.py::test_pwd_algo_test[CRYPT-MD5] 0.05
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwd_algo_test:pwd_algo_test.py:135 Test CRYPT-MD5 PASSED
Passed suites/password/pwd_algo_test.py::test_pwd_algo_test[CRYPT-SHA256] 0.06
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwd_algo_test:pwd_algo_test.py:135 Test CRYPT-SHA256 PASSED
Passed suites/password/pwd_algo_test.py::test_pwd_algo_test[CRYPT-SHA512] 0.06
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwd_algo_test:pwd_algo_test.py:135 Test CRYPT-SHA512 PASSED
Passed suites/password/pwd_algo_test.py::test_pwd_algo_test[MD5] 0.05
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwd_algo_test:pwd_algo_test.py:135 Test MD5 PASSED
Passed suites/password/pwd_algo_test.py::test_pwd_algo_test[SHA] 0.05
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwd_algo_test:pwd_algo_test.py:135 Test SHA PASSED
Passed suites/password/pwd_algo_test.py::test_pwd_algo_test[SHA256] 0.06
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwd_algo_test:pwd_algo_test.py:135 Test SHA256 PASSED
Passed suites/password/pwd_algo_test.py::test_pwd_algo_test[SHA384] 0.05
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwd_algo_test:pwd_algo_test.py:135 Test SHA384 PASSED
Passed suites/password/pwd_algo_test.py::test_pwd_algo_test[SHA512] 0.05
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwd_algo_test:pwd_algo_test.py:135 Test SHA512 PASSED
Passed suites/password/pwd_algo_test.py::test_pwd_algo_test[SMD5] 0.05
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwd_algo_test:pwd_algo_test.py:135 Test SMD5 PASSED
Passed suites/password/pwd_algo_test.py::test_pwd_algo_test[SSHA] 0.06
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwd_algo_test:pwd_algo_test.py:135 Test SSHA PASSED
Passed suites/password/pwd_algo_test.py::test_pwd_algo_test[SSHA256] 0.05
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwd_algo_test:pwd_algo_test.py:135 Test SSHA256 PASSED
Passed suites/password/pwd_algo_test.py::test_pwd_algo_test[SSHA384] 0.05
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwd_algo_test:pwd_algo_test.py:135 Test SSHA384 PASSED
Passed suites/password/pwd_algo_test.py::test_pwd_algo_test[SSHA512] 0.06
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwd_algo_test:pwd_algo_test.py:135 Test SSHA512 PASSED
Passed suites/password/pwd_algo_test.py::test_pwd_algo_test[PBKDF2_SHA256] 0.27
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwd_algo_test:pwd_algo_test.py:135 Test PBKDF2_SHA256 PASSED
Passed suites/password/pwd_algo_test.py::test_pwd_algo_test[DEFAULT] 0.29
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwd_algo_test:pwd_algo_test.py:135 Test DEFAULT PASSED
Passed suites/password/pwd_algo_test.py::test_pbkdf2_algo 2.90
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwd_algo_test:pwd_algo_test.py:167 Test PASSED
Passed suites/password/pwd_lockout_bypass_test.py::test_lockout_bypass 0.39
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Passed suites/password/pwd_log_test.py::test_hide_unhashed_pwd 4.15
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwd_log_test:pwd_log_test.py:78 Test complete
Passed suites/password/pwp_history_test.py::test_basic 5.67
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.------------------------------ Captured log call -------------------------------
INFO tests.suites.password.pwp_history_test:pwp_history_test.py:71 Configured password policy. INFO tests.suites.password.pwp_history_test:pwp_history_test.py:98 Password change correctly rejected INFO tests.suites.password.pwp_history_test:pwp_history_test.py:126 Correct number of passwords found in history. INFO tests.suites.password.pwp_history_test:pwp_history_test.py:137 Password change correctly rejected INFO tests.suites.password.pwp_history_test:pwp_history_test.py:147 Password change correctly rejected INFO tests.suites.password.pwp_history_test:pwp_history_test.py:157 Password change correctly rejected INFO tests.suites.password.pwp_history_test:pwp_history_test.py:181 Password change correctly rejected INFO tests.suites.password.pwp_history_test:pwp_history_test.py:198 Configured passwordInHistory to 0. INFO tests.suites.password.pwp_history_test:pwp_history_test.py:212 Password change correctly rejected INFO tests.suites.password.pwp_history_test:pwp_history_test.py:232 Configured passwordInHistory to 2. INFO tests.suites.password.pwp_history_test:pwp_history_test.py:245 Password change correctly rejected INFO tests.suites.password.pwp_history_test:pwp_history_test.py:259 Test suite PASSED.
Passed suites/password/regression_test.py::test_pwp_local_unlock 4.16
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. INFO tests.suites.password.regression_test:regression_test.py:44 Configure Pwpolicy with PasswordCheckSyntax and nsslapd-pwpolicy-local set to on INFO tests.suites.password.regression_test:regression_test.py:51 Configure subtree password policy for ou=people,dc=example,dc=com INFO tests.suites.password.regression_test:regression_test.py:74 Adding user-uid=UIDpwtest1,ou=people,dc=example,dc=com------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:113 Verify user can bind... INFO tests.suites.password.regression_test:regression_test.py:116 Test passwordUnlock default - user should be able to reset password after lockout INFO tests.suites.password.regression_test:regression_test.py:127 Verify account is locked INFO tests.suites.password.regression_test:regression_test.py:131 Wait for lockout duration... INFO tests.suites.password.regression_test:regression_test.py:134 Check if user can now bind with correct password
Passed suites/password/regression_test.py::test_trivial_passw_check[CNpwtest1] 0.17
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:158 Replace userPassword attribute with CNpwtest1
Passed suites/password/regression_test.py::test_trivial_passw_check[SNpwtest1] 0.18
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:158 Replace userPassword attribute with SNpwtest1
Passed suites/password/regression_test.py::test_trivial_passw_check[UIDpwtest1] 0.17
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:158 Replace userPassword attribute with UIDpwtest1
Passed suites/password/regression_test.py::test_trivial_passw_check[MAILpwtest1@redhat.com] 0.18
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:158 Replace userPassword attribute with MAILpwtest1@redhat.com
Passed suites/password/regression_test.py::test_trivial_passw_check[GNpwtest1] 0.17
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:158 Replace userPassword attribute with GNpwtest1
Passed suites/password/regression_test.py::test_trivial_passw_check[CNpwtest1ZZZZ] 0.17
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:158 Replace userPassword attribute with CNpwtest1ZZZZ
Passed suites/password/regression_test.py::test_trivial_passw_check[ZZZZZCNpwtest1] 0.18
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:158 Replace userPassword attribute with ZZZZZCNpwtest1
Passed suites/password/regression_test.py::test_trivial_passw_check[ZCNpwtest1] 0.17
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:158 Replace userPassword attribute with ZCNpwtest1
Passed suites/password/regression_test.py::test_trivial_passw_check[CNpwtest1Z] 0.17
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:158 Replace userPassword attribute with CNpwtest1Z
Passed suites/password/regression_test.py::test_trivial_passw_check[ZCNpwtest1Z] 0.21
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:158 Replace userPassword attribute with ZCNpwtest1Z
Passed suites/password/regression_test.py::test_trivial_passw_check[ZZCNpwtest1] 0.18
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:158 Replace userPassword attribute with ZZCNpwtest1
Passed suites/password/regression_test.py::test_trivial_passw_check[CNpwtest1ZZ] 0.17
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:158 Replace userPassword attribute with CNpwtest1ZZ
Passed suites/password/regression_test.py::test_trivial_passw_check[ZZCNpwtest1ZZ] 0.19
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:158 Replace userPassword attribute with ZZCNpwtest1ZZ
Passed suites/password/regression_test.py::test_trivial_passw_check[ZZZCNpwtest1] 0.17
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:158 Replace userPassword attribute with ZZZCNpwtest1
Passed suites/password/regression_test.py::test_trivial_passw_check[CNpwtest1ZZZ] 0.18
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:158 Replace userPassword attribute with CNpwtest1ZZZ
Passed suites/password/regression_test.py::test_trivial_passw_check[ZZZCNpwtest1ZZZ] 0.17
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:158 Replace userPassword attribute with ZZZCNpwtest1ZZZ
Passed suites/password/regression_test.py::test_trivial_passw_check[ZZZZZZCNpwtest1ZZZZZZZZ] 0.17
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:158 Replace userPassword attribute with ZZZZZZCNpwtest1ZZZZZZZZ
Passed suites/password/regression_test.py::test_global_vs_local[CNpwtest1] 0.26
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:185 Configure Pwpolicy with PasswordCheckSyntax and nsslapd-pwpolicy-local set to off INFO tests.suites.password.regression_test:regression_test.py:190 Replace userPassword attribute with CNpwtest1
Passed suites/password/regression_test.py::test_global_vs_local[SNpwtest1] 0.22
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:185 Configure Pwpolicy with PasswordCheckSyntax and nsslapd-pwpolicy-local set to off INFO tests.suites.password.regression_test:regression_test.py:190 Replace userPassword attribute with SNpwtest1
Passed suites/password/regression_test.py::test_global_vs_local[UIDpwtest1] 0.22
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:185 Configure Pwpolicy with PasswordCheckSyntax and nsslapd-pwpolicy-local set to off INFO tests.suites.password.regression_test:regression_test.py:190 Replace userPassword attribute with UIDpwtest1
Passed suites/password/regression_test.py::test_global_vs_local[MAILpwtest1@redhat.com] 0.23
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:185 Configure Pwpolicy with PasswordCheckSyntax and nsslapd-pwpolicy-local set to off INFO tests.suites.password.regression_test:regression_test.py:190 Replace userPassword attribute with MAILpwtest1@redhat.com
Passed suites/password/regression_test.py::test_global_vs_local[GNpwtest1] 0.22
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:185 Configure Pwpolicy with PasswordCheckSyntax and nsslapd-pwpolicy-local set to off INFO tests.suites.password.regression_test:regression_test.py:190 Replace userPassword attribute with GNpwtest1
Passed suites/password/regression_test.py::test_global_vs_local[CNpwtest1ZZZZ] 0.22
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:185 Configure Pwpolicy with PasswordCheckSyntax and nsslapd-pwpolicy-local set to off INFO tests.suites.password.regression_test:regression_test.py:190 Replace userPassword attribute with CNpwtest1ZZZZ
Passed suites/password/regression_test.py::test_global_vs_local[ZZZZZCNpwtest1] 0.22
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:185 Configure Pwpolicy with PasswordCheckSyntax and nsslapd-pwpolicy-local set to off INFO tests.suites.password.regression_test:regression_test.py:190 Replace userPassword attribute with ZZZZZCNpwtest1
Passed suites/password/regression_test.py::test_global_vs_local[ZCNpwtest1] 0.22
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:185 Configure Pwpolicy with PasswordCheckSyntax and nsslapd-pwpolicy-local set to off INFO tests.suites.password.regression_test:regression_test.py:190 Replace userPassword attribute with ZCNpwtest1
Passed suites/password/regression_test.py::test_global_vs_local[CNpwtest1Z] 0.21
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:185 Configure Pwpolicy with PasswordCheckSyntax and nsslapd-pwpolicy-local set to off INFO tests.suites.password.regression_test:regression_test.py:190 Replace userPassword attribute with CNpwtest1Z
Passed suites/password/regression_test.py::test_global_vs_local[ZCNpwtest1Z] 0.21
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:185 Configure Pwpolicy with PasswordCheckSyntax and nsslapd-pwpolicy-local set to off INFO tests.suites.password.regression_test:regression_test.py:190 Replace userPassword attribute with ZCNpwtest1Z
Passed suites/password/regression_test.py::test_global_vs_local[ZZCNpwtest1] 0.22
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:185 Configure Pwpolicy with PasswordCheckSyntax and nsslapd-pwpolicy-local set to off INFO tests.suites.password.regression_test:regression_test.py:190 Replace userPassword attribute with ZZCNpwtest1
Passed suites/password/regression_test.py::test_global_vs_local[CNpwtest1ZZ] 0.22
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:185 Configure Pwpolicy with PasswordCheckSyntax and nsslapd-pwpolicy-local set to off INFO tests.suites.password.regression_test:regression_test.py:190 Replace userPassword attribute with CNpwtest1ZZ
Passed suites/password/regression_test.py::test_global_vs_local[ZZCNpwtest1ZZ] 0.21
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:185 Configure Pwpolicy with PasswordCheckSyntax and nsslapd-pwpolicy-local set to off INFO tests.suites.password.regression_test:regression_test.py:190 Replace userPassword attribute with ZZCNpwtest1ZZ
Passed suites/password/regression_test.py::test_global_vs_local[ZZZCNpwtest1] 0.21
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:185 Configure Pwpolicy with PasswordCheckSyntax and nsslapd-pwpolicy-local set to off INFO tests.suites.password.regression_test:regression_test.py:190 Replace userPassword attribute with ZZZCNpwtest1
Passed suites/password/regression_test.py::test_global_vs_local[CNpwtest1ZZZ] 0.21
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:185 Configure Pwpolicy with PasswordCheckSyntax and nsslapd-pwpolicy-local set to off INFO tests.suites.password.regression_test:regression_test.py:190 Replace userPassword attribute with CNpwtest1ZZZ
Passed suites/password/regression_test.py::test_global_vs_local[ZZZCNpwtest1ZZZ] 0.22
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:185 Configure Pwpolicy with PasswordCheckSyntax and nsslapd-pwpolicy-local set to off INFO tests.suites.password.regression_test:regression_test.py:190 Replace userPassword attribute with ZZZCNpwtest1ZZZ
Passed suites/password/regression_test.py::test_global_vs_local[ZZZZZZCNpwtest1ZZZZZZZZ] 0.21
------------------------------ Captured log call -------------------------------
INFO tests.suites.password.regression_test:regression_test.py:185 Configure Pwpolicy with PasswordCheckSyntax and nsslapd-pwpolicy-local set to off INFO tests.suites.password.regression_test:regression_test.py:190 Replace userPassword attribute with ZZZZZZCNpwtest1ZZZZZZZZ
Passed suites/plugins/acceptance_test.py::test_acctpolicy 13.56
------------------------------ Captured log setup ------------------------------
INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. INFO lib389.topologies:topologies.py:106 Instance with parameters {'ldap-port': 38902, 'ldap-secureport': 63602, 'server-id': 'standalone2', 'suffix': 'dc=example,dc=com'} was created.----------------------------- Captured stderr call -----------------------------
Job for dirsrv@standalone1.service failed because the control process exited with error code. See "systemctl status dirsrv@standalone1.service" and "journalctl -xe" for details.
Passed suites/plugins/acceptance_test.py::test_attruniq 15.19
----------------------------- Captured stderr call -----------------------------
Job for dirsrv@standalone1.service failed because the control process exited with error code. See "systemctl status dirsrv@standalone1.service" and "journalctl -xe" for details.
Passed suites/plugins/acceptance_test.py::test_automember 22.53
----------------------------- Captured stderr call -----------------------------
Job for dirsrv@standalone1.service failed because the control process exited with error code. See "systemctl status dirsrv@standalone1.service" and "journalctl -xe" for details.
Passed suites/plugins/acceptance_test.py::test_dna 15.15
----------------------------- Captured stderr call -----------------------------
Job for dirsrv@standalone1.service failed because the control process exited with error code. See "systemctl status dirsrv@standalone1.service" and "journalctl -xe" for details.
Passed suites/plugins/acceptance_test.py::test_linkedattrs 22.63
----------------------------- Captured stderr call -----------------------------
Job for dirsrv@standalone1.service failed because the control process exited with error code. See "systemctl status dirsrv@standalone1.service" and "journalctl -xe" for details.
Passed suites/plugins/acceptance_test.py::test_memberof 33.56
----------------------------- Captured stderr call -----------------------------
Job for dirsrv@standalone1.service failed because the control process exited with error code. See "systemctl status dirsrv@standalone1.service" and "journalctl -xe" for details.
Passed suites/plugins/acceptance_test.py::test_mep 15.29
----------------------------- Captured stderr call -----------------------------
Job for dirsrv@standalone1.service failed because the control process exited with error code. See "systemctl status