report.html

Report generated on 28-Jun-2018 at 21:13:38 by pytest-html v1.19.0

Environment

389-ds-base 1.4.0.11-20180628git08b2d88.fc28
Packages {'pytest': '3.6.2', 'py': '1.5.3', 'pluggy': '0.6.0'}
Platform Linux-4.16.12-300.fc28.x86_64-x86_64-with-fedora-28-Twenty_Eight
Plugins {'metadata': '1.7.0', 'html': '1.19.0'}
Python 3.6.5
cyrus-sasl 2.1.27-0.2rc7.fc28
nspr 4.19.0-1.fc28
nss 3.37.3-1.1.fc28
openldap 2.4.46-1.fc28

Summary

772 tests ran in 7046.79 seconds.

588 passed, 17 skipped, 184 failed, 6 errors, 0 expected failures, 0 unexpected passes

Results

Result Test Duration Links
Error suites/ds_tools/replcheck_test.py::test_check_ruv::setup 22.43
topo = <lib389.topologies.TopologyMain object at 0x7f7043132eb8>

@pytest.fixture(scope="module")
def topo_tls_ldapi(topo):
"""Enable TLS on both masters and reconfigure both agreements
to use TLS Client auth. Also, setup ldapi and export DB
"""

m1 = topo.ms["master1"]
m2 = topo.ms["master2"]
# Create the certmap before we restart for enable_tls
cm_m1 = CertmapLegacy(m1)
cm_m2 = CertmapLegacy(m2)

# We need to configure the same maps for both ....
certmaps = cm_m1.list()
certmaps['default']['DNComps'] = None
certmaps['default']['CmapLdapAttr'] = 'nsCertSubjectDN'

cm_m1.set(certmaps)
cm_m2.set(certmaps)

> [i.enable_tls() for i in topo]

suites/ds_tools/replcheck_test.py:64:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
suites/ds_tools/replcheck_test.py:64: in <listcomp>
[i.enable_tls() for i in topo]
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:1658: in enable_tls
self.restart(post_open=post_open)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:1327: in restart
self.start(timeout, post_open)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:1197: in start
"dirsrv@%s" % self.serverid])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

popenargs = (['/usr/bin/systemctl', 'start', 'dirsrv@master1'],), kwargs = {}
retcode = 1, cmd = ['/usr/bin/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 '['/usr/bin/systemctl', 'start', 'dirsrv@master1']' returned non-zero exit status 1.

/usr/lib64/python3.6/subprocess.py:291: CalledProcessError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Creating replication topology. INFO:lib389.topologies:Joining master master2 to master1 ... INFO:lib389.replica:SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO:lib389.topologies:Ensuring master master1 to master2 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO:lib389.topologies:Ensuring master master2 to master1 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists 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 setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. topologies.py 106 INFO Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. topologies.py 139 INFO Creating replication topology. topologies.py 153 INFO Joining master master2 to master1 ... replica.py 1461 INFO SUCCESS: bootstrap to ldap://server.example.com:39002 completed replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working replica.py 1530 INFO SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 topologies.py 161 INFO Ensuring master master1 to master2 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists topologies.py 161 INFO Ensuring master master2 to master1 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists
Error suites/ds_tools/replcheck_test.py::test_missing_entries::setup 0.00
topo = <lib389.topologies.TopologyMain object at 0x7f7043132eb8>

@pytest.fixture(scope="module")
def topo_tls_ldapi(topo):
"""Enable TLS on both masters and reconfigure both agreements
to use TLS Client auth. Also, setup ldapi and export DB
"""

m1 = topo.ms["master1"]
m2 = topo.ms["master2"]
# Create the certmap before we restart for enable_tls
cm_m1 = CertmapLegacy(m1)
cm_m2 = CertmapLegacy(m2)

# We need to configure the same maps for both ....
certmaps = cm_m1.list()
certmaps['default']['DNComps'] = None
certmaps['default']['CmapLdapAttr'] = 'nsCertSubjectDN'

cm_m1.set(certmaps)
cm_m2.set(certmaps)

> [i.enable_tls() for i in topo]

suites/ds_tools/replcheck_test.py:64:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
suites/ds_tools/replcheck_test.py:64: in <listcomp>
[i.enable_tls() for i in topo]
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:1658: in enable_tls
self.restart(post_open=post_open)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:1327: in restart
self.start(timeout, post_open)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:1197: in start
"dirsrv@%s" % self.serverid])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

popenargs = (['/usr/bin/systemctl', 'start', 'dirsrv@master1'],), kwargs = {}
retcode = 1, cmd = ['/usr/bin/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 '['/usr/bin/systemctl', 'start', 'dirsrv@master1']' returned non-zero exit status 1.

/usr/lib64/python3.6/subprocess.py:291: CalledProcessError
Error suites/ds_tools/replcheck_test.py::test_tombstones::setup 0.00
topo = <lib389.topologies.TopologyMain object at 0x7f7043132eb8>

@pytest.fixture(scope="module")
def topo_tls_ldapi(topo):
"""Enable TLS on both masters and reconfigure both agreements
to use TLS Client auth. Also, setup ldapi and export DB
"""

m1 = topo.ms["master1"]
m2 = topo.ms["master2"]
# Create the certmap before we restart for enable_tls
cm_m1 = CertmapLegacy(m1)
cm_m2 = CertmapLegacy(m2)

# We need to configure the same maps for both ....
certmaps = cm_m1.list()
certmaps['default']['DNComps'] = None
certmaps['default']['CmapLdapAttr'] = 'nsCertSubjectDN'

cm_m1.set(certmaps)
cm_m2.set(certmaps)

> [i.enable_tls() for i in topo]

suites/ds_tools/replcheck_test.py:64:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
suites/ds_tools/replcheck_test.py:64: in <listcomp>
[i.enable_tls() for i in topo]
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:1658: in enable_tls
self.restart(post_open=post_open)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:1327: in restart
self.start(timeout, post_open)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:1197: in start
"dirsrv@%s" % self.serverid])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

popenargs = (['/usr/bin/systemctl', 'start', 'dirsrv@master1'],), kwargs = {}
retcode = 1, cmd = ['/usr/bin/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 '['/usr/bin/systemctl', 'start', 'dirsrv@master1']' returned non-zero exit status 1.

/usr/lib64/python3.6/subprocess.py:291: CalledProcessError
Error suites/ds_tools/replcheck_test.py::test_conflict_entries::setup 0.00
topo = <lib389.topologies.TopologyMain object at 0x7f7043132eb8>

@pytest.fixture(scope="module")
def topo_tls_ldapi(topo):
"""Enable TLS on both masters and reconfigure both agreements
to use TLS Client auth. Also, setup ldapi and export DB
"""

m1 = topo.ms["master1"]
m2 = topo.ms["master2"]
# Create the certmap before we restart for enable_tls
cm_m1 = CertmapLegacy(m1)
cm_m2 = CertmapLegacy(m2)

# We need to configure the same maps for both ....
certmaps = cm_m1.list()
certmaps['default']['DNComps'] = None
certmaps['default']['CmapLdapAttr'] = 'nsCertSubjectDN'

cm_m1.set(certmaps)
cm_m2.set(certmaps)

> [i.enable_tls() for i in topo]

suites/ds_tools/replcheck_test.py:64:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
suites/ds_tools/replcheck_test.py:64: in <listcomp>
[i.enable_tls() for i in topo]
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:1658: in enable_tls
self.restart(post_open=post_open)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:1327: in restart
self.start(timeout, post_open)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:1197: in start
"dirsrv@%s" % self.serverid])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

popenargs = (['/usr/bin/systemctl', 'start', 'dirsrv@master1'],), kwargs = {}
retcode = 1, cmd = ['/usr/bin/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 '['/usr/bin/systemctl', 'start', 'dirsrv@master1']' returned non-zero exit status 1.

/usr/lib64/python3.6/subprocess.py:291: CalledProcessError
Error suites/ds_tools/replcheck_test.py::test_inconsistencies::setup 0.00
topo = <lib389.topologies.TopologyMain object at 0x7f7043132eb8>

@pytest.fixture(scope="module")
def topo_tls_ldapi(topo):
"""Enable TLS on both masters and reconfigure both agreements
to use TLS Client auth. Also, setup ldapi and export DB
"""

m1 = topo.ms["master1"]
m2 = topo.ms["master2"]
# Create the certmap before we restart for enable_tls
cm_m1 = CertmapLegacy(m1)
cm_m2 = CertmapLegacy(m2)

# We need to configure the same maps for both ....
certmaps = cm_m1.list()
certmaps['default']['DNComps'] = None
certmaps['default']['CmapLdapAttr'] = 'nsCertSubjectDN'

cm_m1.set(certmaps)
cm_m2.set(certmaps)

> [i.enable_tls() for i in topo]

suites/ds_tools/replcheck_test.py:64:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
suites/ds_tools/replcheck_test.py:64: in <listcomp>
[i.enable_tls() for i in topo]
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:1658: in enable_tls
self.restart(post_open=post_open)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:1327: in restart
self.start(timeout, post_open)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:1197: in start
"dirsrv@%s" % self.serverid])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

popenargs = (['/usr/bin/systemctl', 'start', 'dirsrv@master1'],), kwargs = {}
retcode = 1, cmd = ['/usr/bin/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 '['/usr/bin/systemctl', 'start', 'dirsrv@master1']' returned non-zero exit status 1.

/usr/lib64/python3.6/subprocess.py:291: CalledProcessError
Error suites/replication/conflict_resolve_test.py::TestThreeMasters::()::test_nested_entries::teardown 5.51
def fin():
if not DEBUGGING:
> _delete_test_base(topology_m3.ms["master1"], tb.dn)

suites/replication/conflict_resolve_test.py:160:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
suites/replication/conflict_resolve_test.py:137: in _delete_test_base
inst.delete_ext_s(ent.dn)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:551: in delete_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702fbb2dd8>
func = <built-in method result4 of LDAP object at 0x7f704270ba30>
args = (151, 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.NOT_ALLOWED_ON_NONLEAF: {'desc': 'Operation not allowed on non-leaf', 'info': 'Entry has replication conflicts as children'}

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: NOT_ALLOWED_ON_NONLEAF
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists OK group dirsrv exists OK user dirsrv exists OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Instance with parameters {'ldap-port': 39003, 'ldap-secureport': 63703, 'server-id': 'master3', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Creating replication topology. INFO:lib389.topologies:Joining master master2 to master1 ... INFO:lib389.replica:SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO:lib389.topologies:Joining master master3 to master1 ... INFO:lib389.replica:SUCCESS: bootstrap to ldap://server.example.com:39003 completed INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39003 is was created INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39003 to ldap://server.example.com:39001 is was created INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39003 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39003 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39003 INFO:lib389.topologies:Ensuring master master1 to master2 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO:lib389.topologies:Ensuring master master1 to master3 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39003 already exists INFO:lib389.topologies:Ensuring master master2 to master1 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists INFO:lib389.topologies:Ensuring master master2 to master3 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39003 is was created INFO:lib389.topologies:Ensuring master master3 to master1 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39003 to ldap://server.example.com:39001 already exists INFO:lib389.topologies:Ensuring master master3 to master2 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39003 to ldap://server.example.com:39002 is was created ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. topologies.py 106 INFO Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. topologies.py 106 INFO Instance with parameters {'ldap-port': 39003, 'ldap-secureport': 63703, 'server-id': 'master3', 'suffix': 'dc=example,dc=com'} was created. topologies.py 139 INFO Creating replication topology. topologies.py 153 INFO Joining master master2 to master1 ... replica.py 1461 INFO SUCCESS: bootstrap to ldap://server.example.com:39002 completed replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working replica.py 1530 INFO SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 topologies.py 153 INFO Joining master master3 to master1 ... replica.py 1461 INFO SUCCESS: bootstrap to ldap://server.example.com:39003 completed replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39003 is was created replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39003 to ldap://server.example.com:39001 is was created replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39003 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39003 to ldap://server.example.com:39001 is working replica.py 1530 INFO SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39003 topologies.py 161 INFO Ensuring master master1 to master2 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists topologies.py 161 INFO Ensuring master master1 to master3 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39003 already exists topologies.py 161 INFO Ensuring master master2 to master1 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists topologies.py 161 INFO Ensuring master master2 to master3 ... replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39003 is was created topologies.py 161 INFO Ensuring master master3 to master1 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39003 to ldap://server.example.com:39001 already exists topologies.py 161 INFO Ensuring master master3 to master2 ... replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39003 to ldap://server.example.com:39002 is was created----------------------------- Captured stderr call -----------------------------
INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39003 is working INFO:tests.suites.replication.conflict_resolve_test:Create two child entries under each of two entries INFO:tests.suites.replication.conflict_resolve_test:Create three child entries under each of three entries INFO:tests.suites.replication.conflict_resolve_test: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 INFO:tests.suites.replication.conflict_resolve_test:Test a few more parent-child combinations on three instances INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39003 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39003 is working ------------------------------ Captured log call -------------------------------
replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39003 is working conflict_resolve_test.py 803 INFO Create two child entries under each of two entries conflict_resolve_test.py 810 INFO Create three child entries under each of three entries conflict_resolve_test.py 817 INFO 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 conflict_resolve_test.py 830 INFO Test a few more parent-child combinations on three instances replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39003 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39003 is working--------------------------- Captured stdout teardown ---------------------------
Instance slapd-master1 removed. Instance slapd-master2 removed. Instance slapd-master3 removed.
Failed suites/paged_results/paged_results_test.py::test_search_dns_ip_aci[ip = "10.8.245.44"] 3.16
topology_st = <lib389.topologies.TopologyMain object at 0x7f7042282dd8>
test_user = <lib389.idm.user.UserAccount object at 0x7f704229a588>
aci_subject = 'ip = "10.8.245.44"'

@pytest.mark.parametrize('aci_subject',
('dns = "{}"'.format(HOSTNAME),
'ip = "{}"'.format(IP_ADDRESS)))
def test_search_dns_ip_aci(topology_st, test_user, aci_subject):
"""Verify that after performing multiple simple paged searches
to completion on the suffix with DNS or IP based ACI

:id: bbfddc46-a8c8-49ae-8c90-7265d05b22a9
:setup: Standalone instance, test user for binding,
varying number of users for the search base
:steps:
1. Back up and remove all previous ACI from suffix
2. Add an anonymous ACI for DNS check
3. Bind as test user
4. Search through added users with a simple paged control
5. Perform steps 4 three times in a row
6. Return ACI to the initial state
7. Go through all steps once again, but use IP subject dn
instead of DNS
:expectedresults:
1. Operation should be successful
2. Anonymous ACI should be successfully added
3. Bind should be successful
4. No error happens, all users should be found and sorted
5. Results should remain the same
6. ACI should be successfully returned
7. Results should be the same with ACI with IP subject dn
"""

users_num = 100
page_size = 5
users_list = add_users(topology_st, users_num, DEFAULT_SUFFIX)
search_flt = r'(uid=test*)'
searchreq_attrlist = ['dn', 'sn']

try:
log.info('Back up current suffix ACI')
acis_bck = topology_st.standalone.aci.list(DEFAULT_SUFFIX, ldap.SCOPE_BASE)

log.info('Add test ACI')
ACI_TARGET = '(targetattr != "userPassword")'
ACI_ALLOW = '(version 3.0;acl "Anonymous access within domain"; allow (read,compare,search)'
ACI_SUBJECT = '(userdn = "ldap:///anyone") and (%s);)' % aci_subject
ACI_BODY = ensure_bytes(ACI_TARGET + ACI_ALLOW + ACI_SUBJECT)
topology_st.standalone.modify_s(DEFAULT_SUFFIX, [(ldap.MOD_REPLACE, 'aci', ACI_BODY)])
log.info('Set user bind')
conn = test_user.bind(TEST_USER_PWD)

log.info('Create simple paged results control instance')
req_ctrl = SimplePagedResultsControl(True, size=page_size, cookie='')
controls = [req_ctrl]

log.info('Initiate three searches with a paged results control')
for ii in range(3):
log.info('%d search' % (ii + 1))
all_results = paged_search(conn, DEFAULT_SUFFIX, controls,
search_flt, searchreq_attrlist)
log.info('%d results' % len(all_results))
> assert len(all_results) == len(users_list)
E assert 0 == 100
E + where 0 = len([])
E + and 100 = len([<lib389.idm.user.UserAccount object at 0x7f70329e8550>, <lib389.idm.user.UserAccount object at 0x7f704268dac8>, <lib3...>, <lib389.idm.user.UserAccount object at 0x7f70309a2588>, <lib389.idm.user.UserAccount object at 0x7f7042006710>, ...])

suites/paged_results/paged_results_test.py:564: AssertionError
----------------------------- Captured stderr call -----------------------------
INFO:tests.suites.paged_results.paged_results_test:Adding 100 users INFO:tests.suites.paged_results.paged_results_test:Back up current suffix ACI INFO:tests.suites.paged_results.paged_results_test:Add test ACI INFO:tests.suites.paged_results.paged_results_test:Set user bind INFO:tests.suites.paged_results.paged_results_test:Create simple paged results control instance INFO:tests.suites.paged_results.paged_results_test:Initiate three searches with a paged results control INFO:tests.suites.paged_results.paged_results_test:1 search INFO:tests.suites.paged_results.paged_results_test: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 0x7f7032992a58>]. INFO:tests.suites.paged_results.paged_results_test:Getting page 0 INFO:tests.suites.paged_results.paged_results_test:0 results INFO:tests.suites.paged_results.paged_results_test:Restore ACI INFO:tests.suites.paged_results.paged_results_test:Deleting 100 users ------------------------------ Captured log call -------------------------------
paged_results_test.py 131 INFO Adding 100 users paged_results_test.py 542 INFO Back up current suffix ACI paged_results_test.py 545 INFO Add test ACI paged_results_test.py 551 INFO Set user bind paged_results_test.py 554 INFO Create simple paged results control instance paged_results_test.py 558 INFO Initiate three searches with a paged results control paged_results_test.py 560 INFO 1 search paged_results_test.py 194 INFO 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 0x7f7032992a58>]. paged_results_test.py 197 INFO Getting page 0 paged_results_test.py 563 INFO 0 results paged_results_test.py 568 INFO Restore ACI paged_results_test.py 153 INFO Deleting 100 users
Failed suites/password/pbkdf2_upgrade_plugin_test.py::test_pbkdf2_upgrade 3.29
topology_st = <lib389.topologies.TopologyMain object at 0x7f70329af208>

def test_pbkdf2_upgrade(topology_st):
"""On upgrade pbkdf2 doesn't ship. We need to be able to
provide this on upgrade to make sure default hashes work.
However, password plugins are special - they need really
early bootstap so that setting the default has specs work.

This tests that the removal of the pbkdf2 plugin causes
it to be re-bootstrapped and added.

:id: c2198692-7c02-433b-af5b-3be54920571a
:setup: Single instance
:steps: 1. Remove the PBKDF2 plugin
2. Restart the server
3. Restart the server
:expectedresults:
1. Plugin is removed (IE pre-upgrade state)
2. The plugin is bootstrapped and added
3. No change (already bootstrapped)

"""
# Remove the pbkdf2 plugin config
p1 = PBKDF2Plugin(topology_st.standalone)
assert(p1.exists())
p1._protected = False
p1.delete()
# Restart
> topology_st.standalone.restart()

suites/password/pbkdf2_upgrade_plugin_test.py:39:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:1327: in restart
self.start(timeout, post_open)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:1197: in start
"dirsrv@%s" % self.serverid])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

popenargs = (['/usr/bin/systemctl', 'start', 'dirsrv@standalone1'],)
kwargs = {}, retcode = 1
cmd = ['/usr/bin/systemctl', 'start', 'dirsrv@standalone1']

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 '['/usr/bin/systemctl', 'start', 'dirsrv@standalone1']' returned non-zero exit status 1.

/usr/lib64/python3.6/subprocess.py:291: CalledProcessError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', '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.
Failed suites/replication/cleanallruv_test.py::test_abort_restart 11.93
topology_m4 = <lib389.topologies.TopologyMain object at 0x7f70331f2588>
m4rid = '4'

def test_abort_restart(topology_m4, m4rid):
"""Test the abort task can handle a restart, and then resume

:id: b66e33d4-fe85-4e1c-b882-75da80f70ab3
:setup: Replication setup with four masters
:steps:
1. Disable replication on master 4
2. Remove agreements to master 4 from other masters
3. Stop master 3
4. Run a cleanallruv task on master 1
5. Run a cleanallruv abort task on master 1
6. Restart master 1
7. Make sure that no crash happened
8. Start master 3
9. Check master 1 does not have the clean task running
10. Check that errors log doesn't have 'Aborting abort task' message
:expectedresults:
1. Replication on master 4 should be disabled
2. Agreements to master 4 should be removed
3. Master 3 should be stopped
4. Operation should be successful
5. Operation should be successful
6. Master 1 should be restarted
7. No crash should happened
8. Master 3 should be started
9. Check master 1 shouldn't have the clean task running
10. Errors log shouldn't have 'Aborting abort task' message
"""

log.info('Running test_abort_restart...')
# Remove the agreements from the other masters that point to master 4
remove_master4_agmts("test_abort", topology_m4)

# Stop master 3
log.info('test_abort_restart: stop master 3 to freeze the cleanAllRUV task...')
topology_m4.ms["master3"].stop()

# Run the task
log.info('test_abort_restart: add the cleanAllRUV task...')
cruv_task = CleanAllRUVTask(topology_m4.ms["master1"])
cruv_task.create(properties={
'replica-id': m4rid,
'replica-base-dn': DEFAULT_SUFFIX
})
# Wait a bit
time.sleep(2)

# Abort the task
abort_task = cruv_task.abort()

# Check master 1 does not have the clean task running
log.info('test_abort_abort: check master 1 no longer has a cleanAllRUV task...')
if not task_done(topology_m4, cruv_task.dn):
log.fatal('test_abort_restart: CleanAllRUV task was not aborted')
assert False

# Now restart master 1, and make sure the abort process completes
topology_m4.ms["master1"].restart()
if topology_m4.ms["master1"].detectDisorderlyShutdown():
log.fatal('test_abort_restart: Master 1 previously crashed!')
assert False

# Start master 3
topology_m4.ms["master3"].start()

# Check master 1 tried to run abort task. We expect the abort task to be aborted.
if not topology_m4.ms["master1"].searchErrorsLog('Aborting abort task'):
log.fatal('test_abort_restart: Abort task did not restart')
> assert False
E assert False

suites/replication/cleanallruv_test.py:453: AssertionError
---------------------------- Captured stderr setup -----------------------------
DEBUG:tests.suites.replication.cleanallruv_test:-------------- BEGIN RESET of m4 ----------------- INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39003 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39004 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39003 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39004 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39003 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39003 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39003 to ldap://server.example.com:39004 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39004 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39004 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39004 to ldap://server.example.com:39003 is working DEBUG:tests.suites.replication.cleanallruv_test:-------------- FINISH RESET of m4 ----------------- ------------------------------ Captured log setup ------------------------------
cleanallruv_test.py 141 DEBUG -------------- BEGIN RESET of m4 ----------------- replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39003 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39004 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39003 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39004 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39003 to ldap://server.example.com:39001 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39003 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39003 to ldap://server.example.com:39004 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39004 to ldap://server.example.com:39001 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39004 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39004 to ldap://server.example.com:39003 is working cleanallruv_test.py 162 DEBUG -------------- FINISH RESET of m4 ---------------------------------------------- Captured stderr call -----------------------------
INFO:tests.suites.replication.cleanallruv_test:Running test_abort_restart... INFO:tests.suites.replication.cleanallruv_test:test_abort: remove all the agreements to master 4... INFO:tests.suites.replication.cleanallruv_test:test_abort_restart: stop master 3 to freeze the cleanAllRUV task... INFO:tests.suites.replication.cleanallruv_test:test_abort_restart: add the cleanAllRUV task... INFO:tests.suites.replication.cleanallruv_test:test_abort_abort: check master 1 no longer has a cleanAllRUV task... CRITICAL:tests.suites.replication.cleanallruv_test:test_abort_restart: Abort task did not restart ------------------------------ Captured log call -------------------------------
cleanallruv_test.py 414 INFO Running test_abort_restart... cleanallruv_test.py 67 INFO test_abort: remove all the agreements to master 4... cleanallruv_test.py 419 INFO test_abort_restart: stop master 3 to freeze the cleanAllRUV task... cleanallruv_test.py 423 INFO test_abort_restart: add the cleanAllRUV task... cleanallruv_test.py 436 INFO test_abort_abort: check master 1 no longer has a cleanAllRUV task... cleanallruv_test.py 452 CRITICAL test_abort_restart: Abort task did not restart
Failed suites/replication/cleanallruv_test.py::test_abort_certify 130.95
topology_m4 = <lib389.topologies.TopologyMain object at 0x7f70331f2588>
m4rid = '4'

def test_abort_certify(topology_m4, m4rid):
"""Test the abort task with a replica-certify-all option

:id: 78959966-d644-44a8-b98c-1fcf21b45eb0
:setup: Replication setup with four masters
:steps:
1. Disable replication on master 4
2. Remove agreements to master 4 from other masters
3. Stop master 2
4. Run a cleanallruv task on master 1
5. Run a cleanallruv abort task on master 1 with a replica-certify-all option
:expectedresults: No hanging tasks left
1. Replication on master 4 should be disabled
2. Agreements to master 4 should be removed
3. Master 2 should be stopped
4. Operation should be successful
5. Operation should be successful
"""

log.info('Running test_abort_certify...')

# Remove the agreements from the other masters that point to master 4
remove_master4_agmts("test_abort_certify", topology_m4)

# Stop master 2
log.info('test_abort_certify: stop master 2 to freeze the cleanAllRUV task...')
topology_m4.ms["master2"].stop()

# Run the task
log.info('test_abort_certify: add the cleanAllRUV task...')
cruv_task = CleanAllRUVTask(topology_m4.ms["master1"])
cruv_task.create(properties={
'replica-id': m4rid,
'replica-base-dn': DEFAULT_SUFFIX
})
# Wait a bit
time.sleep(2)

# Abort the task
log.info('test_abort_certify: abort the cleanAllRUV task...')
abort_task = cruv_task.abort(certify=True)

# Wait a while and make sure the abort task is still running
log.info('test_abort_certify: sleep for 5 seconds')
time.sleep(5)

if task_done(topology_m4, abort_task.dn, 60):
log.fatal('test_abort_certify: abort task incorrectly finished')
assert False

# Now start master 2 so it can be aborted
log.info('test_abort_certify: start master 2 to allow the abort task to finish...')
topology_m4.ms["master2"].start()

# Wait for the abort task to stop
if not task_done(topology_m4, abort_task.dn, 60):
log.fatal('test_abort_certify: The abort CleanAllRUV task was not aborted')
> assert False
E assert False

suites/replication/cleanallruv_test.py:515: AssertionError
---------------------------- Captured stderr setup -----------------------------
DEBUG:tests.suites.replication.cleanallruv_test:-------------- BEGIN RESET of m4 ----------------- INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39003 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39004 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39003 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39004 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39003 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39003 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39003 to ldap://server.example.com:39004 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39004 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39004 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39004 to ldap://server.example.com:39003 is working DEBUG:tests.suites.replication.cleanallruv_test:-------------- FINISH RESET of m4 ----------------- ------------------------------ Captured log setup ------------------------------
cleanallruv_test.py 141 DEBUG -------------- BEGIN RESET of m4 ----------------- replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39003 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39004 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39003 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39004 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39003 to ldap://server.example.com:39001 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39003 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39003 to ldap://server.example.com:39004 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39004 to ldap://server.example.com:39001 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39004 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39004 to ldap://server.example.com:39003 is working cleanallruv_test.py 162 DEBUG -------------- FINISH RESET of m4 ---------------------------------------------- Captured stderr call -----------------------------
INFO:tests.suites.replication.cleanallruv_test:Running test_abort_certify... INFO:tests.suites.replication.cleanallruv_test:test_abort_certify: remove all the agreements to master 4... INFO:tests.suites.replication.cleanallruv_test:test_abort_certify: stop master 2 to freeze the cleanAllRUV task... INFO:tests.suites.replication.cleanallruv_test:test_abort_certify: add the cleanAllRUV task... INFO:tests.suites.replication.cleanallruv_test:test_abort_certify: abort the cleanAllRUV task... INFO:tests.suites.replication.cleanallruv_test:test_abort_certify: sleep for 5 seconds INFO:tests.suites.replication.cleanallruv_test:test_abort_certify: start master 2 to allow the abort task to finish... CRITICAL:tests.suites.replication.cleanallruv_test:test_abort_certify: The abort CleanAllRUV task was not aborted ------------------------------ Captured log call -------------------------------
cleanallruv_test.py 477 INFO Running test_abort_certify... cleanallruv_test.py 67 INFO test_abort_certify: remove all the agreements to master 4... cleanallruv_test.py 483 INFO test_abort_certify: stop master 2 to freeze the cleanAllRUV task... cleanallruv_test.py 487 INFO test_abort_certify: add the cleanAllRUV task... cleanallruv_test.py 497 INFO test_abort_certify: abort the cleanAllRUV task... cleanallruv_test.py 501 INFO test_abort_certify: sleep for 5 seconds cleanallruv_test.py 509 INFO test_abort_certify: start master 2 to allow the abort task to finish... cleanallruv_test.py 514 CRITICAL test_abort_certify: The abort CleanAllRUV task was not aborted
Failed suites/replication/conflict_resolve_test.py::TestTwoMasters::()::test_managed_entries 20.07
self = <tests.suites.replication.conflict_resolve_test.TestTwoMasters object at 0x7f702f276f98>
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f70424bd8d0>

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
"""

M1 = topology_m2.ms["master1"]
M2 = topology_m2.ms["master2"]
repl = ReplicationManager(SUFFIX)

ous = OrganizationalUnits(M1, DEFAULT_SUFFIX)
ou_people = ous.create(properties={'ou': 'managed_people'})
ou_groups = ous.create(properties={'ou': 'managed_groups'})

test_users_m1 = UserAccounts(M1, DEFAULT_SUFFIX, rdn='ou={}'.format(ou_people.rdn))
test_users_m2 = UserAccounts(M2, DEFAULT_SUFFIX, rdn='ou={}'.format(ou_people.rdn))

# TODO: Refactor ManagedPlugin class functionality (also add configs and templates)
conts = nsContainers(M1, SUFFIX)
template = conts.create(properties={
'objectclass': 'top mepTemplateEntry extensibleObject'.split(),
'cn': 'MEP Template',
'mepRDNAttr': 'cn',
'mepStaticAttr': ['objectclass: posixGroup', 'objectclass: extensibleObject'],
'mepMappedAttr': ['cn: $uid', 'uid: $cn', 'gidNumber: $uidNumber']
})
> repl.test_replication(M1, M2)

suites/replication/conflict_resolve_test.py:508:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/replica.py:1892: in test_replication
self.wait_for_replication(from_instance, to_instance, timeout)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.replica.ReplicationManager object at 0x7f702f2767b8>
from_instance = <lib389.DirSrv object at 0x7f70424a80b8>
to_instance = <lib389.DirSrv object at 0x7f702fb99240>, 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.6/site-packages/lib389/replica.py:1876: Exception
Failed suites/replication/conflict_resolve_test.py::TestTwoMasters::()::test_nested_entries_with_children 20.18
self = <tests.suites.replication.conflict_resolve_test.TestTwoMasters object at 0x7f70424cd438>
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f70424bd8d0>
test_base = <lib389.idm.nscontainer.nsContainer object at 0x7f702f518ba8>

def test_nested_entries_with_children(self, topology_m2, test_base):
"""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
"""

M1 = topology_m2.ms["master1"]
M2 = topology_m2.ms["master2"]
repl = ReplicationManager(SUFFIX)
test_users_m1 = UserAccounts(M1, test_base.dn, rdn=None)
test_users_m2 = UserAccounts(M2, test_base.dn, rdn=None)
_create_user(test_users_m1, 4000)
_create_user(test_users_m1, 4001)

cont_list = []
for num in range(15):
cont = _create_container(M1, test_base.dn, 'sub{}'.format(num))
cont_list.append(cont)

> repl.test_replication(M1, M2)

suites/replication/conflict_resolve_test.py:590:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/replica.py:1892: in test_replication
self.wait_for_replication(from_instance, to_instance, timeout)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.replica.ReplicationManager object at 0x7f702f518c88>
from_instance = <lib389.DirSrv object at 0x7f70424a80b8>
to_instance = <lib389.DirSrv object at 0x7f702fb99240>, 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.6/site-packages/lib389/replica.py:1876: Exception
Failed suites/replication/conflict_resolve_test.py::TestThreeMasters::()::test_nested_entries 64.44
self = <tests.suites.replication.conflict_resolve_test.TestThreeMasters object at 0x7f702fbb2630>
topology_m3 = <lib389.topologies.TopologyMain object at 0x7f70424b9588>
test_base_m3 = <lib389.idm.nscontainer.nsContainer object at 0x7f7042484128>

def test_nested_entries(self, topology_m3, test_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
"""

M1 = topology_m3.ms["master1"]
M2 = topology_m3.ms["master2"]
M3 = topology_m3.ms["master3"]
repl = ReplicationManager(SUFFIX)

cont_list = []
for num in range(11):
cont = _create_container(M1, test_base_m3.dn, 'sub{}'.format(num))
cont_list.append(cont)

repl.test_replication(M1, M2)
repl.test_replication(M1, M3)

topology_m3.pause_all_replicas()

log.info("Create two child entries under each of two entries")
cont_num = -1
for num in range(2):
cont_num += 1
_create_container(M1, cont_list[cont_num].dn, 'p0', sleep=True)
_create_container(M2, cont_list[cont_num].dn, 'p1', sleep=True)

log.info("Create three child entries under each of three entries")
for num in range(3):
cont_num += 1
_create_container(M1, cont_list[cont_num].dn, 'p0', sleep=True)
_create_container(M2, cont_list[cont_num].dn, 'p1', sleep=True)
_create_container(M3, cont_list[cont_num].dn, 'p2', sleep=True)

log.info("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")
for inst1, inst2 in ((M1, M2), (M2, M1)):
cont_num += 1
cont_p_m1_1 = _create_container(inst1, cont_list[cont_num].dn, 'p0')
cont_p_m1_2 = _create_container(inst1, cont_list[cont_num].dn, 'p1', sleep=True)
cont_p_m2_1 = _create_container(inst2, cont_list[cont_num].dn, 'p0')
cont_p_m2_2 = _create_container(inst2, cont_list[cont_num].dn, 'p1', sleep=True)
_create_container(inst1, cont_p_m1_1.dn, 'c0', sleep=True)
_delete_container(cont_p_m2_1, sleep=True)
_delete_container(cont_p_m1_2, sleep=True)
_create_container(inst2, cont_p_m2_2.dn, 'c0', sleep=True)

log.info("Test a few more parent-child combinations on three instances")
for inst1, inst2, inst3 in ((M1, M2, M3), (M2, M1, M3), (M3, M1, M2)):
cont_num += 1
cont_p_m1 = _create_container(inst1, cont_list[cont_num].dn, 'p0')
_delete_container(cont_p_m1, sleep=True)

cont_p_m2 = _create_container(inst2, cont_list[cont_num].dn, 'p0')
cont_c_m2 = _create_container(inst2, cont_p_m2.dn, 'c0')
_delete_container(cont_c_m2)
_delete_container(cont_p_m2, sleep=True)

cont_p_m3 = _create_container(inst3, cont_list[cont_num].dn, 'p0')
_create_container(inst3, cont_p_m3.dn, 'c0')
_create_container(inst3, cont_p_m3.dn, 'c1', sleep=True)

topology_m3.resume_all_replicas()

> repl.test_replication_topology(topology_m3)

suites/replication/conflict_resolve_test.py:847:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/replica.py:1906: in test_replication_topology
self.test_replication(a, b, timeout)
/usr/local/lib/python3.6/site-packages/lib389/replica.py:1892: in test_replication
self.wait_for_replication(from_instance, to_instance, timeout)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.replica.ReplicationManager object at 0x7f70424842b0>
from_instance = <lib389.DirSrv object at 0x7f70424bd208>
to_instance = <lib389.DirSrv object at 0x7f702fbb2dd8>, 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.6/site-packages/lib389/replica.py:1876: Exception
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists OK group dirsrv exists OK user dirsrv exists OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Instance with parameters {'ldap-port': 39003, 'ldap-secureport': 63703, 'server-id': 'master3', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Creating replication topology. INFO:lib389.topologies:Joining master master2 to master1 ... INFO:lib389.replica:SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO:lib389.topologies:Joining master master3 to master1 ... INFO:lib389.replica:SUCCESS: bootstrap to ldap://server.example.com:39003 completed INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39003 is was created INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39003 to ldap://server.example.com:39001 is was created INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39003 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39003 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39003 INFO:lib389.topologies:Ensuring master master1 to master2 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO:lib389.topologies:Ensuring master master1 to master3 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39003 already exists INFO:lib389.topologies:Ensuring master master2 to master1 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists INFO:lib389.topologies:Ensuring master master2 to master3 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39003 is was created INFO:lib389.topologies:Ensuring master master3 to master1 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39003 to ldap://server.example.com:39001 already exists INFO:lib389.topologies:Ensuring master master3 to master2 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39003 to ldap://server.example.com:39002 is was created ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. topologies.py 106 INFO Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. topologies.py 106 INFO Instance with parameters {'ldap-port': 39003, 'ldap-secureport': 63703, 'server-id': 'master3', 'suffix': 'dc=example,dc=com'} was created. topologies.py 139 INFO Creating replication topology. topologies.py 153 INFO Joining master master2 to master1 ... replica.py 1461 INFO SUCCESS: bootstrap to ldap://server.example.com:39002 completed replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working replica.py 1530 INFO SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 topologies.py 153 INFO Joining master master3 to master1 ... replica.py 1461 INFO SUCCESS: bootstrap to ldap://server.example.com:39003 completed replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39003 is was created replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39003 to ldap://server.example.com:39001 is was created replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39003 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39003 to ldap://server.example.com:39001 is working replica.py 1530 INFO SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39003 topologies.py 161 INFO Ensuring master master1 to master2 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists topologies.py 161 INFO Ensuring master master1 to master3 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39003 already exists topologies.py 161 INFO Ensuring master master2 to master1 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists topologies.py 161 INFO Ensuring master master2 to master3 ... replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39003 is was created topologies.py 161 INFO Ensuring master master3 to master1 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39003 to ldap://server.example.com:39001 already exists topologies.py 161 INFO Ensuring master master3 to master2 ... replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39003 to ldap://server.example.com:39002 is was created----------------------------- Captured stderr call -----------------------------
INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39003 is working INFO:tests.suites.replication.conflict_resolve_test:Create two child entries under each of two entries INFO:tests.suites.replication.conflict_resolve_test:Create three child entries under each of three entries INFO:tests.suites.replication.conflict_resolve_test: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 INFO:tests.suites.replication.conflict_resolve_test:Test a few more parent-child combinations on three instances INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39003 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39003 is working ------------------------------ Captured log call -------------------------------
replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39003 is working conflict_resolve_test.py 803 INFO Create two child entries under each of two entries conflict_resolve_test.py 810 INFO Create three child entries under each of three entries conflict_resolve_test.py 817 INFO 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 conflict_resolve_test.py 830 INFO Test a few more parent-child combinations on three instances replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39003 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39003 is working
Failed suites/replication/encryption_cl5_test.py::test_algorithm_unhashed[AES] 2.38
topology_with_tls = <lib389.topologies.TopologyMain object at 0x7f702f240588>
encryption = 'AES'

@pytest.mark.parametrize("encryption", ["AES", "3DES"])
def test_algorithm_unhashed(topology_with_tls, encryption):
"""Check encryption algowithm AES and 3DES.
And check unhashed#user#password attribute for encryption.

:id: b7a37bf8-4b2e-4dbd-9891-70117d67558c
:setup: Replication with two masters and SSL configured.
:steps: 1. Enable changelog encrytion on master1 (try AES and 3DES).
2. Add a user to master1/master2
3. Run dbscan -f on m1 to check unhashed#user#password
attribute is encrypted.
4. Run dbscan -f on m2 to check unhashed#user#password
attribute is in cleartext.
5. Modify password in master2/master1
6. Run dbscan -f on m1 to check unhashed#user#password
attribute is encrypted.
7. Run dbscan -f on m2 to check unhashed#user#password
attribute is in cleartext.
: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
"""

m1 = topology_with_tls.ms['master1']
m2 = topology_with_tls.ms['master2']
test_passw = 'm2Test199'

> _enable_changelog_encryption(m1, encryption)

suites/replication/encryption_cl5_test.py:107:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
suites/replication/encryption_cl5_test.py:49: in _enable_changelog_encryption
inst.start()
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:1197: in start
"dirsrv@%s" % self.serverid])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

popenargs = (['/usr/bin/systemctl', 'start', 'dirsrv@master1'],), kwargs = {}
retcode = 1, cmd = ['/usr/bin/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 '['/usr/bin/systemctl', 'start', 'dirsrv@master1']' returned non-zero exit status 1.

/usr/lib64/python3.6/subprocess.py:291: CalledProcessError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Creating replication topology. INFO:lib389.topologies:Joining master master2 to master1 ... INFO:lib389.replica:SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO:lib389.topologies:Ensuring master master1 to master2 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO:lib389.topologies:Ensuring master master2 to master1 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists INFO:lib389.replica:SUCCESS: Replication from ldaps://server.example.com:63701 to ldaps://server.example.com:63702 is working ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. topologies.py 106 INFO Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. topologies.py 139 INFO Creating replication topology. topologies.py 153 INFO Joining master master2 to master1 ... replica.py 1461 INFO SUCCESS: bootstrap to ldap://server.example.com:39002 completed replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working replica.py 1530 INFO SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 topologies.py 161 INFO Ensuring master master1 to master2 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists topologies.py 161 INFO Ensuring master master2 to master1 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists replica.py 1873 INFO SUCCESS: Replication from ldaps://server.example.com:63701 to ldaps://server.example.com:63702 is working----------------------------- Captured stderr call -----------------------------
INFO:tests.suites.replication.encryption_cl5_test:Configuring changelog encryption:master1 for: AES 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 -------------------------------
encryption_cl5_test.py 44 INFO Configuring changelog encryption:master1 for: AES
Failed suites/replication/encryption_cl5_test.py::test_algorithm_unhashed[3DES] 0.12
topology_with_tls = <lib389.topologies.TopologyMain object at 0x7f702f240588>
encryption = '3DES'

@pytest.mark.parametrize("encryption", ["AES", "3DES"])
def test_algorithm_unhashed(topology_with_tls, encryption):
"""Check encryption algowithm AES and 3DES.
And check unhashed#user#password attribute for encryption.

:id: b7a37bf8-4b2e-4dbd-9891-70117d67558c
:setup: Replication with two masters and SSL configured.
:steps: 1. Enable changelog encrytion on master1 (try AES and 3DES).
2. Add a user to master1/master2
3. Run dbscan -f on m1 to check unhashed#user#password
attribute is encrypted.
4. Run dbscan -f on m2 to check unhashed#user#password
attribute is in cleartext.
5. Modify password in master2/master1
6. Run dbscan -f on m1 to check unhashed#user#password
attribute is encrypted.
7. Run dbscan -f on m2 to check unhashed#user#password
attribute is in cleartext.
: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
"""

m1 = topology_with_tls.ms['master1']
m2 = topology_with_tls.ms['master2']
test_passw = 'm2Test199'

> _enable_changelog_encryption(m1, encryption)

suites/replication/encryption_cl5_test.py:107:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
suites/replication/encryption_cl5_test.py:49: in _enable_changelog_encryption
inst.start()
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:1197: in start
"dirsrv@%s" % self.serverid])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

popenargs = (['/usr/bin/systemctl', 'start', 'dirsrv@master1'],), kwargs = {}
retcode = 1, cmd = ['/usr/bin/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 '['/usr/bin/systemctl', 'start', 'dirsrv@master1']' returned non-zero exit status 1.

/usr/lib64/python3.6/subprocess.py:291: CalledProcessError
----------------------------- Captured stderr call -----------------------------
INFO:tests.suites.replication.encryption_cl5_test:Configuring changelog encryption:master1 for: 3DES 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 -------------------------------
encryption_cl5_test.py 44 INFO Configuring changelog encryption:master1 for: 3DES
Failed suites/replication/tombstone_test.py::test_purge_success 0.02
topology_m1 = <lib389.topologies.TopologyMain object at 0x7f70329005c0>

def test_purge_success(topology_m1):
"""Verify that tombstones are created successfully

:id: adb86f50-ae76-4ed6-82b4-3cdc30ccab78
:setup: Standalone instance
:steps:
1. Enable replication to unexisting instance
2. Add an entry to the replicated suffix
3. Delete the entry
4. Check that tombstone entry exists (objectclass=nsTombstone)
:expectedresults: Tombstone entry exist
1. Operation should be successful
2. The entry should be successfully added
3. The entry should be successfully deleted
4. Tombstone entry should exist
"""
m1 = topology_m1.ms['master1']

users = UserAccounts(m1, DEFAULT_SUFFIX)
user = users.create(properties=TEST_USER_PROPERTIES)

tombstones = Tombstones(m1, DEFAULT_SUFFIX)

assert len(tombstones.list()) == 0

user.delete()

assert len(tombstones.list()) == 1
assert len(users.list()) == 0

ts = tombstones.get('testuser')
assert ts.exists()

if not ds_is_older('1.4.0'):
> ts.revive()

suites/replication/tombstone_test.py:52:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/tombstone.py:39: in revive
orig_dn = self.get_attr_val_utf8('nscpEntryDN')
/usr/local/lib/python3.6/site-packages/lib389/_mapped_object.py:528: in get_attr_val_utf8
return ensure_str(self.get_attr_val(key))
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.tombstone.Tombstone object at 0x7f702fc1f4e0>
key = 'nscpEntryDN', use_json = False

def get_attr_val(self, key, use_json=False):
self._log.debug("%s getVal(%r)" % (self._dn, key))
# We might need to add a state check for NONE dn.
if self._instance.state != DIRSRV_STATE_ONLINE:
raise ValueError("Invalid state. Cannot get properties on instance that is not ONLINE")
# In the future, I plan to add a mode where if local == true, we
# can use get on dse.ldif to get values offline.
else:
> entry = self._instance.search_ext_s(self._dn, ldap.SCOPE_BASE, self._object_filter, attrlist=[key], serverctrls=self._server_controls, clientctrls=self._client_controls)[0]
E IndexError: list index out of range

/usr/local/lib/python3.6/site-packages/lib389/_mapped_object.py:494: IndexError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Creating replication topology. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. topologies.py 139 INFO Creating replication topology.
Failed suites/sasl/regression_test.py::test_openldap_no_nss_crypto 11.25
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f704272d160>

def test_openldap_no_nss_crypto(topology_m2):
"""Check that we allow usage of OpenLDAP libraries
that don't use NSS for crypto

:id: 0a622f3d-8ba5-4df2-a1de-1fb2237da40a
:setup: Replication with two masters:
master_1 ----- startTLS -----> master_2;
master_1 <-- TLS_clientAuth -- master_2;
nsslapd-extract-pemfiles set to 'on' on both masters
without specifying cert names
:steps:
1. Add 5 users to master 1 and 2
2. Check that the users were successfully replicated
3. Relocate PEM files on master 1
4. Check PEM files in master 1 config directory
5. Add 5 users more to master 1 and 2
6. Check that the users were successfully replicated
7. Export userRoot on master 1
:expectedresults:
1. Users should be successfully added
2. Users should be successfully replicated
3. Operation should be successful
4. PEM files should be found
5. Users should be successfully added
6. Users should be successfully replicated
7. Operation should be successful
"""

log.info("Ticket 47536 - Allow usage of OpenLDAP libraries that don't use NSS for crypto")

> create_keys_certs(topology_m2)

suites/sasl/regression_test.py:393:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
suites/sasl/regression_test.py:201: in create_keys_certs
enable_ssl(topology_m2.ms["master1"], M1LDAPSPORT, M1SERVERCERT)
suites/sasl/regression_test.py:61: in enable_ssl
'nsSSLActivation': 'on'})
/usr/local/lib/python3.6/site-packages/lib389/config.py:260: in create
super(RSA, self).create(properties=properties)
/usr/local/lib/python3.6/site-packages/lib389/_mapped_object.py:770: in create
return self._create(rdn, properties, basedn, ensure=False)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.config.RSA object at 0x7f704272df28>, rdn = None
properties = {'cn': ['RSA'], 'nsSSLActivation': ['on'], 'nsSSLPersonalitySSL': ['Server-Cert1'], 'nsSSLToken': ['internal (software)'], ...}
basedn = None, ensure = False

def _create(self, rdn=None, properties=None, basedn=None, ensure=False):
"""Internal implementation of create. This is used by ensure
and create, to prevent code duplication. You should *never* call
this method directly.
"""
assert(len(self._create_objectclasses) > 0)
basedn = ensure_str(basedn)
self._log.debug('Checking "%s" under %s : %s' % (rdn, basedn, properties))
# Add the objectClasses to the properties
(dn, valid_props) = self._validate(rdn, properties, basedn)
# Check if the entry exists or not? .add_s is going to error anyway ...
self._log.debug('Validated dn %s : valid_props %s' % (dn, valid_props))

exists = False

try:
self._instance.search_ext_s(dn, ldap.SCOPE_BASE, self._object_filter, attrsonly=1, serverctrls=self._server_controls, clientctrls=self._client_controls)
exists = True
except ldap.NO_SUCH_OBJECT:
pass

if exists and ensure:
# update properties
self._log.debug('Exists %s' % dn)
self._dn = dn
# Now use replace_many to setup our values
mods = []
for k,v in valid_props.items():
mods.append( (ldap.MOD_REPLACE, k, v))
self._instance.modify_ext_s(self._dn, mods, serverctrls=self._server_controls, clientctrls=self._client_controls)
elif exists and not ensure:
# raise "already exists."
> raise ldap.ALREADY_EXISTS("Entry %s already exists" % dn)
E ldap.ALREADY_EXISTS: Entry cn=RSA,cn=encryption,cn=config already exists

/usr/local/lib/python3.6/site-packages/lib389/_mapped_object.py:745: ALREADY_EXISTS
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Creating replication topology. INFO:lib389.topologies:Joining master master2 to master1 ... INFO:lib389.replica:SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO:lib389.topologies:Ensuring master master1 to master2 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO:lib389.topologies:Ensuring master master2 to master1 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. topologies.py 106 INFO Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. topologies.py 139 INFO Creating replication topology. topologies.py 153 INFO Joining master master2 to master1 ... replica.py 1461 INFO SUCCESS: bootstrap to ldap://server.example.com:39002 completed replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working replica.py 1530 INFO SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 topologies.py 161 INFO Ensuring master master1 to master2 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists topologies.py 161 INFO Ensuring master master2 to master1 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists----------------------------- Captured stdout call -----------------------------
Is this a CA certificate [y/N]? Enter the path length constraint, enter to skip [<0 for unlimited path]: > Is this a critical extension [y/N]? ----------------------------- Captured stderr call -----------------------------
INFO:tests.suites.sasl.regression_test:Ticket 47536 - Allow usage of OpenLDAP libraries that don't use NSS for crypto INFO:tests.suites.sasl.regression_test: ######################### Creating SSL Keys and Certs ###################### INFO:tests.suites.sasl.regression_test:##### shutdown master1 INFO:tests.suites.sasl.regression_test:##### Creating a password file INFO:tests.suites.sasl.regression_test:##### create the pin file INFO:tests.suites.sasl.regression_test:##### Creating a noise file INFO:tests.suites.sasl.regression_test:##### Create key3.db and cert8.db database (master1): ['certutil', '-N', '-d', '/etc/dirsrv/slapd-master1', '-f', '/etc/dirsrv/slapd-master1/pwdfile.txt'] INFO:tests.suites.sasl.regression_test: OUT: INFO:tests.suites.sasl.regression_test: ERR: INFO:tests.suites.sasl.regression_test:##### Creating encryption key for CA (master1): ['certutil', '-G', '-d', '/etc/dirsrv/slapd-master1', '-z', '/etc/dirsrv/slapd-master1/noise.txt', '-f', '/etc/dirsrv/slapd-master1/pwdfile.txt'] INFO:tests.suites.sasl.regression_test: OUT: INFO:tests.suites.sasl.regression_test: ERR: INFO:tests.suites.sasl.regression_test:##### Creating self-signed CA certificate (master1) -- nickname CAcertificate Generating key. This may take a few moments... INFO:tests.suites.sasl.regression_test:##### Creating Server certificate -- nickname Server-Cert1: ['certutil', '-S', '-n', 'Server-Cert1', '-s', 'CN=server.example.com,OU=389 Directory Server', '-c', 'CAcertificate', '-t', ',,', '-m', '1001', '-v', '120', '-d', '/etc/dirsrv/slapd-master1', '-z', '/etc/dirsrv/slapd-master1/noise.txt', '-f', '/etc/dirsrv/slapd-master1/pwdfile.txt'] INFO:tests.suites.sasl.regression_test: OUT: INFO:tests.suites.sasl.regression_test: ERR: INFO:tests.suites.sasl.regression_test:##### Creating Server certificate -- nickname Server-Cert2: ['certutil', '-S', '-n', 'Server-Cert2', '-s', 'CN=server.example.com,OU=390 Directory Server', '-c', 'CAcertificate', '-t', ',,', '-m', '1002', '-v', '120', '-d', '/etc/dirsrv/slapd-master1', '-z', '/etc/dirsrv/slapd-master1/noise.txt', '-f', '/etc/dirsrv/slapd-master1/pwdfile.txt'] INFO:tests.suites.sasl.regression_test: OUT: INFO:tests.suites.sasl.regression_test: ERR: INFO:tests.suites.sasl.regression_test:##### start master1 INFO:tests.suites.sasl.regression_test:##### enable SSL in master1 with all ciphers INFO:tests.suites.sasl.regression_test: ######################### Enabling SSL LDAPSPORT 41636 ###################### ------------------------------ Captured log call -------------------------------
regression_test.py 391 INFO Ticket 47536 - Allow usage of OpenLDAP libraries that don't use NSS for crypto regression_test.py 127 INFO ######################### Creating SSL Keys and Certs ###################### regression_test.py 134 INFO ##### shutdown master1 regression_test.py 137 INFO ##### Creating a password file regression_test.py 146 INFO ##### create the pin file regression_test.py 157 INFO ##### Creating a noise file regression_test.py 166 INFO ##### Create key3.db and cert8.db database (master1): ['certutil', '-N', '-d', '/etc/dirsrv/slapd-master1', '-f', '/etc/dirsrv/slapd-master1/pwdfile.txt'] regression_test.py 111 INFO OUT: regression_test.py 117 INFO ERR: regression_test.py 170 INFO ##### Creating encryption key for CA (master1): ['certutil', '-G', '-d', '/etc/dirsrv/slapd-master1', '-z', '/etc/dirsrv/slapd-master1/noise.txt', '-f', '/etc/dirsrv/slapd-master1/pwdfile.txt'] regression_test.py 111 INFO OUT: regression_test.py 117 INFO ERR: regression_test.py 176 INFO ##### Creating self-signed CA certificate (master1) -- nickname CAcertificate regression_test.py 184 INFO ##### Creating Server certificate -- nickname Server-Cert1: ['certutil', '-S', '-n', 'Server-Cert1', '-s', 'CN=server.example.com,OU=389 Directory Server', '-c', 'CAcertificate', '-t', ',,', '-m', '1001', '-v', '120', '-d', '/etc/dirsrv/slapd-master1', '-z', '/etc/dirsrv/slapd-master1/noise.txt', '-f', '/etc/dirsrv/slapd-master1/pwdfile.txt'] regression_test.py 111 INFO OUT: regression_test.py 117 INFO ERR: regression_test.py 192 INFO ##### Creating Server certificate -- nickname Server-Cert2: ['certutil', '-S', '-n', 'Server-Cert2', '-s', 'CN=server.example.com,OU=390 Directory Server', '-c', 'CAcertificate', '-t', ',,', '-m', '1002', '-v', '120', '-d', '/etc/dirsrv/slapd-master1', '-z', '/etc/dirsrv/slapd-master1/noise.txt', '-f', '/etc/dirsrv/slapd-master1/pwdfile.txt'] regression_test.py 111 INFO OUT: regression_test.py 117 INFO ERR: regression_test.py 197 INFO ##### start master1 regression_test.py 200 INFO ##### enable SSL in master1 with all ciphers regression_test.py 46 INFO ######################### Enabling SSL LDAPSPORT 41636 ######################
Failed tickets/ticket47462_test.py::test_ticket47462 0.00
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f702f4fe6d8>

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:47:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f200208>
func = <built-in method modify_ext of LDAP object at 0x7f702f2bc1e8>
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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Creating replication topology. INFO:lib389.topologies:Joining master master2 to master1 ... INFO:lib389.replica:SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO:lib389.topologies:Ensuring master master1 to master2 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO:lib389.topologies:Ensuring master master2 to master1 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. topologies.py 106 INFO Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. topologies.py 139 INFO Creating replication topology. topologies.py 153 INFO Joining master master2 to master1 ... replica.py 1461 INFO SUCCESS: bootstrap to ldap://server.example.com:39002 completed replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working replica.py 1530 INFO SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 topologies.py 161 INFO Ensuring master master1 to master2 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists topologies.py 161 INFO Ensuring master master2 to master1 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists
Failed tickets/ticket47560_test.py::test_ticket47560 0.01
topology_st = <lib389.topologies.TopologyMain object at 0x7f70424a46a0>

def test_ticket47560(topology_st):
"""
This test case does the following:
SETUP
- Create entry cn=group,SUFFIX
- Create entry cn=member,SUFFIX
- Update 'cn=member,SUFFIX' to add "memberOf: cn=group,SUFFIX"
- Enable Memberof Plugins

# Here the cn=member entry has a 'memberOf' but
# cn=group entry does not contain 'cn=member' in its member

TEST CASE
- start the fixupmemberof task
- read the cn=member entry
- check 'memberOf is now empty

TEARDOWN
- Delete entry cn=group,SUFFIX
- Delete entry cn=member,SUFFIX
- Disable Memberof Plugins
"""

def _enable_disable_mbo(value):
"""
Enable or disable mbo plugin depending on 'value' ('on'/'off')
"""
# enable/disable the mbo plugin
if value == 'on':
topology_st.standalone.plugins.enable(name=PLUGIN_MEMBER_OF)
else:
topology_st.standalone.plugins.disable(name=PLUGIN_MEMBER_OF)

log.debug("-------------> _enable_disable_mbo(%s)" % value)

topology_st.standalone.stop(timeout=120)
time.sleep(1)
topology_st.standalone.start(timeout=120)
time.sleep(3)

# need to reopen a connection toward the instance
topology_st.standalone.open()

def _test_ticket47560_setup():
"""
- Create entry cn=group,SUFFIX
- Create entry cn=member,SUFFIX
- Update 'cn=member,SUFFIX' to add "memberOf: cn=group,SUFFIX"
- Enable Memberof Plugins
"""
log.debug("-------- > _test_ticket47560_setup\n")

#
# By default the memberof plugin is disabled create
# - create a group entry
# - create a member entry
# - set the member entry as memberof the group entry
#
entry = Entry(group_DN)
entry.setValues('objectclass', 'top', 'groupOfNames', 'inetUser')
entry.setValues('cn', 'group')
try:
topology_st.standalone.add_s(entry)
except ldap.ALREADY_EXISTS:
log.debug("Entry %s already exists" % (group_DN))

entry = Entry(member_DN)
entry.setValues('objectclass', 'top', 'person', 'organizationalPerson', 'inetorgperson', 'inetUser')
entry.setValues('uid', 'member')
entry.setValues('cn', 'member')
entry.setValues('sn', 'member')
try:
topology_st.standalone.add_s(entry)
except ldap.ALREADY_EXISTS:
log.debug("Entry %s already exists" % (member_DN))

replace = [(ldap.MOD_REPLACE, 'memberof', group_DN)]
topology_st.standalone.modify_s(member_DN, replace)

#
# enable the memberof plugin and restart the instance
#
_enable_disable_mbo('on')

#
# check memberof attribute is still present
#
filt = 'uid=member'
ents = topology_st.standalone.search_s(member_DN, ldap.SCOPE_BASE, filt)
assert len(ents) == 1
ent = ents[0]
# print ent
value = ent.getValue('memberof')
# print "memberof: %s" % (value)
assert value == group_DN

def _test_ticket47560_teardown():
"""
- Delete entry cn=group,SUFFIX
- Delete entry cn=member,SUFFIX
- Disable Memberof Plugins
"""
log.debug("-------- > _test_ticket47560_teardown\n")
# remove the entries group_DN and member_DN
try:
topology_st.standalone.delete_s(group_DN)
except:
log.warning("Entry %s fail to delete" % (group_DN))
try:
topology_st.standalone.delete_s(member_DN)
except:
log.warning("Entry %s fail to delete" % (member_DN))
#
# disable the memberof plugin and restart the instance
#
_enable_disable_mbo('off')

group_DN = "cn=group,%s" % (SUFFIX)
member_DN = "uid=member,%s" % (SUFFIX)

#
# Initialize the test case
#
> _test_ticket47560_setup()

tickets/ticket47560_test.py:145:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47560_test.py:99: in _test_ticket47560_setup
topology_st.standalone.modify_s(member_DN, replace)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f704272dfd0>
func = <built-in method modify_ext of LDAP object at 0x7f704270e508>
args = ('uid=member,dc=example,dc=com', [(2, 'memberof', 'cn=group,dc=example,dc=com')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.----------------------------- Captured stderr call -----------------------------
DEBUG:tests.tickets.ticket47560_test:-------- > _test_ticket47560_setup ------------------------------ Captured log call -------------------------------
ticket47560_test.py 72 DEBUG -------- > _test_ticket47560_setup
Failed tickets/ticket47573_test.py::test_ticket47573_one 0.00
topology_m1c1 = <lib389.topologies.TopologyMain object at 0x7f702fb892e8>

def test_ticket47573_one(topology_m1c1):
"""
Summary: Add a custom OC with MUST and MAY
MUST = postalAddress $ preferredLocale
MAY = telexNumber $ postalCode $ street

Final state
- supplier +OCwithMayAttr
- consumer +OCwithMayAttr

"""
log.debug("test_ticket47573_one topology_m1c1 %r (master %r, consumer %r" % (
topology_m1c1, topology_m1c1.ms["master1"], topology_m1c1.cs["consumer1"]))
# update the schema of the supplier so that it is a superset of
# consumer. Schema should be pushed
new_oc = _oc_definition(2, 'OCwithMayAttr',
must=MUST_OLD,
may=MAY_OLD)
> topology_m1c1.ms["master1"].schema.add_schema('objectClasses', new_oc)

tickets/ticket47573_test.py:151:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/schema.py:102: in add_schema
self.conn.modify_s(DN_SCHEMA, [(ldap.MOD_ADD, attr, val)])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f4fe320>
func = <built-in method modify_ext of LDAP object at 0x7f70429054b8>
args = ('cn=schema', [(0, 'objectClasses', "( 1.2.3.4.5.6.7.8.9.10.2 NAME 'OCwithMayAttr' DESC 'To test ticket 47573' SUP person AUXILIARY MUST (postalAddress $ preferredLocale $ telexNumber) MAY (postalCode $ street) )")], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
DEBUG:tests.tickets.ticket47573_test:test_ticket47573_one topology_m1c1 <lib389.topologies.TopologyMain object at 0x7f702fb892e8> (master <lib389.DirSrv object at 0x7f702f4fe320>, consumer <lib389.DirSrv object at 0x7f702f4fecf8> ------------------------------ Captured log call -------------------------------
ticket47573_test.py 145 DEBUG test_ticket47573_one topology_m1c1 <lib389.topologies.TopologyMain object at 0x7f702fb892e8> (master <lib389.DirSrv object at 0x7f702f4fe320>, consumer <lib389.DirSrv object at 0x7f702f4fecf8>
Failed tickets/ticket47573_test.py::test_ticket47573_two 0.00
topology_m1c1 = <lib389.topologies.TopologyMain object at 0x7f702fb892e8>

def test_ticket47573_two(topology_m1c1):
"""
Summary: Change OCwithMayAttr to move a MAY attribute to a MUST attribute


Final state
- supplier OCwithMayAttr updated
- consumer OCwithMayAttr updated

"""

# Update the objectclass so that a MAY attribute is moved to MUST attribute
mod_OC(topology_m1c1.ms["master1"], 2, 'OCwithMayAttr', old_must=MUST_OLD, new_must=MUST_NEW, old_may=MAY_OLD,
> new_may=MAY_NEW)

tickets/ticket47573_test.py:181:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47573_test.py:82: in mod_OC
instance.schema.del_schema('objectClasses', old_oc)
/usr/local/lib/python3.6/site-packages/lib389/schema.py:109: in del_schema
self.conn.modify_s(DN_SCHEMA, [(ldap.MOD_DELETE, attr, val)])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f4fe320>
func = <built-in method modify_ext of LDAP object at 0x7f70429054b8>
args = ('cn=schema', [(1, 'objectClasses', "( 1.2.3.4.5.6.7.8.9.10.2 NAME 'OCwithMayAttr' DESC 'To test ticket 47573' SUP person AUXILIARY MUST (postalAddress $ preferredLocale $ telexNumber) MAY (postalCode $ street) )")], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
Failed tickets/ticket47573_test.py::test_ticket47573_three 0.00
topology_m1c1 = <lib389.topologies.TopologyMain object at 0x7f702fb892e8>

def test_ticket47573_three(topology_m1c1):
'''
Create a entry with OCwithMayAttr OC
'''
# Check replication is working fine
dn = "cn=ticket47573, %s" % SUFFIX
topology_m1c1.ms["master1"].add_s(Entry((dn,
{'objectclass': "top person OCwithMayAttr".split(),
'sn': 'test_repl',
'cn': 'test_repl',
'postalAddress': 'here',
'preferredLocale': 'en',
'telexNumber': '12$us$21',
> 'postalCode': '54321'})))

tickets/ticket47573_test.py:212:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f4fe320>
func = <built-in method result4 of LDAP object at 0x7f70429054b8>
args = (45, 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.OBJECT_CLASS_VIOLATION: {'desc': 'Object class violation', 'info': 'unknown object class "OCwithMayAttr"\n'}

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: OBJECT_CLASS_VIOLATION
Failed tickets/ticket47640_test.py::test_ticket47640 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f7042707710>

def test_ticket47640(topology_st):
'''
Linked Attrs Plugins - verify that if the plugin fails to update the link entry
that the entire operation is aborted
'''

# Enable Dynamic plugins, and the linked Attrs plugin
try:
> topology_st.standalone.modify_s(DN_CONFIG, [(ldap.MOD_REPLACE, 'nsslapd-dynamic-plugins', 'on')])

tickets/ticket47640_test.py:31:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f19e240>
func = <built-in method modify_ext of LDAP object at 0x7f702f0fa210>
args = ('cn=config', [(2, 'nsslapd-dynamic-plugins', '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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Failed tickets/ticket47653MMR_test.py::test_ticket47653_init 0.00
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f7042477cc0>

def test_ticket47653_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

"""

topology_m2.ms["master1"].log.info("Add %s that allows 'member' attribute" % OC_NAME)
new_oc = _oc_definition(2, OC_NAME, must=MUST, may=MAY)
> topology_m2.ms["master1"].schema.add_schema('objectClasses', new_oc)

tickets/ticket47653MMR_test.py:73:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/schema.py:102: in add_schema
self.conn.modify_s(DN_SCHEMA, [(ldap.MOD_ADD, attr, val)])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702fc1fa58>
func = <built-in method modify_ext of LDAP object at 0x7f702f0fa4b8>
args = ('cn=schema', [(0, 'objectClasses', "( 1.2.3.4.5.6.7.8.9.10.2 NAME 'OCticket47653' DESC 'To test ticket 47490' SUP person AUXILIARY MUST (postalAddress $ postalCode) MAY (member $ street) )")], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Creating replication topology. INFO:lib389.topologies:Joining master master2 to master1 ... INFO:lib389.replica:SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO:lib389.topologies:Ensuring master master1 to master2 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO:lib389.topologies:Ensuring master master2 to master1 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. topologies.py 106 INFO Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. topologies.py 139 INFO Creating replication topology. topologies.py 153 INFO Joining master master2 to master1 ... replica.py 1461 INFO SUCCESS: bootstrap to ldap://server.example.com:39002 completed replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working replica.py 1530 INFO SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 topologies.py 161 INFO Ensuring master master1 to master2 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists topologies.py 161 INFO Ensuring master master2 to master1 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists----------------------------- Captured stderr call -----------------------------
INFO:lib389:Add OCticket47653 that allows 'member' attribute ------------------------------ Captured log call -------------------------------
ticket47653MMR_test.py 71 INFO Add OCticket47653 that allows 'member' attribute
Failed tickets/ticket47653MMR_test.py::test_ticket47653_add 0.00
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f7042477cc0>

def test_ticket47653_add(topology_m2):
'''
This test ADD an entry on MASTER1 where 47653 is fixed. Then it checks that entry is replicated
on MASTER2 (even if on MASTER2 47653 is NOT fixed). Then update on MASTER2 and check the update on MASTER1

It checks that, bound as bind_entry,
- we can not ADD an entry without the proper SELFDN aci.
- with the proper ACI we can not ADD with 'member' attribute
- with the proper ACI and 'member' it succeeds to ADD
'''
topology_m2.ms["master1"].log.info("\n\n######################### ADD ######################\n")

# bind as bind_entry
topology_m2.ms["master1"].log.info("Bind as %s" % BIND_DN)
> topology_m2.ms["master1"].simple_bind_s(BIND_DN, BIND_PW)

tickets/ticket47653MMR_test.py:117:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:444: in simple_bind_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702fc1fa58>
func = <built-in method result4 of LDAP object at 0x7f702f0fa4b8>
args = (55, 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.INVALID_CREDENTIALS: {'desc': 'Invalid credentials'}

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: INVALID_CREDENTIALS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ######################### ADD ###################### INFO:lib389:Bind as cn=bind_entry, dc=example,dc=com ------------------------------ Captured log call -------------------------------
ticket47653MMR_test.py 113 INFO ######################### ADD ###################### ticket47653MMR_test.py 116 INFO Bind as cn=bind_entry, dc=example,dc=com
Failed tickets/ticket47653MMR_test.py::test_ticket47653_modify 0.00
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f7042477cc0>

def test_ticket47653_modify(topology_m2):
'''
This test MOD an entry on MASTER1 where 47653 is fixed. Then it checks that update is replicated
on MASTER2 (even if on MASTER2 47653 is NOT fixed). Then update on MASTER2 (bound as BIND_DN).
This update may fail whether or not 47653 is fixed on MASTER2

It checks that, bound as bind_entry,
- we can not modify an entry without the proper SELFDN aci.
- adding the ACI, we can modify the entry
'''
# bind as bind_entry
topology_m2.ms["master1"].log.info("Bind as %s" % BIND_DN)
> topology_m2.ms["master1"].simple_bind_s(BIND_DN, BIND_PW)

tickets/ticket47653MMR_test.py:248:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:444: in simple_bind_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702fc1fa58>
func = <built-in method result4 of LDAP object at 0x7f702f0fa4b8>
args = (56, 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.INVALID_CREDENTIALS: {'desc': 'Invalid credentials'}

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: INVALID_CREDENTIALS
----------------------------- Captured stderr call -----------------------------
INFO:lib389:Bind as cn=bind_entry, dc=example,dc=com ------------------------------ Captured log call -------------------------------
ticket47653MMR_test.py 247 INFO Bind as cn=bind_entry, dc=example,dc=com
Failed tickets/ticket47676_test.py::test_ticket47676_init 0.00
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f702f4ebe10>

def test_ticket47676_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

"""

topology_m2.ms["master1"].log.info("Add %s that allows 'member' attribute" % OC_NAME)
new_oc = _oc_definition(OC_OID_EXT, OC_NAME, must=MUST, may=MAY)
> topology_m2.ms["master1"].schema.add_schema('objectClasses', new_oc)

tickets/ticket47676_test.py:83:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/schema.py:102: in add_schema
self.conn.modify_s(DN_SCHEMA, [(ldap.MOD_ADD, attr, val)])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70424e30b8>
func = <built-in method modify_ext of LDAP object at 0x7f702f5688a0>
args = ('cn=schema', [(0, 'objectClasses', "( 1.2.3.4.5.6.7.8.9.10.2 NAME 'OCticket47676' DESC 'To test ticket 47490' SUP person AUXILIARY MUST (postalAddress $ postalCode) MAY (member $ street) )")], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Creating replication topology. INFO:lib389.topologies:Joining master master2 to master1 ... INFO:lib389.replica:SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO:lib389.topologies:Ensuring master master1 to master2 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO:lib389.topologies:Ensuring master master2 to master1 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. topologies.py 106 INFO Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. topologies.py 139 INFO Creating replication topology. topologies.py 153 INFO Joining master master2 to master1 ... replica.py 1461 INFO SUCCESS: bootstrap to ldap://server.example.com:39002 completed replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working replica.py 1530 INFO SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 topologies.py 161 INFO Ensuring master master1 to master2 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists topologies.py 161 INFO Ensuring master master2 to master1 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists----------------------------- Captured stderr call -----------------------------
INFO:lib389:Add OCticket47676 that allows 'member' attribute ------------------------------ Captured log call -------------------------------
ticket47676_test.py 81 INFO Add OCticket47676 that allows 'member' attribute
Failed tickets/ticket47676_test.py::test_ticket47676_skip_oc_at 0.11
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f702f4ebe10>

def test_ticket47676_skip_oc_at(topology_m2):
'''
This test ADD an entry on MASTER1 where 47676 is fixed. Then it checks that entry is replicated
on MASTER2 (even if on MASTER2 47676 is NOT fixed). Then update on MASTER2.
If the schema has successfully been pushed, updating Master2 should succeed
'''
topology_m2.ms["master1"].log.info("\n\n######################### ADD ######################\n")

# bind as 'cn=Directory manager'
topology_m2.ms["master1"].log.info("Bind as %s and add the add the entry with specific oc" % DN_DM)
topology_m2.ms["master1"].simple_bind_s(DN_DM, PASSWORD)

# Prepare the entry with multivalued members
entry = Entry(ENTRY_DN)
entry.setValues('objectclass', 'top', 'person', 'OCticket47676')
entry.setValues('sn', ENTRY_NAME)
entry.setValues('cn', ENTRY_NAME)
entry.setValues('postalAddress', 'here')
entry.setValues('postalCode', '1234')
members = []
for cpt in range(MAX_OTHERS):
name = "%s%d" % (OTHER_NAME, cpt)
members.append("cn=%s,%s" % (name, SUFFIX))
members.append(BIND_DN)
entry.setValues('member', members)

topology_m2.ms["master1"].log.info("Try to add Add %s should be successful" % ENTRY_DN)
> topology_m2.ms["master1"].add_s(entry)

tickets/ticket47676_test.py:134:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70424e30b8>
func = <built-in method result4 of LDAP object at 0x7f702f5688a0>
args = (56, 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.OBJECT_CLASS_VIOLATION: {'desc': 'Object class violation', 'info': 'unknown object class "OCticket47676"\n'}

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: OBJECT_CLASS_VIOLATION
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ######################### ADD ###################### INFO:lib389:Bind as cn=Directory Manager and add the add the entry with specific oc INFO:lib389:Try to add Add cn=test_entry, dc=example,dc=com should be successful ------------------------------ Captured log call -------------------------------
ticket47676_test.py 113 INFO ######################### ADD ###################### ticket47676_test.py 116 INFO Bind as cn=Directory Manager and add the add the entry with specific oc ticket47676_test.py 133 INFO Try to add Add cn=test_entry, dc=example,dc=com should be successful
Failed tickets/ticket47676_test.py::test_ticket47676_reject_action 0.21
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f702f4ebe10>

def test_ticket47676_reject_action(topology_m2):
topology_m2.ms["master1"].log.info("\n\n######################### REJECT ACTION ######################\n")

topology_m2.ms["master1"].simple_bind_s(DN_DM, PASSWORD)
topology_m2.ms["master2"].simple_bind_s(DN_DM, PASSWORD)

# make master1 to refuse to push the schema if OC_NAME is present in consumer schema
mod = [(ldap.MOD_ADD, 'schemaUpdateObjectclassReject', '%s' % (OC_NAME))] # ACL + REPL
> topology_m2.ms["master1"].modify_s(REPL_SCHEMA_POLICY_SUPPLIER, mod)

tickets/ticket47676_test.py:176:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70424e30b8>
func = <built-in method modify_ext of LDAP object at 0x7f702f5688a0>
args = ('cn=supplierUpdatePolicy,cn=replSchema,cn=config', [(0, 'schemaUpdateObjectclassReject', 'OCticket47676')], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ######################### REJECT ACTION ###################### ------------------------------ Captured log call -------------------------------
ticket47676_test.py 169 INFO ######################### REJECT ACTION ######################
Failed tickets/ticket47714_test.py::test_ticket47714_run_0 0.10
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f537748>

def test_ticket47714_run_0(topology_st):
"""
Check this change has no inpact to the existing functionality.
1. Set account policy config without the new attr alwaysRecordLoginAttr
2. Bind as a test user
3. Bind as the test user again and check the lastLoginTime is updated
4. Waint longer than the accountInactivityLimit time and bind as the test user,
which should fail with CONSTANT_VIOLATION.
"""
_header(topology_st, 'Account Policy - No new attr alwaysRecordLoginAttr in config')

topology_st.standalone.simple_bind_s(DN_DM, PASSWORD)

# Modify Account Policy config entry
topology_st.standalone.modify_s(ACCT_POLICY_CONFIG_DN, [(ldap.MOD_REPLACE, 'alwaysrecordlogin', 'yes'),
(ldap.MOD_REPLACE, 'stateattrname', 'lastLoginTime'),
(ldap.MOD_REPLACE, 'altstateattrname', 'createTimestamp'),
(ldap.MOD_REPLACE, 'specattrname', 'acctPolicySubentry'),
(ldap.MOD_REPLACE, 'limitattrname',
> 'accountInactivityLimit')])

tickets/ticket47714_test.py:88:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f21e358>
func = <built-in method modify_ext of LDAP object at 0x7f702f560d50>
args = ('cn=config,cn=Account Policy Plugin,cn=plugins,cn=config', [(2, 'alwaysrecordlogin', 'yes'), (2, 'stateattrname', 'la...ateTimestamp'), (2, 'specattrname', 'acctPolicySubentry'), (2, 'limitattrname', 'accountInactivityLimit')], 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', 'y')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Account Policy - No new attr alwaysRecordLoginAttr in config INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47714_test.py 37 INFO ############################################### ticket47714_test.py 38 INFO ####### ticket47714_test.py 39 INFO ####### Account Policy - No new attr alwaysRecordLoginAttr in config ticket47714_test.py 40 INFO ####### ticket47714_test.py 41 INFO ###############################################
Failed tickets/ticket47714_test.py::test_ticket47714_run_1 0.11
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f537748>

def test_ticket47714_run_1(topology_st):
"""
Verify a new config attr alwaysRecordLoginAttr
1. Set account policy config with the new attr alwaysRecordLoginAttr: lastLoginTime
Note: bogus attr is set to stateattrname.
altstateattrname type value is used for checking whether the account is idle or not.
2. Bind as a test user
3. Bind as the test user again and check the alwaysRecordLoginAttr: lastLoginTime is updated
"""
_header(topology_st, 'Account Policy - With new attr alwaysRecordLoginAttr in config')

topology_st.standalone.simple_bind_s(DN_DM, PASSWORD)
> topology_st.standalone.modify_s(TEST_USER_DN, [(ldap.MOD_DELETE, 'lastLoginTime', None)])

tickets/ticket47714_test.py:161:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:602: in modify_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f21e358>
func = <built-in method result4 of LDAP object at 0x7f702f560d50>
args = (7, 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_ATTRIBUTE: {'desc': 'No such attribute'}

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: NO_SUCH_ATTRIBUTE
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Account Policy - With new attr alwaysRecordLoginAttr in config INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47714_test.py 37 INFO ############################################### ticket47714_test.py 38 INFO ####### ticket47714_test.py 39 INFO ####### Account Policy - With new attr alwaysRecordLoginAttr in config ticket47714_test.py 40 INFO ####### ticket47714_test.py 41 INFO ###############################################
Failed tickets/ticket47721_test.py::test_ticket47721_init 0.03
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f702f4c0b38>

def test_ticket47721_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

"""

# entry used to bind with
topology_m2.ms["master1"].log.info("Add %s" % BIND_DN)
topology_m2.ms["master1"].add_s(Entry((BIND_DN, {
'objectclass': "top person".split(),
'sn': BIND_NAME,
'cn': BIND_NAME,
'userpassword': BIND_PW})))

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

tickets/ticket47721_test.py:98:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702fb804a8>
func = <built-in method modify_ext of LDAP object at 0x7f702f1b20a8>
args = ('cn=config', [(2, 'nsslapd-errorlog-level', '8192')], 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', '8')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Creating replication topology. INFO:lib389.topologies:Joining master master2 to master1 ... INFO:lib389.replica:SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO:lib389.topologies:Ensuring master master1 to master2 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO:lib389.topologies:Ensuring master master2 to master1 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. topologies.py 106 INFO Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. topologies.py 139 INFO Creating replication topology. topologies.py 153 INFO Joining master master2 to master1 ... replica.py 1461 INFO SUCCESS: bootstrap to ldap://server.example.com:39002 completed replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working replica.py 1530 INFO SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 topologies.py 161 INFO Ensuring master master1 to master2 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists topologies.py 161 INFO Ensuring master master2 to master1 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists----------------------------- Captured stderr call -----------------------------
INFO:lib389:Add cn=bind_entry, dc=example,dc=com ------------------------------ Captured log call -------------------------------
ticket47721_test.py 89 INFO Add cn=bind_entry, dc=example,dc=com
Failed tickets/ticket47721_test.py::test_ticket47721_0 11.02
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f702f4c0b38>

def test_ticket47721_0(topology_m2):
dn = "cn=%s0,%s" % (OTHER_NAME, SUFFIX)
loop = 0
ent = None
while loop <= 10:
try:
ent = topology_m2.ms["master2"].getEntry(dn, ldap.SCOPE_BASE, "(objectclass=*)")
break
except ldap.NO_SUCH_OBJECT:
time.sleep(1)
loop += 1
if ent is None:
> assert False
E assert False

tickets/ticket47721_test.py:122: AssertionError
Failed tickets/ticket47721_test.py::test_ticket47721_1 0.00
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f702f4c0b38>

def test_ticket47721_1(topology_m2):
log.info('Running test 1...')
# topology_m2.ms["master1"].log.info("Attach debugger\n\n")
# time.sleep(30)

new = _add_custom_at_definition()
topology_m2.ms["master1"].log.info("Add (M2) %s " % new)
> topology_m2.ms["master2"].schema.add_schema('attributetypes', new)

tickets/ticket47721_test.py:132:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/schema.py:102: in add_schema
self.conn.modify_s(DN_SCHEMA, [(ldap.MOD_ADD, attr, val)])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f23b518>
func = <built-in method modify_ext of LDAP object at 0x7f702f4d2828>
args = ('cn=schema', [(0, 'attributetypes', "( ATticket47721-oid NAME 'ATticket47721' DESC 'test AT ticket 47721' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN ( 'Test 47721' 'user defined' ) )")], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:tests.tickets.ticket47721_test:Running test 1... INFO:lib389:Add (M2) ( ATticket47721-oid NAME 'ATticket47721' DESC 'test AT ticket 47721' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN ( 'Test 47721' 'user defined' ) ) ------------------------------ Captured log call -------------------------------
ticket47721_test.py 126 INFO Running test 1... ticket47721_test.py 131 INFO Add (M2) ( ATticket47721-oid NAME 'ATticket47721' DESC 'test AT ticket 47721' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN ( 'Test 47721' 'user defined' ) )
Failed tickets/ticket47721_test.py::test_ticket47721_2 0.00
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f702f4c0b38>

def test_ticket47721_2(topology_m2):
log.info('Running test 2...')

mod = [(ldap.MOD_REPLACE, 'description', 'Hello world 2')]
dn = "cn=%s0,%s" % (OTHER_NAME, SUFFIX)
> topology_m2.ms["master1"].modify_s(dn, mod)

tickets/ticket47721_test.py:173:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702fb804a8>
func = <built-in method modify_ext of LDAP object at 0x7f702f1b20a8>
args = ('cn=other_entry0,dc=example,dc=com', [(2, 'description', 'Hello world 2')], 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', 'H')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:tests.tickets.ticket47721_test:Running test 2... ------------------------------ Captured log call -------------------------------
ticket47721_test.py 169 INFO Running test 2...
Failed tickets/ticket47721_test.py::test_ticket47721_3 5.11
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f702f4c0b38>

def test_ticket47721_3(topology_m2):
'''
Check that the supplier can update its schema from consumer schema
Update M2 schema, then trigger a replication M1->M2
'''
log.info('Running test 3...')

# stop RA M2->M1, so that M1 can only learn being a supplier
ents = topology_m2.ms["master2"].agreement.list(suffix=SUFFIX)
assert len(ents) == 1
topology_m2.ms["master2"].agreement.pause(ents[0].dn)

new = _add_custom_at_definition('ATtest3')
topology_m2.ms["master1"].log.info("Update schema (M2) %s " % new)
> topology_m2.ms["master2"].schema.add_schema('attributetypes', new)

tickets/ticket47721_test.py:217:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/schema.py:102: in add_schema
self.conn.modify_s(DN_SCHEMA, [(ldap.MOD_ADD, attr, val)])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f23b518>
func = <built-in method modify_ext of LDAP object at 0x7f702f4d2828>
args = ('cn=schema', [(0, 'attributetypes', "( ATtest3-oid NAME 'ATtest3' DESC 'test AT ticket 47721' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN ( 'Test 47721' 'user defined' ) )")], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:tests.tickets.ticket47721_test:Running test 3... INFO:lib389:Pausing replication cn=001,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config INFO:lib389:Update schema (M2) ( ATtest3-oid NAME 'ATtest3' DESC 'test AT ticket 47721' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN ( 'Test 47721' 'user defined' ) ) ------------------------------ Captured log call -------------------------------
ticket47721_test.py 208 INFO Running test 3... agreement.py 830 INFO Pausing replication cn=001,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config ticket47721_test.py 216 INFO Update schema (M2) ( ATtest3-oid NAME 'ATtest3' DESC 'test AT ticket 47721' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN ( 'Test 47721' 'user defined' ) )
Failed tickets/ticket47721_test.py::test_ticket47721_4 0.00
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f702f4c0b38>

def test_ticket47721_4(topology_m2):
'''
Here M2->M1 agreement is disabled.
with test_ticket47721_3, M1 schema and M2 should be identical BUT
the nsschemacsn is M2>M1. But as the RA M2->M1 is disabled, M1 keeps its schemacsn.
Update schema on M2 (nsschemaCSN update), update M2. Check they have the same schemacsn
'''
log.info('Running test 4...')

new = _add_custom_at_definition('ATtest4')
topology_m2.ms["master1"].log.info("Update schema (M1) %s " % new)
> topology_m2.ms["master1"].schema.add_schema('attributetypes', new)

tickets/ticket47721_test.py:269:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/schema.py:102: in add_schema
self.conn.modify_s(DN_SCHEMA, [(ldap.MOD_ADD, attr, val)])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702fb804a8>
func = <built-in method modify_ext of LDAP object at 0x7f702f1b20a8>
args = ('cn=schema', [(0, 'attributetypes', "( ATtest4-oid NAME 'ATtest4' DESC 'test AT ticket 47721' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN ( 'Test 47721' 'user defined' ) )")], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:tests.tickets.ticket47721_test:Running test 4... INFO:lib389:Update schema (M1) ( ATtest4-oid NAME 'ATtest4' DESC 'test AT ticket 47721' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN ( 'Test 47721' 'user defined' ) ) ------------------------------ Captured log call -------------------------------
ticket47721_test.py 265 INFO Running test 4... ticket47721_test.py 268 INFO Update schema (M1) ( ATtest4-oid NAME 'ATtest4' DESC 'test AT ticket 47721' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN ( 'Test 47721' 'user defined' ) )
Failed tickets/ticket47781_test.py::test_ticket47781 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f4ebc50>

def test_ticket47781(topology_st):
"""
Testing for a deadlock after doing an online import of an LDIF with
replication data. The replication agreement should be invalid.
"""

log.info('Testing Ticket 47781 - Testing for deadlock after importing LDIF with replication data')

#
# Setup Replication
#
log.info('Setting up replication...')
topology_st.standalone.replica.enableReplication(suffix=DEFAULT_SUFFIX, role=ReplicaRole.MASTER,
> replicaId=REPLICAID_MASTER_1)

tickets/ticket47781_test.py:36:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/replica.py:560: in enableReplication
self.conn.changelog.create()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f7aba58>, name = 'changelog'

def __getattr__(self,name):
if name in self.CLASSATTR_OPTION_MAPPING:
return self.get_option(self.CLASSATTR_OPTION_MAPPING[name])
elif name in self.__dict__:
return self.__dict__[name]
else:
raise AttributeError('%s has no attribute %s' % (
> self.__class__.__name__,repr(name)
))
E AttributeError: DirSrv has no attribute 'changelog'

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:352: AttributeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.----------------------------- Captured stderr call -----------------------------
INFO:tests.tickets.ticket47781_test:Testing Ticket 47781 - Testing for deadlock after importing LDIF with replication data INFO:tests.tickets.ticket47781_test:Setting up replication... INFO:lib389:List backend with suffix=dc=example,dc=com ------------------------------ Captured log call -------------------------------
ticket47781_test.py 29 INFO Testing Ticket 47781 - Testing for deadlock after importing LDIF with replication data ticket47781_test.py 34 INFO Setting up replication... backend.py 71 INFO List backend with suffix=dc=example,dc=com
Failed tickets/ticket47787_test.py::test_ticket47787_init 0.04
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f702fd52518>

def test_ticket47787_init(topology_m2):
"""
Creates
- a staging DIT
- a production DIT
- add accounts in staging DIT

"""

topology_m2.ms["master1"].log.info("\n\n######################### INITIALIZATION ######################\n")

# entry used to bind with
topology_m2.ms["master1"].log.info("Add %s" % BIND_DN)
topology_m2.ms["master1"].add_s(Entry((BIND_DN, {
'objectclass': "top person".split(),
'sn': BIND_CN,
'cn': BIND_CN,
'userpassword': BIND_PW})))

# DIT for staging
topology_m2.ms["master1"].log.info("Add %s" % STAGING_DN)
topology_m2.ms["master1"].add_s(Entry((STAGING_DN, {
'objectclass': "top organizationalRole".split(),
'cn': STAGING_CN,
'description': "staging DIT"})))

# DIT for production
topology_m2.ms["master1"].log.info("Add %s" % PRODUCTION_DN)
topology_m2.ms["master1"].add_s(Entry((PRODUCTION_DN, {
'objectclass': "top organizationalRole".split(),
'cn': PRODUCTION_CN,
'description': "production DIT"})))

# enable replication error logging
mod = [(ldap.MOD_REPLACE, 'nsslapd-errorlog-level', '8192')]
> topology_m2.ms["master1"].modify_s(DN_CONFIG, mod)

tickets/ticket47787_test.py:316:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702fd676d8>
func = <built-in method modify_ext of LDAP object at 0x7f702fc92a80>
args = ('cn=config', [(2, 'nsslapd-errorlog-level', '8192')], 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', '8')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Creating replication topology. INFO:lib389.topologies:Joining master master2 to master1 ... INFO:lib389.replica:SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO:lib389.topologies:Ensuring master master1 to master2 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO:lib389.topologies:Ensuring master master2 to master1 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. topologies.py 106 INFO Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. topologies.py 139 INFO Creating replication topology. topologies.py 153 INFO Joining master master2 to master1 ... replica.py 1461 INFO SUCCESS: bootstrap to ldap://server.example.com:39002 completed replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working replica.py 1530 INFO SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 topologies.py 161 INFO Ensuring master master1 to master2 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists topologies.py 161 INFO Ensuring master master2 to master1 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists----------------------------- Captured stderr call -----------------------------
INFO:lib389: ######################### INITIALIZATION ###################### INFO:lib389:Add cn=bind_entry,dc=example,dc=com INFO:lib389:Add cn=staged user,dc=example,dc=com INFO:lib389:Add cn=accounts,dc=example,dc=com ------------------------------ Captured log call -------------------------------
ticket47787_test.py 290 INFO ######################### INITIALIZATION ###################### ticket47787_test.py 293 INFO Add cn=bind_entry,dc=example,dc=com ticket47787_test.py 301 INFO Add cn=staged user,dc=example,dc=com ticket47787_test.py 308 INFO Add cn=accounts,dc=example,dc=com
Failed tickets/ticket47787_test.py::test_ticket47787_2 11.24
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f702fd52518>

def test_ticket47787_2(topology_m2):
'''
Disable replication so that updates are not replicated
Delete an entry on M1. Modrdn it on M2 (chg rdn + delold=0 + same superior).
update a test entry on M2
Reenable the RA.
checks that entry was deleted on M2 (with the modified RDN)
checks that test entry was replicated on M1 (replication M2->M1 not broken by modrdn)
'''

_header(topology_m2, "test_ticket47787_2")
_bind_manager(topology_m2.ms["master1"])
_bind_manager(topology_m2.ms["master2"])

# entry to test the replication is still working
name = "%s%d" % (NEW_ACCOUNT, MAX_ACCOUNTS - 1)
test_rdn = "cn=%s" % (name)
testentry_dn = "%s,%s" % (test_rdn, STAGING_DN)

name = "%s%d" % (NEW_ACCOUNT, MAX_ACCOUNTS - 2)
test2_rdn = "cn=%s" % (name)
testentry2_dn = "%s,%s" % (test2_rdn, STAGING_DN)

# value of updates to test the replication both ways
attr = 'description'
value = 'test_ticket47787_2'

# entry for the modrdn
name = "%s%d" % (NEW_ACCOUNT, 1)
rdn = "cn=%s" % (name)
entry_dn = "%s,%s" % (rdn, STAGING_DN)

# created on M1, wait the entry exists on M2
> _check_entry_exists(topology_m2.ms["master2"], entry_dn)

tickets/ticket47787_test.py:361:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

instance = <lib389.DirSrv object at 0x7f702fd67b38>
entry_dn = 'cn=new_account1,cn=staged user,dc=example,dc=com'

def _check_entry_exists(instance, entry_dn):
loop = 0
ent = None
while loop <= 10:
try:
ent = instance.getEntry(entry_dn, ldap.SCOPE_BASE, "(objectclass=*)")
break
except ldap.NO_SUCH_OBJECT:
time.sleep(1)
loop += 1
if ent is None:
> assert False
E assert False

tickets/ticket47787_test.py:240: AssertionError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### test_ticket47787_2 INFO:lib389:####### INFO:lib389:############################################### INFO:lib389:Bind as cn=Directory Manager INFO:lib389:Bind as cn=Directory Manager ------------------------------ Captured log call -------------------------------
ticket47787_test.py 66 INFO ############################################### ticket47787_test.py 67 INFO ####### ticket47787_test.py 68 INFO ####### test_ticket47787_2 ticket47787_test.py 69 INFO ####### ticket47787_test.py 70 INFO ############################################### ticket47787_test.py 56 INFO Bind as cn=Directory Manager ticket47787_test.py 56 INFO Bind as cn=Directory Manager
Failed tickets/ticket47808_test.py::test_ticket47808_run 0.10
topology_st = <lib389.topologies.TopologyMain object at 0x7f70424e3ac8>

def test_ticket47808_run(topology_st):
"""
It enables attribute uniqueness plugin with sn as a unique attribute
Add an entry 1 with sn = ENTRY_NAME
Add an entry 2 with sn = ENTRY_NAME
If the second add does not crash the server and the following search found none,
the bug is fixed.
"""

# bind as directory manager
topology_st.standalone.log.info("Bind as %s" % DN_DM)
topology_st.standalone.simple_bind_s(DN_DM, PASSWORD)

topology_st.standalone.log.info("\n\n######################### SETUP ATTR UNIQ PLUGIN ######################\n")

# enable attribute uniqueness plugin
mod = [(ldap.MOD_REPLACE, 'nsslapd-pluginEnabled', 'on'), (ldap.MOD_REPLACE, 'nsslapd-pluginarg0', 'sn'),
(ldap.MOD_REPLACE, 'nsslapd-pluginarg1', SUFFIX)]
> topology_st.standalone.modify_s(ATTRIBUTE_UNIQUENESS_PLUGIN, mod)

tickets/ticket47808_test.py:41:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702fcaa240>
func = <built-in method modify_ext of LDAP object at 0x7f702f6b2490>
args = ('cn=attribute uniqueness,cn=plugins,cn=config', [(2, 'nsslapd-pluginEnabled', 'on'), (2, 'nsslapd-pluginarg0', 'sn'), (2, 'nsslapd-pluginarg1', 'dc=example,dc=com')], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.----------------------------- Captured stderr call -----------------------------
INFO:lib389:Bind as cn=Directory Manager INFO:lib389: ######################### SETUP ATTR UNIQ PLUGIN ###################### ------------------------------ Captured log call -------------------------------
ticket47808_test.py 33 INFO Bind as cn=Directory Manager ticket47808_test.py 36 INFO ######################### SETUP ATTR UNIQ PLUGIN ######################
Failed tickets/ticket47819_test.py::test_ticket47819 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f7ab4e0>

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
#
log.info('Setting up replication...')
topology_st.standalone.replica.enableReplication(suffix=DEFAULT_SUFFIX, role=ReplicaRole.MASTER,
> replicaId=REPLICAID_MASTER_1)

tickets/ticket47819_test.py:43:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/replica.py:560: in enableReplication
self.conn.changelog.create()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f4cf0f0>, name = 'changelog'

def __getattr__(self,name):
if name in self.CLASSATTR_OPTION_MAPPING:
return self.get_option(self.CLASSATTR_OPTION_MAPPING[name])
elif name in self.__dict__:
return self.__dict__[name]
else:
raise AttributeError('%s has no attribute %s' % (
> self.__class__.__name__,repr(name)
))
E AttributeError: DirSrv has no attribute 'changelog'

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:352: AttributeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.----------------------------- Captured stderr call -----------------------------
INFO:tests.tickets.ticket47819_test:Testing Ticket 47819 - Test precise tombstone purging INFO:tests.tickets.ticket47819_test:Setting up replication... INFO:lib389:List backend with suffix=dc=example,dc=com ------------------------------ Captured log call -------------------------------
ticket47819_test.py 36 INFO Testing Ticket 47819 - Test precise tombstone purging ticket47819_test.py 41 INFO Setting up replication... backend.py 71 INFO List backend with suffix=dc=example,dc=com
Failed tickets/ticket47823_test.py::test_ticket47823_one_container_mod 4.45
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f5797b8>

def test_ticket47823_one_container_mod(topology_st):
'''
Check uniqueness in a single container
Add and entry with a given 'cn', then check we can not modify an entry with the same 'cn' value

'''
_header(topology_st, "With former config (args), check attribute uniqueness with 'cn' (MOD)")

> _active_container_mod(topology_st, type_config='old')

tickets/ticket47823_test.py:479:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47823_test.py:204: in _active_container_mod
topology_st.standalone.modify_s(ACTIVE_USER_2_DN, [(ldap.MOD_ADD, 'cn', ACTIVE_USER_1_CN)])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70326d8710>
func = <built-in method modify_ext of LDAP object at 0x7f702f6b20d0>
args = ('cn=test_2,cn=accounts,dc=example,dc=com', [(0, 'cn', 'test_1')], 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', 't')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### With former config (args), check attribute uniqueness with 'cn' (MOD) INFO:lib389:####### INFO:lib389:############################################### INFO:lib389:Uniqueness enforced: checks MOD ADD entry is rejected ------------------------------ Captured log call -------------------------------
ticket47823_test.py 57 INFO ############################################### ticket47823_test.py 58 INFO ####### ticket47823_test.py 59 INFO ####### With former config (args), check attribute uniqueness with 'cn' (MOD) ticket47823_test.py 60 INFO ####### ticket47823_test.py 61 INFO ############################################### ticket47823_test.py 192 INFO Uniqueness enforced: checks MOD ADD entry is rejected
Failed tickets/ticket47823_test.py::test_ticket47823_one_container_modrdn 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f5797b8>

def test_ticket47823_one_container_modrdn(topology_st):
'''
Check uniqueness in a single container
Add and entry with a given 'cn', then check we can not modrdn an entry with the same 'cn' value

'''
_header(topology_st, "With former config (args), check attribute uniqueness with 'cn' (MODRDN)")

> _active_container_modrdn(topology_st, type_config='old')

tickets/ticket47823_test.py:494:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47823_test.py:233: in _active_container_modrdn
topology_st.standalone.add_s(config)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70326d8710>
func = <built-in method result4 of LDAP object at 0x7f702f6b20d0>
args = (5, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### With former config (args), check attribute uniqueness with 'cn' (MODRDN) INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47823_test.py 57 INFO ############################################### ticket47823_test.py 58 INFO ####### ticket47823_test.py 59 INFO ####### With former config (args), check attribute uniqueness with 'cn' (MODRDN) ticket47823_test.py 60 INFO ####### ticket47823_test.py 61 INFO ###############################################
Failed tickets/ticket47823_test.py::test_ticket47823_multi_containers_add 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f5797b8>

def test_ticket47823_multi_containers_add(topology_st):
'''
Check uniqueness in a several containers
Add and entry with a given 'cn', then check we can not add an entry with the same 'cn' value

'''
_header(topology_st, "With former config (args), check attribute uniqueness with 'cn' (ADD) ")

> _active_stage_containers_add(topology_st, type_config='old', across_subtrees=False)

tickets/ticket47823_test.py:509:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47823_test.py:271: in _active_stage_containers_add
topology_st.standalone.add_s(config)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70326d8710>
func = <built-in method result4 of LDAP object at 0x7f702f6b20d0>
args = (7, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### With former config (args), check attribute uniqueness with 'cn' (ADD) INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47823_test.py 57 INFO ############################################### ticket47823_test.py 58 INFO ####### ticket47823_test.py 59 INFO ####### With former config (args), check attribute uniqueness with 'cn' (ADD) ticket47823_test.py 60 INFO ####### ticket47823_test.py 61 INFO ###############################################
Failed tickets/ticket47823_test.py::test_ticket47823_multi_containers_mod 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f5797b8>

def test_ticket47823_multi_containers_mod(topology_st):
'''
Check uniqueness in a several containers
Add an entry on a container with a given 'cn', then check we CAN mod an entry with the same 'cn' value on the other container

'''
_header(topology_st, "With former config (args), check attribute uniqueness with 'cn' (MOD) on separated container")

topology_st.standalone.log.info(
'Uniqueness not enforced: if same \'cn\' modified (add/replace) on separated containers')
> _active_stage_containers_mod(topology_st, type_config='old', across_subtrees=False)

tickets/ticket47823_test.py:526:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47823_test.py:302: in _active_stage_containers_mod
topology_st.standalone.add_s(config)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70326d8710>
func = <built-in method result4 of LDAP object at 0x7f702f6b20d0>
args = (9, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### With former config (args), check attribute uniqueness with 'cn' (MOD) on separated container INFO:lib389:####### INFO:lib389:############################################### INFO:lib389:Uniqueness not enforced: if same 'cn' modified (add/replace) on separated containers ------------------------------ Captured log call -------------------------------
ticket47823_test.py 57 INFO ############################################### ticket47823_test.py 58 INFO ####### ticket47823_test.py 59 INFO ####### With former config (args), check attribute uniqueness with 'cn' (MOD) on separated container ticket47823_test.py 60 INFO ####### ticket47823_test.py 61 INFO ############################################### ticket47823_test.py 525 INFO Uniqueness not enforced: if same 'cn' modified (add/replace) on separated containers
Failed tickets/ticket47823_test.py::test_ticket47823_multi_containers_modrdn 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f5797b8>

def test_ticket47823_multi_containers_modrdn(topology_st):
'''
Check uniqueness in a several containers
Add and entry with a given 'cn', then check we CAN modrdn an entry with the same 'cn' value on the other container

'''
_header(topology_st,
"With former config (args), check attribute uniqueness with 'cn' (MODRDN) on separated containers")

topology_st.standalone.log.info('Uniqueness not enforced: checks MODRDN entry is accepted on separated containers')
> _active_stage_containers_modrdn(topology_st, type_config='old', across_subtrees=False)

tickets/ticket47823_test.py:545:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47823_test.py:352: in _active_stage_containers_modrdn
topology_st.standalone.add_s(config)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70326d8710>
func = <built-in method result4 of LDAP object at 0x7f702f6b20d0>
args = (11, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### With former config (args), check attribute uniqueness with 'cn' (MODRDN) on separated containers INFO:lib389:####### INFO:lib389:############################################### INFO:lib389:Uniqueness not enforced: checks MODRDN entry is accepted on separated containers ------------------------------ Captured log call -------------------------------
ticket47823_test.py 57 INFO ############################################### ticket47823_test.py 58 INFO ####### ticket47823_test.py 59 INFO ####### With former config (args), check attribute uniqueness with 'cn' (MODRDN) on separated containers ticket47823_test.py 60 INFO ####### ticket47823_test.py 61 INFO ############################################### ticket47823_test.py 544 INFO Uniqueness not enforced: checks MODRDN entry is accepted on separated containers
Failed tickets/ticket47823_test.py::test_ticket47823_across_multi_containers_add 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f5797b8>

def test_ticket47823_across_multi_containers_add(topology_st):
'''
Check uniqueness across several containers, uniquely with the new configuration
Add and entry with a given 'cn', then check we can not add an entry with the same 'cn' value

'''
_header(topology_st, "With new config (args), check attribute uniqueness with 'cn' (ADD) across several containers")

> _active_stage_containers_add(topology_st, type_config='old', across_subtrees=True)

tickets/ticket47823_test.py:559:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47823_test.py:271: in _active_stage_containers_add
topology_st.standalone.add_s(config)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70326d8710>
func = <built-in method result4 of LDAP object at 0x7f702f6b20d0>
args = (13, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### With new config (args), check attribute uniqueness with 'cn' (ADD) across several containers INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47823_test.py 57 INFO ############################################### ticket47823_test.py 58 INFO ####### ticket47823_test.py 59 INFO ####### With new config (args), check attribute uniqueness with 'cn' (ADD) across several containers ticket47823_test.py 60 INFO ####### ticket47823_test.py 61 INFO ###############################################
Failed tickets/ticket47823_test.py::test_ticket47823_across_multi_containers_mod 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f5797b8>

def test_ticket47823_across_multi_containers_mod(topology_st):
'''
Check uniqueness across several containers, uniquely with the new configuration
Add and entry with a given 'cn', then check we can not modifiy an entry with the same 'cn' value

'''
_header(topology_st, "With new config (args), check attribute uniqueness with 'cn' (MOD) across several containers")

> _active_stage_containers_mod(topology_st, type_config='old', across_subtrees=True)

tickets/ticket47823_test.py:570:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47823_test.py:302: in _active_stage_containers_mod
topology_st.standalone.add_s(config)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70326d8710>
func = <built-in method result4 of LDAP object at 0x7f702f6b20d0>
args = (15, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### With new config (args), check attribute uniqueness with 'cn' (MOD) across several containers INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47823_test.py 57 INFO ############################################### ticket47823_test.py 58 INFO ####### ticket47823_test.py 59 INFO ####### With new config (args), check attribute uniqueness with 'cn' (MOD) across several containers ticket47823_test.py 60 INFO ####### ticket47823_test.py 61 INFO ###############################################
Failed tickets/ticket47823_test.py::test_ticket47823_across_multi_containers_modrdn 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f5797b8>

def test_ticket47823_across_multi_containers_modrdn(topology_st):
'''
Check uniqueness across several containers, uniquely with the new configuration
Add and entry with a given 'cn', then check we can not modrdn an entry with the same 'cn' value

'''
_header(topology_st,
"With new config (args), check attribute uniqueness with 'cn' (MODRDN) across several containers")

> _active_stage_containers_modrdn(topology_st, type_config='old', across_subtrees=True)

tickets/ticket47823_test.py:582:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47823_test.py:352: in _active_stage_containers_modrdn
topology_st.standalone.add_s(config)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70326d8710>
func = <built-in method result4 of LDAP object at 0x7f702f6b20d0>
args = (17, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### With new config (args), check attribute uniqueness with 'cn' (MODRDN) across several containers INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47823_test.py 57 INFO ############################################### ticket47823_test.py 58 INFO ####### ticket47823_test.py 59 INFO ####### With new config (args), check attribute uniqueness with 'cn' (MODRDN) across several containers ticket47823_test.py 60 INFO ####### ticket47823_test.py 61 INFO ###############################################
Failed tickets/ticket47823_test.py::test_ticket47823_invalid_config_1 1.01
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f5797b8>

def test_ticket47823_invalid_config_1(topology_st):
'''
Check that an invalid config is detected. No uniqueness enforced
Using old config: arg0 is missing
'''
_header(topology_st, "Invalid config (old): arg0 is missing")

_config_file(topology_st, action='save')

# create an invalid config without arg0
config = _build_config(topology_st, attr_name='cn', subtree_1=ACTIVE_DN, subtree_2=None, type_config='old',
across_subtrees=False)

del config.data['nsslapd-pluginarg0']
# replace 'cn' uniqueness entry
try:
topology_st.standalone.delete_s(config.dn)

except ldap.NO_SUCH_OBJECT:
pass
topology_st.standalone.add_s(config)

topology_st.standalone.getEntry(config.dn, ldap.SCOPE_BASE, "(objectclass=nsSlapdPlugin)", ALL_CONFIG_ATTRS)

# Check the server did not restart
> topology_st.standalone.modify_s(DN_CONFIG, [(ldap.MOD_REPLACE, 'nsslapd-errorlog-level', '65536')])

tickets/ticket47823_test.py:610:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70326d8710>
func = <built-in method modify_ext of LDAP object at 0x7f702f6b20d0>
args = ('cn=config', [(2, 'nsslapd-errorlog-level', '65536')], 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', '6')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Invalid config (old): arg0 is missing INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47823_test.py 57 INFO ############################################### ticket47823_test.py 58 INFO ####### ticket47823_test.py 59 INFO ####### Invalid config (old): arg0 is missing ticket47823_test.py 60 INFO ####### ticket47823_test.py 61 INFO ###############################################
Failed tickets/ticket47823_test.py::test_ticket47823_invalid_config_2 7.14
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f5797b8>

def test_ticket47823_invalid_config_2(topology_st):
'''
Check that an invalid config is detected. No uniqueness enforced
Using old config: arg1 is missing
'''
_header(topology_st, "Invalid config (old): arg1 is missing")

_config_file(topology_st, action='save')

# create an invalid config without arg0
config = _build_config(topology_st, attr_name='cn', subtree_1=ACTIVE_DN, subtree_2=None, type_config='old',
across_subtrees=False)

del config.data['nsslapd-pluginarg1']
# replace 'cn' uniqueness entry
try:
topology_st.standalone.delete_s(config.dn)

except ldap.NO_SUCH_OBJECT:
pass
topology_st.standalone.add_s(config)

topology_st.standalone.getEntry(config.dn, ldap.SCOPE_BASE, "(objectclass=nsSlapdPlugin)", ALL_CONFIG_ATTRS)

# Check the server did not restart
try:
topology_st.standalone.restart()
ent = topology_st.standalone.getEntry(config.dn, ldap.SCOPE_BASE, "(objectclass=nsSlapdPlugin)",
ALL_CONFIG_ATTRS)
if ent:
# be sure to restore a valid config before assert
_config_file(topology_st, action='restore')
assert not ent
except:
pass

# Check the expected error message
regex = re.compile("No valid subtree is defined")
res = _pattern_errorlog(topology_st.standalone.errorlog_file, regex)
if not res:
# be sure to restore a valid config before assert
_config_file(topology_st, action='restore')
assert res

# Check we can restart the server
_config_file(topology_st, action='restore')
> topology_st.standalone.start()

tickets/ticket47823_test.py:685:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:1197: in start
"dirsrv@%s" % self.serverid])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

popenargs = (['/usr/bin/systemctl', 'start', 'dirsrv@standalone1'],)
kwargs = {}, retcode = 1
cmd = ['/usr/bin/systemctl', 'start', 'dirsrv@standalone1']

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 '['/usr/bin/systemctl', 'start', 'dirsrv@standalone1']' returned non-zero exit status 1.

/usr/lib64/python3.6/subprocess.py:291: CalledProcessError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Invalid config (old): arg1 is missing INFO:lib389:####### INFO:lib389:############################################### 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. 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 -------------------------------
ticket47823_test.py 57 INFO ############################################### ticket47823_test.py 58 INFO ####### ticket47823_test.py 59 INFO ####### Invalid config (old): arg1 is missing ticket47823_test.py 60 INFO ####### ticket47823_test.py 61 INFO ###############################################
Failed tickets/ticket47823_test.py::test_ticket47823_invalid_config_3 1.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f5797b8>

def test_ticket47823_invalid_config_3(topology_st):
'''
Check that an invalid config is detected. No uniqueness enforced
Using old config: arg0 is missing
'''
_header(topology_st, "Invalid config (old): arg0 is missing but new config attrname exists")

_config_file(topology_st, action='save')

# create an invalid config without arg0
config = _build_config(topology_st, attr_name='cn', subtree_1=ACTIVE_DN, subtree_2=None, type_config='old',
> across_subtrees=False)

tickets/ticket47823_test.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47823_test.py:87: in _build_config
config = _uniqueness_config_entry(topology_st, attr_name)
tickets/ticket47823_test.py:74: in _uniqueness_config_entry
'nsslapd-pluginDescription'])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:1803: in getEntry
restype, obj = self.result(res)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:135: in inner
objtype, data = f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:738: in result
resp_type, resp_data, resp_msgid = self.result2(msgid,all,timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:742: in result2
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all,timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70326d8710>
func = <built-in method result4 of LDAP object at 0x7f702f6b20d0>
args = (26, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: SERVER_DOWN
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Invalid config (old): arg0 is missing but new config attrname exists INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47823_test.py 57 INFO ############################################### ticket47823_test.py 58 INFO ####### ticket47823_test.py 59 INFO ####### Invalid config (old): arg0 is missing but new config attrname exists ticket47823_test.py 60 INFO ####### ticket47823_test.py 61 INFO ###############################################
Failed tickets/ticket47823_test.py::test_ticket47823_invalid_config_4 1.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f5797b8>

def test_ticket47823_invalid_config_4(topology_st):
'''
Check that an invalid config is detected. No uniqueness enforced
Using old config: arg1 is missing
'''
_header(topology_st, "Invalid config (old): arg1 is missing but new config exist")

_config_file(topology_st, action='save')

# create an invalid config without arg0
config = _build_config(topology_st, attr_name='cn', subtree_1=ACTIVE_DN, subtree_2=None, type_config='old',
> across_subtrees=False)

tickets/ticket47823_test.py:758:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47823_test.py:87: in _build_config
config = _uniqueness_config_entry(topology_st, attr_name)
tickets/ticket47823_test.py:74: in _uniqueness_config_entry
'nsslapd-pluginDescription'])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:1802: in getEntry
res = self.search(*args, **kwargs)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:849: in search
return self.search_ext(base,scope,filterstr,attrlist,attrsonly,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:841: in search_ext
timeout,sizelimit,
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70326d8710>
func = <built-in method search_ext of LDAP object at 0x7f702f6b20d0>
args = ('cn=attribute uniqueness,cn=plugins,cn=config', 0, '(objectclass=nsSlapdPlugin)', ['objectClass', 'cn', 'nsslapd-pluginPath', 'nsslapd-pluginInitfunc', 'nsslapd-pluginType', 'nsslapd-pluginEnabled', ...], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: SERVER_DOWN
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Invalid config (old): arg1 is missing but new config exist INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47823_test.py 57 INFO ############################################### ticket47823_test.py 58 INFO ####### ticket47823_test.py 59 INFO ####### Invalid config (old): arg1 is missing but new config exist ticket47823_test.py 60 INFO ####### ticket47823_test.py 61 INFO ###############################################
Failed tickets/ticket47823_test.py::test_ticket47823_invalid_config_5 1.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f5797b8>

def test_ticket47823_invalid_config_5(topology_st):
'''
Check that an invalid config is detected. No uniqueness enforced
Using new config: uniqueness-attribute-name is missing
'''
_header(topology_st, "Invalid config (new): uniqueness-attribute-name is missing")

_config_file(topology_st, action='save')

# create an invalid config without arg0
config = _build_config(topology_st, attr_name='cn', subtree_1=ACTIVE_DN, subtree_2=None, type_config='new',
> across_subtrees=False)

tickets/ticket47823_test.py:812:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47823_test.py:94: in _build_config
config = _uniqueness_config_entry(topology_st, attr_name)
tickets/ticket47823_test.py:74: in _uniqueness_config_entry
'nsslapd-pluginDescription'])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:1802: in getEntry
res = self.search(*args, **kwargs)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:849: in search
return self.search_ext(base,scope,filterstr,attrlist,attrsonly,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:841: in search_ext
timeout,sizelimit,
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70326d8710>
func = <built-in method search_ext of LDAP object at 0x7f702f6b20d0>
args = ('cn=attribute uniqueness,cn=plugins,cn=config', 0, '(objectclass=nsSlapdPlugin)', ['objectClass', 'cn', 'nsslapd-pluginPath', 'nsslapd-pluginInitfunc', 'nsslapd-pluginType', 'nsslapd-pluginEnabled', ...], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: SERVER_DOWN
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Invalid config (new): uniqueness-attribute-name is missing INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47823_test.py 57 INFO ############################################### ticket47823_test.py 58 INFO ####### ticket47823_test.py 59 INFO ####### Invalid config (new): uniqueness-attribute-name is missing ticket47823_test.py 60 INFO ####### ticket47823_test.py 61 INFO ###############################################
Failed tickets/ticket47823_test.py::test_ticket47823_invalid_config_6 1.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f5797b8>

def test_ticket47823_invalid_config_6(topology_st):
'''
Check that an invalid config is detected. No uniqueness enforced
Using new config: uniqueness-subtrees is missing
'''
_header(topology_st, "Invalid config (new): uniqueness-subtrees is missing")

_config_file(topology_st, action='save')

# create an invalid config without arg0
config = _build_config(topology_st, attr_name='cn', subtree_1=ACTIVE_DN, subtree_2=None, type_config='new',
> across_subtrees=False)

tickets/ticket47823_test.py:865:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47823_test.py:94: in _build_config
config = _uniqueness_config_entry(topology_st, attr_name)
tickets/ticket47823_test.py:74: in _uniqueness_config_entry
'nsslapd-pluginDescription'])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:1802: in getEntry
res = self.search(*args, **kwargs)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:849: in search
return self.search_ext(base,scope,filterstr,attrlist,attrsonly,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:841: in search_ext
timeout,sizelimit,
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70326d8710>
func = <built-in method search_ext of LDAP object at 0x7f702f6b20d0>
args = ('cn=attribute uniqueness,cn=plugins,cn=config', 0, '(objectclass=nsSlapdPlugin)', ['objectClass', 'cn', 'nsslapd-pluginPath', 'nsslapd-pluginInitfunc', 'nsslapd-pluginType', 'nsslapd-pluginEnabled', ...], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: SERVER_DOWN
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Invalid config (new): uniqueness-subtrees is missing INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47823_test.py 57 INFO ############################################### ticket47823_test.py 58 INFO ####### ticket47823_test.py 59 INFO ####### Invalid config (new): uniqueness-subtrees is missing ticket47823_test.py 60 INFO ####### ticket47823_test.py 61 INFO ###############################################
Failed tickets/ticket47823_test.py::test_ticket47823_invalid_config_7 1.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f5797b8>

def test_ticket47823_invalid_config_7(topology_st):
'''
Check that an invalid config is detected. No uniqueness enforced
Using new config: uniqueness-subtrees is missing
'''
_header(topology_st, "Invalid config (new): uniqueness-subtrees are invalid")

_config_file(topology_st, action='save')

# create an invalid config without arg0
config = _build_config(topology_st, attr_name='cn', subtree_1="this_is dummy DN", subtree_2="an other=dummy DN",
> type_config='new', across_subtrees=False)

tickets/ticket47823_test.py:918:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47823_test.py:94: in _build_config
config = _uniqueness_config_entry(topology_st, attr_name)
tickets/ticket47823_test.py:74: in _uniqueness_config_entry
'nsslapd-pluginDescription'])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:1802: in getEntry
res = self.search(*args, **kwargs)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:849: in search
return self.search_ext(base,scope,filterstr,attrlist,attrsonly,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:841: in search_ext
timeout,sizelimit,
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70326d8710>
func = <built-in method search_ext of LDAP object at 0x7f702f6b20d0>
args = ('cn=attribute uniqueness,cn=plugins,cn=config', 0, '(objectclass=nsSlapdPlugin)', ['objectClass', 'cn', 'nsslapd-pluginPath', 'nsslapd-pluginInitfunc', 'nsslapd-pluginType', 'nsslapd-pluginEnabled', ...], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: SERVER_DOWN
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Invalid config (new): uniqueness-subtrees are invalid INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47823_test.py 57 INFO ############################################### ticket47823_test.py 58 INFO ####### ticket47823_test.py 59 INFO ####### Invalid config (new): uniqueness-subtrees are invalid ticket47823_test.py 60 INFO ####### ticket47823_test.py 61 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_1 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_1(topology_st):
"""
NO exclude scope: Add an active entry and check its ALLOCATED_ATTR is unchanged (!= magic)
"""
_header(topology_st, 'NO exclude scope: Add an active entry and check its ALLOCATED_ATTR is unchanged (!= magic)')

topology_st.standalone.add_s(
Entry((ACTIVE_USER1_DN, {'objectclass': "top person organizationalPerson inetOrgPerson".split(),
'cn': ACTIVE_USER1_CN,
'sn': ACTIVE_USER1_CN,
ALLOCATED_ATTR: str(20)})))
ent = topology_st.standalone.getEntry(ACTIVE_USER1_DN, ldap.SCOPE_BASE, "(objectclass=*)")
assert ent.hasAttr(ALLOCATED_ATTR)
> assert ent.getValue(ALLOCATED_ATTR) == str(20)
E AssertionError: assert b'20' == '20'
E + where b'20' = <bound method Entry.getValue of dn: cn=active user1,dc=example,dc=com\ncn: active user1\nemployeeNumber: 20\nobjectClass: top\nobjectClass: person\nobjectClass: organizationalPerson\nobjectClass: inetOrgPerson\nsn: active user1\n\n>('employeeNumber')
E + where <bound method Entry.getValue of dn: cn=active user1,dc=example,dc=com\ncn: active user1\nemployeeNumber: 20\nobjectClass: top\nobjectClass: person\nobjectClass: organizationalPerson\nobjectClass: inetOrgPerson\nsn: active user1\n\n> = dn: cn=active user1,dc=example,dc=com\ncn: active user1\nemployeeNumber: 20\nobjectClass: top\nobjectClass: person\nobjectClass: organizationalPerson\nobjectClass: inetOrgPerson\nsn: active user1\n\n.getValue
E + and '20' = str(20)

tickets/ticket47828_test.py:102: AssertionError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### NO exclude scope: Add an active entry and check its ALLOCATED_ATTR is unchanged (!= magic) INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### NO exclude scope: Add an active entry and check its ALLOCATED_ATTR is unchanged (!= magic) ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_3 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_3(topology_st):
"""
NO exclude scope: Add a staged entry and check its ALLOCATED_ATTR is unchanged (!= magic)
"""
_header(topology_st, 'NO exclude scope: Add a staged entry and check its ALLOCATED_ATTR is unchanged (!= magic)')

topology_st.standalone.add_s(
Entry((STAGED_USER1_DN, {'objectclass': "top person organizationalPerson inetOrgPerson".split(),
'cn': STAGED_USER1_CN,
'sn': STAGED_USER1_CN,
ALLOCATED_ATTR: str(20)})))
ent = topology_st.standalone.getEntry(STAGED_USER1_DN, ldap.SCOPE_BASE, "(objectclass=*)")
assert ent.hasAttr(ALLOCATED_ATTR)
> assert ent.getValue(ALLOCATED_ATTR) == str(20)
E AssertionError: assert b'20' == '20'
E + where b'20' = <bound method Entry.getValue of dn: cn=staged user1,cn=provisioning,dc=example,dc=com\ncn: staged user1\nemployeeNumber: 20\nobjectClass: top\nobjectClass: person\nobjectClass: organizationalPerson\nobjectClass: inetOrgPerson\nsn: staged user1\n\n>('employeeNumber')
E + where <bound method Entry.getValue of dn: cn=staged user1,cn=provisioning,dc=example,dc=com\ncn: staged user1\nemployeeNumber: 20\nobjectClass: top\nobjectClass: person\nobjectClass: organizationalPerson\nobjectClass: inetOrgPerson\nsn: staged user1\n\n> = dn: cn=staged user1,cn=provisioning,dc=example,dc=com\ncn: staged user1\nemployeeNumber: 20\nobjectClass: top\nobjectClass: person\nobjectClass: organizationalPerson\nobjectClass: inetOrgPerson\nsn: staged user1\n\n.getValue
E + and '20' = str(20)

tickets/ticket47828_test.py:138: AssertionError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### NO exclude scope: Add a staged entry and check its ALLOCATED_ATTR is unchanged (!= magic) INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### NO exclude scope: Add a staged entry and check its ALLOCATED_ATTR is unchanged (!= magic) ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_4 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_4(topology_st):
'''
Exclude the provisioning container
'''
_header(topology_st, 'Exclude the provisioning container')

dn_config = "cn=excluded scope, cn=%s, %s" % (PLUGIN_DNA, DN_PLUGIN)
mod = [(ldap.MOD_REPLACE, 'dnaExcludeScope', PROVISIONING)]
> topology_st.standalone.modify_s(dn_config, mod)

tickets/ticket47828_test.py:151:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method modify_ext of LDAP object at 0x7f702f8d0170>
args = ('cn=excluded scope, cn=Distributed Numeric Assignment Plugin, cn=plugins,cn=config', [(2, 'dnaExcludeScope', 'cn=provisioning,dc=example,dc=com')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Exclude the provisioning container INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Exclude the provisioning container ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_5 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_5(topology_st):
"""
Provisioning excluded scope: Add an active entry and check its ALLOCATED_ATTR is set
"""
_header(topology_st, 'Provisioning excluded scope: Add an active entry and check its ALLOCATED_ATTR is set')

topology_st.standalone.add_s(
Entry((ACTIVE_USER1_DN, {'objectclass': "top person organizationalPerson inetOrgPerson".split(),
'cn': ACTIVE_USER1_CN,
'sn': ACTIVE_USER1_CN,
> ALLOCATED_ATTR: str(-1)})))

tickets/ticket47828_test.py:164:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method result4 of LDAP object at 0x7f702f8d0170>
args = (12, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Provisioning excluded scope: Add an active entry and check its ALLOCATED_ATTR is set INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Provisioning excluded scope: Add an active entry and check its ALLOCATED_ATTR is set ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_6 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_6(topology_st):
"""
Provisioning excluded scope: Add an active entry and check its ALLOCATED_ATTR is unchanged (!= magic)
"""
_header(topology_st,
'Provisioning excluded scope: Add an active entry and check its ALLOCATED_ATTR is unchanged (!= magic)')

topology_st.standalone.add_s(
Entry((ACTIVE_USER1_DN, {'objectclass': "top person organizationalPerson inetOrgPerson".split(),
'cn': ACTIVE_USER1_CN,
'sn': ACTIVE_USER1_CN,
> ALLOCATED_ATTR: str(20)})))

tickets/ticket47828_test.py:183:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method result4 of LDAP object at 0x7f702f8d0170>
args = (13, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Provisioning excluded scope: Add an active entry and check its ALLOCATED_ATTR is unchanged (!= magic) INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Provisioning excluded scope: Add an active entry and check its ALLOCATED_ATTR is unchanged (!= magic) ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_7 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_7(topology_st):
"""
Provisioning excluded scope: Add a staged entry and check its ALLOCATED_ATTR is not set
"""
_header(topology_st, 'Provisioning excluded scope: Add a staged entry and check its ALLOCATED_ATTR is not set')

topology_st.standalone.add_s(
Entry((STAGED_USER1_DN, {'objectclass': "top person organizationalPerson inetOrgPerson".split(),
'cn': STAGED_USER1_CN,
'sn': STAGED_USER1_CN,
> ALLOCATED_ATTR: str(-1)})))

tickets/ticket47828_test.py:201:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method result4 of LDAP object at 0x7f702f8d0170>
args = (14, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Provisioning excluded scope: Add a staged entry and check its ALLOCATED_ATTR is not set INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Provisioning excluded scope: Add a staged entry and check its ALLOCATED_ATTR is not set ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_8 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_8(topology_st):
"""
Provisioning excluded scope: Add a staged entry and check its ALLOCATED_ATTR is unchanged (!= magic)
"""
_header(topology_st,
'Provisioning excluded scope: Add a staged entry and check its ALLOCATED_ATTR is unchanged (!= magic)')

topology_st.standalone.add_s(
Entry((STAGED_USER1_DN, {'objectclass': "top person organizationalPerson inetOrgPerson".split(),
'cn': STAGED_USER1_CN,
'sn': STAGED_USER1_CN,
> ALLOCATED_ATTR: str(20)})))

tickets/ticket47828_test.py:220:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method result4 of LDAP object at 0x7f702f8d0170>
args = (15, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Provisioning excluded scope: Add a staged entry and check its ALLOCATED_ATTR is unchanged (!= magic) INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Provisioning excluded scope: Add a staged entry and check its ALLOCATED_ATTR is unchanged (!= magic) ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_10 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_10(topology_st):
"""
Provisioning excluded scope: Add an dummy entry and check its ALLOCATED_ATTR is unchanged (!= magic)
"""
_header(topology_st,
'Provisioning excluded scope: Add an dummy entry and check its ALLOCATED_ATTR is unchanged (!= magic)')

topology_st.standalone.add_s(
Entry((DUMMY_USER1_DN, {'objectclass': "top person organizationalPerson inetOrgPerson".split(),
'cn': DUMMY_USER1_CN,
'sn': DUMMY_USER1_CN,
ALLOCATED_ATTR: str(20)})))
ent = topology_st.standalone.getEntry(DUMMY_USER1_DN, ldap.SCOPE_BASE, "(objectclass=*)")
assert ent.hasAttr(ALLOCATED_ATTR)
> assert ent.getValue(ALLOCATED_ATTR) == str(20)
E AssertionError: assert b'20' == '20'
E + where b'20' = <bound method Entry.getValue of dn: cn=dummy user1,cn=dummy container,dc=example,dc=com\ncn: dummy user1\nemployeeNumber: 20\nobjectClass: top\nobjectClass: person\nobjectClass: organizationalPerson\nobjectClass: inetOrgPerson\nsn: dummy user1\n\n>('employeeNumber')
E + where <bound method Entry.getValue of dn: cn=dummy user1,cn=dummy container,dc=example,dc=com\ncn: dummy user1\nemployeeNumber: 20\nobjectClass: top\nobjectClass: person\nobjectClass: organizationalPerson\nobjectClass: inetOrgPerson\nsn: dummy user1\n\n> = dn: cn=dummy user1,cn=dummy container,dc=example,dc=com\ncn: dummy user1\nemployeeNumber: 20\nobjectClass: top\nobjectClass: person\nobjectClass: organizationalPerson\nobjectClass: inetOrgPerson\nsn: dummy user1\n\n.getValue
E + and '20' = str(20)

tickets/ticket47828_test.py:260: AssertionError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Provisioning excluded scope: Add an dummy entry and check its ALLOCATED_ATTR is unchanged (!= magic) INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Provisioning excluded scope: Add an dummy entry and check its ALLOCATED_ATTR is unchanged (!= magic) ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_11 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_11(topology_st):
'''
Exclude (in addition) the dummy container
'''
_header(topology_st, 'Exclude (in addition) the dummy container')

dn_config = "cn=excluded scope, cn=%s, %s" % (PLUGIN_DNA, DN_PLUGIN)
mod = [(ldap.MOD_ADD, 'dnaExcludeScope', DUMMY_CONTAINER)]
> topology_st.standalone.modify_s(dn_config, mod)

tickets/ticket47828_test.py:273:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method modify_ext of LDAP object at 0x7f702f8d0170>
args = ('cn=excluded scope, cn=Distributed Numeric Assignment Plugin, cn=plugins,cn=config', [(0, 'dnaExcludeScope', 'cn=dummy container,dc=example,dc=com')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Exclude (in addition) the dummy container INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Exclude (in addition) the dummy container ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_12 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_12(topology_st):
"""
Provisioning/Dummy excluded scope: Add an active entry and check its ALLOCATED_ATTR is set
"""
_header(topology_st, 'Provisioning/Dummy excluded scope: Add an active entry and check its ALLOCATED_ATTR is set')

topology_st.standalone.add_s(
Entry((ACTIVE_USER1_DN, {'objectclass': "top person organizationalPerson inetOrgPerson".split(),
'cn': ACTIVE_USER1_CN,
'sn': ACTIVE_USER1_CN,
> ALLOCATED_ATTR: str(-1)})))

tickets/ticket47828_test.py:286:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method result4 of LDAP object at 0x7f702f8d0170>
args = (21, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Provisioning/Dummy excluded scope: Add an active entry and check its ALLOCATED_ATTR is set INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Provisioning/Dummy excluded scope: Add an active entry and check its ALLOCATED_ATTR is set ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_13 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_13(topology_st):
"""
Provisioning/Dummy excluded scope: Add an active entry and check its ALLOCATED_ATTR is unchanged (!= magic)
"""
_header(topology_st,
'Provisioning/Dummy excluded scope: Add an active entry and check its ALLOCATED_ATTR is unchanged (!= magic)')

topology_st.standalone.add_s(
Entry((ACTIVE_USER1_DN, {'objectclass': "top person organizationalPerson inetOrgPerson".split(),
'cn': ACTIVE_USER1_CN,
'sn': ACTIVE_USER1_CN,
> ALLOCATED_ATTR: str(20)})))

tickets/ticket47828_test.py:305:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method result4 of LDAP object at 0x7f702f8d0170>
args = (22, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Provisioning/Dummy excluded scope: Add an active entry and check its ALLOCATED_ATTR is unchanged (!= magic) INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Provisioning/Dummy excluded scope: Add an active entry and check its ALLOCATED_ATTR is unchanged (!= magic) ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_14 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_14(topology_st):
"""
Provisioning/Dummy excluded scope: Add a staged entry and check its ALLOCATED_ATTR is not set
"""
_header(topology_st,
'Provisioning/Dummy excluded scope: Add a staged entry and check its ALLOCATED_ATTR is not set')

topology_st.standalone.add_s(
Entry((STAGED_USER1_DN, {'objectclass': "top person organizationalPerson inetOrgPerson".split(),
'cn': STAGED_USER1_CN,
'sn': STAGED_USER1_CN,
> ALLOCATED_ATTR: str(-1)})))

tickets/ticket47828_test.py:324:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method result4 of LDAP object at 0x7f702f8d0170>
args = (23, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Provisioning/Dummy excluded scope: Add a staged entry and check its ALLOCATED_ATTR is not set INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Provisioning/Dummy excluded scope: Add a staged entry and check its ALLOCATED_ATTR is not set ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_15 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_15(topology_st):
"""
Provisioning/Dummy excluded scope: Add a staged entry and check its ALLOCATED_ATTR is unchanged (!= magic)
"""
_header(topology_st,
'Provisioning/Dummy excluded scope: Add a staged entry and check its ALLOCATED_ATTR is unchanged (!= magic)')

topology_st.standalone.add_s(
Entry((STAGED_USER1_DN, {'objectclass': "top person organizationalPerson inetOrgPerson".split(),
'cn': STAGED_USER1_CN,
'sn': STAGED_USER1_CN,
> ALLOCATED_ATTR: str(20)})))

tickets/ticket47828_test.py:343:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method result4 of LDAP object at 0x7f702f8d0170>
args = (24, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Provisioning/Dummy excluded scope: Add a staged entry and check its ALLOCATED_ATTR is unchanged (!= magic) INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Provisioning/Dummy excluded scope: Add a staged entry and check its ALLOCATED_ATTR is unchanged (!= magic) ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_16 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_16(topology_st):
"""
Provisioning/Dummy excluded scope: Add an dummy entry and check its ALLOCATED_ATTR is not set
"""
_header(topology_st,
'Provisioning/Dummy excluded scope: Add an dummy entry and check its ALLOCATED_ATTR not is set')

topology_st.standalone.add_s(
Entry((DUMMY_USER1_DN, {'objectclass': "top person organizationalPerson inetOrgPerson".split(),
'cn': DUMMY_USER1_CN,
'sn': DUMMY_USER1_CN,
> ALLOCATED_ATTR: str(-1)})))

tickets/ticket47828_test.py:362:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method result4 of LDAP object at 0x7f702f8d0170>
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.ALREADY_EXISTS: {'desc': 'Already exists'}

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Provisioning/Dummy excluded scope: Add an dummy entry and check its ALLOCATED_ATTR not is set INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Provisioning/Dummy excluded scope: Add an dummy entry and check its ALLOCATED_ATTR not is set ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_17 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_17(topology_st):
"""
Provisioning/Dummy excluded scope: Add an dummy entry and check its ALLOCATED_ATTR is unchanged (!= magic)
"""
_header(topology_st,
'Provisioning/Dummy excluded scope: Add an dummy entry and check its ALLOCATED_ATTR is unchanged (!= magic)')

topology_st.standalone.add_s(
Entry((DUMMY_USER1_DN, {'objectclass': "top person organizationalPerson inetOrgPerson".split(),
'cn': DUMMY_USER1_CN,
'sn': DUMMY_USER1_CN,
> ALLOCATED_ATTR: str(20)})))

tickets/ticket47828_test.py:381:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method result4 of LDAP object at 0x7f702f8d0170>
args = (26, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Provisioning/Dummy excluded scope: Add an dummy entry and check its ALLOCATED_ATTR is unchanged (!= magic) INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Provisioning/Dummy excluded scope: Add an dummy entry and check its ALLOCATED_ATTR is unchanged (!= magic) ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_18 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_18(topology_st):
'''
Exclude PROVISIONING and a wrong container
'''
_header(topology_st, 'Exclude PROVISIONING and a wrong container')

dn_config = "cn=excluded scope, cn=%s, %s" % (PLUGIN_DNA, DN_PLUGIN)
mod = [(ldap.MOD_REPLACE, 'dnaExcludeScope', PROVISIONING)]
> topology_st.standalone.modify_s(dn_config, mod)

tickets/ticket47828_test.py:397:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method modify_ext of LDAP object at 0x7f702f8d0170>
args = ('cn=excluded scope, cn=Distributed Numeric Assignment Plugin, cn=plugins,cn=config', [(2, 'dnaExcludeScope', 'cn=provisioning,dc=example,dc=com')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Exclude PROVISIONING and a wrong container INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Exclude PROVISIONING and a wrong container ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_19 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_19(topology_st):
"""
Provisioning+wrong container excluded scope: Add an active entry and check its ALLOCATED_ATTR is set
"""
_header(topology_st,
'Provisioning+wrong container excluded scope: Add an active entry and check its ALLOCATED_ATTR is set')

topology_st.standalone.add_s(
Entry((ACTIVE_USER1_DN, {'objectclass': "top person organizationalPerson inetOrgPerson".split(),
'cn': ACTIVE_USER1_CN,
'sn': ACTIVE_USER1_CN,
> ALLOCATED_ATTR: str(-1)})))

tickets/ticket47828_test.py:417:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method result4 of LDAP object at 0x7f702f8d0170>
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.ALREADY_EXISTS: {'desc': 'Already exists'}

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Provisioning+wrong container excluded scope: Add an active entry and check its ALLOCATED_ATTR is set INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Provisioning+wrong container excluded scope: Add an active entry and check its ALLOCATED_ATTR is set ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_20 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_20(topology_st):
"""
Provisioning+wrong container excluded scope: Add an active entry and check its ALLOCATED_ATTR is unchanged (!= magic)
"""
_header(topology_st,
'Provisioning+wrong container excluded scope: Add an active entry and check its ALLOCATED_ATTR is unchanged (!= magic)')

topology_st.standalone.add_s(
Entry((ACTIVE_USER1_DN, {'objectclass': "top person organizationalPerson inetOrgPerson".split(),
'cn': ACTIVE_USER1_CN,
'sn': ACTIVE_USER1_CN,
> ALLOCATED_ATTR: str(20)})))

tickets/ticket47828_test.py:436:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method result4 of LDAP object at 0x7f702f8d0170>
args = (28, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Provisioning+wrong container excluded scope: Add an active entry and check its ALLOCATED_ATTR is unchanged (!= magic) INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Provisioning+wrong container excluded scope: Add an active entry and check its ALLOCATED_ATTR is unchanged (!= magic) ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_21 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_21(topology_st):
"""
Provisioning+wrong container excluded scope: Add a staged entry and check its ALLOCATED_ATTR is not set
"""
_header(topology_st,
'Provisioning+wrong container excluded scope: Add a staged entry and check its ALLOCATED_ATTR is not set')

topology_st.standalone.add_s(
Entry((STAGED_USER1_DN, {'objectclass': "top person organizationalPerson inetOrgPerson".split(),
'cn': STAGED_USER1_CN,
'sn': STAGED_USER1_CN,
> ALLOCATED_ATTR: str(-1)})))

tickets/ticket47828_test.py:455:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method result4 of LDAP object at 0x7f702f8d0170>
args = (29, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Provisioning+wrong container excluded scope: Add a staged entry and check its ALLOCATED_ATTR is not set INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Provisioning+wrong container excluded scope: Add a staged entry and check its ALLOCATED_ATTR is not set ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_22 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_22(topology_st):
"""
Provisioning+wrong container excluded scope: Add a staged entry and check its ALLOCATED_ATTR is unchanged (!= magic)
"""
_header(topology_st,
'Provisioning+wrong container excluded scope: Add a staged entry and check its ALLOCATED_ATTR is unchanged (!= magic)')

topology_st.standalone.add_s(
Entry((STAGED_USER1_DN, {'objectclass': "top person organizationalPerson inetOrgPerson".split(),
'cn': STAGED_USER1_CN,
'sn': STAGED_USER1_CN,
> ALLOCATED_ATTR: str(20)})))

tickets/ticket47828_test.py:474:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method result4 of LDAP object at 0x7f702f8d0170>
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.ALREADY_EXISTS: {'desc': 'Already exists'}

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Provisioning+wrong container excluded scope: Add a staged entry and check its ALLOCATED_ATTR is unchanged (!= magic) INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Provisioning+wrong container excluded scope: Add a staged entry and check its ALLOCATED_ATTR is unchanged (!= magic) ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_23 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_23(topology_st):
"""
Provisioning+wrong container excluded scope: Add an dummy entry and check its ALLOCATED_ATTR is set
"""
_header(topology_st,
'Provisioning+wrong container excluded scope: Add an dummy entry and check its ALLOCATED_ATTR is set')

topology_st.standalone.add_s(
Entry((DUMMY_USER1_DN, {'objectclass': "top person organizationalPerson inetOrgPerson".split(),
'cn': DUMMY_USER1_CN,
'sn': DUMMY_USER1_CN,
> ALLOCATED_ATTR: str(-1)})))

tickets/ticket47828_test.py:493:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method result4 of LDAP object at 0x7f702f8d0170>
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.ALREADY_EXISTS: {'desc': 'Already exists'}

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Provisioning+wrong container excluded scope: Add an dummy entry and check its ALLOCATED_ATTR is set INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Provisioning+wrong container excluded scope: Add an dummy entry and check its ALLOCATED_ATTR is set ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_24 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_24(topology_st):
"""
Provisioning+wrong container excluded scope: Add an dummy entry and check its ALLOCATED_ATTR is unchanged (!= magic)
"""
_header(topology_st,
'Provisioning+wrong container excluded scope: Add an dummy entry and check its ALLOCATED_ATTR is unchanged (!= magic)')

topology_st.standalone.add_s(
Entry((DUMMY_USER1_DN, {'objectclass': "top person organizationalPerson inetOrgPerson".split(),
'cn': DUMMY_USER1_CN,
'sn': DUMMY_USER1_CN,
> ALLOCATED_ATTR: str(20)})))

tickets/ticket47828_test.py:512:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method result4 of LDAP object at 0x7f702f8d0170>
args = (32, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Provisioning+wrong container excluded scope: Add an dummy entry and check its ALLOCATED_ATTR is unchanged (!= magic) INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Provisioning+wrong container excluded scope: Add an dummy entry and check its ALLOCATED_ATTR is unchanged (!= magic) ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_25 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_25(topology_st):
'''
Exclude a wrong container
'''
_header(topology_st, 'Exclude a wrong container')

dn_config = "cn=excluded scope, cn=%s, %s" % (PLUGIN_DNA, DN_PLUGIN)

try:
mod = [(ldap.MOD_REPLACE, 'dnaExcludeScope', "invalidDN,%s" % SUFFIX)]
> topology_st.standalone.modify_s(dn_config, mod)

tickets/ticket47828_test.py:530:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method modify_ext of LDAP object at 0x7f702f8d0170>
args = ('cn=excluded scope, cn=Distributed Numeric Assignment Plugin, cn=plugins,cn=config', [(2, 'dnaExcludeScope', 'invalidDN,dc=example,dc=com')], 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', 'i')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Exclude a wrong container INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Exclude a wrong container ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_26 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_26(topology_st):
"""
Wrong container excluded scope: Add an active entry and check its ALLOCATED_ATTR is set
"""
_header(topology_st, 'Wrong container excluded scope: Add an active entry and check its ALLOCATED_ATTR is set')

topology_st.standalone.add_s(
Entry((ACTIVE_USER1_DN, {'objectclass': "top person organizationalPerson inetOrgPerson".split(),
'cn': ACTIVE_USER1_CN,
'sn': ACTIVE_USER1_CN,
> ALLOCATED_ATTR: str(-1)})))

tickets/ticket47828_test.py:546:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method result4 of LDAP object at 0x7f702f8d0170>
args = (33, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Wrong container excluded scope: Add an active entry and check its ALLOCATED_ATTR is set INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Wrong container excluded scope: Add an active entry and check its ALLOCATED_ATTR is set ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_27 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_27(topology_st):
"""
Wrong container excluded scope: Add an active entry and check its ALLOCATED_ATTR is unchanged (!= magic)
"""
_header(topology_st,
'Wrong container excluded scope: Add an active entry and check its ALLOCATED_ATTR is unchanged (!= magic)')

topology_st.standalone.add_s(
Entry((ACTIVE_USER1_DN, {'objectclass': "top person organizationalPerson inetOrgPerson".split(),
'cn': ACTIVE_USER1_CN,
'sn': ACTIVE_USER1_CN,
> ALLOCATED_ATTR: str(20)})))

tickets/ticket47828_test.py:565:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method result4 of LDAP object at 0x7f702f8d0170>
args = (34, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Wrong container excluded scope: Add an active entry and check its ALLOCATED_ATTR is unchanged (!= magic) INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Wrong container excluded scope: Add an active entry and check its ALLOCATED_ATTR is unchanged (!= magic) ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_28 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_28(topology_st):
"""
Wrong container excluded scope: Add a staged entry and check its ALLOCATED_ATTR is not set
"""
_header(topology_st, 'Wrong container excluded scope: Add a staged entry and check its ALLOCATED_ATTR is not set')

topology_st.standalone.add_s(
Entry((STAGED_USER1_DN, {'objectclass': "top person organizationalPerson inetOrgPerson".split(),
'cn': STAGED_USER1_CN,
'sn': STAGED_USER1_CN,
> ALLOCATED_ATTR: str(-1)})))

tickets/ticket47828_test.py:583:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method result4 of LDAP object at 0x7f702f8d0170>
args = (35, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Wrong container excluded scope: Add a staged entry and check its ALLOCATED_ATTR is not set INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Wrong container excluded scope: Add a staged entry and check its ALLOCATED_ATTR is not set ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_29 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_29(topology_st):
"""
Wrong container excluded scope: Add a staged entry and check its ALLOCATED_ATTR is unchanged (!= magic)
"""
_header(topology_st,
'Wrong container excluded scope: Add a staged entry and check its ALLOCATED_ATTR is unchanged (!= magic)')

topology_st.standalone.add_s(
Entry((STAGED_USER1_DN, {'objectclass': "top person organizationalPerson inetOrgPerson".split(),
'cn': STAGED_USER1_CN,
'sn': STAGED_USER1_CN,
> ALLOCATED_ATTR: str(20)})))

tickets/ticket47828_test.py:602:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method result4 of LDAP object at 0x7f702f8d0170>
args = (36, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Wrong container excluded scope: Add a staged entry and check its ALLOCATED_ATTR is unchanged (!= magic) INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Wrong container excluded scope: Add a staged entry and check its ALLOCATED_ATTR is unchanged (!= magic) ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_30 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_30(topology_st):
"""
Wrong container excluded scope: Add an dummy entry and check its ALLOCATED_ATTR is set
"""
_header(topology_st, 'Wrong container excluded scope: Add an dummy entry and check its ALLOCATED_ATTR is set')

topology_st.standalone.add_s(
Entry((DUMMY_USER1_DN, {'objectclass': "top person organizationalPerson inetOrgPerson".split(),
'cn': DUMMY_USER1_CN,
'sn': DUMMY_USER1_CN,
> ALLOCATED_ATTR: str(-1)})))

tickets/ticket47828_test.py:620:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method result4 of LDAP object at 0x7f702f8d0170>
args = (37, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Wrong container excluded scope: Add an dummy entry and check its ALLOCATED_ATTR is set INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Wrong container excluded scope: Add an dummy entry and check its ALLOCATED_ATTR is set ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47828_test.py::test_ticket47828_run_31 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f950e48>

def test_ticket47828_run_31(topology_st):
"""
Wrong container excluded scope: Add an dummy entry and check its ALLOCATED_ATTR is unchanged (!= magic)
"""
_header(topology_st,
'Wrong container excluded scope: Add an dummy entry and check its ALLOCATED_ATTR is unchanged (!= magic)')

topology_st.standalone.add_s(
Entry((DUMMY_USER1_DN, {'objectclass': "top person organizationalPerson inetOrgPerson".split(),
'cn': DUMMY_USER1_CN,
'sn': DUMMY_USER1_CN,
> ALLOCATED_ATTR: str(20)})))

tickets/ticket47828_test.py:639:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042f01c18>
func = <built-in method result4 of LDAP object at 0x7f702f8d0170>
args = (38, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: ALREADY_EXISTS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Wrong container excluded scope: Add an dummy entry and check its ALLOCATED_ATTR is unchanged (!= magic) INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47828_test.py 41 INFO ############################################### ticket47828_test.py 42 INFO ####### ticket47828_test.py 43 INFO ####### Wrong container excluded scope: Add an dummy entry and check its ALLOCATED_ATTR is unchanged (!= magic) ticket47828_test.py 44 INFO ####### ticket47828_test.py 45 INFO ###############################################
Failed tickets/ticket47829_test.py::test_ticket47829_init 0.03
topology_st = <lib389.topologies.TopologyMain object at 0x7f702fd81160>

def test_ticket47829_init(topology_st):
topology_st.standalone.add_s(Entry((SCOPE_IN_DN, {
'objectclass': "top nscontainer".split(),
'cn': SCOPE_IN_DN})))
topology_st.standalone.add_s(Entry((SCOPE_OUT_DN, {
'objectclass': "top nscontainer".split(),
'cn': SCOPE_OUT_DN})))
topology_st.standalone.add_s(Entry((PROVISIONING_DN, {
'objectclass': "top nscontainer".split(),
'cn': PROVISIONING_CN})))
topology_st.standalone.add_s(Entry((ACTIVE_DN, {
'objectclass': "top nscontainer".split(),
'cn': ACTIVE_CN})))
topology_st.standalone.add_s(Entry((STAGE_DN, {
'objectclass': "top nscontainer".split(),
'cn': STAGE_DN})))
topology_st.standalone.add_s(Entry((DELETE_DN, {
'objectclass': "top nscontainer".split(),
'cn': DELETE_CN})))

# add groups
topology_st.standalone.add_s(Entry((ACTIVE_GROUP_DN, {
'objectclass': "top groupOfNames inetuser".split(),
'cn': ACTIVE_GROUP_CN})))
topology_st.standalone.add_s(Entry((STAGE_GROUP_DN, {
'objectclass': "top groupOfNames inetuser".split(),
'cn': STAGE_GROUP_CN})))
topology_st.standalone.add_s(Entry((OUT_GROUP_DN, {
'objectclass': "top groupOfNames inetuser".split(),
'cn': OUT_GROUP_CN})))
topology_st.standalone.add_s(Entry((INDIRECT_ACTIVE_GROUP_DN, {
'objectclass': "top groupOfNames".split(),
'cn': INDIRECT_ACTIVE_GROUP_CN})))

# add users
_add_user(topology_st, 'active')
_add_user(topology_st, 'stage')
_add_user(topology_st, 'out')

# enable memberof of with scope IN except provisioning
topology_st.standalone.plugins.enable(name=PLUGIN_MEMBER_OF)
dn = "cn=%s,%s" % (PLUGIN_MEMBER_OF, DN_PLUGIN)
> topology_st.standalone.modify_s(dn, [(ldap.MOD_REPLACE, 'memberOfEntryScope', SCOPE_IN_DN)])

tickets/ticket47829_test.py:221:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042a024a8>
func = <built-in method modify_ext of LDAP object at 0x7f70426512b0>
args = ('cn=MemberOf Plugin,cn=plugins,cn=config', [(2, 'memberOfEntryScope', 'cn=in,dc=example,dc=com')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Failed tickets/ticket47829_test.py::test_ticket47829_mod_active_user_1 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702fd81160>

def test_ticket47829_mod_active_user_1(topology_st):
_header(topology_st, 'MOD: add an active user to an active group')

# add active user to active group
_check_memberof(topology_st, action=ldap.MOD_ADD, user_dn=ACTIVE_USER_DN, group_dn=ACTIVE_GROUP_DN,
> find_result=True)

tickets/ticket47829_test.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47829_test.py:174: in _check_memberof
topology_st.standalone.modify_s(group_dn, [(action, 'member', user_dn)])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042a024a8>
func = <built-in method modify_ext of LDAP object at 0x7f70426512b0>
args = ('cn=active group,cn=accounts,cn=in,dc=example,dc=com', [(0, 'member', 'cn=active guy,cn=accounts,cn=in,dc=example,dc=com')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### MOD: add an active user to an active group INFO:lib389:####### INFO:lib389:############################################### INFO:lib389: add entry cn=active guy,cn=accounts,cn=in,dc=example,dc=com INFO:lib389:to group cn=active group,cn=accounts,cn=in,dc=example,dc=com ------------------------------ Captured log call -------------------------------
ticket47829_test.py 61 INFO ############################################### ticket47829_test.py 62 INFO ####### ticket47829_test.py 63 INFO ####### MOD: add an active user to an active group ticket47829_test.py 64 INFO ####### ticket47829_test.py 65 INFO ############################################### ticket47829_test.py 171 INFO add entry cn=active guy,cn=accounts,cn=in,dc=example,dc=com ticket47829_test.py 172 INFO to group cn=active group,cn=accounts,cn=in,dc=example,dc=com
Failed tickets/ticket47829_test.py::test_ticket47829_mod_active_user_2 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702fd81160>

def test_ticket47829_mod_active_user_2(topology_st):
_header(topology_st, 'MOD: add an Active user to a Stage group')

# add active user to stage group
_check_memberof(topology_st, action=ldap.MOD_ADD, user_dn=ACTIVE_USER_DN, group_dn=STAGE_GROUP_DN,
> find_result=False)

tickets/ticket47829_test.py:252:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47829_test.py:174: in _check_memberof
topology_st.standalone.modify_s(group_dn, [(action, 'member', user_dn)])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042a024a8>
func = <built-in method modify_ext of LDAP object at 0x7f70426512b0>
args = ('cn=stage group,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com', [(0, 'member', 'cn=active guy,cn=accounts,cn=in,dc=example,dc=com')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### MOD: add an Active user to a Stage group INFO:lib389:####### INFO:lib389:############################################### INFO:lib389: add entry cn=active guy,cn=accounts,cn=in,dc=example,dc=com INFO:lib389:to group cn=stage group,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com ------------------------------ Captured log call -------------------------------
ticket47829_test.py 61 INFO ############################################### ticket47829_test.py 62 INFO ####### ticket47829_test.py 63 INFO ####### MOD: add an Active user to a Stage group ticket47829_test.py 64 INFO ####### ticket47829_test.py 65 INFO ############################################### ticket47829_test.py 171 INFO add entry cn=active guy,cn=accounts,cn=in,dc=example,dc=com ticket47829_test.py 172 INFO to group cn=stage group,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com
Failed tickets/ticket47829_test.py::test_ticket47829_mod_active_user_3 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702fd81160>

def test_ticket47829_mod_active_user_3(topology_st):
_header(topology_st, 'MOD: add an Active user to a out of scope group')

# add active user to out of scope group
> _check_memberof(topology_st, action=ldap.MOD_ADD, user_dn=ACTIVE_USER_DN, group_dn=OUT_GROUP_DN, find_result=False)

tickets/ticket47829_test.py:264:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47829_test.py:174: in _check_memberof
topology_st.standalone.modify_s(group_dn, [(action, 'member', user_dn)])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042a024a8>
func = <built-in method modify_ext of LDAP object at 0x7f70426512b0>
args = ('cn=out group,cn=out,dc=example,dc=com', [(0, 'member', 'cn=active guy,cn=accounts,cn=in,dc=example,dc=com')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### MOD: add an Active user to a out of scope group INFO:lib389:####### INFO:lib389:############################################### INFO:lib389: add entry cn=active guy,cn=accounts,cn=in,dc=example,dc=com INFO:lib389:to group cn=out group,cn=out,dc=example,dc=com ------------------------------ Captured log call -------------------------------
ticket47829_test.py 61 INFO ############################################### ticket47829_test.py 62 INFO ####### ticket47829_test.py 63 INFO ####### MOD: add an Active user to a out of scope group ticket47829_test.py 64 INFO ####### ticket47829_test.py 65 INFO ############################################### ticket47829_test.py 171 INFO add entry cn=active guy,cn=accounts,cn=in,dc=example,dc=com ticket47829_test.py 172 INFO to group cn=out group,cn=out,dc=example,dc=com
Failed tickets/ticket47829_test.py::test_ticket47829_mod_stage_user_1 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702fd81160>

def test_ticket47829_mod_stage_user_1(topology_st):
_header(topology_st, 'MOD: add an Stage user to a Active group')

# add stage user to active group
_check_memberof(topology_st, action=ldap.MOD_ADD, user_dn=STAGE_USER_DN, group_dn=ACTIVE_GROUP_DN,
> find_result=False)

tickets/ticket47829_test.py:277:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47829_test.py:174: in _check_memberof
topology_st.standalone.modify_s(group_dn, [(action, 'member', user_dn)])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042a024a8>
func = <built-in method modify_ext of LDAP object at 0x7f70426512b0>
args = ('cn=active group,cn=accounts,cn=in,dc=example,dc=com', [(0, 'member', 'cn=stage guy,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### MOD: add an Stage user to a Active group INFO:lib389:####### INFO:lib389:############################################### INFO:lib389: add entry cn=stage guy,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com INFO:lib389:to group cn=active group,cn=accounts,cn=in,dc=example,dc=com ------------------------------ Captured log call -------------------------------
ticket47829_test.py 61 INFO ############################################### ticket47829_test.py 62 INFO ####### ticket47829_test.py 63 INFO ####### MOD: add an Stage user to a Active group ticket47829_test.py 64 INFO ####### ticket47829_test.py 65 INFO ############################################### ticket47829_test.py 171 INFO add entry cn=stage guy,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com ticket47829_test.py 172 INFO to group cn=active group,cn=accounts,cn=in,dc=example,dc=com
Failed tickets/ticket47829_test.py::test_ticket47829_mod_stage_user_2 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702fd81160>

def test_ticket47829_mod_stage_user_2(topology_st):
_header(topology_st, 'MOD: add an Stage user to a Stage group')

# add stage user to stage group
> _check_memberof(topology_st, action=ldap.MOD_ADD, user_dn=STAGE_USER_DN, group_dn=STAGE_GROUP_DN, find_result=False)

tickets/ticket47829_test.py:289:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47829_test.py:174: in _check_memberof
topology_st.standalone.modify_s(group_dn, [(action, 'member', user_dn)])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042a024a8>
func = <built-in method modify_ext of LDAP object at 0x7f70426512b0>
args = ('cn=stage group,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com', [(0, 'member', 'cn=stage guy,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### MOD: add an Stage user to a Stage group INFO:lib389:####### INFO:lib389:############################################### INFO:lib389: add entry cn=stage guy,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com INFO:lib389:to group cn=stage group,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com ------------------------------ Captured log call -------------------------------
ticket47829_test.py 61 INFO ############################################### ticket47829_test.py 62 INFO ####### ticket47829_test.py 63 INFO ####### MOD: add an Stage user to a Stage group ticket47829_test.py 64 INFO ####### ticket47829_test.py 65 INFO ############################################### ticket47829_test.py 171 INFO add entry cn=stage guy,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com ticket47829_test.py 172 INFO to group cn=stage group,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com
Failed tickets/ticket47829_test.py::test_ticket47829_mod_stage_user_3 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702fd81160>

def test_ticket47829_mod_stage_user_3(topology_st):
_header(topology_st, 'MOD: add an Stage user to a out of scope group')

# add stage user to an out of scope group
> _check_memberof(topology_st, action=ldap.MOD_ADD, user_dn=STAGE_USER_DN, group_dn=OUT_GROUP_DN, find_result=False)

tickets/ticket47829_test.py:301:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47829_test.py:174: in _check_memberof
topology_st.standalone.modify_s(group_dn, [(action, 'member', user_dn)])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042a024a8>
func = <built-in method modify_ext of LDAP object at 0x7f70426512b0>
args = ('cn=out group,cn=out,dc=example,dc=com', [(0, 'member', 'cn=stage guy,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### MOD: add an Stage user to a out of scope group INFO:lib389:####### INFO:lib389:############################################### INFO:lib389: add entry cn=stage guy,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com INFO:lib389:to group cn=out group,cn=out,dc=example,dc=com ------------------------------ Captured log call -------------------------------
ticket47829_test.py 61 INFO ############################################### ticket47829_test.py 62 INFO ####### ticket47829_test.py 63 INFO ####### MOD: add an Stage user to a out of scope group ticket47829_test.py 64 INFO ####### ticket47829_test.py 65 INFO ############################################### ticket47829_test.py 171 INFO add entry cn=stage guy,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com ticket47829_test.py 172 INFO to group cn=out group,cn=out,dc=example,dc=com
Failed tickets/ticket47829_test.py::test_ticket47829_mod_out_user_1 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702fd81160>

def test_ticket47829_mod_out_user_1(topology_st):
_header(topology_st, 'MOD: add an out of scope user to an active group')

# add out of scope user to active group
> _check_memberof(topology_st, action=ldap.MOD_ADD, user_dn=OUT_USER_DN, group_dn=ACTIVE_GROUP_DN, find_result=False)

tickets/ticket47829_test.py:313:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47829_test.py:174: in _check_memberof
topology_st.standalone.modify_s(group_dn, [(action, 'member', user_dn)])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042a024a8>
func = <built-in method modify_ext of LDAP object at 0x7f70426512b0>
args = ('cn=active group,cn=accounts,cn=in,dc=example,dc=com', [(0, 'member', 'cn=out guy,cn=out,dc=example,dc=com')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### MOD: add an out of scope user to an active group INFO:lib389:####### INFO:lib389:############################################### INFO:lib389: add entry cn=out guy,cn=out,dc=example,dc=com INFO:lib389:to group cn=active group,cn=accounts,cn=in,dc=example,dc=com ------------------------------ Captured log call -------------------------------
ticket47829_test.py 61 INFO ############################################### ticket47829_test.py 62 INFO ####### ticket47829_test.py 63 INFO ####### MOD: add an out of scope user to an active group ticket47829_test.py 64 INFO ####### ticket47829_test.py 65 INFO ############################################### ticket47829_test.py 171 INFO add entry cn=out guy,cn=out,dc=example,dc=com ticket47829_test.py 172 INFO to group cn=active group,cn=accounts,cn=in,dc=example,dc=com
Failed tickets/ticket47829_test.py::test_ticket47829_mod_out_user_2 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702fd81160>

def test_ticket47829_mod_out_user_2(topology_st):
_header(topology_st, 'MOD: add an out of scope user to a Stage group')

# add out of scope user to stage group
> _check_memberof(topology_st, action=ldap.MOD_ADD, user_dn=OUT_USER_DN, group_dn=STAGE_GROUP_DN, find_result=False)

tickets/ticket47829_test.py:325:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47829_test.py:174: in _check_memberof
topology_st.standalone.modify_s(group_dn, [(action, 'member', user_dn)])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042a024a8>
func = <built-in method modify_ext of LDAP object at 0x7f70426512b0>
args = ('cn=stage group,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com', [(0, 'member', 'cn=out guy,cn=out,dc=example,dc=com')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### MOD: add an out of scope user to a Stage group INFO:lib389:####### INFO:lib389:############################################### INFO:lib389: add entry cn=out guy,cn=out,dc=example,dc=com INFO:lib389:to group cn=stage group,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com ------------------------------ Captured log call -------------------------------
ticket47829_test.py 61 INFO ############################################### ticket47829_test.py 62 INFO ####### ticket47829_test.py 63 INFO ####### MOD: add an out of scope user to a Stage group ticket47829_test.py 64 INFO ####### ticket47829_test.py 65 INFO ############################################### ticket47829_test.py 171 INFO add entry cn=out guy,cn=out,dc=example,dc=com ticket47829_test.py 172 INFO to group cn=stage group,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com
Failed tickets/ticket47829_test.py::test_ticket47829_mod_out_user_3 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702fd81160>

def test_ticket47829_mod_out_user_3(topology_st):
_header(topology_st, 'MOD: add an out of scope user to an out of scope group')

# add out of scope user to stage group
> _check_memberof(topology_st, action=ldap.MOD_ADD, user_dn=OUT_USER_DN, group_dn=OUT_GROUP_DN, find_result=False)

tickets/ticket47829_test.py:337:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47829_test.py:174: in _check_memberof
topology_st.standalone.modify_s(group_dn, [(action, 'member', user_dn)])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042a024a8>
func = <built-in method modify_ext of LDAP object at 0x7f70426512b0>
args = ('cn=out group,cn=out,dc=example,dc=com', [(0, 'member', 'cn=out guy,cn=out,dc=example,dc=com')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### MOD: add an out of scope user to an out of scope group INFO:lib389:####### INFO:lib389:############################################### INFO:lib389: add entry cn=out guy,cn=out,dc=example,dc=com INFO:lib389:to group cn=out group,cn=out,dc=example,dc=com ------------------------------ Captured log call -------------------------------
ticket47829_test.py 61 INFO ############################################### ticket47829_test.py 62 INFO ####### ticket47829_test.py 63 INFO ####### MOD: add an out of scope user to an out of scope group ticket47829_test.py 64 INFO ####### ticket47829_test.py 65 INFO ############################################### ticket47829_test.py 171 INFO add entry cn=out guy,cn=out,dc=example,dc=com ticket47829_test.py 172 INFO to group cn=out group,cn=out,dc=example,dc=com
Failed tickets/ticket47829_test.py::test_ticket47829_mod_active_user_modrdn_active_user_1 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702fd81160>

def test_ticket47829_mod_active_user_modrdn_active_user_1(topology_st):
_header(topology_st, 'add an Active user to a Active group. Then move Active user to Active')

# add Active user to active group
_check_memberof(topology_st, action=ldap.MOD_ADD, user_dn=ACTIVE_USER_DN, group_dn=ACTIVE_GROUP_DN,
> find_result=True)

tickets/ticket47829_test.py:349:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47829_test.py:174: in _check_memberof
topology_st.standalone.modify_s(group_dn, [(action, 'member', user_dn)])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042a024a8>
func = <built-in method modify_ext of LDAP object at 0x7f70426512b0>
args = ('cn=active group,cn=accounts,cn=in,dc=example,dc=com', [(0, 'member', 'cn=active guy,cn=accounts,cn=in,dc=example,dc=com')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### add an Active user to a Active group. Then move Active user to Active INFO:lib389:####### INFO:lib389:############################################### INFO:lib389: add entry cn=active guy,cn=accounts,cn=in,dc=example,dc=com INFO:lib389:to group cn=active group,cn=accounts,cn=in,dc=example,dc=com ------------------------------ Captured log call -------------------------------
ticket47829_test.py 61 INFO ############################################### ticket47829_test.py 62 INFO ####### ticket47829_test.py 63 INFO ####### add an Active user to a Active group. Then move Active user to Active ticket47829_test.py 64 INFO ####### ticket47829_test.py 65 INFO ############################################### ticket47829_test.py 171 INFO add entry cn=active guy,cn=accounts,cn=in,dc=example,dc=com ticket47829_test.py 172 INFO to group cn=active group,cn=accounts,cn=in,dc=example,dc=com
Failed tickets/ticket47829_test.py::test_ticket47829_mod_active_user_modrdn_stage_user_1 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702fd81160>

def test_ticket47829_mod_active_user_modrdn_stage_user_1(topology_st):
_header(topology_st, 'add an Active user to a Active group. Then move Active user to Stage')

# add Active user to active group
_check_memberof(topology_st, action=ldap.MOD_ADD, user_dn=ACTIVE_USER_DN, group_dn=ACTIVE_GROUP_DN,
> find_result=True)

tickets/ticket47829_test.py:377:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47829_test.py:174: in _check_memberof
topology_st.standalone.modify_s(group_dn, [(action, 'member', user_dn)])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042a024a8>
func = <built-in method modify_ext of LDAP object at 0x7f70426512b0>
args = ('cn=active group,cn=accounts,cn=in,dc=example,dc=com', [(0, 'member', 'cn=active guy,cn=accounts,cn=in,dc=example,dc=com')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### add an Active user to a Active group. Then move Active user to Stage INFO:lib389:####### INFO:lib389:############################################### INFO:lib389: add entry cn=active guy,cn=accounts,cn=in,dc=example,dc=com INFO:lib389:to group cn=active group,cn=accounts,cn=in,dc=example,dc=com ------------------------------ Captured log call -------------------------------
ticket47829_test.py 61 INFO ############################################### ticket47829_test.py 62 INFO ####### ticket47829_test.py 63 INFO ####### add an Active user to a Active group. Then move Active user to Stage ticket47829_test.py 64 INFO ####### ticket47829_test.py 65 INFO ############################################### ticket47829_test.py 171 INFO add entry cn=active guy,cn=accounts,cn=in,dc=example,dc=com ticket47829_test.py 172 INFO to group cn=active group,cn=accounts,cn=in,dc=example,dc=com
Failed tickets/ticket47829_test.py::test_ticket47829_mod_active_user_modrdn_out_user_1 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702fd81160>

def test_ticket47829_mod_active_user_modrdn_out_user_1(topology_st):
_header(topology_st, 'add an Active user to a Active group. Then move Active user to out of scope')

# add Active user to active group
_check_memberof(topology_st, action=ldap.MOD_ADD, user_dn=ACTIVE_USER_DN, group_dn=ACTIVE_GROUP_DN,
> find_result=True)

tickets/ticket47829_test.py:401:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47829_test.py:174: in _check_memberof
topology_st.standalone.modify_s(group_dn, [(action, 'member', user_dn)])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042a024a8>
func = <built-in method modify_ext of LDAP object at 0x7f70426512b0>
args = ('cn=active group,cn=accounts,cn=in,dc=example,dc=com', [(0, 'member', 'cn=active guy,cn=accounts,cn=in,dc=example,dc=com')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### add an Active user to a Active group. Then move Active user to out of scope INFO:lib389:####### INFO:lib389:############################################### INFO:lib389: add entry cn=active guy,cn=accounts,cn=in,dc=example,dc=com INFO:lib389:to group cn=active group,cn=accounts,cn=in,dc=example,dc=com ------------------------------ Captured log call -------------------------------
ticket47829_test.py 61 INFO ############################################### ticket47829_test.py 62 INFO ####### ticket47829_test.py 63 INFO ####### add an Active user to a Active group. Then move Active user to out of scope ticket47829_test.py 64 INFO ####### ticket47829_test.py 65 INFO ############################################### ticket47829_test.py 171 INFO add entry cn=active guy,cn=accounts,cn=in,dc=example,dc=com ticket47829_test.py 172 INFO to group cn=active group,cn=accounts,cn=in,dc=example,dc=com
Failed tickets/ticket47829_test.py::test_ticket47829_mod_modrdn_1 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702fd81160>

def test_ticket47829_mod_modrdn_1(topology_st):
_header(topology_st, 'add an Stage user to a Active group. Then move Stage user to Active')

# add Stage user to active group
_check_memberof(topology_st, action=ldap.MOD_ADD, user_dn=STAGE_USER_DN, group_dn=ACTIVE_GROUP_DN,
> find_result=False)

tickets/ticket47829_test.py:425:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47829_test.py:174: in _check_memberof
topology_st.standalone.modify_s(group_dn, [(action, 'member', user_dn)])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042a024a8>
func = <built-in method modify_ext of LDAP object at 0x7f70426512b0>
args = ('cn=active group,cn=accounts,cn=in,dc=example,dc=com', [(0, 'member', 'cn=stage guy,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### add an Stage user to a Active group. Then move Stage user to Active INFO:lib389:####### INFO:lib389:############################################### INFO:lib389: add entry cn=stage guy,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com INFO:lib389:to group cn=active group,cn=accounts,cn=in,dc=example,dc=com ------------------------------ Captured log call -------------------------------
ticket47829_test.py 61 INFO ############################################### ticket47829_test.py 62 INFO ####### ticket47829_test.py 63 INFO ####### add an Stage user to a Active group. Then move Stage user to Active ticket47829_test.py 64 INFO ####### ticket47829_test.py 65 INFO ############################################### ticket47829_test.py 171 INFO add entry cn=stage guy,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com ticket47829_test.py 172 INFO to group cn=active group,cn=accounts,cn=in,dc=example,dc=com
Failed tickets/ticket47829_test.py::test_ticket47829_mod_stage_user_modrdn_active_user_1 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702fd81160>

def test_ticket47829_mod_stage_user_modrdn_active_user_1(topology_st):
_header(topology_st, 'add an Stage user to a Active group. Then move Stage user to Active')

stage_user_dn = STAGE_USER_DN
stage_user_rdn = "cn=%s" % STAGE_USER_CN
active_user_dn = "cn=%s,%s" % (STAGE_USER_CN, ACTIVE_DN)

# add Stage user to active group
_check_memberof(topology_st, action=ldap.MOD_ADD, user_dn=stage_user_dn, group_dn=ACTIVE_GROUP_DN,
> find_result=False)

tickets/ticket47829_test.py:453:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47829_test.py:174: in _check_memberof
topology_st.standalone.modify_s(group_dn, [(action, 'member', user_dn)])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042a024a8>
func = <built-in method modify_ext of LDAP object at 0x7f70426512b0>
args = ('cn=active group,cn=accounts,cn=in,dc=example,dc=com', [(0, 'member', 'cn=stage guy,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### add an Stage user to a Active group. Then move Stage user to Active INFO:lib389:####### INFO:lib389:############################################### INFO:lib389: add entry cn=stage guy,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com INFO:lib389:to group cn=active group,cn=accounts,cn=in,dc=example,dc=com ------------------------------ Captured log call -------------------------------
ticket47829_test.py 61 INFO ############################################### ticket47829_test.py 62 INFO ####### ticket47829_test.py 63 INFO ####### add an Stage user to a Active group. Then move Stage user to Active ticket47829_test.py 64 INFO ####### ticket47829_test.py 65 INFO ############################################### ticket47829_test.py 171 INFO add entry cn=stage guy,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com ticket47829_test.py 172 INFO to group cn=active group,cn=accounts,cn=in,dc=example,dc=com
Failed tickets/ticket47829_test.py::test_ticket47829_indirect_active_group_1 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702fd81160>

def test_ticket47829_indirect_active_group_1(topology_st):
_header(topology_st, 'add an Active group (G1) to an active group (G0). Then add active user to G1')

> topology_st.standalone.modify_s(INDIRECT_ACTIVE_GROUP_DN, [(ldap.MOD_ADD, 'member', ACTIVE_GROUP_DN)])

tickets/ticket47829_test.py:497:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042a024a8>
func = <built-in method modify_ext of LDAP object at 0x7f70426512b0>
args = ('cn=indirect active group,cn=accounts,cn=in,dc=example,dc=com', [(0, 'member', 'cn=active group,cn=accounts,cn=in,dc=example,dc=com')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### add an Active group (G1) to an active group (G0). Then add active user to G1 INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47829_test.py 61 INFO ############################################### ticket47829_test.py 62 INFO ####### ticket47829_test.py 63 INFO ####### add an Active group (G1) to an active group (G0). Then add active user to G1 ticket47829_test.py 64 INFO ####### ticket47829_test.py 65 INFO ###############################################
Failed tickets/ticket47829_test.py::test_ticket47829_indirect_active_group_2 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702fd81160>

def test_ticket47829_indirect_active_group_2(topology_st):
_header(topology_st,
'add an Active group (G1) to an active group (G0). Then add active user to G1. Then move active user to stage')

> topology_st.standalone.modify_s(INDIRECT_ACTIVE_GROUP_DN, [(ldap.MOD_ADD, 'member', ACTIVE_GROUP_DN)])

tickets/ticket47829_test.py:518:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042a024a8>
func = <built-in method modify_ext of LDAP object at 0x7f70426512b0>
args = ('cn=indirect active group,cn=accounts,cn=in,dc=example,dc=com', [(0, 'member', 'cn=active group,cn=accounts,cn=in,dc=example,dc=com')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### add an Active group (G1) to an active group (G0). Then add active user to G1. Then move active user to stage INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47829_test.py 61 INFO ############################################### ticket47829_test.py 62 INFO ####### ticket47829_test.py 63 INFO ####### add an Active group (G1) to an active group (G0). Then add active user to G1. Then move active user to stage ticket47829_test.py 64 INFO ####### ticket47829_test.py 65 INFO ###############################################
Failed tickets/ticket47829_test.py::test_ticket47829_indirect_active_group_3 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702fd81160>

def test_ticket47829_indirect_active_group_3(topology_st):
_header(topology_st,
'add an Active group (G1) to an active group (G0). Then add active user to G1. Then move active user to out of the scope')

> topology_st.standalone.modify_s(INDIRECT_ACTIVE_GROUP_DN, [(ldap.MOD_ADD, 'member', ACTIVE_GROUP_DN)])

tickets/ticket47829_test.py:558:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042a024a8>
func = <built-in method modify_ext of LDAP object at 0x7f70426512b0>
args = ('cn=indirect active group,cn=accounts,cn=in,dc=example,dc=com', [(0, 'member', 'cn=active group,cn=accounts,cn=in,dc=example,dc=com')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### add an Active group (G1) to an active group (G0). Then add active user to G1. Then move active user to out of the scope INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47829_test.py 61 INFO ############################################### ticket47829_test.py 62 INFO ####### ticket47829_test.py 63 INFO ####### add an Active group (G1) to an active group (G0). Then add active user to G1. Then move active user to out of the scope ticket47829_test.py 64 INFO ####### ticket47829_test.py 65 INFO ###############################################
Failed tickets/ticket47829_test.py::test_ticket47829_indirect_active_group_4 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702fd81160>

def test_ticket47829_indirect_active_group_4(topology_st):
_header(topology_st,
'add an Active group (G1) to an active group (G0). Then add stage user to G1. Then move user to active. Then move it back')

> topology_st.standalone.modify_s(INDIRECT_ACTIVE_GROUP_DN, [(ldap.MOD_ADD, 'member', ACTIVE_GROUP_DN)])

tickets/ticket47829_test.py:598:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042a024a8>
func = <built-in method modify_ext of LDAP object at 0x7f70426512b0>
args = ('cn=indirect active group,cn=accounts,cn=in,dc=example,dc=com', [(0, 'member', 'cn=active group,cn=accounts,cn=in,dc=example,dc=com')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### add an Active group (G1) to an active group (G0). Then add stage user to G1. Then move user to active. Then move it back INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47829_test.py 61 INFO ############################################### ticket47829_test.py 62 INFO ####### ticket47829_test.py 63 INFO ####### add an Active group (G1) to an active group (G0). Then add stage user to G1. Then move user to active. Then move it back ticket47829_test.py 64 INFO ####### ticket47829_test.py 65 INFO ###############################################
Failed tickets/ticket47833_test.py::test_ticket47829_init 0.03
topology_st = <lib389.topologies.TopologyMain object at 0x7f7042868fd0>

def test_ticket47829_init(topology_st):
topology_st.standalone.add_s(Entry((SCOPE_IN_DN, {
'objectclass': "top nscontainer".split(),
'cn': SCOPE_IN_DN})))
topology_st.standalone.add_s(Entry((SCOPE_OUT_DN, {
'objectclass': "top nscontainer".split(),
'cn': SCOPE_OUT_DN})))
topology_st.standalone.add_s(Entry((PROVISIONING_DN, {
'objectclass': "top nscontainer".split(),
'cn': PROVISIONING_CN})))
topology_st.standalone.add_s(Entry((ACTIVE_DN, {
'objectclass': "top nscontainer".split(),
'cn': ACTIVE_CN})))
topology_st.standalone.add_s(Entry((STAGE_DN, {
'objectclass': "top nscontainer".split(),
'cn': STAGE_DN})))
topology_st.standalone.add_s(Entry((DELETE_DN, {
'objectclass': "top nscontainer".split(),
'cn': DELETE_CN})))

# add groups
topology_st.standalone.add_s(Entry((ACTIVE_GROUP_DN, {
'objectclass': "top groupOfNames".split(),
'cn': ACTIVE_GROUP_CN})))
topology_st.standalone.add_s(Entry((STAGE_GROUP_DN, {
'objectclass': "top groupOfNames".split(),
'cn': STAGE_GROUP_CN})))
topology_st.standalone.add_s(Entry((OUT_GROUP_DN, {
'objectclass': "top groupOfNames".split(),
'cn': OUT_GROUP_CN})))

# add users
_add_user(topology_st, 'active')
_add_user(topology_st, 'stage')
_add_user(topology_st, 'out')

# enable memberof of with scope account
topology_st.standalone.plugins.enable(name=PLUGIN_MEMBER_OF)
dn = "cn=%s,%s" % (PLUGIN_MEMBER_OF, DN_PLUGIN)
> topology_st.standalone.modify_s(dn, [(ldap.MOD_REPLACE, 'memberOfEntryScope', ACTIVE_DN)])

tickets/ticket47833_test.py:191:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70429b05c0>
func = <built-in method modify_ext of LDAP object at 0x7f702fd834b8>
args = ('cn=MemberOf Plugin,cn=plugins,cn=config', [(2, 'memberOfEntryScope', 'cn=accounts,cn=in,dc=example,dc=com')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Failed tickets/ticket47833_test.py::test_ticket47829_mod_stage_user_modrdn_stage_user_1 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f7042868fd0>

def test_ticket47829_mod_stage_user_modrdn_stage_user_1(topology_st):
_header(topology_st, 'add an Stage user to a Active group. Then move Stage user to Stage')

old_stage_user_dn = STAGE_USER_DN
old_stage_user_rdn = "cn=%s" % STAGE_USER_CN
new_stage_user_rdn = "cn=x%s" % STAGE_USER_CN
new_stage_user_dn = "%s,%s" % (new_stage_user_rdn, STAGE_DN)

# add Stage user to active group
_check_memberof(topology_st, action=ldap.MOD_ADD, user_dn=old_stage_user_dn, group_dn=ACTIVE_GROUP_DN,
> find_result=False)

tickets/ticket47833_test.py:206:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47833_test.py:147: in _check_memberof
topology_st.standalone.modify_s(group_dn, [(action, 'member', user_dn)])
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70429b05c0>
func = <built-in method modify_ext of LDAP object at 0x7f702fd834b8>
args = ('cn=active group,cn=accounts,cn=in,dc=example,dc=com', [(0, 'member', 'cn=stage guy,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### add an Stage user to a Active group. Then move Stage user to Stage INFO:lib389:####### INFO:lib389:############################################### INFO:lib389: add entry cn=stage guy,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com INFO:lib389:to group cn=active group,cn=accounts,cn=in,dc=example,dc=com ------------------------------ Captured log call -------------------------------
ticket47833_test.py 57 INFO ############################################### ticket47833_test.py 58 INFO ####### ticket47833_test.py 59 INFO ####### add an Stage user to a Active group. Then move Stage user to Stage ticket47833_test.py 60 INFO ####### ticket47833_test.py 61 INFO ############################################### ticket47833_test.py 144 INFO add entry cn=stage guy,cn=staged users,cn=provisioning,cn=in,dc=example,dc=com ticket47833_test.py 145 INFO to group cn=active group,cn=accounts,cn=in,dc=example,dc=com
Failed tickets/ticket47838_test.py::test_47838_init 0.01
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f6b6f28>

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()

> topology_st.standalone.nss_ssl.reinit()

tickets/ticket47838_test.py:65:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f6b6828>, name = 'nss_ssl'

def __getattr__(self,name):
if name in self.CLASSATTR_OPTION_MAPPING:
return self.get_option(self.CLASSATTR_OPTION_MAPPING[name])
elif name in self.__dict__:
return self.__dict__[name]
else:
raise AttributeError('%s has no attribute %s' % (
> self.__class__.__name__,repr(name)
))
E AttributeError: DirSrv has no attribute 'nss_ssl'

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:352: AttributeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Testing Ticket 47838 - harden the list of ciphers available by default INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47838_test.py 47 INFO ############################################### ticket47838_test.py 48 INFO ####### ticket47838_test.py 49 INFO ####### Testing Ticket 47838 - harden the list of ciphers available by default ticket47838_test.py 50 INFO ####### ticket47838_test.py 51 INFO ###############################################
Failed tickets/ticket47838_test.py::test_47838_run_0 0.11
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f6b6f28>

def test_47838_run_0(topology_st):
"""
Check nsSSL3Ciphers: +all
All ciphers are enabled except null.
Note: allowWeakCipher: on
"""
_header(topology_st, 'Test Case 1 - Check the ciphers availability for "+all"; allowWeakCipher: on')

topology_st.standalone.simple_bind_s(DN_DM, PASSWORD)
> topology_st.standalone.modify_s(CONFIG_DN, [(ldap.MOD_REPLACE, 'nsslapd-errorlog-level', '64')])

tickets/ticket47838_test.py:116:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f6b6828>
func = <built-in method modify_ext of LDAP object at 0x7f702fd728f0>
args = ('cn=config', [(2, 'nsslapd-errorlog-level', '64')], 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', '6')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Test Case 1 - Check the ciphers availability for "+all"; allowWeakCipher: on INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47838_test.py 47 INFO ############################################### ticket47838_test.py 48 INFO ####### ticket47838_test.py 49 INFO ####### Test Case 1 - Check the ciphers availability for "+all"; allowWeakCipher: on ticket47838_test.py 50 INFO ####### ticket47838_test.py 51 INFO ###############################################
Failed tickets/ticket47838_test.py::test_47838_run_1 0.11
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f6b6f28>

def test_47838_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', '64')])

tickets/ticket47838_test.py:155:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f6b6828>
func = <built-in method modify_ext of LDAP object at 0x7f702fd728f0>
args = ('cn=config', [(2, 'nsslapd-errorlog-level', '64')], 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', '6')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Test Case 2 - Check the ciphers availability for "+all" with default allowWeakCiphers INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47838_test.py 47 INFO ############################################### ticket47838_test.py 48 INFO ####### ticket47838_test.py 49 INFO ####### Test Case 2 - Check the ciphers availability for "+all" with default allowWeakCiphers ticket47838_test.py 50 INFO ####### ticket47838_test.py 51 INFO ###############################################
Failed tickets/ticket47838_test.py::test_47838_run_2 0.11
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f6b6f28>

def test_47838_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', '+rsa_aes_128_sha,+rsa_aes_256_sha')])

tickets/ticket47838_test.py:201:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f6b6828>
func = <built-in method modify_ext of LDAP object at 0x7f702fd728f0>
args = ('cn=encryption,cn=config', [(2, 'nsSSL3Ciphers', '+rsa_aes_128_sha,+rsa_aes_256_sha')], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Test Case 3 - Check the ciphers availability for "+rsa_aes_128_sha,+rsa_aes_256_sha" with default allowWeakCipher INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47838_test.py 47 INFO ############################################### ticket47838_test.py 48 INFO ####### ticket47838_test.py 49 INFO ####### Test Case 3 - Check the ciphers availability for "+rsa_aes_128_sha,+rsa_aes_256_sha" with default allowWeakCipher ticket47838_test.py 50 INFO ####### ticket47838_test.py 51 INFO ###############################################
Failed tickets/ticket47838_test.py::test_47838_run_3 0.10
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f6b6f28>

def test_47838_run_3(topology_st):
"""
Check nsSSL3Ciphers: -all
All ciphers are disabled.
default allowWeakCipher
"""
_header(topology_st, 'Test Case 4 - Check the ciphers availability for "-all"')

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

tickets/ticket47838_test.py:234:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f6b6828>
func = <built-in method modify_ext of LDAP object at 0x7f702fd728f0>
args = ('cn=encryption,cn=config', [(2, 'nsSSL3Ciphers', '-all')], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Test Case 4 - Check the ciphers availability for "-all" INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47838_test.py 47 INFO ############################################### ticket47838_test.py 48 INFO ####### ticket47838_test.py 49 INFO ####### Test Case 4 - Check the ciphers availability for "-all" ticket47838_test.py 50 INFO ####### ticket47838_test.py 51 INFO ###############################################
Failed tickets/ticket47838_test.py::test_47838_run_4 0.11
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f6b6f28>

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

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

tickets/ticket47838_test.py:266:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f6b6828>
func = <built-in method modify_ext of LDAP object at 0x7f702fd728f0>
args = ('cn=encryption,cn=config', [(1, 'nsSSL3Ciphers', '-all')], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Test Case 5 - Check no nsSSL3Ciphers (default setting) with default allowWeakCipher INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47838_test.py 47 INFO ############################################### ticket47838_test.py 48 INFO ####### ticket47838_test.py 49 INFO ####### Test Case 5 - Check no nsSSL3Ciphers (default setting) with default allowWeakCipher ticket47838_test.py 50 INFO ####### ticket47838_test.py 51 INFO ###############################################
Failed tickets/ticket47838_test.py::test_47838_run_5 0.11
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f6b6f28>

def test_47838_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', 'default')])

tickets/ticket47838_test.py:309:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f6b6828>
func = <built-in method modify_ext of LDAP object at 0x7f702fd728f0>
args = ('cn=encryption,cn=config', [(2, 'nsSSL3Ciphers', 'default')], 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', 'd')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Test Case 6 - Check default nsSSL3Ciphers (default setting) with default allowWeakCipher INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47838_test.py 47 INFO ############################################### ticket47838_test.py 48 INFO ####### ticket47838_test.py 49 INFO ####### Test Case 6 - Check default nsSSL3Ciphers (default setting) with default allowWeakCipher ticket47838_test.py 50 INFO ####### ticket47838_test.py 51 INFO ###############################################
Failed tickets/ticket47838_test.py::test_47838_run_6 0.11
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f6b6f28>

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

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

tickets/ticket47838_test.py:354:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f6b6828>
func = <built-in method modify_ext of LDAP object at 0x7f702fd728f0>
args = ('cn=encryption,cn=config', [(2, 'nsSSL3Ciphers', '+all,-tls_dhe_rsa_aes_128_gcm_sha')], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Test Case 7 - Check nsSSL3Ciphers: +all,-tls_dhe_rsa_aes_128_gcm_sha with default allowWeakCipher INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47838_test.py 47 INFO ############################################### ticket47838_test.py 48 INFO ####### ticket47838_test.py 49 INFO ####### Test Case 7 - Check nsSSL3Ciphers: +all,-tls_dhe_rsa_aes_128_gcm_sha with default allowWeakCipher ticket47838_test.py 50 INFO ####### ticket47838_test.py 51 INFO ###############################################
Failed tickets/ticket47838_test.py::test_47838_run_7 0.11
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f6b6f28>

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

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

tickets/ticket47838_test.py:389:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f6b6828>
func = <built-in method modify_ext of LDAP object at 0x7f702fd728f0>
args = ('cn=encryption,cn=config', [(2, 'nsSSL3Ciphers', '-all,+rsa_rc4_128_md5')], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Test Case 8 - Check nsSSL3Ciphers: -all,+rsa_rc4_128_md5 with default allowWeakCipher INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47838_test.py 47 INFO ############################################### ticket47838_test.py 48 INFO ####### ticket47838_test.py 49 INFO ####### Test Case 8 - Check nsSSL3Ciphers: -all,+rsa_rc4_128_md5 with default allowWeakCipher ticket47838_test.py 50 INFO ####### ticket47838_test.py 51 INFO ###############################################
Failed tickets/ticket47838_test.py::test_47838_run_8 0.11
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f6b6f28>

def test_47838_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', 'default'),
> (ldap.MOD_REPLACE, 'allowWeakCipher', 'off')])

tickets/ticket47838_test.py:422:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f6b6828>
func = <built-in method modify_ext of LDAP object at 0x7f702fd728f0>
args = ('cn=encryption,cn=config', [(2, 'nsSSL3Ciphers', 'default'), (2, 'allowWeakCipher', 'off')], 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', 'd')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Test Case 9 - Check default nsSSL3Ciphers (default setting + allowWeakCipher: off) INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47838_test.py 47 INFO ############################################### ticket47838_test.py 48 INFO ####### ticket47838_test.py 49 INFO ####### Test Case 9 - Check default nsSSL3Ciphers (default setting + allowWeakCipher: off) ticket47838_test.py 50 INFO ####### ticket47838_test.py 51 INFO ###############################################
Failed tickets/ticket47838_test.py::test_47838_run_9 0.10
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f6b6f28>

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', 'on')])

tickets/ticket47838_test.py:468:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f6b6828>
func = <built-in method modify_ext of LDAP object at 0x7f702fd728f0>
args = ('cn=encryption,cn=config', [(2, 'nsSSL3Ciphers', None), (2, 'allowWeakCipher', '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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Test Case 10 - Check no nsSSL3Ciphers (default setting) with no errorlog-level & allowWeakCipher on INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47838_test.py 47 INFO ############################################### ticket47838_test.py 48 INFO ####### ticket47838_test.py 49 INFO ####### Test Case 10 - Check no nsSSL3Ciphers (default setting) with no errorlog-level & allowWeakCipher on ticket47838_test.py 50 INFO ####### ticket47838_test.py 51 INFO ###############################################
Failed tickets/ticket47838_test.py::test_47838_run_10 0.11
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f6b6f28>

def test_47838_run_10(topology_st):
"""
Check nsSSL3Ciphers: -TLS_RSA_WITH_NULL_MD5,+TLS_RSA_WITH_RC4_128_MD5,
+TLS_RSA_EXPORT_WITH_RC4_40_MD5,+TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5,
+TLS_DHE_RSA_WITH_DES_CBC_SHA,+SSL_RSA_FIPS_WITH_DES_CBC_SHA,
+TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA,+SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA,
+TLS_RSA_EXPORT1024_WITH_RC4_56_SHA,+TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA,
-SSL_CK_RC4_128_WITH_MD5,-SSL_CK_RC4_128_EXPORT40_WITH_MD5,
-SSL_CK_RC2_128_CBC_WITH_MD5,-SSL_CK_RC2_128_CBC_EXPORT40_WITH_MD5,
-SSL_CK_DES_64_CBC_WITH_MD5,-SSL_CK_DES_192_EDE3_CBC_WITH_MD5
allowWeakCipher: on
nsslapd-errorlog-level: 0
"""
_header(topology_st,
'Test Case 11 - Check nsSSL3Ciphers: long list using the NSS Cipher Suite name with allowWeakCipher on')

topology_st.standalone.simple_bind_s(DN_DM, PASSWORD)
topology_st.standalone.modify_s(ENCRYPTION_DN, [(ldap.MOD_REPLACE, 'nsSSL3Ciphers',
> '-TLS_RSA_WITH_NULL_MD5,+TLS_RSA_WITH_RC4_128_MD5,+TLS_RSA_EXPORT_WITH_RC4_40_MD5,+TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5,+TLS_DHE_RSA_WITH_DES_CBC_SHA,+SSL_RSA_FIPS_WITH_DES_CBC_SHA,+TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA,+SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA,+TLS_RSA_EXPORT1024_WITH_RC4_56_SHA,+TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA,-SSL_CK_RC4_128_WITH_MD5,-SSL_CK_RC4_128_EXPORT40_WITH_MD5,-SSL_CK_RC2_128_CBC_WITH_MD5,-SSL_CK_RC2_128_CBC_EXPORT40_WITH_MD5,-SSL_CK_DES_64_CBC_WITH_MD5,-SSL_CK_DES_192_EDE3_CBC_WITH_MD5')])

tickets/ticket47838_test.py:526:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f6b6828>
func = <built-in method modify_ext of LDAP object at 0x7f702fd728f0>
args = ('cn=encryption,cn=config', [(2, 'nsSSL3Ciphers', '-TLS_RSA_WITH_NULL_MD5,+TLS_RSA_WITH_RC4_128_MD5,+TLS_RSA_EXPORT_WI...MD5,-SSL_CK_RC2_128_CBC_EXPORT40_WITH_MD5,-SSL_CK_DES_64_CBC_WITH_MD5,-SSL_CK_DES_192_EDE3_CBC_WITH_MD5')], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Test Case 11 - Check nsSSL3Ciphers: long list using the NSS Cipher Suite name with allowWeakCipher on INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47838_test.py 47 INFO ############################################### ticket47838_test.py 48 INFO ####### ticket47838_test.py 49 INFO ####### Test Case 11 - Check nsSSL3Ciphers: long list using the NSS Cipher Suite name with allowWeakCipher on ticket47838_test.py 50 INFO ####### ticket47838_test.py 51 INFO ###############################################
Failed tickets/ticket47838_test.py::test_47838_run_11 0.11
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f6b6f28>

def test_47838_run_11(topology_st):
"""
Check nsSSL3Ciphers: +fortezza
SSL_GetImplementedCiphers does not return this as a secuire cipher suite
"""
_header(topology_st, 'Test Case 12 - Check nsSSL3Ciphers: +fortezza, which is not supported')

topology_st.standalone.simple_bind_s(DN_DM, PASSWORD)
> topology_st.standalone.modify_s(ENCRYPTION_DN, [(ldap.MOD_REPLACE, 'nsSSL3Ciphers', '+fortezza')])

tickets/ticket47838_test.py:567:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f6b6828>
func = <built-in method modify_ext of LDAP object at 0x7f702fd728f0>
args = ('cn=encryption,cn=config', [(2, 'nsSSL3Ciphers', '+fortezza')], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Test Case 12 - Check nsSSL3Ciphers: +fortezza, which is not supported INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47838_test.py 47 INFO ############################################### ticket47838_test.py 48 INFO ####### ticket47838_test.py 49 INFO ####### Test Case 12 - Check nsSSL3Ciphers: +fortezza, which is not supported ticket47838_test.py 50 INFO ####### ticket47838_test.py 51 INFO ###############################################
Failed tickets/ticket47838_test.py::test_47928_run_0 0.10
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f6b6f28>

def test_47928_run_0(topology_st):
"""
No SSL version config parameters.
Check SSL3 (TLS1.0) is off.
"""
_header(topology_st, 'Test Case 13 - No SSL version config parameters')

topology_st.standalone.simple_bind_s(DN_DM, PASSWORD)
# add them once and remove them
topology_st.standalone.modify_s(ENCRYPTION_DN, [(ldap.MOD_REPLACE, 'nsSSL3', 'off'),
(ldap.MOD_REPLACE, 'nsTLS1', 'on'),
(ldap.MOD_REPLACE, 'sslVersionMin', 'TLS1.1'),
> (ldap.MOD_REPLACE, 'sslVersionMax', 'TLS1.2')])

tickets/ticket47838_test.py:599:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f6b6828>
func = <built-in method modify_ext of LDAP object at 0x7f702fd728f0>
args = ('cn=encryption,cn=config', [(2, 'nsSSL3', 'off'), (2, 'nsTLS1', 'on'), (2, 'sslVersionMin', 'TLS1.1'), (2, 'sslVersionMax', 'TLS1.2')], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Test Case 13 - No SSL version config parameters INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47838_test.py 47 INFO ############################################### ticket47838_test.py 48 INFO ####### ticket47838_test.py 49 INFO ####### Test Case 13 - No SSL version config parameters ticket47838_test.py 50 INFO ####### ticket47838_test.py 51 INFO ###############################################
Failed tickets/ticket47838_test.py::test_47928_run_1 0.10
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f6b6f28>

def test_47928_run_1(topology_st):
"""
No nsSSL3, nsTLS1; sslVersionMin > sslVersionMax
Check sslVersionMax is ignored.
"""
_header(topology_st, 'Test Case 14 - No nsSSL3, nsTLS1; sslVersionMin > sslVersionMax')

topology_st.standalone.simple_bind_s(DN_DM, PASSWORD)
topology_st.standalone.modify_s(ENCRYPTION_DN, [(ldap.MOD_REPLACE, 'sslVersionMin', 'TLS1.2'),
> (ldap.MOD_REPLACE, 'sslVersionMax', 'TLS1.1')])

tickets/ticket47838_test.py:633:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f6b6828>
func = <built-in method modify_ext of LDAP object at 0x7f702fd728f0>
args = ('cn=encryption,cn=config', [(2, 'sslVersionMin', 'TLS1.2'), (2, 'sslVersionMax', 'TLS1.1')], 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', 'T')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Test Case 14 - No nsSSL3, nsTLS1; sslVersionMin > sslVersionMax INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47838_test.py 47 INFO ############################################### ticket47838_test.py 48 INFO ####### ticket47838_test.py 49 INFO ####### Test Case 14 - No nsSSL3, nsTLS1; sslVersionMin > sslVersionMax ticket47838_test.py 50 INFO ####### ticket47838_test.py 51 INFO ###############################################
Failed tickets/ticket47838_test.py::test_47928_run_2 0.11
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f6b6f28>

def test_47928_run_2(topology_st):
"""
nsSSL3: on; sslVersionMin: TLS1.1; sslVersionMax: TLS1.2
Conflict between nsSSL3 and range; nsSSL3 is disabled
"""
_header(topology_st, 'Test Case 15 - nsSSL3: on; sslVersionMin: TLS1.1; sslVersionMax: TLS1.2')

topology_st.standalone.simple_bind_s(DN_DM, PASSWORD)
topology_st.standalone.modify_s(ENCRYPTION_DN, [(ldap.MOD_REPLACE, 'sslVersionMin', 'TLS1.1'),
(ldap.MOD_REPLACE, 'sslVersionMax', 'TLS1.2'),
> (ldap.MOD_REPLACE, 'nsSSL3', 'on')])

tickets/ticket47838_test.py:670:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f6b6828>
func = <built-in method modify_ext of LDAP object at 0x7f702fd728f0>
args = ('cn=encryption,cn=config', [(2, 'sslVersionMin', 'TLS1.1'), (2, 'sslVersionMax', 'TLS1.2'), (2, 'nsSSL3', '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', 'T')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Test Case 15 - nsSSL3: on; sslVersionMin: TLS1.1; sslVersionMax: TLS1.2 INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47838_test.py 47 INFO ############################################### ticket47838_test.py 48 INFO ####### ticket47838_test.py 49 INFO ####### Test Case 15 - nsSSL3: on; sslVersionMin: TLS1.1; sslVersionMax: TLS1.2 ticket47838_test.py 50 INFO ####### ticket47838_test.py 51 INFO ###############################################
Failed tickets/ticket47838_test.py::test_47928_run_3 0.10
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f6b6f28>

def test_47928_run_3(topology_st):
"""
nsSSL3: on; nsTLS1: off; sslVersionMin: TLS1.1; sslVersionMax: TLS1.2
Conflict between nsSSL3/nsTLS1 and range; nsSSL3 is disabled; nsTLS1 is enabled.
"""
_header(topology_st, 'Test Case 16 - nsSSL3: on; nsTLS1: off; sslVersionMin: TLS1.1; sslVersionMax: TLS1.2')

topology_st.standalone.simple_bind_s(DN_DM, PASSWORD)
topology_st.standalone.modify_s(ENCRYPTION_DN, [(ldap.MOD_REPLACE, 'sslVersionMin', 'TLS1.1'),
(ldap.MOD_REPLACE, 'sslVersionMax', 'TLS1.2'),
(ldap.MOD_REPLACE, 'nsSSL3', 'on'),
> (ldap.MOD_REPLACE, 'nsTLS1', 'off')])

tickets/ticket47838_test.py:717:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f6b6828>
func = <built-in method modify_ext of LDAP object at 0x7f702fd728f0>
args = ('cn=encryption,cn=config', [(2, 'sslVersionMin', 'TLS1.1'), (2, 'sslVersionMax', 'TLS1.2'), (2, 'nsSSL3', 'on'), (2, 'nsTLS1', 'off')], 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', 'T')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Test Case 16 - nsSSL3: on; nsTLS1: off; sslVersionMin: TLS1.1; sslVersionMax: TLS1.2 INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47838_test.py 47 INFO ############################################### ticket47838_test.py 48 INFO ####### ticket47838_test.py 49 INFO ####### Test Case 16 - nsSSL3: on; nsTLS1: off; sslVersionMin: TLS1.1; sslVersionMax: TLS1.2 ticket47838_test.py 50 INFO ####### ticket47838_test.py 51 INFO ###############################################
Failed tickets/ticket47838_test.py::test_47838_run_last 0.11
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f6b6f28>

def test_47838_run_last(topology_st):
"""
Check nsSSL3Ciphers: all <== invalid value
All ciphers are disabled.
"""
_header(topology_st, 'Test Case 17 - Check nsSSL3Ciphers: all, which is invalid')

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

tickets/ticket47838_test.py:762:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f6b6828>
func = <built-in method modify_ext of LDAP object at 0x7f702fd728f0>
args = ('cn=encryption,cn=config', [(2, 'nsSSL3Ciphers', 'all')], 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', 'a')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### Test Case 17 - Check nsSSL3Ciphers: all, which is invalid INFO:lib389:####### INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket47838_test.py 47 INFO ############################################### ticket47838_test.py 48 INFO ####### ticket47838_test.py 49 INFO ####### Test Case 17 - Check nsSSL3Ciphers: all, which is invalid ticket47838_test.py 50 INFO ####### ticket47838_test.py 51 INFO ###############################################
Failed tickets/ticket47869MMR_test.py::test_ticket47869_init 0.00
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f702f10dda0>

def test_ticket47869_init(topology_m2):
"""
It adds an entry ('bind_entry') and 10 test entries
It sets the anonymous aci

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

tickets/ticket47869MMR_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70426c2f28>
func = <built-in method modify_ext of LDAP object at 0x7f702fa10968>
args = ('cn=config', [(2, 'nsslapd-errorlog-level', '8192')], 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', '8')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Creating replication topology. INFO:lib389.topologies:Joining master master2 to master1 ... INFO:lib389.replica:SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO:lib389.topologies:Ensuring master master1 to master2 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO:lib389.topologies:Ensuring master master2 to master1 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. topologies.py 106 INFO Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. topologies.py 139 INFO Creating replication topology. topologies.py 153 INFO Joining master master2 to master1 ... replica.py 1461 INFO SUCCESS: bootstrap to ldap://server.example.com:39002 completed replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working replica.py 1530 INFO SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 topologies.py 161 INFO Ensuring master master1 to master2 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists topologies.py 161 INFO Ensuring master master2 to master1 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists
Failed tickets/ticket47869MMR_test.py::test_ticket47869_check 0.22
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f702f10dda0>

def test_ticket47869_check(topology_m2):
'''
On Master 1 and 2:
Bind as Directory Manager.
Search all specifying nscpEntryWsi in the attribute list.
Check nscpEntryWsi is returned.
On Master 1 and 2:
Bind as Bind Entry.
Search all specifying nscpEntryWsi in the attribute list.
Check nscpEntryWsi is not returned.
On Master 1 and 2:
Bind as anonymous.
Search all specifying nscpEntryWsi in the attribute list.
Check nscpEntryWsi is not returned.
'''
topology_m2.ms["master1"].log.info("\n\n######################### CHECK nscpentrywsi ######################\n")

topology_m2.ms["master1"].log.info("##### Master1: Bind as %s #####" % DN_DM)
topology_m2.ms["master1"].simple_bind_s(DN_DM, PASSWORD)

topology_m2.ms["master1"].log.info("Master1: Calling search_ext...")
msgid = topology_m2.ms["master1"].search_ext(SUFFIX, ldap.SCOPE_SUBTREE, 'objectclass=*', ['nscpentrywsi'])
nscpentrywsicnt = 0
rtype, rdata, rmsgid = topology_m2.ms["master1"].result2(msgid)
topology_m2.ms["master1"].log.info("%d results" % len(rdata))

topology_m2.ms["master1"].log.info("Results:")
for dn, attrs in rdata:
topology_m2.ms["master1"].log.info("dn: %s" % dn)
if 'nscpentrywsi' in attrs:
nscpentrywsicnt += 1

topology_m2.ms["master1"].log.info("Master1: count of nscpentrywsi: %d" % nscpentrywsicnt)

topology_m2.ms["master2"].log.info("##### Master2: Bind as %s #####" % DN_DM)
topology_m2.ms["master2"].simple_bind_s(DN_DM, PASSWORD)

topology_m2.ms["master2"].log.info("Master2: Calling search_ext...")
msgid = topology_m2.ms["master2"].search_ext(SUFFIX, ldap.SCOPE_SUBTREE, 'objectclass=*', ['nscpentrywsi'])
nscpentrywsicnt = 0
rtype, rdata, rmsgid = topology_m2.ms["master2"].result2(msgid)
topology_m2.ms["master2"].log.info("%d results" % len(rdata))

topology_m2.ms["master2"].log.info("Results:")
for dn, attrs in rdata:
topology_m2.ms["master2"].log.info("dn: %s" % dn)
if 'nscpentrywsi' in attrs:
nscpentrywsicnt += 1

topology_m2.ms["master2"].log.info("Master2: count of nscpentrywsi: %d" % nscpentrywsicnt)

# bind as bind_entry
topology_m2.ms["master1"].log.info("##### Master1: Bind as %s #####" % BIND_DN)
> topology_m2.ms["master1"].simple_bind_s(BIND_DN, BIND_PW)

tickets/ticket47869MMR_test.py:140:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:444: in simple_bind_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70426c2f28>
func = <built-in method result4 of LDAP object at 0x7f702fa10968>
args = (57, 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.INVALID_CREDENTIALS: {'desc': 'Invalid credentials'}

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: INVALID_CREDENTIALS
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ######################### CHECK nscpentrywsi ###################### INFO:lib389:##### Master1: Bind as cn=Directory Manager ##### INFO:lib389:Master1: Calling search_ext... INFO:lib389:13 results INFO:lib389:Results: INFO:lib389:dn: dc=example,dc=com INFO:lib389:dn: cn=Directory Administrators,dc=example,dc=com INFO:lib389:dn: ou=Groups,dc=example,dc=com INFO:lib389:dn: ou=People,dc=example,dc=com INFO:lib389:dn: ou=Special Users,dc=example,dc=com INFO:lib389:dn: cn=Accounting Managers,ou=Groups,dc=example,dc=com INFO:lib389:dn: cn=HR Managers,ou=Groups,dc=example,dc=com INFO:lib389:dn: cn=QA Managers,ou=Groups,dc=example,dc=com INFO:lib389:dn: cn=PD Managers,ou=Groups,dc=example,dc=com INFO:lib389:dn: cn=replication_managers,dc=example,dc=com INFO:lib389:dn: ou=Services,dc=example,dc=com INFO:lib389:dn: cn=server.example.com:63701,ou=Services,dc=example,dc=com INFO:lib389:dn: cn=server.example.com:63702,ou=Services,dc=example,dc=com INFO:lib389:Master1: count of nscpentrywsi: 13 INFO:lib389:##### Master2: Bind as cn=Directory Manager ##### INFO:lib389:Master2: Calling search_ext... INFO:lib389:13 results INFO:lib389:Results: INFO:lib389:dn: dc=example,dc=com INFO:lib389:dn: cn=Directory Administrators,dc=example,dc=com INFO:lib389:dn: ou=Groups,dc=example,dc=com INFO:lib389:dn: ou=People,dc=example,dc=com INFO:lib389:dn: ou=Special Users,dc=example,dc=com INFO:lib389:dn: cn=replication_managers,dc=example,dc=com INFO:lib389:dn: ou=Services,dc=example,dc=com INFO:lib389:dn: cn=server.example.com:63701,ou=Services,dc=example,dc=com INFO:lib389:dn: cn=server.example.com:63702,ou=Services,dc=example,dc=com INFO:lib389:dn: cn=Accounting Managers,ou=Groups,dc=example,dc=com INFO:lib389:dn: cn=HR Managers,ou=Groups,dc=example,dc=com INFO:lib389:dn: cn=QA Managers,ou=Groups,dc=example,dc=com INFO:lib389:dn: cn=PD Managers,ou=Groups,dc=example,dc=com INFO:lib389:Master2: count of nscpentrywsi: 13 INFO:lib389:##### Master1: Bind as cn=bind_entry, dc=example,dc=com ##### ------------------------------ Captured log call -------------------------------
ticket47869MMR_test.py 102 INFO ######################### CHECK nscpentrywsi ###################### ticket47869MMR_test.py 104 INFO ##### Master1: Bind as cn=Directory Manager ##### ticket47869MMR_test.py 107 INFO Master1: Calling search_ext... ticket47869MMR_test.py 111 INFO 13 results ticket47869MMR_test.py 113 INFO Results: ticket47869MMR_test.py 115 INFO dn: dc=example,dc=com ticket47869MMR_test.py 115 INFO dn: cn=Directory Administrators,dc=example,dc=com ticket47869MMR_test.py 115 INFO dn: ou=Groups,dc=example,dc=com ticket47869MMR_test.py 115 INFO dn: ou=People,dc=example,dc=com ticket47869MMR_test.py 115 INFO dn: ou=Special Users,dc=example,dc=com ticket47869MMR_test.py 115 INFO dn: cn=Accounting Managers,ou=Groups,dc=example,dc=com ticket47869MMR_test.py 115 INFO dn: cn=HR Managers,ou=Groups,dc=example,dc=com ticket47869MMR_test.py 115 INFO dn: cn=QA Managers,ou=Groups,dc=example,dc=com ticket47869MMR_test.py 115 INFO dn: cn=PD Managers,ou=Groups,dc=example,dc=com ticket47869MMR_test.py 115 INFO dn: cn=replication_managers,dc=example,dc=com ticket47869MMR_test.py 115 INFO dn: ou=Services,dc=example,dc=com ticket47869MMR_test.py 115 INFO dn: cn=server.example.com:63701,ou=Services,dc=example,dc=com ticket47869MMR_test.py 115 INFO dn: cn=server.example.com:63702,ou=Services,dc=example,dc=com ticket47869MMR_test.py 119 INFO Master1: count of nscpentrywsi: 13 ticket47869MMR_test.py 121 INFO ##### Master2: Bind as cn=Directory Manager ##### ticket47869MMR_test.py 124 INFO Master2: Calling search_ext... ticket47869MMR_test.py 128 INFO 13 results ticket47869MMR_test.py 130 INFO Results: ticket47869MMR_test.py 132 INFO dn: dc=example,dc=com ticket47869MMR_test.py 132 INFO dn: cn=Directory Administrators,dc=example,dc=com ticket47869MMR_test.py 132 INFO dn: ou=Groups,dc=example,dc=com ticket47869MMR_test.py 132 INFO dn: ou=People,dc=example,dc=com ticket47869MMR_test.py 132 INFO dn: ou=Special Users,dc=example,dc=com ticket47869MMR_test.py 132 INFO dn: cn=replication_managers,dc=example,dc=com ticket47869MMR_test.py 132 INFO dn: ou=Services,dc=example,dc=com ticket47869MMR_test.py 132 INFO dn: cn=server.example.com:63701,ou=Services,dc=example,dc=com ticket47869MMR_test.py 132 INFO dn: cn=server.example.com:63702,ou=Services,dc=example,dc=com ticket47869MMR_test.py 132 INFO dn: cn=Accounting Managers,ou=Groups,dc=example,dc=com ticket47869MMR_test.py 132 INFO dn: cn=HR Managers,ou=Groups,dc=example,dc=com ticket47869MMR_test.py 132 INFO dn: cn=QA Managers,ou=Groups,dc=example,dc=com ticket47869MMR_test.py 132 INFO dn: cn=PD Managers,ou=Groups,dc=example,dc=com ticket47869MMR_test.py 136 INFO Master2: count of nscpentrywsi: 13 ticket47869MMR_test.py 139 INFO ##### Master1: Bind as cn=bind_entry, dc=example,dc=com #####
Failed tickets/ticket47871_test.py::test_ticket47871_init 0.01
topology_m1c1 = <lib389.topologies.TopologyMain object at 0x7f70427b7c88>

def test_ticket47871_init(topology_m1c1):
"""
Initialize the test environment
"""
topology_m1c1.ms["master1"].plugins.enable(name=PLUGIN_RETRO_CHANGELOG)
mod = [(ldap.MOD_REPLACE, 'nsslapd-changelogmaxage', "10s"), # 10 second triming
(ldap.MOD_REPLACE, 'nsslapd-changelog-trim-interval', "5s")]
> topology_m1c1.ms["master1"].modify_s("cn=%s,%s" % (PLUGIN_RETRO_CHANGELOG, DN_PLUGIN), mod)

tickets/ticket47871_test.py:46:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f3974e0>
func = <built-in method modify_ext of LDAP object at 0x7f704279f3a0>
args = ('cn=Retro Changelog Plugin,cn=plugins,cn=config', [(2, 'nsslapd-changelogmaxage', '10s'), (2, 'nsslapd-changelog-trim-interval', '5s')], 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', '1')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Instance with parameters {'ldap-port': 39201, 'ldap-secureport': 63901, 'server-id': 'consumer1', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Creating replication topology. INFO:lib389.topologies:Joining consumer consumer1 from master1 ... INFO:lib389.replica:SUCCESS: bootstrap to ldap://server.example.com:39201 completed INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39201 is was created INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39201 is working INFO:lib389.replica:SUCCESS: joined consumer from ldap://server.example.com:39001 to ldap://server.example.com:39201 INFO:lib389.topologies:Ensuring consumer consumer1 from master1 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39201 already exists ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. topologies.py 106 INFO Instance with parameters {'ldap-port': 39201, 'ldap-secureport': 63901, 'server-id': 'consumer1', 'suffix': 'dc=example,dc=com'} was created. topologies.py 139 INFO Creating replication topology. topologies.py 166 INFO Joining consumer consumer1 from master1 ... replica.py 1461 INFO SUCCESS: bootstrap to ldap://server.example.com:39201 completed replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39201 is was created replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39201 is working replica.py 1645 INFO SUCCESS: joined consumer from ldap://server.example.com:39001 to ldap://server.example.com:39201 topologies.py 171 INFO Ensuring consumer consumer1 from master1 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39201 already exists
Failed tickets/ticket47871_test.py::test_ticket47871_1 1.02
topology_m1c1 = <lib389.topologies.TopologyMain object at 0x7f70427b7c88>

def test_ticket47871_1(topology_m1c1):
'''
ADD entries and check they are all in the retrocl
'''
# add dummy entries
for cpt in range(MAX_OTHERS):
name = "%s%d" % (OTHER_NAME, cpt)
topology_m1c1.ms["master1"].add_s(Entry(("cn=%s,%s" % (name, SUFFIX), {
'objectclass': "top person".split(),
'sn': name,
'cn': name})))

topology_m1c1.ms["master1"].log.info(
"test_ticket47871_init: %d entries ADDed %s[0..%d]" % (MAX_OTHERS, OTHER_NAME, MAX_OTHERS - 1))

# Check the number of entries in the retro changelog
time.sleep(1)
> ents = topology_m1c1.ms["master1"].search_s(RETROCL_SUFFIX, ldap.SCOPE_ONELEVEL, "(objectclass=*)")

tickets/ticket47871_test.py:75:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:852: in search_s
return self.search_ext_s(base,scope,filterstr,attrlist,attrsonly,None,None,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:846: in search_ext_s
return self.result(msgid,all=1,timeout=timeout)[1]
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:135: in inner
objtype, data = f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:738: in result
resp_type, resp_data, resp_msgid = self.result2(msgid,all,timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:742: in result2
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all,timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f3974e0>
func = <built-in method result4 of LDAP object at 0x7f704279f3a0>
args = (56, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: NO_SUCH_OBJECT
----------------------------- Captured stderr call -----------------------------
INFO:lib389:test_ticket47871_init: 10 entries ADDed other_entry[0..9] ------------------------------ Captured log call -------------------------------
ticket47871_test.py 71 INFO test_ticket47871_init: 10 entries ADDed other_entry[0..9]
Failed tickets/ticket47871_test.py::test_ticket47871_2 6.01
topology_m1c1 = <lib389.topologies.TopologyMain object at 0x7f70427b7c88>

def test_ticket47871_2(topology_m1c1):
'''
Wait until there is just a last entries
'''
MAX_TRIES = 10
TRY_NO = 1
while TRY_NO <= MAX_TRIES:
time.sleep(6) # at least 1 trimming occurred
> ents = topology_m1c1.ms["master1"].search_s(RETROCL_SUFFIX, ldap.SCOPE_ONELEVEL, "(objectclass=*)")

tickets/ticket47871_test.py:90:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:852: in search_s
return self.search_ext_s(base,scope,filterstr,attrlist,attrsonly,None,None,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:846: in search_ext_s
return self.result(msgid,all=1,timeout=timeout)[1]
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:135: in inner
objtype, data = f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:738: in result
resp_type, resp_data, resp_msgid = self.result2(msgid,all,timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:742: in result2
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all,timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f3974e0>
func = <built-in method result4 of LDAP object at 0x7f704279f3a0>
args = (57, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: NO_SUCH_OBJECT
Failed tickets/ticket47900_test.py::test_ticket47900 0.03
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f90f390>

def test_ticket47900(topology_st):
"""
Test that password administrators/root DN can
bypass password syntax/policy.

We need to test how passwords are modified in
existing entries, and when adding new entries.

Create the Password Admin entry, but do not set
it as an admin yet. Use the entry to verify invalid
passwords are caught. Then activate the password
admin and make sure it can bypass password policy.
"""

# Prepare the Password Administator
entry = Entry(ADMIN_DN)
entry.setValues('objectclass', 'top', 'person')
entry.setValues('sn', ADMIN_NAME)
entry.setValues('cn', ADMIN_NAME)
entry.setValues('userpassword', ADMIN_PWD)

topology_st.standalone.log.info("Creating Password Administator entry %s..." % ADMIN_DN)
try:
topology_st.standalone.add_s(entry)
except ldap.LDAPError as e:
topology_st.standalone.log.error('Unexpected result ' + e.message['desc'])
assert False
topology_st.standalone.log.error("Failed to add Password Administator %s, error: %s "
% (ADMIN_DN, e.message['desc']))
assert False

topology_st.standalone.log.info("Configuring password policy...")
try:
topology_st.standalone.modify_s(CONFIG_DN, [(ldap.MOD_REPLACE, 'nsslapd-pwpolicy-local', 'on'),
(ldap.MOD_REPLACE, 'passwordCheckSyntax', 'on'),
(ldap.MOD_REPLACE, 'passwordMinCategories', '1'),
(ldap.MOD_REPLACE, 'passwordMinTokenLength', '1'),
(ldap.MOD_REPLACE, 'passwordExp', 'on'),
(ldap.MOD_REPLACE, 'passwordMinDigits', '1'),
> (ldap.MOD_REPLACE, 'passwordMinSpecials', '1')])

tickets/ticket47900_test.py:67:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f3a4160>
func = <built-in method modify_ext of LDAP object at 0x7f70427e8198>
args = ('cn=config', [(2, 'nsslapd-pwpolicy-local', 'on'), (2, 'passwordCheckSyntax', 'on'), (2, 'passwordMinCategories', '1'), (2, 'passwordMinTokenLength', '1'), (2, 'passwordExp', 'on'), (2, 'passwordMinDigits', '1'), ...], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.----------------------------- Captured stderr call -----------------------------
INFO:lib389:Creating Password Administator entry cn=passwd_admin,dc=example,dc=com... INFO:lib389:Configuring password policy... ------------------------------ Captured log call -------------------------------
ticket47900_test.py 49 INFO Creating Password Administator entry cn=passwd_admin,dc=example,dc=com... ticket47900_test.py 59 INFO Configuring password policy...
Failed tickets/ticket47910_test.py::test_ticket47910_logconv_start_end_positive 0.14
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f3a45c0>
log_dir = '/var/log/dirsrv/slapd-standalone1/access'

def test_ticket47910_logconv_start_end_positive(topology_st, log_dir):
'''
Execute logconv.pl with -S and -E(endtime) with random time stamp
This is execute successfully
'''
#
# Execute logconv.pl -S -E with random timestamp
#
log.info('Running test_ticket47910 - Execute logconv.pl -S -E with random values')

log.info("taking current time with offset of 2 mins and formatting it to feed -S")
start_time_stamp = (datetime.now() - timedelta(minutes=2))
formatted_start_time_stamp = format_time(start_time_stamp)

log.info("taking current time with offset of 2 mins and formatting it to feed -E")
end_time_stamp = (datetime.now() + timedelta(minutes=2))
formatted_end_time_stamp = format_time(end_time_stamp)

log.info("Executing logconv.pl with -S and -E")
> result = execute_logconv(topology_st.standalone, formatted_start_time_stamp, formatted_end_time_stamp, log_dir)

tickets/ticket47910_test.py:87:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

inst = <lib389.DirSrv object at 0x7f70423f4128>
start_time_stamp = '[28/Jun/2018:20:39:18]'
end_time_stamp = '[28/Jun/2018:20:43:18]'
access_log = '/var/log/dirsrv/slapd-standalone1/access'

def execute_logconv(inst, start_time_stamp, end_time_stamp, access_log):
'''
This function will take start time and end time
as input parameter and
assign these values to -S and -E options of logconv
and, it will execute logconv and return result value
'''

log.info("Executing logconv.pl with -S current time and -E end time")
cmd = [os.path.join(inst.get_bin_dir(), 'logconv.pl'), '-S', start_time_stamp, '-E', end_time_stamp, access_log]
log.info(" ".join(cmd))
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = proc.communicate()
> log.info("standard output" + stdout)
E TypeError: must be str, not bytes

tickets/ticket47910_test.py:63: TypeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.utils:Diable access log buffering INFO:lib389.utils:Do a ldapsearch operation INFO:lib389.utils:sleep for sometime so that access log file get generated ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ticket47910_test.py 33 INFO Diable access log buffering ticket47910_test.py 36 INFO Do a ldapsearch operation ticket47910_test.py 39 INFO sleep for sometime so that access log file get generated----------------------------- Captured stderr call -----------------------------
INFO:lib389.utils:Running test_ticket47910 - Execute logconv.pl -S -E with random values INFO:lib389.utils:taking current time with offset of 2 mins and formatting it to feed -S INFO:lib389.utils:taking current time with offset of 2 mins and formatting it to feed -E INFO:lib389.utils:Executing logconv.pl with -S and -E INFO:lib389.utils:Executing logconv.pl with -S current time and -E end time INFO:lib389.utils:/usr/bin/logconv.pl -S [28/Jun/2018:20:39:18] -E [28/Jun/2018:20:43:18] /var/log/dirsrv/slapd-standalone1/access ------------------------------ Captured log call -------------------------------
ticket47910_test.py 76 INFO Running test_ticket47910 - Execute logconv.pl -S -E with random values ticket47910_test.py 78 INFO taking current time with offset of 2 mins and formatting it to feed -S ticket47910_test.py 82 INFO taking current time with offset of 2 mins and formatting it to feed -E ticket47910_test.py 86 INFO Executing logconv.pl with -S and -E ticket47910_test.py 58 INFO Executing logconv.pl with -S current time and -E end time ticket47910_test.py 60 INFO /usr/bin/logconv.pl -S [28/Jun/2018:20:39:18] -E [28/Jun/2018:20:43:18] /var/log/dirsrv/slapd-standalone1/access
Failed tickets/ticket47910_test.py::test_ticket47910_logconv_start_end_negative 0.15
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f3a45c0>
log_dir = '/var/log/dirsrv/slapd-standalone1/access'

def test_ticket47910_logconv_start_end_negative(topology_st, log_dir):
'''
Execute logconv.pl with -S and -E(endtime) with random time stamp
This is a negative test case, where endtime will be lesser than the
starttime
This should give error message
'''

#
# Execute logconv.pl -S and -E with random timestamp
#
log.info('Running test_ticket47910 - Execute logconv.pl -S -E with starttime>endtime')

log.info("taking current time with offset of 2 mins and formatting it to feed -S")
start_time_stamp = (datetime.now() + timedelta(minutes=2))
formatted_start_time_stamp = format_time(start_time_stamp)

log.info("taking current time with offset of 2 mins and formatting it to feed -E")
end_time_stamp = (datetime.now() - timedelta(minutes=2))
formatted_end_time_stamp = format_time(end_time_stamp)

log.info("Executing logconv.pl with -S and -E")
> result = execute_logconv(topology_st.standalone, formatted_start_time_stamp, formatted_end_time_stamp, log_dir)

tickets/ticket47910_test.py:113:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

inst = <lib389.DirSrv object at 0x7f70423f4128>
start_time_stamp = '[28/Jun/2018:20:43:18]'
end_time_stamp = '[28/Jun/2018:20:39:18]'
access_log = '/var/log/dirsrv/slapd-standalone1/access'

def execute_logconv(inst, start_time_stamp, end_time_stamp, access_log):
'''
This function will take start time and end time
as input parameter and
assign these values to -S and -E options of logconv
and, it will execute logconv and return result value
'''

log.info("Executing logconv.pl with -S current time and -E end time")
cmd = [os.path.join(inst.get_bin_dir(), 'logconv.pl'), '-S', start_time_stamp, '-E', end_time_stamp, access_log]
log.info(" ".join(cmd))
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = proc.communicate()
> log.info("standard output" + stdout)
E TypeError: must be str, not bytes

tickets/ticket47910_test.py:63: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389.utils:Running test_ticket47910 - Execute logconv.pl -S -E with starttime>endtime INFO:lib389.utils:taking current time with offset of 2 mins and formatting it to feed -S INFO:lib389.utils:taking current time with offset of 2 mins and formatting it to feed -E INFO:lib389.utils:Executing logconv.pl with -S and -E INFO:lib389.utils:Executing logconv.pl with -S current time and -E end time INFO:lib389.utils:/usr/bin/logconv.pl -S [28/Jun/2018:20:43:18] -E [28/Jun/2018:20:39:18] /var/log/dirsrv/slapd-standalone1/access ------------------------------ Captured log call -------------------------------
ticket47910_test.py 102 INFO Running test_ticket47910 - Execute logconv.pl -S -E with starttime>endtime ticket47910_test.py 104 INFO taking current time with offset of 2 mins and formatting it to feed -S ticket47910_test.py 108 INFO taking current time with offset of 2 mins and formatting it to feed -E ticket47910_test.py 112 INFO Executing logconv.pl with -S and -E ticket47910_test.py 58 INFO Executing logconv.pl with -S current time and -E end time ticket47910_test.py 60 INFO /usr/bin/logconv.pl -S [28/Jun/2018:20:43:18] -E [28/Jun/2018:20:39:18] /var/log/dirsrv/slapd-standalone1/access
Failed tickets/ticket47910_test.py::test_ticket47910_logconv_start_end_invalid 0.12
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f3a45c0>
log_dir = '/var/log/dirsrv/slapd-standalone1/access'

def test_ticket47910_logconv_start_end_invalid(topology_st, log_dir):
'''
Execute logconv.pl with -S and -E(endtime) with invalid time stamp
This is a negative test case, where it should give error message
'''
#
# Execute logconv.pl -S and -E with invalid timestamp
#
log.info('Running test_ticket47910 - Execute logconv.pl -S -E with invalid timestamp')
log.info("Set start time and end time to invalid values")
start_time_stamp = "invalid"
end_time_stamp = "invalid"

log.info("Executing logconv.pl with -S and -E")
> result = execute_logconv(topology_st.standalone, start_time_stamp, end_time_stamp, log_dir)

tickets/ticket47910_test.py:131:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

inst = <lib389.DirSrv object at 0x7f70423f4128>, start_time_stamp = 'invalid'
end_time_stamp = 'invalid'
access_log = '/var/log/dirsrv/slapd-standalone1/access'

def execute_logconv(inst, start_time_stamp, end_time_stamp, access_log):
'''
This function will take start time and end time
as input parameter and
assign these values to -S and -E options of logconv
and, it will execute logconv and return result value
'''

log.info("Executing logconv.pl with -S current time and -E end time")
cmd = [os.path.join(inst.get_bin_dir(), 'logconv.pl'), '-S', start_time_stamp, '-E', end_time_stamp, access_log]
log.info(" ".join(cmd))
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = proc.communicate()
> log.info("standard output" + stdout)
E TypeError: must be str, not bytes

tickets/ticket47910_test.py:63: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389.utils:Running test_ticket47910 - Execute logconv.pl -S -E with invalid timestamp INFO:lib389.utils:Set start time and end time to invalid values INFO:lib389.utils:Executing logconv.pl with -S and -E INFO:lib389.utils:Executing logconv.pl with -S current time and -E end time INFO:lib389.utils:/usr/bin/logconv.pl -S invalid -E invalid /var/log/dirsrv/slapd-standalone1/access ------------------------------ Captured log call -------------------------------
ticket47910_test.py 125 INFO Running test_ticket47910 - Execute logconv.pl -S -E with invalid timestamp ticket47910_test.py 126 INFO Set start time and end time to invalid values ticket47910_test.py 130 INFO Executing logconv.pl with -S and -E ticket47910_test.py 58 INFO Executing logconv.pl with -S current time and -E end time ticket47910_test.py 60 INFO /usr/bin/logconv.pl -S invalid -E invalid /var/log/dirsrv/slapd-standalone1/access
Failed tickets/ticket47910_test.py::test_ticket47910_logconv_noaccesslogs 0.11
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f3a45c0>
log_dir = '/var/log/dirsrv/slapd-standalone1/access'

def test_ticket47910_logconv_noaccesslogs(topology_st, log_dir):
'''
Execute logconv.pl -S(starttime) without specify
access logs location
'''

#
# Execute logconv.pl -S with random timestamp and no access log location
#
log.info('Running test_ticket47910 - Execute logconv.pl without access logs')

log.info("taking current time with offset of 2 mins and formatting it to feed -S")
time_stamp = (datetime.now() - timedelta(minutes=2))
formatted_time_stamp = format_time(time_stamp)
log.info("Executing logconv.pl with -S current time")
cmd = [os.path.join(topology_st.standalone.get_bin_dir(), 'logconv.pl'), '-S', formatted_time_stamp]
log.info(" ".join(cmd))
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = proc.communicate()
> log.info("standard output" + stdout)
E TypeError: must be str, not bytes

tickets/ticket47910_test.py:154: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389.utils:Running test_ticket47910 - Execute logconv.pl without access logs INFO:lib389.utils:taking current time with offset of 2 mins and formatting it to feed -S INFO:lib389.utils:Executing logconv.pl with -S current time INFO:lib389.utils:/usr/bin/logconv.pl -S [28/Jun/2018:20:39:18] ------------------------------ Captured log call -------------------------------
ticket47910_test.py 144 INFO Running test_ticket47910 - Execute logconv.pl without access logs ticket47910_test.py 146 INFO taking current time with offset of 2 mins and formatting it to feed -S ticket47910_test.py 149 INFO Executing logconv.pl with -S current time ticket47910_test.py 151 INFO /usr/bin/logconv.pl -S [28/Jun/2018:20:39:18]
Failed tickets/ticket47920_test.py::test_ticket47920_mod_readentry_ctrl 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f7042519f60>

def test_ticket47920_mod_readentry_ctrl(topology_st):
_header(topology_st, 'MOD: with a readentry control')

topology_st.standalone.log.info("Check the initial value of the entry")
ent = topology_st.standalone.getEntry(ACTIVE_USER_DN, ldap.SCOPE_BASE, "(objectclass=*)", ['description'])
assert ent.hasAttr('description')
> assert ent.getValue('description') == INITIAL_DESC
E AssertionError: assert b'inital description' == 'inital description'
E + where b'inital description' = <bound method Entry.getValue of dn: cn=active guy,cn=accounts,cn=in,dc=example,dc=com\ndescription: inital description\n\n>('description')
E + where <bound method Entry.getValue of dn: cn=active guy,cn=accounts,cn=in,dc=example,dc=com\ndescription: inital description\n\n> = dn: cn=active guy,cn=accounts,cn=in,dc=example,dc=com\ndescription: inital description\n\n.getValue

tickets/ticket47920_test.py:108: AssertionError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### MOD: with a readentry control INFO:lib389:####### INFO:lib389:############################################### INFO:lib389:Check the initial value of the entry ------------------------------ Captured log call -------------------------------
ticket47920_test.py 64 INFO ############################################### ticket47920_test.py 65 INFO ####### ticket47920_test.py 66 INFO ####### MOD: with a readentry control ticket47920_test.py 67 INFO ####### ticket47920_test.py 68 INFO ############################################### ticket47920_test.py 105 INFO Check the initial value of the entry
Failed tickets/ticket47921_test.py::test_ticket47921 0.01
topology_st = <lib389.topologies.TopologyMain object at 0x7f70426545c0>

def test_ticket47921(topology_st):
'''
Test that indirect cos reflects the current value of the indirect entry
'''

INDIRECT_COS_DN = 'cn=cos definition,' + DEFAULT_SUFFIX
MANAGER_DN = 'uid=my manager,ou=people,' + DEFAULT_SUFFIX
USER_DN = 'uid=user,ou=people,' + DEFAULT_SUFFIX

# Add COS definition
try:
topology_st.standalone.add_s(Entry((INDIRECT_COS_DN,
{
'objectclass': 'top cosSuperDefinition cosIndirectDefinition ldapSubEntry'.split(),
'cosIndirectSpecifier': 'manager',
'cosAttribute': 'roomnumber'
})))
except ldap.LDAPError as e:
log.fatal('Failed to add cos defintion, error: ' + e.message['desc'])
assert False

# Add manager entry
try:
topology_st.standalone.add_s(Entry((MANAGER_DN,
{'objectclass': 'top extensibleObject'.split(),
'uid': 'my manager',
'roomnumber': '1'
})))
except ldap.LDAPError as e:
log.fatal('Failed to add manager entry, error: ' + e.message['desc'])
assert False

# Add user entry
try:
topology_st.standalone.add_s(Entry((USER_DN,
{'objectclass': 'top person organizationalPerson inetorgperson'.split(),
'sn': 'last',
'cn': 'full',
'givenname': 'mark',
'uid': 'user',
'manager': MANAGER_DN
})))
except ldap.LDAPError as e:
log.fatal('Failed to add manager entry, error: ' + e.message['desc'])
assert False

# Test COS is working
try:
entry = topology_st.standalone.search_s(DEFAULT_SUFFIX, ldap.SCOPE_SUBTREE,
"uid=user",
['roomnumber'])
if entry:
if entry[0].getValue('roomnumber') != '1':
log.fatal('COS is not working.')
> assert False
E assert False

tickets/ticket47921_test.py:72: AssertionError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.----------------------------- Captured stderr call -----------------------------
CRITICAL:tests.tickets.ticket47921_test:COS is not working. ------------------------------ Captured log call -------------------------------
ticket47921_test.py 71 CRITICAL COS is not working.
Failed tickets/ticket47950_test.py::test_ticket47950 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f994748>

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:39:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f9864e0>
func = <built-in method modify_ext of LDAP object at 0x7f70309d1828>
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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.----------------------------- Captured stderr call -----------------------------
INFO:tests.tickets.ticket47950_test:Testing Ticket 47950 - Testing nsslapd-plugin-binddn-tracking ------------------------------ Captured log call -------------------------------
ticket47950_test.py 33 INFO Testing Ticket 47950 - Testing nsslapd-plugin-binddn-tracking
Failed tickets/ticket47966_test.py::test_ticket47966 0.00
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f70423f4588>

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:50:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:163: in inner
return f(ent.dn, ent.toTupleList(), *args[2:])
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:428: in add_s
return self.add_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:165: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:414: in add_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f101748>
func = <built-in method result4 of LDAP object at 0x7f70332710a8>
args = (29, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: NO_SUCH_OBJECT
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Creating replication topology. INFO:lib389.topologies:Joining master master2 to master1 ... INFO:lib389.replica:SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO:lib389.topologies:Ensuring master master1 to master2 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO:lib389.topologies:Ensuring master master2 to master1 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. topologies.py 106 INFO Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. topologies.py 139 INFO Creating replication topology. topologies.py 153 INFO Joining master master2 to master1 ... replica.py 1461 INFO SUCCESS: bootstrap to ldap://server.example.com:39002 completed replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working replica.py 1530 INFO SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 topologies.py 161 INFO Ensuring master master1 to master2 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists topologies.py 161 INFO Ensuring master master2 to master1 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists----------------------------- Captured stderr call -----------------------------
INFO:tests.tickets.ticket47966_test:Testing Ticket 47966 - [VLV] slapd crashes during Dogtag clone reinstallation INFO:tests.tickets.ticket47966_test:0. Create a VLV index on Master 2. INFO:lib389:List backend with suffix=dc=example,dc=com INFO:tests.tickets.ticket47966_test:0-1. vlvSearch dn: cn=vlvSrch,cn=b'userRoot',cn=ldbm database,cn=plugins,cn=config ------------------------------ Captured log call -------------------------------
ticket47966_test.py 26 INFO Testing Ticket 47966 - [VLV] slapd crashes during Dogtag clone reinstallation ticket47966_test.py 31 INFO 0. Create a VLV index on Master 2. backend.py 71 INFO List backend with suffix=dc=example,dc=com ticket47966_test.py 43 INFO 0-1. vlvSearch dn: cn=vlvSrch,cn=b'userRoot',cn=ldbm database,cn=plugins,cn=config
Failed tickets/ticket47988_test.py::test_ticket47988_init 0.00
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f7041ff46d8>

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', str(8192))] # REPL
> topology_m2.ms["master1"].modify_s(DN_CONFIG, mod)

tickets/ticket47988_test.py:118:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70426541d0>
func = <built-in method modify_ext of LDAP object at 0x7f702ed433a0>
args = ('cn=config', [(2, 'nsslapd-errorlog-level', '8192')], 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', '8')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Creating replication topology. INFO:lib389.topologies:Joining master master2 to master1 ... INFO:lib389.replica:SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO:lib389.topologies:Ensuring master master1 to master2 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO:lib389.topologies:Ensuring master master2 to master1 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. topologies.py 106 INFO Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. topologies.py 139 INFO Creating replication topology. topologies.py 153 INFO Joining master master2 to master1 ... replica.py 1461 INFO SUCCESS: bootstrap to ldap://server.example.com:39002 completed replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working replica.py 1530 INFO SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 topologies.py 161 INFO Ensuring master master1 to master2 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists topologies.py 161 INFO Ensuring master master2 to master1 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### test_ticket47988_init INFO:lib389:####### INFO:lib389:################################################### ------------------------------ Captured log call -------------------------------
ticket47988_test.py 61 INFO ############################################### ticket47988_test.py 62 INFO ####### ticket47988_test.py 63 INFO ####### test_ticket47988_init ticket47988_test.py 64 INFO ####### ticket47988_test.py 65 INFO ###################################################
Failed tickets/ticket47988_test.py::test_ticket47988_1 0.00
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f7041ff46d8>

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)

tickets/ticket47988_test.py:231:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47988_test.py:181: in _do_update_entry
supplier.modify_s(entryDN, mod)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70326f7e80>
func = <built-in method modify_ext of LDAP object at 0x7f702f973f08>
args = ('cn=other_entry0,dc=example,dc=com', [(2, 'telephonenumber', '131')], 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', '1')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### test_ticket47988_1 INFO:lib389:####### INFO:lib389:################################################### ------------------------------ Captured log call -------------------------------
ticket47988_test.py 61 INFO ############################################### ticket47988_test.py 62 INFO ####### ticket47988_test.py 63 INFO ####### test_ticket47988_1 ticket47988_test.py 64 INFO ####### ticket47988_test.py 65 INFO ###################################################
Failed tickets/ticket47988_test.py::test_ticket47988_2 0.12
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f7041ff46d8>

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()
master2_schema_csn = topology_m2.ms["master2"].schema.get_schema_csn()
topology_m2.ms["master1"].log.debug("\nBefore updating the schema on M1\n")
topology_m2.ms["master1"].log.debug("Master1 nsschemaCSN: %s" % master1_schema_csn)
topology_m2.ms["master1"].log.debug("Master2 nsschemaCSN: %s" % master2_schema_csn)

# Here M1 should no, should check M2 schema and learn
> _do_update_schema(topology_m2.ms["master1"])

tickets/ticket47988_test.py:250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47988_test.py:168: in _do_update_schema
server.modify_s('cn=schema', mod)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70426541d0>
func = <built-in method modify_ext of LDAP object at 0x7f702ed433a0>
args = ('cn=schema', [(0, 'objectclasses', "( 2.16.840.1.113730.3.8.12.4262 NAME 'thierry4262' DESC 'Override for Group Attributes' STRUCTURAL MUST ( cn ) MAY sn X-ORIGIN ( 'IPA v4.1.2' 'user defined' ) )")], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### test_ticket47988_2 INFO:lib389:####### INFO:lib389:################################################### ------------------------------ Captured log call -------------------------------
ticket47988_test.py 61 INFO ############################################### ticket47988_test.py 62 INFO ####### ticket47988_test.py 63 INFO ####### test_ticket47988_2 ticket47988_test.py 64 INFO ####### ticket47988_test.py 65 INFO ###################################################
Failed tickets/ticket47988_test.py::test_ticket47988_3 2.01
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f7041ff46d8>

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)
> _do_update_entry(supplier=topology_m2.ms["master1"], consumer=topology_m2.ms["master2"], attempts=5)

tickets/ticket47988_test.py:281:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47988_test.py:181: in _do_update_entry
supplier.modify_s(entryDN, mod)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70426541d0>
func = <built-in method modify_ext of LDAP object at 0x7f702ed433a0>
args = ('cn=other_entry0,dc=example,dc=com', [(2, 'telephonenumber', '120')], 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', '1')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### test_ticket47988_3 INFO:lib389:####### INFO:lib389:################################################### INFO:lib389: ######################### resume RA M2->M1 ###################### INFO:lib389:Resuming replication cn=001,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config ------------------------------ Captured log call -------------------------------
ticket47988_test.py 61 INFO ############################################### ticket47988_test.py 62 INFO ####### ticket47988_test.py 63 INFO ####### test_ticket47988_3 ticket47988_test.py 64 INFO ####### ticket47988_test.py 65 INFO ################################################### ticket47988_test.py 218 INFO ######################### resume RA M2->M1 ###################### agreement.py 856 INFO Resuming replication cn=001,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config
Failed tickets/ticket47988_test.py::test_ticket47988_4 0.09
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f7041ff46d8>

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()
master2_schema_csn = topology_m2.ms["master2"].schema.get_schema_csn()
topology_m2.ms["master1"].log.debug("\n\nMaster1 nsschemaCSN: %s" % master1_schema_csn)
topology_m2.ms["master1"].log.debug("\n\nMaster2 nsschemaCSN: %s" % master2_schema_csn)
> assert (master1_schema_csn)
E assert None

tickets/ticket47988_test.py:296: AssertionError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### test_ticket47988_4 INFO:lib389:####### INFO:lib389:################################################### ------------------------------ Captured log call -------------------------------
ticket47988_test.py 61 INFO ############################################### ticket47988_test.py 62 INFO ####### ticket47988_test.py 63 INFO ####### test_ticket47988_4 ticket47988_test.py 64 INFO ####### ticket47988_test.py 65 INFO ###################################################
Failed tickets/ticket47988_test.py::test_ticket47988_5 0.00
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f7041ff46d8>

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)

tickets/ticket47988_test.py:310:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47988_test.py:181: in _do_update_entry
supplier.modify_s(entryDN, mod)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70426541d0>
func = <built-in method modify_ext of LDAP object at 0x7f702ed433a0>
args = ('cn=other_entry0,dc=example,dc=com', [(2, 'telephonenumber', '104')], 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', '1')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### test_ticket47988_5 INFO:lib389:####### INFO:lib389:################################################### ------------------------------ Captured log call -------------------------------
ticket47988_test.py 61 INFO ############################################### ticket47988_test.py 62 INFO ####### ticket47988_test.py 63 INFO ####### test_ticket47988_5 ticket47988_test.py 64 INFO ####### ticket47988_test.py 65 INFO ###################################################
Failed tickets/ticket47988_test.py::test_ticket47988_6 0.09
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f7041ff46d8>

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()
master2_schema_csn = topology_m2.ms["master2"].schema.get_schema_csn()
topology_m2.ms["master1"].log.debug("\nBefore updating the schema on M1\n")
topology_m2.ms["master1"].log.debug("Master1 nsschemaCSN: %s" % master1_schema_csn)
topology_m2.ms["master1"].log.debug("Master2 nsschemaCSN: %s" % master2_schema_csn)

# Here M1 should no, should check M2 schema and learn
> _do_update_schema(topology_m2.ms["master1"], range=5999)

tickets/ticket47988_test.py:340:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket47988_test.py:168: in _do_update_schema
server.modify_s('cn=schema', mod)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70426541d0>
func = <built-in method modify_ext of LDAP object at 0x7f702ed433a0>
args = ('cn=schema', [(0, 'objectclasses', "( 2.16.840.1.113730.3.8.12.6910 NAME 'thierry6910' DESC 'Override for Group Attributes' STRUCTURAL MUST ( cn ) MAY sn X-ORIGIN ( 'IPA v4.1.2' 'user defined' ) )")], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### INFO:lib389:####### test_ticket47988_6 INFO:lib389:####### INFO:lib389:################################################### ------------------------------ Captured log call -------------------------------
ticket47988_test.py 61 INFO ############################################### ticket47988_test.py 62 INFO ####### ticket47988_test.py 63 INFO ####### test_ticket47988_6 ticket47988_test.py 64 INFO ####### ticket47988_test.py 65 INFO ###################################################
Failed tickets/ticket48013_test.py::test_ticket48013 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f3a4940>

def test_ticket48013(topology_st):
'''
Content Synchonization: Test that invalid cookies are caught
'''

cookies = ('#', '##', 'a#a#a', 'a#a#1')

# Enable dynamic plugins
try:
> topology_st.standalone.modify_s(DN_CONFIG, [(ldap.MOD_REPLACE, 'nsslapd-dynamic-plugins', 'on')])

tickets/ticket48013_test.py:50:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70332efc50>
func = <built-in method modify_ext of LDAP object at 0x7f702f937e68>
args = ('cn=config', [(2, 'nsslapd-dynamic-plugins', '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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Failed tickets/ticket48026_test.py::test_ticket48026 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f7042941898>

def test_ticket48026(topology_st):
'''
Test that multiple attribute uniqueness works correctly.
'''
# Configure the plugin
inst = topology_st.standalone
inst.plugins.enable(name=PLUGIN_ATTR_UNIQUENESS)

try:
# This plugin enable / disable doesn't seem to create the nsslapd-pluginId correctly?
inst.modify_s('cn=' + PLUGIN_ATTR_UNIQUENESS + ',cn=plugins,cn=config',
[(ldap.MOD_REPLACE, 'uniqueness-attribute-name', 'mail'),
(ldap.MOD_ADD, 'uniqueness-attribute-name',
> 'mailAlternateAddress'),
])

tickets/ticket48026_test.py:39:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702dc286a0>
func = <built-in method modify_ext of LDAP object at 0x7f704234b3a0>
args = ('cn=attribute uniqueness,cn=plugins,cn=config', [(2, 'uniqueness-attribute-name', 'mail'), (0, 'uniqueness-attribute-name', 'mailAlternateAddress')], 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', 'm')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Failed tickets/ticket48109_test.py::test_ticket48109 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f7041ff4cc0>

def test_ticket48109(topology_st):
'''
Set SubStr lengths to cn=uid,cn=index,...
objectClass: extensibleObject
nsIndexType: sub
nsSubStrBegin: 2
nsSubStrEnd: 2
'''
log.info('Test case 0')
# add substr setting to UID_INDEX
try:
topology_st.standalone.modify_s(UID_INDEX,
[(ldap.MOD_ADD, 'objectClass', 'extensibleObject'),
(ldap.MOD_ADD, 'nsIndexType', 'sub'),
(ldap.MOD_ADD, 'nsSubStrBegin', '2'),
> (ldap.MOD_ADD, 'nsSubStrEnd', '2')])

tickets/ticket48109_test.py:37:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042941a20>
func = <built-in method modify_ext of LDAP object at 0x7f702f42e300>
args = ('cn=uid,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config', [(0, 'objectClass', 'extensibleObject'), (0, 'nsIndexType', 'sub'), (0, 'nsSubStrBegin', '2'), (0, 'nsSubStrEnd', '2')], 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', 'e')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.----------------------------- Captured stderr call -----------------------------
INFO:tests.tickets.ticket48109_test:Test case 0 ------------------------------ Captured log call -------------------------------
ticket48109_test.py 30 INFO Test case 0
Failed tickets/ticket48170_test.py::test_ticket48170 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f704283c0b8>

def test_ticket48170(topology_st):
'''
Attempt to add a nsIndexType wikth an invalid value: "eq,pres"
'''

INDEX_DN = 'cn=cn,cn=index,cn=userroot,cn=ldbm database,cn=plugins,cn=config'
REJECTED = False
try:
> topology_st.standalone.modify_s(INDEX_DN, [(ldap.MOD_ADD, 'nsINdexType', 'eq,pres')])

tickets/ticket48170_test.py:25:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f92add8>
func = <built-in method modify_ext of LDAP object at 0x7f702f720f58>
args = ('cn=cn,cn=index,cn=userroot,cn=ldbm database,cn=plugins,cn=config', [(0, 'nsINdexType', 'eq,pres')], 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', 'e')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Failed tickets/ticket48194_test.py::test_init 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f70427fa198>

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')

> topology_st.standalone.nss_ssl.reinit()

tickets/ticket48194_test.py:50:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f703324e860>, name = 'nss_ssl'

def __getattr__(self,name):
if name in self.CLASSATTR_OPTION_MAPPING:
return self.get_option(self.CLASSATTR_OPTION_MAPPING[name])
elif name in self.__dict__:
return self.__dict__[name]
else:
raise AttributeError('%s has no attribute %s' % (
> self.__class__.__name__,repr(name)
))
E AttributeError: DirSrv has no attribute 'nss_ssl'

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:352: AttributeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### Testing Ticket 48194 - harden the list of ciphers available by default INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket48194_test.py 38 INFO ############################################### ticket48194_test.py 39 INFO ####### Testing Ticket 48194 - harden the list of ciphers available by default ticket48194_test.py 40 INFO ###############################################
Failed tickets/ticket48194_test.py::test_run_0 0.10
topology_st = <lib389.topologies.TopologyMain object at 0x7f70427fa198>

def test_run_0(topology_st):
"""
Check nsSSL3Ciphers: +all
All ciphers are enabled except null.
Note: allowWeakCipher: on
"""
_header(topology_st, 'Test Case 1 - Check the ciphers availability for "+all"; allowWeakCipher: on')

topology_st.standalone.simple_bind_s(DN_DM, PASSWORD)
> topology_st.standalone.modify_s(CONFIG_DN, [(ldap.MOD_REPLACE, 'nsslapd-errorlog-level', '64')])

tickets/ticket48194_test.py:125:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f703324e860>
func = <built-in method modify_ext of LDAP object at 0x7f702f701788>
args = ('cn=config', [(2, 'nsslapd-errorlog-level', '64')], 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', '6')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### Test Case 1 - Check the ciphers availability for "+all"; allowWeakCipher: on INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket48194_test.py 38 INFO ############################################### ticket48194_test.py 39 INFO ####### Test Case 1 - Check the ciphers availability for "+all"; allowWeakCipher: on ticket48194_test.py 40 INFO ###############################################
Failed tickets/ticket48194_test.py::test_run_1 0.11
topology_st = <lib389.topologies.TopologyMain object at 0x7f70427fa198>

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', '64')])

tickets/ticket48194_test.py:143:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f703324e860>
func = <built-in method modify_ext of LDAP object at 0x7f702f701788>
args = ('cn=config', [(2, 'nsslapd-errorlog-level', '64')], 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', '6')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### Test Case 2 - Check the ciphers availability for "+all" with default allowWeakCiphers INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket48194_test.py 38 INFO ############################################### ticket48194_test.py 39 INFO ####### Test Case 2 - Check the ciphers availability for "+all" with default allowWeakCiphers ticket48194_test.py 40 INFO ###############################################
Failed tickets/ticket48194_test.py::test_run_2 0.10
topology_st = <lib389.topologies.TopologyMain object at 0x7f70427fa198>

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', '+rsa_aes_128_sha,+rsa_aes_256_sha')])

tickets/ticket48194_test.py:169:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f703324e860>
func = <built-in method modify_ext of LDAP object at 0x7f702f701788>
args = ('cn=encryption,cn=config', [(2, 'nsSSL3Ciphers', '+rsa_aes_128_sha,+rsa_aes_256_sha')], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### Test Case 3 - Check the ciphers availability for "+rsa_aes_128_sha,+rsa_aes_256_sha" with default allowWeakCipher INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket48194_test.py 38 INFO ############################################### ticket48194_test.py 39 INFO ####### Test Case 3 - Check the ciphers availability for "+rsa_aes_128_sha,+rsa_aes_256_sha" with default allowWeakCipher ticket48194_test.py 40 INFO ###############################################
Failed tickets/ticket48194_test.py::test_run_3 0.10
topology_st = <lib389.topologies.TopologyMain object at 0x7f70427fa198>

def test_run_3(topology_st):
"""
Check nsSSL3Ciphers: -all
All ciphers are disabled.
default allowWeakCipher
"""
_header(topology_st, 'Test Case 4 - Check the ciphers availability for "-all"')

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

tickets/ticket48194_test.py:193:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f703324e860>
func = <built-in method modify_ext of LDAP object at 0x7f702f701788>
args = ('cn=encryption,cn=config', [(2, 'nsSSL3Ciphers', '-all')], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### Test Case 4 - Check the ciphers availability for "-all" INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket48194_test.py 38 INFO ############################################### ticket48194_test.py 39 INFO ####### Test Case 4 - Check the ciphers availability for "-all" ticket48194_test.py 40 INFO ###############################################
Failed tickets/ticket48194_test.py::test_run_4 0.11
topology_st = <lib389.topologies.TopologyMain object at 0x7f70427fa198>

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', '-all')])

tickets/ticket48194_test.py:215:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f703324e860>
func = <built-in method modify_ext of LDAP object at 0x7f702f701788>
args = ('cn=encryption,cn=config', [(1, 'nsSSL3Ciphers', '-all')], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### Test Case 5 - Check no nsSSL3Ciphers (-all) with default allowWeakCipher INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket48194_test.py 38 INFO ############################################### ticket48194_test.py 39 INFO ####### Test Case 5 - Check no nsSSL3Ciphers (-all) with default allowWeakCipher ticket48194_test.py 40 INFO ###############################################
Failed tickets/ticket48194_test.py::test_run_5 0.10
topology_st = <lib389.topologies.TopologyMain object at 0x7f70427fa198>

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', 'default')])

tickets/ticket48194_test.py:237:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f703324e860>
func = <built-in method modify_ext of LDAP object at 0x7f702f701788>
args = ('cn=encryption,cn=config', [(2, 'nsSSL3Ciphers', 'default')], 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', 'd')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### Test Case 6 - Check default nsSSL3Ciphers (default setting) with default allowWeakCipher INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket48194_test.py 38 INFO ############################################### ticket48194_test.py 39 INFO ####### Test Case 6 - Check default nsSSL3Ciphers (default setting) with default allowWeakCipher ticket48194_test.py 40 INFO ###############################################
Failed tickets/ticket48194_test.py::test_run_6 0.10
topology_st = <lib389.topologies.TopologyMain object at 0x7f70427fa198>

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', '+all,-TLS_RSA_WITH_AES_256_CBC_SHA256')])

tickets/ticket48194_test.py:261:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f703324e860>
func = <built-in method modify_ext of LDAP object at 0x7f702f701788>
args = ('cn=encryption,cn=config', [(2, 'nsSSL3Ciphers', '+all,-TLS_RSA_WITH_AES_256_CBC_SHA256')], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### Test Case 7 - Check nsSSL3Ciphers: +all,-TLS_RSA_WITH_AES_256_CBC_SHA256 with default allowWeakCipher INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket48194_test.py 38 INFO ############################################### ticket48194_test.py 39 INFO ####### Test Case 7 - Check nsSSL3Ciphers: +all,-TLS_RSA_WITH_AES_256_CBC_SHA256 with default allowWeakCipher ticket48194_test.py 40 INFO ###############################################
Failed tickets/ticket48194_test.py::test_run_8 0.11
topology_st = <lib389.topologies.TopologyMain object at 0x7f70427fa198>

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', 'default'),
> (ldap.MOD_REPLACE, 'allowWeakCipher', 'off')])

tickets/ticket48194_test.py:284:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f703324e860>
func = <built-in method modify_ext of LDAP object at 0x7f702f701788>
args = ('cn=encryption,cn=config', [(2, 'nsSSL3Ciphers', 'default'), (2, 'allowWeakCipher', 'off')], 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', 'd')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### Test Case 9 - Check default nsSSL3Ciphers (default setting + allowWeakCipher: off) INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket48194_test.py 38 INFO ############################################### ticket48194_test.py 39 INFO ####### Test Case 9 - Check default nsSSL3Ciphers (default setting + allowWeakCipher: off) ticket48194_test.py 40 INFO ###############################################
Failed tickets/ticket48194_test.py::test_run_9 0.11
topology_st = <lib389.topologies.TopologyMain object at 0x7f70427fa198>

def test_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', 'on')])

tickets/ticket48194_test.py:309:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f703324e860>
func = <built-in method modify_ext of LDAP object at 0x7f702f701788>
args = ('cn=encryption,cn=config', [(2, 'nsSSL3Ciphers', None), (2, 'allowWeakCipher', '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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### Test Case 10 - Check no nsSSL3Ciphers (default setting) with no errorlog-level & allowWeakCipher on INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket48194_test.py 38 INFO ############################################### ticket48194_test.py 39 INFO ####### Test Case 10 - Check no nsSSL3Ciphers (default setting) with no errorlog-level & allowWeakCipher on ticket48194_test.py 40 INFO ###############################################
Failed tickets/ticket48194_test.py::test_run_11 0.11
topology_st = <lib389.topologies.TopologyMain object at 0x7f70427fa198>

def test_run_11(topology_st):
"""
Check nsSSL3Ciphers: +fortezza
SSL_GetImplementedCiphers does not return this as a secuire cipher suite
"""
_header(topology_st, 'Test Case 12 - Check nsSSL3Ciphers: +fortezza, which is not supported')

topology_st.standalone.simple_bind_s(DN_DM, PASSWORD)
> topology_st.standalone.modify_s(ENCRYPTION_DN, [(ldap.MOD_REPLACE, 'nsSSL3Ciphers', '+fortezza')])

tickets/ticket48194_test.py:331:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f703324e860>
func = <built-in method modify_ext of LDAP object at 0x7f702f701788>
args = ('cn=encryption,cn=config', [(2, 'nsSSL3Ciphers', '+fortezza')], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389: ############################################### INFO:lib389:####### Test Case 12 - Check nsSSL3Ciphers: +fortezza, which is not supported INFO:lib389:############################################### ------------------------------ Captured log call -------------------------------
ticket48194_test.py 38 INFO ############################################### ticket48194_test.py 39 INFO ####### Test Case 12 - Check nsSSL3Ciphers: +fortezza, which is not supported ticket48194_test.py 40 INFO ###############################################
Failed tickets/ticket48212_test.py::test_ticket48212 2.12
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f726940>

def test_ticket48212(topology_st):
"""
Import posixAccount entries.
Index uidNumber
add nsMatchingRule: integerOrderingMatch
run dbverify to see if it reports the db corruption or not
delete nsMatchingRule: integerOrderingMatch
run dbverify to see if it reports the db corruption or not
if no corruption is reported, the bug fix was verified.
"""
log.info(
'Testing Ticket 48212 - Dynamic nsMatchingRule changes had no effect on the attrinfo thus following reindexing, as well.')

# bind as directory manager
topology_st.standalone.log.info("Bind as %s" % DN_DM)
topology_st.standalone.simple_bind_s(DN_DM, PASSWORD)

data_dir_path = topology_st.standalone.getDir(__file__, DATA_DIR)
ldif_file = data_dir_path + "ticket48212/" + _MYLDIF
try:
ldif_dir = topology_st.standalone.get_ldif_dir()
shutil.copy(ldif_file, ldif_dir)
ldif_file = ldif_dir + '/' + _MYLDIF
except:
log.fatal('Failed to copy ldif to instance ldif dir')
assert False

topology_st.standalone.log.info(
"\n\n######################### Import Test data (%s) ######################\n" % ldif_file)
args = {TASK_WAIT: True}
importTask = Tasks(topology_st.standalone)
importTask.importLDIF(MYSUFFIX, MYSUFFIXBE, ldif_file, args)
args = {TASK_WAIT: True}

> runDbVerify(topology_st)

tickets/ticket48212_test.py:88:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket48212_test.py:18: in runDbVerify
sbin_dir = get_sbin_dir(prefix=topology_st.standalone.prefix)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f7299b0>, name = 'prefix'

def __getattr__(self,name):
if name in self.CLASSATTR_OPTION_MAPPING:
return self.get_option(self.CLASSATTR_OPTION_MAPPING[name])
elif name in self.__dict__:
return self.__dict__[name]
else:
raise AttributeError('%s has no attribute %s' % (
> self.__class__.__name__,repr(name)
))
E AttributeError: DirSrv has no attribute 'prefix'

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:352: AttributeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.----------------------------- Captured stderr call -----------------------------
INFO:tests.tickets.ticket48212_test:Testing Ticket 48212 - Dynamic nsMatchingRule changes had no effect on the attrinfo thus following reindexing, as well. INFO:lib389:Bind as cn=Directory Manager INFO:lib389: ######################### Import Test data (/var/lib/dirsrv/slapd-standalone1/ldif/example1k_posix.ldif) ###################### INFO:lib389:Import task import_06282018_204645 for file /var/lib/dirsrv/slapd-standalone1/ldif/example1k_posix.ldif completed successfully INFO:lib389: +++++ dbverify +++++ ------------------------------ Captured log call -------------------------------
ticket48212_test.py 65 INFO Testing Ticket 48212 - Dynamic nsMatchingRule changes had no effect on the attrinfo thus following reindexing, as well. ticket48212_test.py 68 INFO Bind as cn=Directory Manager ticket48212_test.py 82 INFO ######################### Import Test data (/var/lib/dirsrv/slapd-standalone1/ldif/example1k_posix.ldif) ###################### tasks.py 338 INFO Import task import_06282018_204645 for file /var/lib/dirsrv/slapd-standalone1/ldif/example1k_posix.ldif completed successfully ticket48212_test.py 17 INFO +++++ dbverify +++++
Failed tickets/ticket48214_test.py::test_ticket48214_run 0.12
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f71a1d0>

def test_ticket48214_run(topology_st):
"""
Check ldapsearch returns the correct maxbersize when it is not explicitly set.
"""
log.info('Testing Ticket 48214 - ldapsearch on nsslapd-maxbersize returns 0 instead of current value')

# bind as directory manager
topology_st.standalone.log.info("Bind as %s" % DN_DM)
topology_st.standalone.simple_bind_s(DN_DM, PASSWORD)

topology_st.standalone.log.info("\n\n######################### Out of Box ######################\n")
checkMaxBerSize(topology_st)

topology_st.standalone.log.info("\n\n######################### Add nsslapd-maxbersize: 0 ######################\n")
> topology_st.standalone.modify_s('cn=config', [(ldap.MOD_REPLACE, 'nsslapd-maxbersize', '0')])

tickets/ticket48214_test.py:88:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f7267b8>
func = <built-in method modify_ext of LDAP object at 0x7f702f8bd300>
args = ('cn=config', [(2, 'nsslapd-maxbersize', '0')], 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', '0')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.----------------------------- Captured stderr call -----------------------------
INFO:tests.tickets.ticket48214_test:Testing Ticket 48214 - ldapsearch on nsslapd-maxbersize returns 0 instead of current value INFO:lib389:Bind as cn=Directory Manager INFO:lib389: ######################### Out of Box ###################### INFO:lib389: +++++ Check Max Ber Size +++++ INFO:lib389: +++++ Get maxbersize from dse.ldif +++++ INFO:lib389: Run CMD: egrep nsslapd-maxbersize /etc/dirsrv/slapd-standalone1/dse.ldif INFO:lib389: Empty: INFO:lib389: No nsslapd-maxbersize found in dse.ldif INFO:lib389: ldapsearch returned nsslapd-maxbersize: b'2097152' INFO:lib389: Checking 2097152 vs 2097152 INFO:lib389: ######################### Add nsslapd-maxbersize: 0 ###################### ------------------------------ Captured log call -------------------------------
ticket48214_test.py 78 INFO Testing Ticket 48214 - ldapsearch on nsslapd-maxbersize returns 0 instead of current value ticket48214_test.py 81 INFO Bind as cn=Directory Manager ticket48214_test.py 84 INFO ######################### Out of Box ###################### ticket48214_test.py 42 INFO +++++ Check Max Ber Size +++++ ticket48214_test.py 16 INFO +++++ Get maxbersize from dse.ldif +++++ ticket48214_test.py 19 INFO Run CMD: egrep nsslapd-maxbersize /etc/dirsrv/slapd-standalone1/dse.ldif ticket48214_test.py 26 INFO Empty: ticket48214_test.py 48 INFO No nsslapd-maxbersize found in dse.ldif ticket48214_test.py 61 INFO ldapsearch returned nsslapd-maxbersize: b'2097152' ticket48214_test.py 70 INFO Checking 2097152 vs 2097152 ticket48214_test.py 87 INFO ######################### Add nsslapd-maxbersize: 0 ######################
Failed tickets/ticket48226_test.py::test_ticket48226_set_purgedelay 0.00
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f7042617ba8>

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)

tickets/ticket48226_test.py:25:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.replica.ReplicaLegacy object at 0x7f70328936a0>
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.6/site-packages/lib389/replica.py:266:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

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

def inner(*args, **kwargs):
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.6/site-packages/lib389/__init__.py:167:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7032893ef0>
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/lib64/python3.6/site-packages/ldap/ldapobject.py:629:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

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 == '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.6/site-packages/lib389/__init__.py:167:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7032893ef0>
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/lib64/python3.6/site-packages/ldap/ldapobject.py:601:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

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 == '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.6/site-packages/lib389/__init__.py:167:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7032893ef0>
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/lib64/python3.6/site-packages/ldap/ldapobject.py:598:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

args = (<built-in method modify_ext of LDAP object at 0x7f703056f6e8>, '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 == '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.6/site-packages/lib389/__init__.py:167:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7032893ef0>
func = <built-in method modify_ext of LDAP object at 0x7f703056f6e8>
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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError

During handling of the above exception, another exception occurred:

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

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

tickets/ticket48226_test.py:28: AssertionError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Creating replication topology. INFO:lib389.topologies:Joining master master2 to master1 ... INFO:lib389.replica:SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO:lib389.topologies:Ensuring master master1 to master2 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO:lib389.topologies:Ensuring master master2 to master1 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. topologies.py 106 INFO Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. topologies.py 139 INFO Creating replication topology. topologies.py 153 INFO Joining master master2 to master1 ... replica.py 1461 INFO SUCCESS: bootstrap to ldap://server.example.com:39002 completed replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working replica.py 1530 INFO SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 topologies.py 161 INFO Ensuring master master1 to master2 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists topologies.py 161 INFO Ensuring master master2 to master1 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists----------------------------- Captured stderr call -----------------------------
CRITICAL:tests.tickets.ticket48226_test:Failed to configure replica ------------------------------ Captured log call -------------------------------
ticket48226_test.py 27 CRITICAL Failed to configure replica
Failed tickets/ticket48226_test.py::test_ticket48226_1 0.00
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f7042617ba8>

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)

tickets/ticket48226_test.py:50:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7032893ef0>
func = <built-in method modify_ext of LDAP object at 0x7f703056f6e8>
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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
Failed tickets/ticket48233_test.py::test_ticket48233 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f7042346c18>

def test_ticket48233(topology_st):
"""Test that ACI's that use IP restrictions do not crash the server at
shutdown
"""

# Add aci to restrict access my ip
aci_text = ('(targetattr != "userPassword")(version 3.0;acl ' +
'"Enable anonymous access - IP"; allow (read,compare,search)' +
'(userdn = "ldap:///anyone") and (ip="127.0.0.1");)')

try:
> topology_st.standalone.modify_s(DEFAULT_SUFFIX, [(ldap.MOD_ADD, 'aci', aci_text)])

tickets/ticket48233_test.py:22:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f70427dd6d8>
func = <built-in method modify_ext of LDAP object at 0x7f7042375030>
args = ('dc=example,dc=com', [(0, 'aci', '(targetattr != "userPassword")(version 3.0;acl "Enable anonymous access - IP"; allow (read,compare,search)(userdn = "ldap:///anyone") and (ip="127.0.0.1");)')], 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Failed tickets/ticket48252_test.py::test_ticket48252_run_0 3.34
topology_st = <lib389.topologies.TopologyMain object at 0x7f7042599978>

def test_ticket48252_run_0(topology_st):
"""
Delete an entry cn=test_entry0
Check it is not in the 'cn' index file
"""
log.info("Case 1 - Check deleted entry is not in the 'cn' index file")
uas = UserAccounts(topology_st.standalone, DEFAULT_SUFFIX)
del_rdn = "uid=%s0" % TEST_USER
del_entry = uas.get('%s0' % TEST_USER)
log.info(" Deleting a test entry %s..." % del_entry)
del_entry.delete()

> assert in_index_file(topology_st, 0, 'cn') is False

tickets/ticket48252_test.py:78:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

topology_st = <lib389.topologies.TopologyMain object at 0x7f7042599978>, id = 0
index = 'cn'

def in_index_file(topology_st, id, index):
key = "%s%s" % (TEST_USER, id)
log.info(" dbscan - checking %s is in index file %s..." % (key, index))
dbscanOut = topology_st.standalone.dbscan(DEFAULT_BENAME, index)

> if key in dbscanOut:
E TypeError: a bytes-like object is required, not 'str'

tickets/ticket48252_test.py:56: TypeError
----------------------------- Captured stdout call -----------------------------
OK group dirsrv exists OK user dirsrv exists ----------------------------- Captured stderr call -----------------------------
INFO:tests.tickets.ticket48252_test:Case 1 - Check deleted entry is not in the 'cn' index file INFO:tests.tickets.ticket48252_test: Deleting a test entry test_user0... INFO:tests.tickets.ticket48252_test: dbscan - checking test_user0 is in index file cn... INFO:lib389:Running script: ['/usr/bin/dbscan', '-f', '/var/lib/dirsrv/slapd-standalone1/db/userRoot/cn.db'] ------------------------------ Captured log call -------------------------------
ticket48252_test.py 71 INFO Case 1 - Check deleted entry is not in the 'cn' index file ticket48252_test.py 75 INFO Deleting a test entry test_user0... ticket48252_test.py 53 INFO dbscan - checking test_user0 is in index file cn... __init__.py 3048 INFO Running script: ['/usr/bin/dbscan', '-f', '/var/lib/dirsrv/slapd-standalone1/db/userRoot/cn.db']
Failed tickets/ticket48252_test.py::test_ticket48252_run_1 0.02
topology_st = <lib389.topologies.TopologyMain object at 0x7f7042599978>

def test_ticket48252_run_1(topology_st):
"""
Delete an entry cn=test_entry1
Check it is in the 'objectclass' index file as a tombstone entry
"""
log.info("Case 2 - Check deleted entry is in the 'objectclass' index file as a tombstone entry")
uas = UserAccounts(topology_st.standalone, DEFAULT_SUFFIX)
del_rdn = "uid=%s1" % TEST_USER
del_entry = uas.get('%s1' % TEST_USER)
log.info(" Deleting a test entry %s..." % del_rdn)
del_entry.delete()

entry = topology_st.standalone.search_s(SUFFIX, ldap.SCOPE_SUBTREE, '(&(objectclass=nstombstone)(%s))' % del_rdn)
assert len(entry) == 1
log.info(" entry %s is in the objectclass index file." % del_rdn)

log.info(" db2index - reindexing %s ..." % 'objectclass')
> assert topology_st.standalone.db2index(DEFAULT_BENAME, 'objectclass')
E AssertionError: assert False
E + where False = <bound method DirSrv.db2index of <lib389.DirSrv object at 0x7f7042617ba8>>('userRoot', 'objectclass')
E + where <bound method DirSrv.db2index of <lib389.DirSrv object at 0x7f7042617ba8>> = <lib389.DirSrv object at 0x7f7042617ba8>.db2index
E + where <lib389.DirSrv object at 0x7f7042617ba8> = <lib389.topologies.TopologyMain object at 0x7f7042599978>.standalone

tickets/ticket48252_test.py:105: AssertionError
----------------------------- Captured stderr call -----------------------------
INFO:tests.tickets.ticket48252_test:Case 2 - Check deleted entry is in the 'objectclass' index file as a tombstone entry INFO:tests.tickets.ticket48252_test: Deleting a test entry uid=test_user1... INFO:tests.tickets.ticket48252_test: entry uid=test_user1 is in the objectclass index file. INFO:tests.tickets.ticket48252_test: db2index - reindexing objectclass ... ERROR:lib389:db2index: Can not operate while directory server is running ------------------------------ Captured log call -------------------------------
ticket48252_test.py 93 INFO Case 2 - Check deleted entry is in the 'objectclass' index file as a tombstone entry ticket48252_test.py 97 INFO Deleting a test entry uid=test_user1... ticket48252_test.py 102 INFO entry uid=test_user1 is in the objectclass index file. ticket48252_test.py 104 INFO db2index - reindexing objectclass ... __init__.py 2950 ERROR db2index: Can not operate while directory server is running
Failed tickets/ticket48266_test.py::test_ticket48266_fractional 0.01
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f704260a9e8>
entries = None

def test_ticket48266_fractional(topology_m2, entries):
ents = topology_m2.ms["master1"].agreement.list(suffix=SUFFIX)
assert len(ents) == 1

mod = [(ldap.MOD_REPLACE, 'nsDS5ReplicatedAttributeList', ['(objectclass=*) $ EXCLUDE telephonenumber']),
(ldap.MOD_REPLACE, 'nsds5ReplicaStripAttrs', ['modifiersname modifytimestamp'])]
ents = topology_m2.ms["master1"].agreement.list(suffix=SUFFIX)
assert len(ents) == 1
m1_m2_agmt = ents[0].dn
> topology_m2.ms["master1"].modify_s(ents[0].dn, mod)

tickets/ticket48266_test.py:44:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f704261a6a0>
func = <built-in method modify_ext of LDAP object at 0x7f7030592d50>
args = ('cn=002,cn=replica,cn=dc\\3Dexample\\2Cdc\\3Dcom,cn=mapping tree,cn=config', [(2, 'nsDS5ReplicatedAttributeList', ['(...ctclass=*) $ EXCLUDE telephonenumber']), (2, 'nsds5ReplicaStripAttrs', ['modifiersname modifytimestamp'])], 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', '(objectclass=*) $ EXCLUDE telephonenumber')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Creating replication topology. INFO:lib389.topologies:Joining master master2 to master1 ... INFO:lib389.replica:SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO:lib389.topologies:Ensuring master master1 to master2 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO:lib389.topologies:Ensuring master master2 to master1 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. topologies.py 106 INFO Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. topologies.py 139 INFO Creating replication topology. topologies.py 153 INFO Joining master master2 to master1 ... replica.py 1461 INFO SUCCESS: bootstrap to ldap://server.example.com:39002 completed replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working replica.py 1530 INFO SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 topologies.py 161 INFO Ensuring master master1 to master2 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists topologies.py 161 INFO Ensuring master master2 to master1 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists
Failed tickets/ticket48266_test.py::test_ticket48266_check_repl_desc 0.00
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f704260a9e8>
entries = None

def test_ticket48266_check_repl_desc(topology_m2, entries):
name = "cn=%s1,%s" % (NEW_ACCOUNT, SUFFIX)
value = 'check repl. description'
mod = [(ldap.MOD_REPLACE, 'description', value)]
> topology_m2.ms["master1"].modify_s(name, mod)

tickets/ticket48266_test.py:61:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f704261a6a0>
func = <built-in method modify_ext of LDAP object at 0x7f7030592d50>
args = ('cn=new_account1,dc=example,dc=com', [(2, 'description', 'check repl. description')], 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', 'c')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
Failed tickets/ticket48266_test.py::test_ticket48266_count_csn_evaluation 0.00
topology_m2 = <lib389.topologies.TopologyMain object at 0x7f704260a9e8>
entries = None

def test_ticket48266_count_csn_evaluation(topology_m2, entries):
ents = topology_m2.ms["master1"].agreement.list(suffix=SUFFIX)
assert len(ents) == 1
> first_csn = _get_first_not_replicated_csn(topology_m2)

tickets/ticket48266_test.py:172:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket48266_test.py:116: in _get_first_not_replicated_csn
topology_m2.ms["master1"].modify_s(name, mod)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f704261a6a0>
func = <built-in method modify_ext of LDAP object at 0x7f7030592d50>
args = ('cn=new_account2,dc=example,dc=com', [(2, 'telephonenumber', '123456')], 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', '1')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
Failed tickets/ticket48325_test.py::test_ticket48325 0.00
topology_m1h1c1 = <lib389.topologies.TopologyMain object at 0x7f70426112b0>

def test_ticket48325(topology_m1h1c1):
"""
Test that the RUV element order is correctly maintained when promoting
a hub or consumer.
"""

#
# Promote consumer to master
#
try:
> topology_m1h1c1.cs["consumer1"].changelog.create()

tickets/ticket48325_test.py:46:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f8a94e0>, name = 'changelog'

def __getattr__(self,name):
if name in self.CLASSATTR_OPTION_MAPPING:
return self.get_option(self.CLASSATTR_OPTION_MAPPING[name])
elif name in self.__dict__:
return self.__dict__[name]
else:
raise AttributeError('%s has no attribute %s' % (
> self.__class__.__name__,repr(name)
))
E AttributeError: DirSrv has no attribute 'changelog'

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:352: AttributeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists OK group dirsrv exists OK user dirsrv exists OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Instance with parameters {'ldap-port': 39101, 'ldap-secureport': 63801, 'server-id': 'hub1', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Instance with parameters {'ldap-port': 39201, 'ldap-secureport': 63901, 'server-id': 'consumer1', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Creating replication topology. INFO:lib389.replica:SUCCESS: bootstrap to ldap://server.example.com:39101 completed INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39101 is was created INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39101 is working INFO:lib389.replica:SUCCESS: joined consumer from ldap://server.example.com:39001 to ldap://server.example.com:39101 INFO:lib389.replica:SUCCESS: bootstrap to ldap://server.example.com:39201 completed INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39101 to ldap://server.example.com:39201 is was created INFO:lib389.replica:SUCCESS: joined consumer from ldap://server.example.com:39101 to ldap://server.example.com:39201 INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39201 is working ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. topologies.py 106 INFO Instance with parameters {'ldap-port': 39101, 'ldap-secureport': 63801, 'server-id': 'hub1', 'suffix': 'dc=example,dc=com'} was created. topologies.py 106 INFO Instance with parameters {'ldap-port': 39201, 'ldap-secureport': 63901, 'server-id': 'consumer1', 'suffix': 'dc=example,dc=com'} was created. topologies.py 471 INFO Creating replication topology. replica.py 1461 INFO SUCCESS: bootstrap to ldap://server.example.com:39101 completed replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39101 is was created replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39101 is working replica.py 1588 INFO SUCCESS: joined consumer from ldap://server.example.com:39001 to ldap://server.example.com:39101 replica.py 1461 INFO SUCCESS: bootstrap to ldap://server.example.com:39201 completed replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39101 to ldap://server.example.com:39201 is was created replica.py 1645 INFO SUCCESS: joined consumer from ldap://server.example.com:39101 to ldap://server.example.com:39201 replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39201 is working
Failed tickets/ticket48370_test.py::test_ticket48370 0.04
topology_st = <lib389.topologies.TopologyMain object at 0x7f704261a0b8>

def test_ticket48370(topology_st):
"""
Deleting attirbute values and readding a value does not properly update
the pres index. The values are not actually deleted from the index
"""

DN = 'uid=user0099,' + DEFAULT_SUFFIX

#
# Add an entry
#
topology_st.standalone.add_s(Entry((DN, {
'objectclass': ['top', 'person',
'organizationalPerson',
'inetorgperson',
'posixAccount'],
'givenname': 'test',
'sn': 'user',
'loginshell': '/bin/bash',
'uidNumber': '10099',
'gidNumber': '10099',
'gecos': 'Test User',
'mail': ['user0099@dev.null',
'alias@dev.null',
'user0099@redhat.com'],
'cn': 'Test User',
'homeDirectory': '/home/user0099',
'uid': 'admin2',
'userpassword': 'password'})))

#
# Perform modify (delete & add mail attributes)
#
try:
topology_st.standalone.modify_s(DN, [(ldap.MOD_DELETE,
'mail',
'user0099@dev.null'),
(ldap.MOD_DELETE,
'mail',
'alias@dev.null'),
(ldap.MOD_ADD,
> 'mail', 'user0099@dev.null')])

tickets/ticket48370_test.py:51:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702ed67c18>
func = <built-in method modify_ext of LDAP object at 0x7f70305056c0>
args = ('uid=user0099,dc=example,dc=com', [(1, 'mail', 'user0099@dev.null'), (1, 'mail', 'alias@dev.null'), (0, 'mail', 'user0099@dev.null')], 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', 'u')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Failed tickets/ticket48383_test.py::test_ticket48383 4.42
topology_st = <lib389.topologies.TopologyMain object at 0x7f7042617160>

def test_ticket48383(topology_st):
"""
This test case will check that we re-alloc buffer sizes on import.c

We achieve this by setting the servers dbcachesize to a stupid small value
and adding huge objects to ds.

Then when we run db2index, either:
* If we are not using the re-alloc code, it will FAIL (Bad)
* If we re-alloc properly, it all works regardless.
"""

topology_st.standalone.config.set('nsslapd-maxbersize', '200000000')
topology_st.standalone.restart()

# Create some stupid huge objects / attributes in DS.
# seeAlso is indexed by default. Lets do that!
# This will take a while ...
> data = [random.choice(string.letters) for x in xrange(10000000)]
E NameError: name 'xrange' is not defined

tickets/ticket48383_test.py:33: NameError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.
Failed tickets/ticket48759_test.py::test_ticket48759 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f8b2080>

def test_ticket48759(topology_st):
"""
The fix for ticket 48759 has to prevent plugin calls for tombstone purging

The test uses the memberof and retrocl plugins to verify this.
In tombstone purging without the fix the mmeberof plugin is called,
if the tombstone entry is a group,
it modifies the user entries for the group
and if retrocl is enabled this mod is written to the retrocl

The test sequence is:
- enable replication
- enable memberof and retro cl plugin
- add user entries
- add a group and add the users as members
- verify memberof is set to users
- delete the group
- verify memberof is removed from users
- add group again
- verify memberof is set to users
- get number of changes in retro cl for one user
- configure tombstone purging
- wait for purge interval to pass
- add a dummy entry to increase maxcsn
- wait for purge interval to pass two times
- get number of changes in retro cl for user again
- assert there was no additional change
"""

log.info('Testing Ticket 48759 - no plugin calls for tombstone purging')

#
# Setup Replication
#
log.info('Setting up replication...')
topology_st.standalone.replica.enableReplication(suffix=DEFAULT_SUFFIX, role=ReplicaRole.MASTER,
> replicaId=REPLICAID_MASTER_1)

tickets/ticket48759_test.py:109:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/replica.py:560: in enableReplication
self.conn.changelog.create()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f704259f208>, name = 'changelog'

def __getattr__(self,name):
if name in self.CLASSATTR_OPTION_MAPPING:
return self.get_option(self.CLASSATTR_OPTION_MAPPING[name])
elif name in self.__dict__:
return self.__dict__[name]
else:
raise AttributeError('%s has no attribute %s' % (
> self.__class__.__name__,repr(name)
))
E AttributeError: DirSrv has no attribute 'changelog'

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:352: AttributeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.----------------------------- Captured stderr call -----------------------------
INFO:tests.tickets.ticket48759_test:Testing Ticket 48759 - no plugin calls for tombstone purging INFO:tests.tickets.ticket48759_test:Setting up replication... INFO:lib389:List backend with suffix=dc=example,dc=com ------------------------------ Captured log call -------------------------------
ticket48759_test.py 102 INFO Testing Ticket 48759 - no plugin calls for tombstone purging ticket48759_test.py 107 INFO Setting up replication... backend.py 71 INFO List backend with suffix=dc=example,dc=com
Failed tickets/ticket48906_test.py::test_ticket48906_setup 0.11
topology_st = <lib389.topologies.TopologyMain object at 0x7f7030539748>

def test_ticket48906_setup(topology_st):
"""
Check there is no core
Create a second backend
stop DS (that should trigger the core)
check there is no core
"""
log.info('Testing Ticket 48906 - ns-slapd crashes during the shutdown after adding attribute with a matching rule')

# bind as directory manager
topology_st.standalone.log.info("Bind as %s" % DN_DM)
topology_st.standalone.simple_bind_s(DN_DM, PASSWORD)

# check there is no core
entry = topology_st.standalone.search_s(CONFIG_DN, ldap.SCOPE_BASE, "(cn=config)", ['nsslapd-workingdir'])
assert entry
assert entry[0]
assert entry[0].hasAttr('nsslapd-workingdir')
path = entry[0].getValue('nsslapd-workingdir')
> cores = fnmatch.filter(os.listdir(path), 'core.*')

tickets/ticket48906_test.py:70:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

names = [b'access', b'errors', b'audit.rotationinfo', b'access.rotationinfo', b'audit', b'errors.rotationinfo']
pat = 'core.*'

def filter(names, pat):
"""Return the subset of the list NAMES that match PAT."""
result = []
pat = os.path.normcase(pat)
match = _compile_pattern(pat)
if os.path is posixpath:
# normcase on posix is NOP. Optimize it away from the loop.
for name in names:
> if match(name):
E TypeError: cannot use a string pattern on a bytes-like object

/usr/lib64/python3.6/fnmatch.py:56: TypeError
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created.----------------------------- Captured stderr call -----------------------------
INFO:tests.tickets.ticket48906_test:Testing Ticket 48906 - ns-slapd crashes during the shutdown after adding attribute with a matching rule INFO:lib389:Bind as cn=Directory Manager ------------------------------ Captured log call -------------------------------
ticket48906_test.py 58 INFO Testing Ticket 48906 - ns-slapd crashes during the shutdown after adding attribute with a matching rule ticket48906_test.py 61 INFO Bind as cn=Directory Manager
Failed tickets/ticket48906_test.py::test_ticket48906_dblock_default 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f7030539748>

def test_ticket48906_dblock_default(topology_st):
topology_st.standalone.log.info('###################################')
topology_st.standalone.log.info('###')
topology_st.standalone.log.info('### Check that before any change config/monitor')
topology_st.standalone.log.info('### contains the default value')
topology_st.standalone.log.info('###')
topology_st.standalone.log.info('###################################')
> _check_monitored_value(topology_st, DBLOCK_DEFAULT)

tickets/ticket48906_test.py:153:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

topology_st = <lib389.topologies.TopologyMain object at 0x7f7030539748>
expected_value = '10000'

def _check_monitored_value(topology_st, expected_value):
entries = topology_st.standalone.search_s(ldbm_monitor, ldap.SCOPE_BASE, '(objectclass=*)')
> assert (entries[0].hasValue(DBLOCK_ATTR_MONITOR) and entries[0].getValue(DBLOCK_ATTR_MONITOR) == expected_value)
E AssertionError: assert (True and b'10000' == '10000')
E + where True = <bound method Entry.hasValue of dn: cn=database,cn=monitor,cn=ldbm database,cn=plugins,cn=config\ncn: database\nnsslapd-...rate: 0\nnsslapd-db-pages-in-use: 8\nnsslapd-db-txn-region-wait-rate: 0\nobjectClass: top\nobjectClass: extensibleObject\n\n>('nsslapd-db-configured-locks')
E + where <bound method Entry.hasValue of dn: cn=database,cn=monitor,cn=ldbm database,cn=plugins,cn=config\ncn: database\nnsslapd-...rate: 0\nnsslapd-db-pages-in-use: 8\nnsslapd-db-txn-region-wait-rate: 0\nobjectClass: top\nobjectClass: extensibleObject\n\n> = dn: cn=database,cn=monitor,cn=ldbm database,cn=plugins,cn=config\ncn: database\nnsslapd-db-abort-rate: 0\nnsslapd-db-acti...-rate: 0\nnsslapd-db-pages-in-use: 8\nnsslapd-db-txn-region-wait-rate: 0\nobjectClass: top\nobjectClass: extensibleObject\n\n.hasValue
E + and b'10000' = <bound method Entry.getValue of dn: cn=database,cn=monitor,cn=ldbm database,cn=plugins,cn=config\ncn: database\nnsslapd-...rate: 0\nnsslapd-db-pages-in-use: 8\nnsslapd-db-txn-region-wait-rate: 0\nobjectClass: top\nobjectClass: extensibleObject\n\n>('nsslapd-db-configured-locks')
E + where <bound method Entry.getValue of dn: cn=database,cn=monitor,cn=ldbm database,cn=plugins,cn=config\ncn: database\nnsslapd-...rate: 0\nnsslapd-db-pages-in-use: 8\nnsslapd-db-txn-region-wait-rate: 0\nobjectClass: top\nobjectClass: extensibleObject\n\n> = dn: cn=database,cn=monitor,cn=ldbm database,cn=plugins,cn=config\ncn: database\nnsslapd-db-abort-rate: 0\nnsslapd-db-acti...-rate: 0\nnsslapd-db-pages-in-use: 8\nnsslapd-db-txn-region-wait-rate: 0\nobjectClass: top\nobjectClass: extensibleObject\n\n.getValue

tickets/ticket48906_test.py:103: AssertionError
----------------------------- Captured stderr call -----------------------------
INFO:lib389:################################### INFO:lib389:### INFO:lib389:### Check that before any change config/monitor INFO:lib389:### contains the default value INFO:lib389:### INFO:lib389:################################### ------------------------------ Captured log call -------------------------------
ticket48906_test.py 147 INFO ################################### ticket48906_test.py 148 INFO ### ticket48906_test.py 149 INFO ### Check that before any change config/monitor ticket48906_test.py 150 INFO ### contains the default value ticket48906_test.py 151 INFO ### ticket48906_test.py 152 INFO ###################################
Failed tickets/ticket48906_test.py::test_ticket48906_dblock_ldap_update 0.00
topology_st = <lib389.topologies.TopologyMain object at 0x7f7030539748>

def test_ticket48906_dblock_ldap_update(topology_st):
topology_st.standalone.log.info('###################################')
topology_st.standalone.log.info('###')
topology_st.standalone.log.info('### Check that after ldap update')
topology_st.standalone.log.info('### - monitor contains DEFAULT')
topology_st.standalone.log.info('### - configured contains DBLOCK_LDAP_UPDATE')
topology_st.standalone.log.info('### - After stop dse.ldif contains DBLOCK_LDAP_UPDATE')
topology_st.standalone.log.info('### - After stop guardian contains DEFAULT')
topology_st.standalone.log.info('### In fact guardian should differ from config to recreate the env')
topology_st.standalone.log.info('### Check that after restart (DBenv recreated)')
topology_st.standalone.log.info('### - monitor contains DBLOCK_LDAP_UPDATE ')
topology_st.standalone.log.info('### - configured contains DBLOCK_LDAP_UPDATE')
topology_st.standalone.log.info('### - dse.ldif contains DBLOCK_LDAP_UPDATE')
topology_st.standalone.log.info('###')
topology_st.standalone.log.info('###################################')

> topology_st.standalone.modify_s(ldbm_config, [(ldap.MOD_REPLACE, DBLOCK_ATTR_CONFIG, DBLOCK_LDAP_UPDATE)])

tickets/ticket48906_test.py:173:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:629: in modify_s
return self.modify_ext_s(dn,modlist,None,None)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:601: in modify_ext_s
msgid = self.modify_ext(dn,modlist,serverctrls,clientctrls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:598: in modify_ext
return self._ldap_call(self._l.modify_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f7042336390>
func = <built-in method modify_ext of LDAP object at 0x7f703050ebc0>
args = ('cn=config,cn=ldbm database,cn=plugins,cn=config', [(2, 'nsslapd-db-locks', '20000')], 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', '2')

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: TypeError
----------------------------- Captured stderr call -----------------------------
INFO:lib389:################################### INFO:lib389:### INFO:lib389:### Check that after ldap update INFO:lib389:### - monitor contains DEFAULT INFO:lib389:### - configured contains DBLOCK_LDAP_UPDATE INFO:lib389:### - After stop dse.ldif contains DBLOCK_LDAP_UPDATE INFO:lib389:### - After stop guardian contains DEFAULT INFO:lib389:### In fact guardian should differ from config to recreate the env INFO:lib389:### Check that after restart (DBenv recreated) INFO:lib389:### - monitor contains DBLOCK_LDAP_UPDATE INFO:lib389:### - configured contains DBLOCK_LDAP_UPDATE INFO:lib389:### - dse.ldif contains DBLOCK_LDAP_UPDATE INFO:lib389:### INFO:lib389:################################### ------------------------------ Captured log call -------------------------------
ticket48906_test.py 158 INFO ################################### ticket48906_test.py 159 INFO ### ticket48906_test.py 160 INFO ### Check that after ldap update ticket48906_test.py 161 INFO ### - monitor contains DEFAULT ticket48906_test.py 162 INFO ### - configured contains DBLOCK_LDAP_UPDATE ticket48906_test.py 163 INFO ### - After stop dse.ldif contains DBLOCK_LDAP_UPDATE ticket48906_test.py 164 INFO ### - After stop guardian contains DEFAULT ticket48906_test.py 165 INFO ### In fact guardian should differ from config to recreate the env ticket48906_test.py 166 INFO ### Check that after restart (DBenv recreated) ticket48906_test.py 167 INFO ### - monitor contains DBLOCK_LDAP_UPDATE ticket48906_test.py 168 INFO ### - configured contains DBLOCK_LDAP_UPDATE ticket48906_test.py 169 INFO ### - dse.ldif contains DBLOCK_LDAP_UPDATE ticket48906_test.py 170 INFO ### ticket48906_test.py 171 INFO ###################################
Failed tickets/ticket48906_test.py::test_ticket48906_dblock_edit_update 1.60
topology_st = <lib389.topologies.TopologyMain object at 0x7f7030539748>

def test_ticket48906_dblock_edit_update(topology_st):
topology_st.standalone.log.info('###################################')
topology_st.standalone.log.info('###')
topology_st.standalone.log.info('### Check that after stop')
topology_st.standalone.log.info('### - dse.ldif contains DBLOCK_LDAP_UPDATE')
topology_st.standalone.log.info('### - guardian contains DBLOCK_LDAP_UPDATE')
topology_st.standalone.log.info('### Check that edit dse+restart')
topology_st.standalone.log.info('### - monitor contains DBLOCK_EDIT_UPDATE')
topology_st.standalone.log.info('### - configured contains DBLOCK_EDIT_UPDATE')
topology_st.standalone.log.info('### Check that after stop')
topology_st.standalone.log.info('### - dse.ldif contains DBLOCK_EDIT_UPDATE')
topology_st.standalone.log.info('### - guardian contains DBLOCK_EDIT_UPDATE')
topology_st.standalone.log.info('###')
topology_st.standalone.log.info('###################################')

topology_st.standalone.stop(timeout=10)
> _check_dse_ldif_value(topology_st, attr=DBLOCK_ATTR_CONFIG, expected_value=DBLOCK_LDAP_UPDATE)

tickets/ticket48906_test.py:204:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

topology_st = <lib389.topologies.TopologyMain object at 0x7f7030539748>
attr = 'nsslapd-db-locks', expected_value = '20000'

def _check_dse_ldif_value(topology_st, attr=DBLOCK_ATTR_CONFIG, expected_value=DBLOCK_LDAP_UPDATE):
dse_ref_ldif = topology_st.standalone.confdir + '/dse.ldif'
dse_ref = open(dse_ref_ldif, "r")

# Check the DBLOCK in dse.ldif
value = None
while True:
line = dse_ref.readline()
if (line == ''):
break
elif attr in line.lower():
value = line.split()[1]
> assert (value == expected_value)
E AssertionError: assert '10000' == '20000'
E - 10000
E ? ^
E + 20000
E ? ^

tickets/ticket48906_test.py:118: AssertionError
----------------------------- Captured stderr call -----------------------------
INFO:lib389:################################### INFO:lib389:### INFO:lib389:### Check that after stop INFO:lib389:### - dse.ldif contains DBLOCK_LDAP_UPDATE INFO:lib389:### - guardian contains DBLOCK_LDAP_UPDATE INFO:lib389:### Check that edit dse+restart INFO:lib389:### - monitor contains DBLOCK_EDIT_UPDATE INFO:lib389:### - configured contains DBLOCK_EDIT_UPDATE INFO:lib389:### Check that after stop INFO:lib389:### - dse.ldif contains DBLOCK_EDIT_UPDATE INFO:lib389:### - guardian contains DBLOCK_EDIT_UPDATE INFO:lib389:### INFO:lib389:################################### ------------------------------ Captured log call -------------------------------
ticket48906_test.py 189 INFO ################################### ticket48906_test.py 190 INFO ### ticket48906_test.py 191 INFO ### Check that after stop ticket48906_test.py 192 INFO ### - dse.ldif contains DBLOCK_LDAP_UPDATE ticket48906_test.py 193 INFO ### - guardian contains DBLOCK_LDAP_UPDATE ticket48906_test.py 194 INFO ### Check that edit dse+restart ticket48906_test.py 195 INFO ### - monitor contains DBLOCK_EDIT_UPDATE ticket48906_test.py 196 INFO ### - configured contains DBLOCK_EDIT_UPDATE ticket48906_test.py 197 INFO ### Check that after stop ticket48906_test.py 198 INFO ### - dse.ldif contains DBLOCK_EDIT_UPDATE ticket48906_test.py 199 INFO ### - guardian contains DBLOCK_EDIT_UPDATE ticket48906_test.py 200 INFO ### ticket48906_test.py 201 INFO ###################################
Failed tickets/ticket48906_test.py::test_ticket48906_dblock_robust 1.23
topology_st = <lib389.topologies.TopologyMain object at 0x7f7030539748>

def test_ticket48906_dblock_robust(topology_st):
topology_st.standalone.log.info('###################################')
topology_st.standalone.log.info('###')
topology_st.standalone.log.info('### Check that the following values are rejected')
topology_st.standalone.log.info('### - negative value')
topology_st.standalone.log.info('### - insuffisant value')
topology_st.standalone.log.info('### - invalid value')
topology_st.standalone.log.info('### Check that minimum value is accepted')
topology_st.standalone.log.info('###')
topology_st.standalone.log.info('###################################')

topology_st.standalone.start(timeout=10)
> _check_monitored_value(topology_st, DBLOCK_EDIT_UPDATE)

tickets/ticket48906_test.py:254:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

topology_st = <lib389.topologies.TopologyMain object at 0x7f7030539748>
expected_value = '40000'

def _check_monitored_value(topology_st, expected_value):
entries = topology_st.standalone.search_s(ldbm_monitor, ldap.SCOPE_BASE, '(objectclass=*)')
> assert (entries[0].hasValue(DBLOCK_ATTR_MONITOR) and entries[0].getValue(DBLOCK_ATTR_MONITOR) == expected_value)
E AssertionError: assert (True and b'10000' == '40000')
E + where True = <bound method Entry.hasValue of dn: cn=database,cn=monitor,cn=ldbm database,cn=plugins,cn=config\ncn: database\nnsslapd-...rate: 0\nnsslapd-db-pages-in-use: 8\nnsslapd-db-txn-region-wait-rate: 0\nobjectClass: top\nobjectClass: extensibleObject\n\n>('nsslapd-db-configured-locks')
E + where <bound method Entry.hasValue of dn: cn=database,cn=monitor,cn=ldbm database,cn=plugins,cn=config\ncn: database\nnsslapd-...rate: 0\nnsslapd-db-pages-in-use: 8\nnsslapd-db-txn-region-wait-rate: 0\nobjectClass: top\nobjectClass: extensibleObject\n\n> = dn: cn=database,cn=monitor,cn=ldbm database,cn=plugins,cn=config\ncn: database\nnsslapd-db-abort-rate: 0\nnsslapd-db-acti...-rate: 0\nnsslapd-db-pages-in-use: 8\nnsslapd-db-txn-region-wait-rate: 0\nobjectClass: top\nobjectClass: extensibleObject\n\n.hasValue
E + and b'10000' = <bound method Entry.getValue of dn: cn=database,cn=monitor,cn=ldbm database,cn=plugins,cn=config\ncn: database\nnsslapd-...rate: 0\nnsslapd-db-pages-in-use: 8\nnsslapd-db-txn-region-wait-rate: 0\nobjectClass: top\nobjectClass: extensibleObject\n\n>('nsslapd-db-configured-locks')
E + where <bound method Entry.getValue of dn: cn=database,cn=monitor,cn=ldbm database,cn=plugins,cn=config\ncn: database\nnsslapd-...rate: 0\nnsslapd-db-pages-in-use: 8\nnsslapd-db-txn-region-wait-rate: 0\nobjectClass: top\nobjectClass: extensibleObject\n\n> = dn: cn=database,cn=monitor,cn=ldbm database,cn=plugins,cn=config\ncn: database\nnsslapd-db-abort-rate: 0\nnsslapd-db-acti...-rate: 0\nnsslapd-db-pages-in-use: 8\nnsslapd-db-txn-region-wait-rate: 0\nobjectClass: top\nobjectClass: extensibleObject\n\n.getValue

tickets/ticket48906_test.py:103: AssertionError
----------------------------- Captured stderr call -----------------------------
INFO:lib389:################################### INFO:lib389:### INFO:lib389:### Check that the following values are rejected INFO:lib389:### - negative value INFO:lib389:### - insuffisant value INFO:lib389:### - invalid value INFO:lib389:### Check that minimum value is accepted INFO:lib389:### INFO:lib389:################################### ------------------------------ Captured log call -------------------------------
ticket48906_test.py 243 INFO ################################### ticket48906_test.py 244 INFO ### ticket48906_test.py 245 INFO ### Check that the following values are rejected ticket48906_test.py 246 INFO ### - negative value ticket48906_test.py 247 INFO ### - insuffisant value ticket48906_test.py 248 INFO ### - invalid value ticket48906_test.py 249 INFO ### Check that minimum value is accepted ticket48906_test.py 250 INFO ### ticket48906_test.py 251 INFO ###################################
Failed tickets/ticket48944_test.py::test_ticket48944 42.34
topo = <lib389.topologies.TopologyMain object at 0x7f704235cf98>

def test_ticket48944(topo):
"""On a read only replica invalid state info can accumulate

:ID: 833be131-f3bf-493e-97c6-3121438a07b1
:feature: Account Policy Plugin
:setup: Two master and two consumer setup
:steps: 1. Configure Account policy plugin with alwaysrecordlogin set to yes
2. Check if entries are synced across masters and consumers
3. Stop all masters and consumers
4. Start master1 and bind as user1 to create lastLoginTime attribute
5. Start master2 and wait for the sync of lastLoginTime attribute
6. Stop master1 and bind as user1 from master2
7. Check if lastLoginTime attribute is updated and greater than master1
8. Stop master2, start consumer1, consumer2 and then master2
9. Check if lastLoginTime attribute is updated on both consumers
10. Bind as user1 to both consumers and check the value is updated
11. Check if lastLoginTime attribute is not updated from consumers
12. Start master1 and make sure the lastLoginTime attribute is not updated on consumers
13. Bind as user1 from master1 and check if all masters and consumers have the same value
14. Check error logs of consumers for "deletedattribute;deleted" message
:expectedresults: No accumulation of replica invalid state info on consumers
"""

log.info("Ticket 48944 - On a read only replica invalid state info can accumulate")
user_name = 'newbzusr'
tuserdn = 'uid={}1,ou=people,{}'.format(user_name, SUFFIX)
inst_list = ['master1', 'master2', 'consumer1', 'consumer2']
for inst_name in inst_list:
_enable_plugin(topo, inst_name)

log.info('Sleep for 10secs for the server to come up')
time.sleep(10)
log.info('Add few entries to server and check if entries are replicated')
for nos in range(10):
userdn = 'uid={}{},ou=people,{}'.format(user_name, nos, SUFFIX)
try:
topo.ms['master1'].add_s(Entry((userdn, {
'objectclass': 'top person'.split(),
'objectclass': 'inetorgperson',
'cn': user_name,
'sn': user_name,
'userpassword': USER_PW,
'mail': '{}@redhat.com'.format(user_name)})))
except ldap.LDAPError as e:
log.error('Failed to add {} user: error {}'.format(userdn, e.message['desc']))
raise e

log.info('Checking if entries are synced across masters and consumers')
entries_m1 = topo.ms['master1'].search_s(SUFFIX, ldap.SCOPE_SUBTREE, 'uid={}*'.format(user_name), ['uid=*'])
exp_entries = str(entries_m1).count('dn: uid={}*'.format(user_name))
entries_m2 = topo.ms['master2'].search_s(SUFFIX, ldap.SCOPE_SUBTREE, 'uid={}*'.format(user_name), ['uid=*'])
act_entries = str(entries_m2).count('dn: uid={}*'.format(user_name))
assert act_entries == exp_entries
inst_list = ['consumer1', 'consumer2']
for inst in inst_list:
entries_other = topo.cs[inst].search_s(SUFFIX, ldap.SCOPE_SUBTREE, 'uid={}*'.format(user_name), ['uid=*'])
act_entries = str(entries_other).count('dn: uid={}*'.format(user_name))
assert act_entries == exp_entries

topo.ms['master2'].stop(timeout=10)
topo.ms['master1'].stop(timeout=10)
topo.cs['consumer1'].stop(timeout=10)
topo.cs['consumer2'].stop(timeout=10)

topo.ms['master1'].start(timeout=10)
lastLogin_m1_1 = _last_login_time(topo, tuserdn, 'master1', 'bind_n_check')

log.info('Start master2 to sync lastLoginTime attribute from master1')
topo.ms['master2'].start(timeout=10)
time.sleep(5)
log.info('Stop master1')
topo.ms['master1'].stop(timeout=10)
log.info('Bind as user1 to master2 and check if lastLoginTime attribute is greater than master1')
> lastLogin_m2_1 = _last_login_time(topo, tuserdn, 'master2', 'bind_n_check')

tickets/ticket48944_test.py:156:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket48944_test.py:34: in _last_login_time
topo.ms[inst_name].simple_bind_s(userdn, USER_PW)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:444: in simple_bind_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f703054fa20>
func = <built-in method result4 of LDAP object at 0x7f704258d418>
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.INVALID_CREDENTIALS: {'desc': 'Invalid credentials'}

/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:313: INVALID_CREDENTIALS
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists OK group dirsrv exists OK user dirsrv exists OK group dirsrv exists OK user dirsrv exists OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Instance with parameters {'ldap-port': 39201, 'ldap-secureport': 63901, 'server-id': 'consumer1', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Instance with parameters {'ldap-port': 39202, 'ldap-secureport': 63902, 'server-id': 'consumer2', 'suffix': 'dc=example,dc=com'} was created. INFO:lib389.topologies:Creating replication topology. INFO:lib389.topologies:Joining master master2 to master1 ... INFO:lib389.replica:SUCCESS: bootstrap to ldap://server.example.com:39002 completed INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working INFO:lib389.replica:SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 INFO:lib389.topologies:Ensuring master master1 to master2 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists INFO:lib389.topologies:Ensuring master master2 to master1 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists INFO:lib389.topologies:Joining consumer consumer1 from master1 ... INFO:lib389.replica:SUCCESS: bootstrap to ldap://server.example.com:39201 completed INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39201 is was created INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39201 is working INFO:lib389.replica:SUCCESS: joined consumer from ldap://server.example.com:39001 to ldap://server.example.com:39201 INFO:lib389.topologies:Joining consumer consumer2 from master1 ... INFO:lib389.replica:SUCCESS: bootstrap to ldap://server.example.com:39202 completed INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39202 is was created INFO:lib389.replica:SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39202 is working INFO:lib389.replica:SUCCESS: joined consumer from ldap://server.example.com:39001 to ldap://server.example.com:39202 INFO:lib389.topologies:Ensuring consumer consumer1 from master1 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39201 already exists INFO:lib389.topologies:Ensuring consumer consumer2 from master1 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39202 already exists INFO:lib389.topologies:Ensuring consumer consumer1 from master2 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39201 is was created INFO:lib389.topologies:Ensuring consumer consumer2 from master2 ... INFO:lib389.replica:SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39202 is was created ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO Instance with parameters {'ldap-port': 39001, 'ldap-secureport': 63701, 'server-id': 'master1', 'suffix': 'dc=example,dc=com'} was created. topologies.py 106 INFO Instance with parameters {'ldap-port': 39002, 'ldap-secureport': 63702, 'server-id': 'master2', 'suffix': 'dc=example,dc=com'} was created. topologies.py 106 INFO Instance with parameters {'ldap-port': 39201, 'ldap-secureport': 63901, 'server-id': 'consumer1', 'suffix': 'dc=example,dc=com'} was created. topologies.py 106 INFO Instance with parameters {'ldap-port': 39202, 'ldap-secureport': 63902, 'server-id': 'consumer2', 'suffix': 'dc=example,dc=com'} was created. topologies.py 139 INFO Creating replication topology. topologies.py 153 INFO Joining master master2 to master1 ... replica.py 1461 INFO SUCCESS: bootstrap to ldap://server.example.com:39002 completed replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 is was created replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 is was created replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39002 is working replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39002 to ldap://server.example.com:39001 is working replica.py 1530 INFO SUCCESS: joined master from ldap://server.example.com:39001 to ldap://server.example.com:39002 topologies.py 161 INFO Ensuring master master1 to master2 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39002 already exists topologies.py 161 INFO Ensuring master master2 to master1 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39001 already exists topologies.py 166 INFO Joining consumer consumer1 from master1 ... replica.py 1461 INFO SUCCESS: bootstrap to ldap://server.example.com:39201 completed replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39201 is was created replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39201 is working replica.py 1645 INFO SUCCESS: joined consumer from ldap://server.example.com:39001 to ldap://server.example.com:39201 topologies.py 166 INFO Joining consumer consumer2 from master1 ... replica.py 1461 INFO SUCCESS: bootstrap to ldap://server.example.com:39202 completed replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39202 is was created replica.py 1873 INFO SUCCESS: Replication from ldap://server.example.com:39001 to ldap://server.example.com:39202 is working replica.py 1645 INFO SUCCESS: joined consumer from ldap://server.example.com:39001 to ldap://server.example.com:39202 topologies.py 171 INFO Ensuring consumer consumer1 from master1 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39201 already exists topologies.py 171 INFO Ensuring consumer consumer2 from master1 ... replica.py 1715 INFO SUCCESS: Agreement from ldap://server.example.com:39001 to ldap://server.example.com:39202 already exists topologies.py 171 INFO Ensuring consumer consumer1 from master2 ... replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39201 is was created topologies.py 171 INFO Ensuring consumer consumer2 from master2 ... replica.py 1742 INFO SUCCESS: Agreement from ldap://server.example.com:39002 to ldap://server.example.com:39202 is was created----------------------------- Captured stderr call -----------------------------
INFO:tests.tickets.ticket48944_test:Ticket 48944 - On a read only replica invalid state info can accumulate INFO:tests.tickets.ticket48944_test:Enable account policy plugin and configure required attributes INFO:tests.tickets.ticket48944_test:Configure Account policy plugin on master1 INFO:tests.tickets.ticket48944_test:Enable account policy plugin and configure required attributes INFO:tests.tickets.ticket48944_test:Configure Account policy plugin on master2 INFO:tests.tickets.ticket48944_test:Enable account policy plugin and configure required attributes INFO:tests.tickets.ticket48944_test:Configure Account policy plugin on consumer1 INFO:tests.tickets.ticket48944_test:Enable account policy plugin and configure required attributes INFO:tests.tickets.ticket48944_test:Configure Account policy plugin on consumer2 INFO:tests.tickets.ticket48944_test:Sleep for 10secs for the server to come up INFO:tests.tickets.ticket48944_test:Add few entries to server and check if entries are replicated INFO:tests.tickets.ticket48944_test:Checking if entries are synced across masters and consumers INFO:tests.tickets.ticket48944_test:Start master2 to sync lastLoginTime attribute from master1 INFO:tests.tickets.ticket48944_test:Stop master1 INFO:tests.tickets.ticket48944_test:Bind as user1 to master2 and check if lastLoginTime attribute is greater than master1 ------------------------------ Captured log call -------------------------------
ticket48944_test.py 106 INFO Ticket 48944 - On a read only replica invalid state info can accumulate ticket48944_test.py 50 INFO Enable account policy plugin and configure required attributes ticket48944_test.py 52 INFO Configure Account policy plugin on master1 ticket48944_test.py 50 INFO Enable account policy plugin and configure required attributes ticket48944_test.py 52 INFO Configure Account policy plugin on master2 ticket48944_test.py 50 INFO Enable account policy plugin and configure required attributes ticket48944_test.py 67 INFO Configure Account policy plugin on consumer1 ticket48944_test.py 50 INFO Enable account policy plugin and configure required attributes ticket48944_test.py 67 INFO Configure Account policy plugin on consumer2 ticket48944_test.py 113 INFO Sleep for 10secs for the server to come up ticket48944_test.py 115 INFO Add few entries to server and check if entries are replicated ticket48944_test.py 130 INFO Checking if entries are synced across masters and consumers ticket48944_test.py 150 INFO Start master2 to sync lastLoginTime attribute from master1 ticket48944_test.py 153 INFO Stop master1 ticket48944_test.py 155 INFO Bind as user1 to master2 and check if lastLoginTime attribute is greater than master1
Failed tickets/ticket48961_test.py::test_ticket48961_storagescheme 0.01
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f892128>

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)

tickets/ticket48961_test.py:27:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.6/site-packages/lib389/_mapped_object.py:282: in remove
self.set(key, value, action=ldap.MOD_DELETE)
/usr/local/lib/python3.6/site-packages/lib389/_mapped_object.py:352: in set
serverctrls=self._server_controls, clientctrls=self._client_controls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:602: in modify_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f3fe5f8>
func = <built-in method result4 of LDAP object at 0x7f702f3c6530>
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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: OPERATIONS_ERROR
---------------------------- Captured stdout setup -----------------------------
OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup -----------------------------
INFO:lib389.topologies:Instance with parameters {'ldap-port': 38901, 'ldap-secureport': 63601, 'server-id': 'standalone1', 'suffix': 'dc=example,dc=com'} was created. ------------------------------ Captured log setup ------------------------------
topologies.py 106 INFO 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 2.89
topology_st = <lib389.topologies.TopologyMain object at 0x7f702f892128>

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()

for attr in config_entry.getAttrs():
if attr.lower() in attr_to_fail:
# We know this will fail, so skip
pass
else:
log.info("Reseting %s" % (attr))
# Check if we have to do some override of this attr.
# Some attributes need specific syntax, so we override just these.
newval = topology_st.standalone.config.get_attr_vals(attr)
log.info(" --> %s" % newval)
if attr.lower() in attr_to_test:
newval = attr_to_test[attr]
log.info("override --> %s" % newval)
# We need to set the attr to its own value
# so that it's "written".
topology_st.standalone.config.set(attr, newval)
# Now we can really reset
> _reset_config_value(topology_st.standalone, attr)

tickets/ticket48961_test.py:119:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tickets/ticket48961_test.py:36: in _reset_config_value
inst.config.remove(attrname, None)
/usr/local/lib/python3.6/site-packages/lib389/_mapped_object.py:282: in remove
self.set(key, value, action=ldap.MOD_DELETE)
/usr/local/lib/python3.6/site-packages/lib389/_mapped_object.py:352: in set
serverctrls=self._server_controls, clientctrls=self._client_controls)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:602: in modify_ext_s
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:749: in result3
resp_ctrl_classes=resp_ctrl_classes
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:756: in result4
ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
/usr/local/lib/python3.6/site-packages/lib389/__init__.py:167: in inner
return f(*args, **kwargs)
/usr/lib64/python3.6/site-packages/ldap/ldapobject.py:329: in _ldap_call
reraise(exc_type, exc_value, exc_traceback)
/usr/lib64/python3.6/site-packages/ldap/compat.py:44: in reraise
raise exc_value
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.DirSrv object at 0x7f702f3fe5f8>
func = <built-in method result4 of LDAP object at 0x7f702f3c6530>
args = (712, 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/lib64/python3.6/site-packages/ldap/ldapobject.py:313: OPERATIONS_ERROR
----------------------------- Captured stderr call -----------------------------
INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditlog-mode INFO:tests.tickets.ticket48961_test: --> [b'600'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditlog-mode to b'600' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditlog-logrotationsync-enabled INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditlog-logrotationsync-enabled to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditlog-logrotationsynchour INFO:tests.tickets.ticket48961_test: --> [b'0'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditlog-logrotationsynchour to b'0' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditlog-logrotationsyncmin INFO:tests.tickets.ticket48961_test: --> [b'0'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditlog-logrotationsyncmin to b'0' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditlog-logrotationtime INFO:tests.tickets.ticket48961_test: --> [b'1'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditlog-logrotationtime to b'1' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-accesslog-mode INFO:tests.tickets.ticket48961_test: --> [b'600'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-accesslog-mode to b'600' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-accesslog-maxlogsperdir INFO:tests.tickets.ticket48961_test: --> [b'10'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-accesslog-maxlogsperdir to b'10' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-errorlog-level INFO:tests.tickets.ticket48961_test: --> [b'16384'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-errorlog-level to b'16384' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-errorlog-logging-enabled INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-errorlog-logging-enabled to b'on' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-errorlog-mode INFO:tests.tickets.ticket48961_test: --> [b'600'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-errorlog-mode to b'600' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-errorlog-logexpirationtime INFO:tests.tickets.ticket48961_test: --> [b'1'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-errorlog-logexpirationtime to b'1' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-accesslog-logging-enabled INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-accesslog-logging-enabled to b'on' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-maxthreadsperconn INFO:tests.tickets.ticket48961_test: --> [b'5'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-maxthreadsperconn to b'5' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-accesslog-logexpirationtime INFO:tests.tickets.ticket48961_test: --> [b'1'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-accesslog-logexpirationtime to b'1' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-errorlog-logrotationsync-enabled INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-errorlog-logrotationsync-enabled to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-errorlog-logrotationsynchour INFO:tests.tickets.ticket48961_test: --> [b'0'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-errorlog-logrotationsynchour to b'0' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-errorlog-logrotationsyncmin INFO:tests.tickets.ticket48961_test: --> [b'0'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-errorlog-logrotationsyncmin to b'0' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-errorlog-logrotationtime INFO:tests.tickets.ticket48961_test: --> [b'1'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-errorlog-logrotationtime to b'1' INFO:tests.tickets.ticket48961_test:Reseting passwordInHistory INFO:tests.tickets.ticket48961_test: --> [b'6'] INFO:tests.tickets.ticket48961_test:Reset passwordInHistory to b'6' INFO:tests.tickets.ticket48961_test:Reseting passwordUnlock INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset passwordUnlock to b'on' INFO:tests.tickets.ticket48961_test:Reseting passwordGraceLimit INFO:tests.tickets.ticket48961_test: --> [b'0'] INFO:tests.tickets.ticket48961_test:Reset passwordGraceLimit to b'0' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-accesslog-logrotationsync-enabled INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-accesslog-logrotationsync-enabled to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-accesslog-logrotationsynchour INFO:tests.tickets.ticket48961_test: --> [b'0'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-accesslog-logrotationsynchour to b'0' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-accesslog-logrotationsyncmin INFO:tests.tickets.ticket48961_test: --> [b'0'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-accesslog-logrotationsyncmin to b'0' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-accesslog-logrotationtime INFO:tests.tickets.ticket48961_test: --> [b'1'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-accesslog-logrotationtime to b'1' INFO:tests.tickets.ticket48961_test:Reseting passwordMustChange INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset passwordMustChange to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-pwpolicy-local INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-pwpolicy-local to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-pwpolicy-inherit-global INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-pwpolicy-inherit-global to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditlog-logmaxdiskspace INFO:tests.tickets.ticket48961_test: --> [b'100'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditlog-logmaxdiskspace to b'100' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-sizelimit INFO:tests.tickets.ticket48961_test: --> [b'2000'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-sizelimit to b'2000' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditlog-maxlogsize INFO:tests.tickets.ticket48961_test: --> [b'100'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditlog-maxlogsize to b'100' INFO:tests.tickets.ticket48961_test:Reseting passwordWarning INFO:tests.tickets.ticket48961_test: --> [b'86400'] INFO:tests.tickets.ticket48961_test:Reset passwordWarning to b'86400' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-readonly INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-readonly to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-sasl-mapping-fallback INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-sasl-mapping-fallback to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-threadnumber INFO:tests.tickets.ticket48961_test: --> [b'24'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-threadnumber to b'24' INFO:tests.tickets.ticket48961_test:Reseting passwordLockout INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset passwordLockout to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-enquote-sup-oc INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-enquote-sup-oc to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-ioblocktimeout INFO:tests.tickets.ticket48961_test: --> [b'300000'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-ioblocktimeout to b'300000' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-max-filter-nest-level INFO:tests.tickets.ticket48961_test: --> [b'40'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-max-filter-nest-level to b'40' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-errorlog-logmaxdiskspace INFO:tests.tickets.ticket48961_test: --> [b'100'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-errorlog-logmaxdiskspace to b'100' INFO:tests.tickets.ticket48961_test:Reseting passwordMinLength INFO:tests.tickets.ticket48961_test: --> [b'8'] INFO:tests.tickets.ticket48961_test:Reset passwordMinLength to b'8' INFO:tests.tickets.ticket48961_test:Reseting passwordMinDigits INFO:tests.tickets.ticket48961_test: --> [b'0'] INFO:tests.tickets.ticket48961_test:Reset passwordMinDigits to b'0' INFO:tests.tickets.ticket48961_test:Reseting passwordMinAlphas INFO:tests.tickets.ticket48961_test: --> [b'0'] INFO:tests.tickets.ticket48961_test:Reset passwordMinAlphas to b'0' INFO:tests.tickets.ticket48961_test:Reseting passwordMinUppers INFO:tests.tickets.ticket48961_test: --> [b'0'] INFO:tests.tickets.ticket48961_test:Reset passwordMinUppers to b'0' INFO:tests.tickets.ticket48961_test:Reseting passwordMinLowers INFO:tests.tickets.ticket48961_test: --> [b'0'] INFO:tests.tickets.ticket48961_test:Reset passwordMinLowers to b'0' INFO:tests.tickets.ticket48961_test:Reseting passwordMinSpecials INFO:tests.tickets.ticket48961_test: --> [b'0'] INFO:tests.tickets.ticket48961_test:Reset passwordMinSpecials to b'0' INFO:tests.tickets.ticket48961_test:Reseting passwordMin8bit INFO:tests.tickets.ticket48961_test: --> [b'0'] INFO:tests.tickets.ticket48961_test:Reset passwordMin8bit to b'0' INFO:tests.tickets.ticket48961_test:Reseting passwordMaxRepeats INFO:tests.tickets.ticket48961_test: --> [b'0'] INFO:tests.tickets.ticket48961_test:Reset passwordMaxRepeats to b'0' INFO:tests.tickets.ticket48961_test:Reseting passwordMinCategories INFO:tests.tickets.ticket48961_test: --> [b'3'] INFO:tests.tickets.ticket48961_test:Reset passwordMinCategories to b'3' INFO:tests.tickets.ticket48961_test:Reseting passwordMinTokenLength INFO:tests.tickets.ticket48961_test: --> [b'3'] INFO:tests.tickets.ticket48961_test:Reset passwordMinTokenLength to b'3' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditlog-logexpirationtime INFO:tests.tickets.ticket48961_test: --> [b'1'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditlog-logexpirationtime to b'1' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-schemacheck INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-schemacheck to b'on' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-schemamod INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-schemamod to b'on' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-syntaxcheck INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-syntaxcheck to b'on' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-syntaxlogging INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-syntaxlogging to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-dn-validate-strict INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-dn-validate-strict to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-ds4-compatible-schema INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-ds4-compatible-schema to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-schema-ignore-trailing-spaces INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-schema-ignore-trailing-spaces to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-schemareplace INFO:tests.tickets.ticket48961_test: --> [b'replication-only'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-schemareplace to b'replication-only' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-accesslog-logmaxdiskspace INFO:tests.tickets.ticket48961_test: --> [b'500'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-accesslog-logmaxdiskspace to b'500' INFO:tests.tickets.ticket48961_test:Reseting passwordMaxFailure INFO:tests.tickets.ticket48961_test: --> [b'3'] INFO:tests.tickets.ticket48961_test:Reset passwordMaxFailure to b'3' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-lastmod INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-lastmod to b'on' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-security INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-security to b'off' INFO:tests.tickets.ticket48961_test:Reseting passwordMaxAge INFO:tests.tickets.ticket48961_test: --> [b'8640000'] INFO:tests.tickets.ticket48961_test:Reset passwordMaxAge to b'8640000' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditlog-logrotationtimeunit INFO:tests.tickets.ticket48961_test: --> [b'week'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditlog-logrotationtimeunit to b'week' INFO:tests.tickets.ticket48961_test:Reseting passwordResetFailureCount INFO:tests.tickets.ticket48961_test: --> [b'600'] INFO:tests.tickets.ticket48961_test:Reset passwordResetFailureCount to b'600' INFO:tests.tickets.ticket48961_test:Reseting passwordIsGlobalPolicy INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset passwordIsGlobalPolicy to b'off' INFO:tests.tickets.ticket48961_test:Reseting passwordLegacyPolicy INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset passwordLegacyPolicy to b'on' INFO:tests.tickets.ticket48961_test:Reseting passwordTrackUpdateTime INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset passwordTrackUpdateTime to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditlog-maxlogsperdir INFO:tests.tickets.ticket48961_test: --> [b'1'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditlog-maxlogsperdir to b'1' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-errorlog-logexpirationtimeunit INFO:tests.tickets.ticket48961_test: --> [b'month'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-errorlog-logexpirationtimeunit to b'month' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-groupevalnestlevel INFO:tests.tickets.ticket48961_test: --> [b'0'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-groupevalnestlevel to b'0' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-accesslog-logexpirationtimeunit INFO:tests.tickets.ticket48961_test: --> [b'month'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-accesslog-logexpirationtimeunit to b'month' INFO:tests.tickets.ticket48961_test:Reseting passwordChange INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset passwordChange to b'on' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-accesslog-level INFO:tests.tickets.ticket48961_test: --> [b'256'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-accesslog-level to b'256' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-errorlog-logrotationtimeunit INFO:tests.tickets.ticket48961_test: --> [b'week'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-errorlog-logrotationtimeunit to b'week' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-timelimit INFO:tests.tickets.ticket48961_test: --> [b'3600'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-timelimit to b'3600' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-errorlog-maxlogsize INFO:tests.tickets.ticket48961_test: --> [b'100'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-errorlog-maxlogsize to b'100' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-reservedescriptors INFO:tests.tickets.ticket48961_test: --> [b'64'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-reservedescriptors to b'64' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-svrtab INFO:tests.tickets.ticket48961_test: --> [b''] INFO:tests.tickets.ticket48961_test:override --> Some bogus data INFO:tests.tickets.ticket48961_test:Reset nsslapd-svrtab to b'' INFO:tests.tickets.ticket48961_test:Reseting passwordExp INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset passwordExp to b'off' INFO:tests.tickets.ticket48961_test:Reseting passwordSendExpiringTime INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset passwordSendExpiringTime to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-accesscontrol INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-accesscontrol to b'on' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-accesslog-logrotationtimeunit INFO:tests.tickets.ticket48961_test: --> [b'day'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-accesslog-logrotationtimeunit to b'day' INFO:tests.tickets.ticket48961_test:Reseting passwordLockoutDuration INFO:tests.tickets.ticket48961_test: --> [b'3600'] INFO:tests.tickets.ticket48961_test:Reset passwordLockoutDuration to b'3600' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-accesslog-maxlogsize INFO:tests.tickets.ticket48961_test: --> [b'100'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-accesslog-maxlogsize to b'100' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-idletimeout INFO:tests.tickets.ticket48961_test: --> [b'0'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-idletimeout to b'0' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-nagle INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-nagle to b'on' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-errorlog-logminfreediskspace INFO:tests.tickets.ticket48961_test: --> [b'5'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-errorlog-logminfreediskspace to b'5' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditlog-logging-enabled INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditlog-logging-enabled to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditlog-logging-hide-unhashed-pw INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditlog-logging-hide-unhashed-pw to b'on' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-accesslog-logbuffering INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-accesslog-logbuffering to b'on' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-csnlogging INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-csnlogging to b'on' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditlog-logexpirationtimeunit INFO:tests.tickets.ticket48961_test: --> [b'month'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditlog-logexpirationtimeunit to b'month' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-allow-hashed-passwords INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-allow-hashed-passwords to b'off' INFO:tests.tickets.ticket48961_test:Reseting passwordCheckSyntax INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset passwordCheckSyntax to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-listenhost INFO:tests.tickets.ticket48961_test: --> [b''] INFO:tests.tickets.ticket48961_test:override --> localhost INFO:tests.tickets.ticket48961_test:Reset nsslapd-listenhost to b'' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-snmp-index INFO:tests.tickets.ticket48961_test: --> [b'0'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-snmp-index to b'0' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-ldapifilepath INFO:tests.tickets.ticket48961_test: --> [b'/var/run/slapd-standalone1.socket'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-ldapifilepath to b'/var/run/ldapi' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-ldapilisten INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-ldapilisten to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-ldapiautobind INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-ldapiautobind to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-ldapimaprootdn INFO:tests.tickets.ticket48961_test: --> [b'cn=Directory Manager'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-ldapimaprootdn to b'cn=Directory Manager' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-ldapimaptoentries INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-ldapimaptoentries to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-ldapiuidnumbertype INFO:tests.tickets.ticket48961_test: --> [b'uidNumber'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-ldapiuidnumbertype to b'uidNumber' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-ldapigidnumbertype INFO:tests.tickets.ticket48961_test: --> [b'gidNumber'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-ldapigidnumbertype to b'gidNumber' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-ldapientrysearchbase INFO:tests.tickets.ticket48961_test: --> [b'dc=example,dc=com'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-ldapientrysearchbase to b'dc=example,dc=com' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-anonlimitsdn INFO:tests.tickets.ticket48961_test: --> [b''] INFO:tests.tickets.ticket48961_test:Reset nsslapd-anonlimitsdn to b'' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-counters INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-counters to b'on' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-accesslog-logminfreediskspace INFO:tests.tickets.ticket48961_test: --> [b'5'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-accesslog-logminfreediskspace to b'5' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-errorlog-maxlogsperdir INFO:tests.tickets.ticket48961_test: --> [b'1'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-errorlog-maxlogsperdir to b'1' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-securelistenhost INFO:tests.tickets.ticket48961_test: --> [b''] INFO:tests.tickets.ticket48961_test:override --> localhost INFO:tests.tickets.ticket48961_test:Reset nsslapd-securelistenhost to b'' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditlog-logminfreediskspace INFO:tests.tickets.ticket48961_test: --> [b'5'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditlog-logminfreediskspace to b'5' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-rootdn INFO:tests.tickets.ticket48961_test: --> [b'cn=Directory Manager'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-rootdn to b'cn=Directory Manager' INFO:tests.tickets.ticket48961_test:Reseting passwordMinAge INFO:tests.tickets.ticket48961_test: --> [b'0'] INFO:tests.tickets.ticket48961_test:Reset passwordMinAge to b'0' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-return-exact-case INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-return-exact-case to b'on' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-result-tweak INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-result-tweak to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-plugin-binddn-tracking INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-plugin-binddn-tracking to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-moddn-aci INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-moddn-aci to b'on' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-attribute-name-exceptions INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-attribute-name-exceptions to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-maxbersize INFO:tests.tickets.ticket48961_test: --> [b'2097152'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-maxbersize to b'2097152' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-maxsasliosize INFO:tests.tickets.ticket48961_test: --> [b'2097152'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-maxsasliosize to b'2097152' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-maxdescriptors INFO:tests.tickets.ticket48961_test: --> [b'1024'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-maxdescriptors to b'1024' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-SSLclientAuth INFO:tests.tickets.ticket48961_test: --> [b'allowed'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-SSLclientAuth to b'allowed' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-rewrite-rfc1274 INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-rewrite-rfc1274 to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-outbound-ldap-io-timeout INFO:tests.tickets.ticket48961_test: --> [b'300000'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-outbound-ldap-io-timeout to b'300000' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-allow-unauthenticated-binds INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-allow-unauthenticated-binds to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-require-secure-binds INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-require-secure-binds to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-allow-anonymous-access INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-allow-anonymous-access to b'on' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-localssf INFO:tests.tickets.ticket48961_test: --> [b'71'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-localssf to b'71' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-minssf INFO:tests.tickets.ticket48961_test: --> [b'0'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-minssf to b'0' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-minssf-exclude-rootdse INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-minssf-exclude-rootdse to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-force-sasl-external INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-force-sasl-external to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-entryusn-global INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-entryusn-global to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-entryusn-import-initval INFO:tests.tickets.ticket48961_test: --> [b'0'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-entryusn-import-initval to b'0' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-validate-cert INFO:tests.tickets.ticket48961_test: --> [b'warn'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-validate-cert to b'warn' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-pagedsizelimit INFO:tests.tickets.ticket48961_test: --> [b'0'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-pagedsizelimit to b'0' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-disk-monitoring INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-disk-monitoring to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-disk-monitoring-threshold INFO:tests.tickets.ticket48961_test: --> [b'2097152'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-disk-monitoring-threshold to b'2097152' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-disk-monitoring-grace-period INFO:tests.tickets.ticket48961_test: --> [b'60'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-disk-monitoring-grace-period to b'60' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-disk-monitoring-logging-critical INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-disk-monitoring-logging-critical to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-ndn-cache-enabled INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-ndn-cache-enabled to b'on' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-ndn-cache-max-size INFO:tests.tickets.ticket48961_test: --> [b'20971520'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-ndn-cache-max-size to b'20971520' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-allowed-sasl-mechanisms INFO:tests.tickets.ticket48961_test: --> [b''] INFO:tests.tickets.ticket48961_test:override --> GSSAPI INFO:tests.tickets.ticket48961_test:Reset nsslapd-allowed-sasl-mechanisms to b'' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-ignore-virtual-attrs INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-ignore-virtual-attrs to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-unhashed-pw-switch INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-unhashed-pw-switch to b'on' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-sasl-max-buffer-size INFO:tests.tickets.ticket48961_test: --> [b'2097152'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-sasl-max-buffer-size to b'2097152' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-search-return-original-type-switch INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-search-return-original-type-switch to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-enable-turbo-mode INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-enable-turbo-mode to b'on' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-connection-nocanon INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-connection-nocanon to b'on' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-plugin-logging INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-plugin-logging to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-listen-backlog-size INFO:tests.tickets.ticket48961_test: --> [b'128'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-listen-backlog-size to b'128' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-dynamic-plugins INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-dynamic-plugins to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-cn-uses-dn-syntax-in-dns INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-cn-uses-dn-syntax-in-dns to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-ignore-time-skew INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-ignore-time-skew to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-global-backend-lock INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-global-backend-lock to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-maxsimplepaged-per-conn INFO:tests.tickets.ticket48961_test: --> [b'-1'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-maxsimplepaged-per-conn to b'-1' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-enable-nunc-stans INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-enable-nunc-stans to b'on' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditfaillog-mode INFO:tests.tickets.ticket48961_test: --> [b'600'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditfaillog-mode to b'600' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditfaillog-logrotationsync-enabled INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditfaillog-logrotationsync-enabled to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditfaillog-logrotationsynchour INFO:tests.tickets.ticket48961_test: --> [b'0'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditfaillog-logrotationsynchour to b'0' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditfaillog-logrotationsyncmin INFO:tests.tickets.ticket48961_test: --> [b'0'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditfaillog-logrotationsyncmin to b'0' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditfaillog-logrotationtime INFO:tests.tickets.ticket48961_test: --> [b'1'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditfaillog-logrotationtime to b'1' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditfaillog-logmaxdiskspace INFO:tests.tickets.ticket48961_test: --> [b'100'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditfaillog-logmaxdiskspace to b'100' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditfaillog-maxlogsize INFO:tests.tickets.ticket48961_test: --> [b'100'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditfaillog-maxlogsize to b'100' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditfaillog-logexpirationtime INFO:tests.tickets.ticket48961_test: --> [b'1'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditfaillog-logexpirationtime to b'1' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditfaillog-maxlogsperdir INFO:tests.tickets.ticket48961_test: --> [b'1'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditfaillog-maxlogsperdir to b'1' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditfaillog-logging-enabled INFO:tests.tickets.ticket48961_test: --> [b'off'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditfaillog-logging-enabled to b'off' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditfaillog-logging-hide-unhashed-pw INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditfaillog-logging-hide-unhashed-pw to b'on' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditfaillog-logexpirationtimeunit INFO:tests.tickets.ticket48961_test: --> [b'month'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditfaillog-logexpirationtimeunit to b'month' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditfaillog-logminfreediskspace INFO:tests.tickets.ticket48961_test: --> [b'5'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditfaillog-logminfreediskspace to b'5' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditfaillog-logrotationtimeunit INFO:tests.tickets.ticket48961_test: --> [b'week'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditfaillog-logrotationtimeunit to b'week' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-auditfaillog INFO:tests.tickets.ticket48961_test: --> [b'/var/log/dirsrv/slapd-standalone1/audit'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-auditfaillog to b'' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-logging-hr-timestamps-enabled INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-logging-hr-timestamps-enabled to b'on' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-extract-pemfiles INFO:tests.tickets.ticket48961_test: --> [b'on'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-extract-pemfiles to b'on' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-logging-backend INFO:tests.tickets.ticket48961_test: --> [b'dirsrv-log'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-logging-backend to b'dirsrv-log' INFO:tests.tickets.ticket48961_test:Reseting nsslapd-tls-check-crl INFO:tests.tickets.ticket48961_test: --> [b'none'] INFO:tests.tickets.ticket48961_test:Reset nsslapd-tls-check-crl to b'none' INFO:tests.tickets.ticket48961_test:Reseting passwordStorageScheme INFO:tests.tickets.ticket48961_test: --> [b'CLEAR'] ------------------------------ Captured log call -------------------------------
ticket48961_test.py 107 INFO Reseting nsslapd-auditlog-mode ticket48961_test.py 111 INFO --> [b'600'] ticket48961_test.py 38 INFO Reset nsslapd-auditlog-mode to b'600' ticket48961_test.py 107 INFO Reseting nsslapd-auditlog-logrotationsync-enabled ticket48961_test.py 111 INFO --> [b'off'] ticket48961_test.py 38 INFO Reset nsslapd-auditlog-logrotationsync-enabled to b'off' ticket48961_test.py 107 INFO Reseting nsslapd-auditlog-logrotationsynchour ticket48961_test.py 111 INFO --> [b'0'] ticket48961_test.py 38 INFO Reset nsslapd-auditlog-logrotationsynchour to b'0' ticket48961_test.py 107 INFO Reseting nsslapd-auditlog-logrotationsyncmin ticket48961_test.py 111 INFO --> [b'0'] ticket48961_test.py 38 INFO Reset nsslapd-auditlog-logrotationsyncmin to b'0' ticket48961_test.py 107 INFO Reseting nsslapd-auditlog-logrotationtime ticket48961_test.py 111 INFO --> [b'1'] ticket48961_test.py 38 INFO Reset nsslapd-auditlog-logrotationtime to b'1' ticket48961_test.py 107 INFO Reseting nsslapd-accesslog-mode ticket48961_test.py 111 INFO --> [b'600'] ticket48961_test.py 38 INFO Reset nsslapd-accesslog-mode to b'600' ticket48961_test.py 107 INFO Reseting nsslapd-accesslog-maxlogsperdir ticket48961_test.py 111 INFO --> [b'10'] ticket48961_test.py 38 INFO Reset nsslapd-accesslog-maxlogsperdir to b'10' ticket48961_test.py 107 INFO Reseting nsslapd-errorlog-level ticket48961_test.py 111 INFO --> [b'16384'] ticket48961_test.py 38 INFO Reset nsslapd-errorlog-level to b'16384' ticket48961_test.py 107 INFO Reseting nsslapd-errorlog-logging-enabled ticket48961_test.py 111 INFO --> [b'on'] ticket48961_test.py 38 INFO Reset nsslapd-errorlog-logging-enabled to b'on' ticket48961_test.py 107 INFO Reseting nsslapd-errorlog-mode ticket48961_test.py 111 INFO --> [b'600'] ticket48961_test.py 38 INFO Reset nsslapd-errorlog-mode to b'600' ticket48961_test.py 107 INFO Reseting nsslapd-errorlog-logexpirationtime ticket48961_test.py 111 INFO --> [b'1'] ticket48961_test.py 38 INFO Reset nsslapd-errorlog-logexpirationtime to b'1' ticket48961_test.py 107 INFO Reseting nsslapd-accesslog-logging-enabled ticket48961_test.py 111 INFO --> [b'on'] ticket48961_test.py 38 INFO Reset nsslapd-accesslog-logging-enabled to b'on' ticket48961_test.py 107 INFO Reseting nsslapd-maxthreadsperconn ticket48961_test.py 111 INFO --> [b'5'] ticket48961_test.py 38 INFO Reset nsslapd-maxthreadsperconn to b'5' ticket48961_test.py 107 INFO Reseting nsslapd-accesslog-logexpirationtime ticket48961_test.py 111 INFO --> [b'1'] ticket48961_test.py 38 INFO Reset nsslapd-accesslog-logexpirationtime to b'1' ticket48961_test.py 107 INFO Reseting nsslapd-errorlog-logrotationsync-enabled ticket48961_test.py 111 INFO --> [b'off'] ticket48961_test.py 38 INFO Reset nsslapd-errorlog-logrotationsync-enabled to b'off' ticket48961_test.py 107 INFO Reseting nsslapd-errorlog-logrotationsynchour ticket48961_test.py 111 INFO --> [b'0'] ticket48961_test.py 38 INFO Reset nsslapd-errorlog-logrotationsynchour to b'0' ticket48961_test.py 107 INFO Reseting nsslapd-errorlog-logrotationsyncmin ticket48961_test.py 111 INFO --> [b'0'] ticket48961_test.py 38 INFO Reset nsslapd-errorlog-logrotationsyncmin to b'0' ticket48961_test.py 107 INFO Reseting nsslapd-errorlog-logrotationtime ticket48961_test.py 111 INFO --> [b'1'] ticket48961_test.py 38 INFO Reset nsslapd-errorlog-logrotationtime to b'1' ticket48961_test.py 107 INFO Reseting passwordInHistory ticket48961_test.py 111 INFO --> [b'6'] ticket48961_test.py 38 INFO Reset passwordInHistory to b'6' ticket48961_test.py 107 INFO Reseting passwordUnlock ticket48961_test.py 111 INFO --> [b'on'] ticket48961_test.py 38 INFO Reset passwordUnlock to b'on' ticket48961_test.py 107 INFO Reseting passwordGraceLimit ticket48961_test.py 111 INFO --> [b'0'] ticket48961_test.py 38 INFO Reset passwordGraceLimit to b'0' ticket48961_test.py 107 INFO Reseting nsslapd-accesslog-logrotationsync-enabled ticket48961_test.py 111 INFO --> [b'off'] ticket48961_test.py 38 INFO Reset nsslapd-accesslog-logrotationsync-enabled to b'off' ticket48961_test.py 107 INFO Reseting nsslapd-accesslog-logrotationsynchour ticket48961_test.py 111 INFO --> [b'0'] ticket48961_test.py 38 INFO Reset nsslapd-accesslog-logrotationsynchour to b'0' ticket48961_test.py 107 INFO Reseting nsslapd-accesslog-logrotationsyncmin ticket48961_test.py 111 INFO --> [b'0'] ticket48961_test.py 38 INFO Reset nsslapd-accesslog-logrotationsyncmin to b'0' ticket48961_test.py 107 INFO Reseting nsslapd-accesslog-logrotationtime ticket48961_test.py 111 INFO --> [b'1'] ticket48961_test.py 38 INFO Reset nsslapd-accesslog-logrotationtime to b'1' ticket48961_test.py 107 INFO Reseting passwordMustChange ticket48961_test.py 111 INFO --> [b'off'] ticket48961_test.py 38 INFO Reset passwordMustChange to b'off' ticket48961_test.py 107 INFO Reseting nsslapd-pwpolicy-local ticket48961_test.py 111 INFO --> [b'off'] ticket48961_test.py 38 INFO Reset nsslapd-pwpolicy-local to b'off' ticket48961_test.py 107 INFO Reseting nsslapd-pwpolicy-inherit-global ticket48961_test.py 111 INFO --> [b'off'] ticket48961_test.py 38 INFO Reset nsslapd-pwpolicy-inherit-global to b'off' ticket48961_test.py 107 INFO Reseting nsslapd-auditlog-logmaxdiskspace ticket48961_test.py 111 INFO --> [b'100'] ticket48961_test.py 38 INFO Reset nsslapd-auditlog-logmaxdiskspace to b'100' ticket48961_test.py 107 INFO Reseting nsslapd-sizelimit ticket48961_test.py 111 INFO --> [b'2000'] ticket48961_test.py 38 INFO Reset nsslapd-sizelimit to b'2000' ticket48961_test.py 107 INFO Reseting nsslapd-auditlog-maxlogsize ticket48961_test.py 111 INFO --> [b'100'] ticket48961_test.py 38 INFO Reset nsslapd-auditlog-maxlogsize to b'100' ticket48961_test.py 107 INFO Reseting passwordWarning ticket48961_test.py 111 INFO --> [b'86400'] ticket48961_test.py 38 INFO Reset passwordWarning to b'86400' ticket48961_test.py 107 INFO Reseting nsslapd-readonly ticket48961_test.py 111 INFO --> [b'off'] ticket48961_test.py 38 INFO Reset nsslapd-readonly to b'off' ticket48961_test.py 107 INFO Reseting nsslapd-sasl-mapping-fallback ticket48961_test.py 111 INFO --> [b'off'] ticket48961_test.py 38 INFO Reset nsslapd-sasl-mapping-fallback to b'off' ticket48961_test.py 107 INFO Reseting nsslapd-threadnumber ticket48961_test.py 111 INFO --> [b'24'] ticket48961_test.py 38 INFO Reset nsslapd-threadnumber to b'24' ticket48961_test.py 107 INFO Reseting passwordLockout ticket48961_test.py 111 INFO --> [b'off'] ticket48961_test.py 38 INFO Reset passwordLockout to b'off' ticket48961_test.py 107 INFO Reseting nsslapd-enquote-sup-oc ticket48961_test.py 111 INFO --> [b'off'] ticket48961_test.py 38 INFO Reset nsslapd-enquote-sup-oc to b'off' ticket48961_test.py 107 INFO Reseting nsslapd-ioblocktimeout ticket48961_test.py 111 INFO --> [b'300000'] ticket48961_test.py 38 INFO Reset nsslapd-ioblocktimeout to b'300000' ticket48961_test.py 107 INFO Reseting nsslapd-max-filter-nest-level ticket48961_test.py 111 INFO --> [b'40'] ticket48961_test.py 38 INFO Reset nsslapd-max-filter-nest-level to b'40' ticket48961_test.py 107 INFO Reseting nsslapd-errorlog-logmaxdiskspace ticket48961_test.py 111 INFO --> [b'100'] ticket48961_test.py 38 INFO Reset nsslapd-errorlog-logmaxdiskspace to b'100' ticket48961_test.py 107 INFO Reseting passwordMinLength ticket48961_test.py 111 INFO --> [b'8'] ticket48961_test.py 38 INFO Reset passwordMinLength to b'8' ticket48961_test.py 107 INFO Reseting passwordMinDigits ticket48961_test.py 111 INFO --> [b'0'] ticket48961_test.py 38 INFO Reset passwordMinDigits to b'0' ticket48961_test.py 107 INFO Reseting passwordMinAlphas ticket48961_test.py 111 INFO --> [b'0'] ticket48961_test.py 38 INFO Reset passwordMinAlphas to b'0' ticket48961_test.py 107 INFO Reseting passwordMinUppers ticket48961_test.py 111 INFO --> [b'0'] ticket48961_test.py 38 INFO Reset passwordMinUppers to b'0' ticket48961_test.py 107 INFO Reseting passwordMinLowers ticket48961_test.py 111 INFO --> [b'0'] ticket48961_test.py 38 INFO Reset passwordMinLowers to b'0' ticket48961_test.py 107 INFO Reseting passwordMinSpecials ticket48961_test.py 111 INFO --> [b'0'] ticket48961_test.py 38 INFO Reset passwordMinSpecials to b'0' ticket48961_test.py 107 INFO Reseting passwordMin8bit ticket48961_test.py 111 INFO --> [b'0'] ticket48961_test.py 38 INFO Reset passwordMin8bit to b'0' ticket48961_test.py 107 INFO Reseting passwordMaxRepeats ti