See <
http://vm-058-081.abc.idm.lab.eng.brq.redhat.com:8080/job/389-DS-NIGHTLY/...
------------------------------------------
[...truncated 4127 lines...]
# Creating agreement from master 1 to master 2
properties = {RA_BINDDN: defaultProperties[REPLICATION_BIND_DN],
RA_BINDPW: defaultProperties[REPLICATION_BIND_PW],
RA_METHOD: defaultProperties[REPLICATION_BIND_METHOD],
RA_TRANSPORT_PROT: defaultProperties[REPLICATION_TRANSPORT]}
m1_m2_agmt = master1.agreement.create(suffix=SUFFIX, host=master2.host,
port=master2.port, properties=properties)
if not m1_m2_agmt:
log.fatal("Fail to create a master -> master replica agreement")
sys.exit(1)
log.debug("%s created" % m1_m2_agmt)
# Creating agreement from master 1 to master 3
# properties = {RA_NAME: r'\''meTo_$host:$port'\'',
# RA_BINDDN: defaultProperties[REPLICATION_BIND_DN],
# RA_BINDPW: defaultProperties[REPLICATION_BIND_PW],
# RA_METHOD: defaultProperties[REPLICATION_BIND_METHOD],
# RA_TRANSPORT_PROT: defaultProperties[REPLICATION_TRANSPORT]}
# m1_m3_agmt = master1.agreement.create(suffix=SUFFIX, host=master3.host,
port=master3.port, properties=properties)
# if not m1_m3_agmt:
# log.fatal("Fail to create a master -> master replica
agreement")
# sys.exit(1)
# log.debug("%s created" % m1_m3_agmt)
# Creating agreement from master 2 to master 1
properties = {RA_BINDDN: defaultProperties[REPLICATION_BIND_DN],
RA_BINDPW: defaultProperties[REPLICATION_BIND_PW],
RA_METHOD: defaultProperties[REPLICATION_BIND_METHOD],
RA_TRANSPORT_PROT: defaultProperties[REPLICATION_TRANSPORT]}
m2_m1_agmt = master2.agreement.create(suffix=SUFFIX, host=master1.host,
port=master1.port, properties=properties)
if not m2_m1_agmt:
log.fatal("Fail to create a master -> master replica agreement")
sys.exit(1)
log.debug("%s created" % m2_m1_agmt)
# Creating agreement from master 2 to master 3
properties = {RA_BINDDN: defaultProperties[REPLICATION_BIND_DN],
RA_BINDPW: defaultProperties[REPLICATION_BIND_PW],
RA_METHOD: defaultProperties[REPLICATION_BIND_METHOD],
RA_TRANSPORT_PROT: defaultProperties[REPLICATION_TRANSPORT]}
m2_m3_agmt = master2.agreement.create(suffix=SUFFIX, host=master3.host,
port=master3.port, properties=properties)
if not m2_m3_agmt:
log.fatal("Fail to create a master -> master replica agreement")
sys.exit(1)
log.debug("%s created" % m2_m3_agmt)
# Creating agreement from master 3 to master 1
# properties = {RA_NAME: r'\''meTo_$host:$port'\'',
# RA_BINDDN: defaultProperties[REPLICATION_BIND_DN],
# RA_BINDPW: defaultProperties[REPLICATION_BIND_PW],
# RA_METHOD: defaultProperties[REPLICATION_BIND_METHOD],
# RA_TRANSPORT_PROT: defaultProperties[REPLICATION_TRANSPORT]}
# m3_m1_agmt = master3.agreement.create(suffix=SUFFIX, host=master1.host,
port=master1.port, properties=properties)
# if not m3_m1_agmt:
# log.fatal("Fail to create a master -> master replica
agreement")
# sys.exit(1)
# log.debug("%s created" % m3_m1_agmt)
# Creating agreement from master 3 to master 2
properties = {RA_BINDDN: defaultProperties[REPLICATION_BIND_DN],
RA_BINDPW: defaultProperties[REPLICATION_BIND_PW],
RA_METHOD: defaultProperties[REPLICATION_BIND_METHOD],
RA_TRANSPORT_PROT: defaultProperties[REPLICATION_TRANSPORT]}
m3_m2_agmt = master3.agreement.create(suffix=SUFFIX, host=master2.host,
port=master2.port, properties=properties)
if not m3_m2_agmt:
log.fatal("Fail to create a master -> master replica agreement")
sys.exit(1)
log.debug("%s created" % m3_m2_agmt)
# Allow the replicas to get situated with the new agreements...
time.sleep(5)
#
# Initialize all the agreements
#
master1.agreement.init(SUFFIX, HOST_MASTER_2, PORT_MASTER_2)
master1.waitForReplInit(m1_m2_agmt)
time.sleep(5) # just to be safe
master2.agreement.init(SUFFIX, HOST_MASTER_3, PORT_MASTER_3)
master2.waitForReplInit(m2_m3_agmt)
# Check replication is working...
if master1.testReplication(DEFAULT_SUFFIX, master2):
log.info('\''Replication is working.'\'')
else:
log.fatal('\''Replication is not working.'\'')
assert False
# Delete each instance in the end
def fin():
for master in (master1, master2, master3):
master.delete()
request.addfinalizer(fin)
# Clear out the tmp dir
master1.clearTmpDir(__file__)
return TopologyReplication(master1, master2, master3)
<
http://vm-058-081.abc.idm.lab.eng.brq.redhat.com:8080/job/389-DS-NIGHTLY/...:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
<
http://vm-058-081.abc.idm.lab.eng.brq.redhat.com:8080/job/389-DS-NIGHTLY/...:
in __init__
master3.open()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <lib389.DirSrv object at 0x7f17bd54f210>, saslmethod = None
certdir = None, starttls = False, connOnly = False, reqcert = 1
def open(self, saslmethod=None, certdir=None, starttls=False, connOnly=False,
reqcert=ldap.OPT_X_TLS_HARD):
'\'''\'''\''
It opens a ldap bound connection to dirsrv so that online
administrative tasks are possible. It binds with the binddn
property, then it initializes various fields from DirSrv
(via __initPart2)
The state changes -> DIRSRV_STATE_ONLINE
@param self
@param saslmethod - None, or GSSAPI
@param certdir - Certificate directory for TLS
@return None
@raise LDAPError
'\'''\'''\''
uri = self.toLDAPURL()
if self.verbose:
self.log.info('\''open(): Connecting to uri %s'\'' %
uri)
if hasattr(ldap, '\''PYLDAP_VERSION'\'') and MAJOR >=
3:
super(DirSrv, self).__init__(uri, bytes_mode=False)
else:
super(DirSrv, self).__init__(uri)
if certdir:
"""
We have a certificate directory, so lets start up TLS negotiations
"""
ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, certdir)
log.debug("Using ca certificate %s" % certdir)
if certdir or starttls:
try:
# MUST be set on ldap. not the object, because pyldap is broken
# and only works if you set this globally.
ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, reqcert)
log.debug("ldap.OPT_X_TLS_REQUIRE_CERT = %s" % reqcert)
self.start_tls_s()
except ldap.LDAPError as e:
log.fatal('\''TLS negotiation failed: %s'\'' %
str(e))
raise e
if saslmethod and saslmethod.lower() == '\''gssapi'\'':
"""
Perform kerberos/gssapi authentication
"""
try:
sasl_auth = ldap.sasl.gssapi("")
self.sasl_interactive_bind_s("", sasl_auth)
except ldap.LOCAL_ERROR as e:
# No Ticket - ultimately invalid credentials
log.debug("Error: No Ticket (%s)" % str(e))
raise ldap.INVALID_CREDENTIALS
except ldap.LDAPError as e:
log.debug("SASL/GSSAPI Bind Failed: %s" % str(e))
raise e
elif saslmethod:
# Unknown or unsupported method
log.debug('\''Unsupported SASL method: %s'\'' %
saslmethod)
raise ldap.UNWILLING_TO_PERFORM
elif self.can_autobind():
# Connect via ldapi, and autobind.
# do nothing: the bind is complete.
if self.verbose:
log.info("open(): Using root autobind ...")
sasl_auth = ldap.sasl.external()
self.sasl_interactive_bind_s("", sasl_auth)
else:
"""
Do a simple bind
"""
try:
self.simple_bind_s(ensure_str(self.binddn), self.bindpw)
except ldap.SERVER_DOWN as e:
# TODO add server info in exception
log.debug("Cannot connect to %r" % uri)
raise e
E SERVER_DOWN:
{'\''desc'\'': "Can'\''t contact LDAP
server"}
<
http://vm-058-081.abc.idm.lab.eng.brq.redhat.com:8080/job/389-DS-NIGHTLY/...:
SERVER_DOWN
---------------------------- 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
('\''Update succeeded: status '\'', '\''0 Total update
succeeded'\'')
('\''Update succeeded: status '\'', '\''0 Total update
succeeded'\'')
---------------------------- Captured stderr setup -----------------------------
INFO:lib389:List backend with suffix=dc=example,dc=com
INFO:lib389:Found entry dn: cn=replrepl,cn=config
cn: bind dn pseudo user
cn: replrepl
objectClass: top
objectClass: person
sn: bind dn pseudo user
userPassword:
{SSHA512}gCLKee78+i8FXTOrV54qt3k9U2lHQEXloOVGuTZ/JmglIi02g1D43seoTE1mj8XehbPOD2xmL9dMf/LB4uyXUwltmt0TpONw
INFO:lib389:List backend with suffix=dc=example,dc=com
INFO:lib389:Found entry dn: cn=replrepl,cn=config
cn: bind dn pseudo user
cn: replrepl
objectClass: top
objectClass: person
sn: bind dn pseudo user
userPassword:
{SSHA512}W2TQP+mdNhYG610qV/ZddzgPHP1B9IT8W1oYqc4QUN4gdaxzCJ+UCwyjaCG3QjFTLL6ZHQUCcUJX38O+AgmeaoyD5afQStnu
INFO:lib389:List backend with suffix=dc=example,dc=com
INFO:lib389:Found entry dn: cn=replrepl,cn=config
cn: bind dn pseudo user
cn: replrepl
objectClass: top
objectClass: person
sn: bind dn pseudo user
userPassword:
{SSHA512}vzRIHjGx9Bu7fHwn2KzhY3EqaMg/uXOvWjK3wWrzbVZqQBCuM13LFYW7wI7ZcCK9Qz3Nc4JjcLsxEQRVDZ0GJNe2uC4piF7T
DEBUG:tickets.ticket48342_test:cn=meTo_localhost.localdomain:38942,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping
tree,cn=config created
DEBUG:tickets.ticket48342_test:cn=meTo_localhost.localdomain:38941,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping
tree,cn=config created
DEBUG:tickets.ticket48342_test:cn=meTo_localhost.localdomain:38943,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping
tree,cn=config created
DEBUG:tickets.ticket48342_test:cn=meTo_localhost.localdomain:38942,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping
tree,cn=config created
INFO:lib389:Starting total init
cn=meTo_localhost.localdomain:38942,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping
tree,cn=config
INFO:lib389:Starting total init
cn=meTo_localhost.localdomain:38943,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping
tree,cn=config
INFO:tickets.ticket48342_test:Replication is working.
==================== 524 passed, 1 error in 7482.66 seconds ===================='
+ '[' 1 -ne 0 ']'
+ echo CI Tests 'FAILED!'
CI Tests FAILED!
+ echo ============================= test session starts ==============================
platform linux2 -- Python 2.7.12, pytest-2.9.2, py-1.4.31, pluggy-0.3.1 --
/usr/bin/python2 cachedir: .cache rootdir:
<
http://vm-058-081.abc.idm.lab.eng.brq.redhat.com:8080/job/389-DS-NIGHTLY/...
inifile: plugins: sourceorder-0.5, multihost-1.0 collecting ... collected 525 items
tickets/ticket1347760_test.py::test_ticket1347760 PASSED
tickets/ticket365_test.py::test_ticket365 PASSED tickets/ticket397_test.py::test_397
PASSED tickets/ticket47313_test.py::test_ticket47313_run PASSED
tickets/ticket47384_test.py::test_ticket47384 PASSED
tickets/ticket47431_test.py::test_ticket47431_0 PASSED
tickets/ticket47431_test.py::test_ticket47431_1 PASSED
tickets/ticket47431_test.py::test_ticket47431_2 PASSED
tickets/ticket47431_test.py::test_ticket47431_3 PASSED
tickets/ticket47462_test.py::test_ticket47462 PASSED
tickets/ticket47490_test.py::test_ticket47490_init PASSED
tickets/ticket47490_test.py::test_ticket47490_one PASSED
tickets/ticket47490_test.py::test_ticket47490_two PASSED
tickets/ticket47490_test.py::test_ticket47490_three PASSED
tickets/ticket47490_test.py::test_ticket47490_four PASSED
tickets/ticket47490_test.py::test_ticket47490_five PASSED
tickets/ticket47490_test.py::test_ticket47490_six PASSED
tickets/ticket47490_test.py::test_ticket47490_seven PASSED
tickets/ticket47490_test.py::test_ticket47490_eight PASSED
tickets/ticket47490_test.py::test_ticket47490_nine PASSED
tickets/ticket47536_test.py::test_ticket47536 PASSED
tickets/ticket47553_test.py::test_ticket47553 PASSED
tickets/ticket47560_test.py::test_ticket47560 PASSED
tickets/ticket47573_test.py::test_ticket47573_init PASSED
tickets/ticket47573_test.py::test_ticket47573_one PASSED
tickets/ticket47573_test.py::test_ticket47573_two PASSED
tickets/ticket47573_test.py::test_ticket47573_three PASSED
tickets/ticket47619_test.py::test_ticket47619_init PASSED
tickets/ticket47619_test.py::test_ticket47619_create_index PASSED
tickets/ticket47619_test.py::test_ticket47619_reindex PASSED
tickets/ticket47619_test.py::test_ticket47619_check_indexed_search PASSED
tickets/ticket47640_test.py::test_ticket47640 PASSED
tickets/ticket47653MMR_test.py::test_ticket47653_init PASSED
tickets/ticket47653MMR_test.py::test_ticket47653_add PASSED
tickets/ticket47653MMR_test.py::test_ticket47653_modify PASSED
tickets/ticket47653_test.py::test_ticket47653_init PASSED
tickets/ticket47653_test.py::test_ticket47653_add PASSED
tickets/ticket47653_test.py::test_ticket47653_search PASSED
tickets/ticket47653_test.py::test_ticket47653_modify PASSED
tickets/ticket47653_test.py::test_ticket47653_delete PASSED
tickets/ticket47669_test.py::test_ticket47669_init PASSED
tickets/ticket47669_test.py::test_ticket47669_changelog_maxage PASSED
tickets/ticket47669_test.py::test_ticket47669_changelog_triminterval PASSED
tickets/ticket47669_test.py::test_ticket47669_changelog_compactdbinterval PASSED
tickets/ticket47669_test.py::test_ticket47669_retrochangelog_maxage PASSED
tickets/ticket47676_test.py::test_ticket47676_init PASSED
tickets/ticket47676_test.py::test_ticket47676_skip_oc_at PASSED
tickets/ticket47676_test.py::test_ticket47676_reject_action PASSED
tickets/ticket47714_test.py::test_ticket47714_init PASSED
tickets/ticket47714_test.py::test_ticket47714_run_0 PASSED
tickets/ticket47714_test.py::test_ticket47714_run_1 PASSED
tickets/ticket47721_test.py::test_ticket47721_init PASSED
tickets/ticket47721_test.py::test_ticket47721_0 PASSED
tickets/ticket47721_test.py::test_ticket47721_1 PASSED
tickets/ticket47721_test.py::test_ticket47721_2 PASSED
tickets/ticket47721_test.py::test_ticket47721_3 PASSED
tickets/ticket47721_test.py::test_ticket47721_4 PASSED
tickets/ticket47781_test.py::test_ticket47781 PASSED
tickets/ticket47787_test.py::test_ticket47787_init PASSED
tickets/ticket47787_test.py::test_ticket47787_2 PASSED
tickets/ticket47808_test.py::test_ticket47808_run PASSED
tickets/ticket47815_test.py::test_ticket47815 PASSED
tickets/ticket47819_test.py::test_ticket47819 PASSED
tickets/ticket47823_test.py::test_ticket47823_init PASSED
tickets/ticket47823_test.py::test_ticket47823_one_container_add PASSED
tickets/ticket47823_test.py::test_ticket47823_one_container_mod PASSED
tickets/ticket47823_test.py::test_ticket47823_one_container_modrdn PASSED
tickets/ticket47823_test.py::test_ticket47823_multi_containers_add PASSED
tickets/ticket47823_test.py::test_ticket47823_multi_containers_mod PASSED
tickets/ticket47823_test.py::test_ticket47823_multi_containers_modrdn PASSED
tickets/ticket47823_test.py::test_ticket47823_across_multi_containers_add PASSED
tickets/ticket47823_test.py::test_ticket47823_across_multi_containers_mod PASSED
tickets/ticket47823_test.py::test_ticket47823_across_multi_containers_modrdn PASSED
tickets/ticket47823_test.py::test_ticket47823_invalid_config_1 PASSED
tickets/ticket47823_test.py::test_ticket47823_invalid_config_2 PASSED
tickets/ticket47823_test.py::test_ticket47823_invalid_config_3 PASSED
tickets/ticket47823_test.py::test_ticket47823_invalid_config_4 PASSED
tickets/ticket47823_test.py::test_ticket47823_invalid_config_5 PASSED
tickets/ticket47823_test.py::test_ticket47823_invalid_config_6 PASSED
tickets/ticket47823_test.py::test_ticket47823_invalid_config_7 PASSED
tickets/ticket47828_test.py::test_ticket47828_init PASSED
tickets/ticket47828_test.py::test_ticket47828_run_0 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_1 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_2 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_3 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_4 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_5 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_6 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_7 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_8 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_9 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_10 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_11 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_12 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_13 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_14 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_15 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_16 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_17 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_18 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_19 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_20 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_21 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_22 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_23 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_24 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_25 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_26 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_27 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_28 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_29 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_30 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_31 PASSED
tickets/ticket47829_test.py::test_ticket47829_init PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_active_user_1 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_active_user_2 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_active_user_3 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_stage_user_1 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_stage_user_2 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_stage_user_3 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_out_user_1 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_out_user_2 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_out_user_3 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_active_user_modrdn_active_user_1 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_active_user_modrdn_stage_user_1 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_active_user_modrdn_out_user_1 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_modrdn_1 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_stage_user_modrdn_active_user_1 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_stage_user_modrdn_stage_user_1 PASSED
tickets/ticket47829_test.py::test_ticket47829_indirect_active_group_1 PASSED
tickets/ticket47829_test.py::test_ticket47829_indirect_active_group_2 PASSED
tickets/ticket47829_test.py::test_ticket47829_indirect_active_group_3 PASSED
tickets/ticket47829_test.py::test_ticket47829_indirect_active_group_4 PASSED
tickets/ticket47833_test.py::test_ticket47829_init PASSED
tickets/ticket47833_test.py::test_ticket47829_mod_stage_user_modrdn_stage_user_1 PASSED
tickets/ticket47869MMR_test.py::test_ticket47869_init PASSED
tickets/ticket47869MMR_test.py::test_ticket47869_check PASSED
tickets/ticket47871_test.py::test_ticket47871_init PASSED
tickets/ticket47871_test.py::test_ticket47871_1 PASSED
tickets/ticket47871_test.py::test_ticket47871_2 PASSED
tickets/ticket47900_test.py::test_ticket47900 PASSED
tickets/ticket47910_test.py::test_ticket47910_logconv_start_end_positive PASSED
tickets/ticket47910_test.py::test_ticket47910_logconv_start_end_negative PASSED
tickets/ticket47910_test.py::test_ticket47910_logconv_start_end_invalid PASSED
tickets/ticket47910_test.py::test_ticket47910_logconv_noaccesslogs PASSED
tickets/ticket47920_test.py::test_ticket47920_init PASSED
tickets/ticket47920_test.py::test_ticket47920_mod_readentry_ctrl PASSED
tickets/ticket47921_test.py::test_ticket47921 PASSED
tickets/ticket47927_test.py::test_ticket47927_init PASSED
tickets/ticket47927_test.py::test_ticket47927_one PASSED
tickets/ticket47927_test.py::test_ticket47927_two PASSED
tickets/ticket47927_test.py::test_ticket47927_three PASSED
tickets/ticket47927_test.py::test_ticket47927_four PASSED
tickets/ticket47927_test.py::test_ticket47927_five PASSED
tickets/ticket47927_test.py::test_ticket47927_six PASSED
tickets/ticket47931_test.py::test_ticket47931 PASSED
tickets/ticket47937_test.py::test_ticket47937 PASSED
tickets/ticket47950_test.py::test_ticket47950 PASSED
tickets/ticket47953_test.py::test_ticket47953 PASSED
tickets/ticket47963_test.py::test_ticket47963 PASSED
tickets/ticket47966_test.py::test_ticket47966 PASSED
tickets/ticket47970_test.py::test_ticket47970 PASSED
tickets/ticket47973_test.py::test_ticket47973 PASSED
tickets/ticket47976_test.py::test_ticket47976_init PASSED
tickets/ticket47976_test.py::test_ticket47976_1 PASSED
tickets/ticket47976_test.py::test_ticket47976_2 PASSED
tickets/ticket47976_test.py::test_ticket47976_3 PASSED
tickets/ticket47980_test.py::test_ticket47980 PASSED
tickets/ticket47981_test.py::test_ticket47981 PASSED
tickets/ticket47988_test.py::test_ticket47988_init PASSED
tickets/ticket47988_test.py::test_ticket47988_1 PASSED
tickets/ticket47988_test.py::test_ticket47988_2 PASSED
tickets/ticket47988_test.py::test_ticket47988_3 PASSED
tickets/ticket47988_test.py::test_ticket47988_4 PASSED
tickets/ticket47988_test.py::test_ticket47988_5 PASSED
tickets/ticket47988_test.py::test_ticket47988_6 PASSED
tickets/ticket48005_test.py::test_ticket48005_setup PASSED
tickets/ticket48005_test.py::test_ticket48005_memberof PASSED
tickets/ticket48005_test.py::test_ticket48005_automember PASSED
tickets/ticket48005_test.py::test_ticket48005_syntaxvalidate PASSED
tickets/ticket48005_test.py::test_ticket48005_usn PASSED
tickets/ticket48005_test.py::test_ticket48005_schemareload PASSED
tickets/ticket48013_test.py::test_ticket48013 PASSED
tickets/ticket48026_test.py::test_ticket48026 PASSED
tickets/ticket48109_test.py::test_ticket48109 PASSED
tickets/ticket48170_test.py::test_ticket48170 PASSED
tickets/ticket48194_test.py::test_init PASSED tickets/ticket48194_test.py::test_run_0
PASSED tickets/ticket48194_test.py::test_run_1 PASSED
tickets/ticket48194_test.py::test_run_2 PASSED tickets/ticket48194_test.py::test_run_3
PASSED tickets/ticket48194_test.py::test_run_4 PASSED
tickets/ticket48194_test.py::test_run_5 PASSED tickets/ticket48194_test.py::test_run_6
PASSED tickets/ticket48194_test.py::test_run_7 PASSED
tickets/ticket48194_test.py::test_run_8 PASSED tickets/ticket48194_test.py::test_run_9
PASSED tickets/ticket48194_test.py::test_run_10 PASSED
tickets/ticket48194_test.py::test_run_11 PASSED
tickets/ticket48212_test.py::test_ticket48212 PASSED
tickets/ticket48214_test.py::test_ticket48214_run PASSED
tickets/ticket48226_test.py::test_ticket48226_set_purgedelay PASSED
tickets/ticket48226_test.py::test_ticket48226_1 PASSED
tickets/ticket48228_test.py::test_ticket48228_test_global_policy PASSED
tickets/ticket48228_test.py::test_ticket48228_test_subtree_policy PASSED
tickets/ticket48233_test.py::test_ticket48233 PASSED
tickets/ticket48234_test.py::test_ticket48234 PASSED
tickets/ticket48252_test.py::test_ticket48252_setup PASSED
tickets/ticket48252_test.py::test_ticket48252_run_0 PASSED
tickets/ticket48252_test.py::test_ticket48252_run_1 PASSED
tickets/ticket48265_test.py::test_ticket48265_test PASSED
tickets/ticket48266_test.py::test_ticket48266_fractional PASSED
tickets/ticket48266_test.py::test_ticket48266_check_repl_desc PASSED
tickets/ticket48266_test.py::test_ticket48266_count_csn_evaluation PASSED
tickets/ticket48270_test.py::test_ticket48270_init PASSED
tickets/ticket48270_test.py::test_ticket48270_homeDirectory_indexed_cis PASSED
tickets/ticket48270_test.py::test_ticket48270_homeDirectory_mixed_value PASSED
tickets/ticket48270_test.py::test_ticket48270_extensible_search PASSED
tickets/ticket48272_test.py::test_ticket48272 PASSED
tickets/ticket48294_test.py::test_48294_init PASSED
tickets/ticket48294_test.py::test_48294_run_0 PASSED
tickets/ticket48294_test.py::test_48294_run_1 PASSED
tickets/ticket48294_test.py::test_48294_run_2 PASSED
tickets/ticket48295_test.py::test_48295_init PASSED
tickets/ticket48295_test.py::test_48295_run PASSED
tickets/ticket48312_test.py::test_ticket48312 PASSED
tickets/ticket48325_test.py::test_ticket48325 PASSED
tickets/ticket48342_test.py::test_ticket4026 ERROR
tickets/ticket48354_test.py::test_ticket48354 PASSED
tickets/ticket48362_test.py::test_ticket48362 PASSED
tickets/ticket48366_test.py::test_ticket48366_init PASSED
tickets/ticket48366_test.py::test_ticket48366_search_user PASSED
tickets/ticket48366_test.py::test_ticket48366_search_dm PASSED
tickets/ticket48370_test.py::test_ticket48370 PASSED
tickets/ticket48383_test.py::test_ticket48383 PASSED
tickets/ticket48497_test.py::test_ticket48497_init PASSED
tickets/ticket48497_test.py::test_ticket48497_homeDirectory_mixed_value PASSED
tickets/ticket48497_test.py::test_ticket48497_extensible_search PASSED
tickets/ticket48497_test.py::test_ticket48497_homeDirectory_index_cfg PASSED
tickets/ticket48497_test.py::test_ticket48497_homeDirectory_index_run PASSED
tickets/ticket48637_test.py::test_ticket48637 PASSED
tickets/ticket48665_test.py::test_ticket48665 PASSED
tickets/ticket48745_test.py::test_ticket48745_init PASSED
tickets/ticket48745_test.py::test_ticket48745_homeDirectory_indexed_cis PASSED
tickets/ticket48745_test.py::test_ticket48745_homeDirectory_mixed_value PASSED
tickets/ticket48745_test.py::test_ticket48745_extensible_search_after_index PASSED
tickets/ticket48746_test.py::test_ticket48746_init PASSED
tickets/ticket48746_test.py::test_ticket48746_homeDirectory_indexed_cis PASSED
tickets/ticket48746_test.py::test_ticket48746_homeDirectory_mixed_value PASSED
tickets/ticket48746_test.py::test_ticket48746_extensible_search_after_index PASSED
tickets/ticket48746_test.py::test_ticket48746_homeDirectory_indexed_ces PASSED
tickets/ticket48755_test.py::test_ticket48755 PASSED
tickets/ticket48759_test.py::test_ticket48759 PASSED
tickets/ticket48784_test.py::test_ticket48784 PASSED
tickets/ticket48798_test.py::test_ticket48798 PASSED
tickets/ticket48799_test.py::test_ticket48799 PASSED
tickets/ticket48808_test.py::test_ticket48808 PASSED
tickets/ticket48844_test.py::test_ticket48844_init PASSED
tickets/ticket48844_test.py::test_ticket48844_bitwise_on PASSED
tickets/ticket48844_test.py::test_ticket48844_bitwise_off PASSED
tickets/ticket48891_test.py::test_ticket48891_setup PASSED
tickets/ticket48893_test.py::test_ticket48893 PASSED
tickets/ticket48896_test.py::test_ticket48896 PASSED
tickets/ticket48906_test.py::test_ticket48906_setup PASSED
tickets/ticket48906_test.py::test_ticket48906_dblock_default PASSED
tickets/ticket48906_test.py::test_ticket48906_dblock_ldap_update PASSED
tickets/ticket48906_test.py::test_ticket48906_dblock_edit_update PASSED
tickets/ticket48906_test.py::test_ticket48906_dblock_robust PASSED
tickets/ticket48916_test.py::test_ticket48916 PASSED
tickets/ticket48956_test.py::test_ticket48956 PASSED
tickets/ticket48961_test.py::test_ticket48961_storagescheme PASSED
tickets/ticket48961_test.py::test_ticket48961_deleteall PASSED
tickets/ticket548_test.py::test_ticket548_test_with_no_policy PASSED
tickets/ticket548_test.py::test_ticket548_test_global_policy PASSED
tickets/ticket548_test.py::test_ticket548_test_subtree_policy PASSED
suites/acct_usability_plugin/acct_usability_test.py::test_acct_usability_init PASSED
suites/acct_usability_plugin/acct_usability_test.py::test_acct_usability_ PASSED
suites/acctpolicy_plugin/accpol_test.py::test_inact_plugin PASSED
suites/acctpolicy_plugin/acctpolicy_test.py::test_acctpolicy_init PASSED
suites/acctpolicy_plugin/acctpolicy_test.py::test_acctpolicy_ PASSED
'suites/acl/acl_test.py::test_aci_attr_subtype_targetattr[lang-ja]' PASSED
'suites/acl/acl_test.py::test_aci_attr_subtype_targetattr[binary]' PASSED
'suites/acl/acl_test.py::test_aci_attr_subtype_targetattr[phonetic]' PASSED
suites/acl/acl_test.py::test_mode_default_add_deny PASSED
suites/acl/acl_test.py::test_mode_default_delete_deny PASSED
'suites/acl/acl_test.py::test_moddn_staging_prod[0-cn=staged'
'user,dc=example,dc=com-cn=accounts,dc=example,dc=com-False]' PASSED
'suites/acl/acl_test.py::test_moddn_staging_prod[1-cn=staged'
'user,dc=example,dc=com-cn=accounts,dc=example,dc=com-False]' PASSED
'suites/acl/acl_test.py::test_moddn_staging_prod[2-cn=staged'
'user,dc=example,dc=com-cn=bad*,dc=example,dc=com-True]' PASSED
'suites/acl/acl_test.py::test_moddn_staging_prod[3-cn=st*,dc=example,dc=com-cn=accounts,dc=example,dc=com-False]'
PASSED
'suites/acl/acl_test.py::test_moddn_staging_prod[4-cn=bad*,dc=example,dc=com-cn=accounts,dc=example,dc=com-True]'
PASSED
'suites/acl/acl_test.py::test_moddn_staging_prod[5-cn=st*,dc=example,dc=com-cn=ac*,dc=example,dc=com-False]'
PASSED
'suites/acl/acl_test.py::test_moddn_staging_prod[6-None-cn=ac*,dc=example,dc=com-False]'
PASSED
'suites/acl/acl_test.py::test_moddn_staging_prod[7-cn=st*,dc=example,dc=com-None-False]'
PASSED 'suites/acl/acl_test.py::test_moddn_staging_prod[8-None-None-False]' PASSED
suites/acl/acl_test.py::test_moddn_staging_prod_9 PASSED
suites/acl/acl_test.py::test_moddn_prod_staging PASSED
suites/acl/acl_test.py::test_check_repl_M2_to_M1 PASSED
suites/acl/acl_test.py::test_moddn_staging_prod_except PASSED
suites/acl/acl_test.py::test_mode_default_ger_no_moddn PASSED
suites/acl/acl_test.py::test_mode_default_ger_with_moddn PASSED
suites/acl/acl_test.py::test_mode_switch_default_to_legacy PASSED
suites/acl/acl_test.py::test_mode_legacy_ger_no_moddn1 PASSED
suites/acl/acl_test.py::test_mode_legacy_ger_no_moddn2 PASSED
suites/acl/acl_test.py::test_mode_legacy_ger_with_moddn PASSED
suites/acl/acl_test.py::test_rdn_write_get_ger PASSED
suites/acl/acl_test.py::test_rdn_write_modrdn_anonymous PASSED
suites/attr_encryption/attr_encrypt_test.py::test_attr_encrypt_init PASSED
suites/attr_encryption/attr_encrypt_test.py::test_attr_encrypt_ PASSED
suites/attr_uniqueness_plugin/attr_uniqueness_test.py::test_attr_uniqueness_init PASSED
suites/attr_uniqueness_plugin/attr_uniqueness_test.py::test_attr_uniqueness PASSED
suites/automember_plugin/automember_test.py::test_automember_init PASSED
suites/automember_plugin/automember_test.py::test_automember_ PASSED
suites/basic/basic_test.py::test_basic_ops PASSED
suites/basic/basic_test.py::test_basic_import_export PASSED
suites/basic/basic_test.py::test_basic_backup PASSED
suites/basic/basic_test.py::test_basic_acl PASSED
suites/basic/basic_test.py::test_basic_searches PASSED
suites/basic/basic_test.py::test_basic_referrals PASSED
suites/basic/basic_test.py::test_basic_systemctl PASSED
suites/basic/basic_test.py::test_basic_ldapagent PASSED
suites/basic/basic_test.py::test_basic_dse PASSED
'suites/basic/basic_test.py::test_def_rootdse_attr[namingContexts]' PASSED
'suites/basic/basic_test.py::test_def_rootdse_attr[supportedLDAPVersion]' PASSED
'suites/basic/basic_test.py::test_def_rootdse_attr[supportedControl]' PASSED
'suites/basic/basic_test.py::test_def_rootdse_attr[supportedExtension]' PASSED
'suites/basic/basic_test.py::test_def_rootdse_attr[supportedSASLMechanisms]'
PASSED 'suites/basic/basic_test.py::test_def_rootdse_attr[vendorName]' PASSED
'suites/basic/basic_test.py::test_def_rootdse_attr[vendorVersion]' PASSED
'suites/basic/basic_test.py::test_mod_def_rootdse_attr[namingContexts]' PASSED
'suites/basic/basic_test.py::test_mod_def_rootdse_attr[supportedLDAPVersion]'
PASSED 'suites/basic/basic_test.py::test_mod_def_rootdse_attr[supportedControl]'
PASSED 'suites/basic/basic_test.py::test_mod_def_rootdse_attr[supportedExtension]'
PASSED
'suites/basic/basic_test.py::test_mod_def_rootdse_attr[supportedSASLMechanisms]'
PASSED 'suites/basic/basic_test.py::test_mod_def_rootdse_attr[vendorName]' PASSED
'suites/basic/basic_test.py::test_mod_def_rootdse_attr[vendorVersion]' PASSED
suites/betxns/betxn_test.py::test_betxn_init PASSED
suites/betxns/betxn_test.py::test_betxt_7bit PASSED
suites/betxns/betxn_test.py::test_betxn_attr_uniqueness PASSED
suites/betxns/betxn_test.py::test_betxn_memberof PASSED
suites/chaining_plugin/chaining_test.py::test_chaining_init PASSED
suites/chaining_plugin/chaining_test.py::test_chaining_ PASSED
suites/clu/clu_test.py::test_clu_init PASSED suites/clu/clu_test.py::test_clu_pwdhash
PASSED suites/clu/db2ldif_test.py::test_db2ldif_init PASSED
suites/collation_plugin/collatation_test.py::test_collatation_init PASSED
suites/collation_plugin/collatation_test.py::test_collatation_ PASSED
suites/config/config_test.py::test_maxbersize_repl PASSED
suites/config/config_test.py::test_config_listen_backport_size PASSED
suites/config/config_test.py::test_config_deadlock_policy PASSED
suites/cos_plugin/cos_test.py::test_cos_init PASSED
suites/cos_plugin/cos_test.py::test_cos_ PASSED
suites/deref_plugin/deref_test.py::test_deref_init PASSED
suites/deref_plugin/deref_test.py::test_deref_ PASSED
suites/disk_monitoring/disk_monitor_test.py::test_disk_monitor_init PASSED
suites/disk_monitoring/disk_monitor_test.py::test_disk_monitor_ PASSED
suites/distrib_plugin/distrib_test.py::test_distrib_init PASSED
suites/distrib_plugin/distrib_test.py::test_distrib_ PASSED
suites/dna_plugin/dna_test.py::test_dna_init PASSED
suites/dna_plugin/dna_test.py::test_dna_ PASSED
suites/ds_logs/ds_logs_test.py::test_ds_logs_init PASSED
suites/ds_logs/ds_logs_test.py::test_ds_logs_ PASSED
suites/dynamic-plugins/test_dynamic_plugins.py::test_dynamic_plugins PASSED
suites/filter/filter_test.py::test_filter_init PASSED
suites/filter/filter_test.py::test_filter_escaped PASSED
suites/filter/filter_test.py::test_filter_search_original_attrs PASSED
suites/filter/rfc3673_all_oper_attrs_test.py::test_supported_features PASSED
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-False-oper_attr_list0]'
PASSED
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-False-oper_attr_list0-*]'
PASSED
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-False-oper_attr_list0-objectClass]'
PASSED
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-True-oper_attr_list1]'
PASSED
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-True-oper_attr_list1-*]'
PASSED
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-True-oper_attr_list1-objectClass]'
PASSED
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-False-oper_attr_list2]'
PASSED
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-False-oper_attr_list2-*]'
PASSED
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-False-oper_attr_list2-objectClass]'
PASSED
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-True-oper_attr_list3]'
PASSED
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-True-oper_attr_list3-*]'
PASSED
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-True-oper_attr_list3-objectClass]'
PASSED
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-False-oper_attr_list4]'
PASSED
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-False-oper_attr_list4-*]'
PASSED
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-False-oper_attr_list4-objectClass]'
PASSED
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-True-oper_attr_list5]'
PASSED
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-True-oper_attr_list5-*]'
PASSED
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-True-oper_attr_list5-objectClass]'
PASSED
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[cn=config-False-oper_attr_list6]'
PASSED
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[cn=config-False-oper_attr_list6-*]'
PASSED
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[cn=config-False-oper_attr_list6-objectClass]'
PASSED suites/get_effective_rights/ger_test.py::test_ger_init PASSED
suites/get_effective_rights/ger_test.py::test_ger_ PASSED
suites/gssapi_repl/gssapi_repl_test.py::test_gssapi_repl PASSED
suites/ldapi/ldapi_test.py::test_ldapi_init PASSED suites/ldapi/ldapi_test.py::test_ldapi_
PASSED suites/linkedattrs_plugin/linked_attrs_test.py::test_linked_attrs_init PASSED
suites/linkedattrs_plugin/linked_attrs_test.py::test_linked_attrs_ PASSED
suites/mapping_tree/mapping_tree_test.py::test_mapping_tree_init PASSED
suites/mapping_tree/mapping_tree_test.py::test_mapping_tree_ PASSED
suites/memberof_plugin/memberof_test.py::test_memberof_auto_add_oc PASSED
suites/memory_leaks/range_search_test.py::test_range_search_init PASSED
suites/memory_leaks/range_search_test.py::test_range_search PASSED
suites/monitor/monitor_test.py::test_monitor_init PASSED
suites/monitor/monitor_test.py::test_monitor_ PASSED
'suites/paged_results/paged_results_test.py::test_search_success[6-5]' PASSED
'suites/paged_results/paged_results_test.py::test_search_success[5-5]' PASSED
'suites/paged_results/paged_results_test.py::test_search_success[5-25]' PASSED
'suites/paged_results/paged_results_test.py::test_search_limits_fail[50-200-cn=config,cn=ldbm'
'database,cn=plugins,cn=config-nsslapd-idlistscanlimit-100-UNWILLING_TO_PERFORM]'
PASSED
'suites/paged_results/paged_results_test.py::test_search_limits_fail[5-15-cn=config-nsslapd-timelimit-20-UNAVAILABLE_CRITICAL_EXTENSION]'
PASSED
'suites/paged_results/paged_results_test.py::test_search_limits_fail[21-50-cn=config-nsslapd-sizelimit-20-SIZELIMIT_EXCEEDED]'
PASSED
'suites/paged_results/paged_results_test.py::test_search_limits_fail[21-50-cn=config-nsslapd-pagedsizelimit-5-SIZELIMIT_EXCEEDED]'
PASSED
'suites/paged_results/paged_results_test.py::test_search_limits_fail[5-50-cn=config,cn=ldbm'
'database,cn=plugins,cn=config-nsslapd-lookthroughlimit-20-ADMINLIMIT_EXCEEDED]'
PASSED suites/paged_results/paged_results_test.py::test_search_sort_success PASSED
suites/paged_results/paged_results_test.py::test_search_abandon PASSED
suites/paged_results/paged_results_test.py::test_search_with_timelimit PASSED
'suites/paged_results/paged_results_test.py::test_search_dns_ip_aci[dns' =
'"localhost.localdomain"]' PASSED
'suites/paged_results/paged_results_test.py::test_search_dns_ip_aci[ip' =
'"::1"' or ip = '"127.0.0.1"]' PASSED
suites/paged_results/paged_results_test.py::test_search_multiple_paging PASSED
'suites/paged_results/paged_results_test.py::test_search_invalid_cookie[1000]'
PASSED
'suites/paged_results/paged_results_test.py::test_search_invalid_cookie[-1]'
PASSED suites/paged_results/paged_results_test.py::test_search_abandon_with_zero_size
PASSED suites/paged_results/paged_results_test.py::test_search_pagedsizelimit_success
PASSED
'suites/paged_results/paged_results_test.py::test_search_nspagedsizelimit[5-15-PASS]'
PASSED
'suites/paged_results/paged_results_test.py::test_search_nspagedsizelimit[15-5-SIZELIMIT_EXCEEDED]'
PASSED
'suites/paged_results/paged_results_test.py::test_search_paged_limits[conf_attr_values0-ADMINLIMIT_EXCEEDED]'
PASSED
'suites/paged_results/paged_results_test.py::test_search_paged_limits[conf_attr_values1-PASS]'
PASSED
'suites/paged_results/paged_results_test.py::test_search_paged_user_limits[conf_attr_values0-ADMINLIMIT_EXCEEDED]'
PASSED
'suites/paged_results/paged_results_test.py::test_search_paged_user_limits[conf_attr_values1-PASS]'
PASSED suites/paged_results/paged_results_test.py::test_ger_basic PASSED
suites/paged_results/paged_results_test.py::test_multi_suffix_search PASSED
'suites/paged_results/paged_results_test.py::test_maxsimplepaged_per_conn_success[None]'
PASSED
'suites/paged_results/paged_results_test.py::test_maxsimplepaged_per_conn_success[-1]'
PASSED
'suites/paged_results/paged_results_test.py::test_maxsimplepaged_per_conn_success[1000]'
PASSED
'suites/paged_results/paged_results_test.py::test_maxsimplepaged_per_conn_failure[0]'
PASSED
'suites/paged_results/paged_results_test.py::test_maxsimplepaged_per_conn_failure[1]'
PASSED suites/pam_passthru_plugin/pam_test.py::test_pam_init PASSED
suites/pam_passthru_plugin/pam_test.py::test_pam_ PASSED
suites/passthru_plugin/passthru_test.py::test_passthru_init PASSED
suites/passthru_plugin/passthru_test.py::test_passthru_ PASSED
suites/password/password_test.py::test_password_init PASSED
suites/password/password_test.py::test_password_delete_specific_password PASSED
suites/password/pwdAdmin_test.py::test_pwdAdmin_init PASSED
suites/password/pwdAdmin_test.py::test_pwdAdmin PASSED
suites/password/pwdAdmin_test.py::test_pwdAdmin_config_validation PASSED
'suites/password/pwdPolicy_attribute_test.py::test_change_pwd[on-off-UNWILLING_TO_PERFORM]'
PASSED
'suites/password/pwdPolicy_attribute_test.py::test_change_pwd[off-off-UNWILLING_TO_PERFORM]'
PASSED 'suites/password/pwdPolicy_attribute_test.py::test_change_pwd[off-on-None]'
PASSED 'suites/password/pwdPolicy_attribute_test.py::test_change_pwd[on-on-None]'
PASSED suites/password/pwdPolicy_attribute_test.py::test_pwd_min_age PASSED
'suites/password/pwdPolicy_inherit_global_test.py::test_entry_has_no_restrictions[off-off]'
PASSED
'suites/password/pwdPolicy_inherit_global_test.py::test_entry_has_no_restrictions[on-off]'
PASSED
'suites/password/pwdPolicy_inherit_global_test.py::test_entry_has_no_restrictions[off-on]'
PASSED
'suites/password/pwdPolicy_inherit_global_test.py::test_entry_has_restrictions[cn=config]'
PASSED
'suites/password/pwdPolicy_inherit_global_test.py::test_entry_has_restrictions[cn="cn=nsPwPolicyEntry,ou=People,dc=example,dc=com",cn=nsPwPolicyContainer,ou=People,dc=example,dc=com]'
PASSED suites/password/pwdPolicy_syntax_test.py::test_pwdPolicy_syntax PASSED
'suites/password/pwdPolicy_warning_test.py::test_different_values[' ']'
PASSED 'suites/password/pwdPolicy_warning_test.py::test_different_values[junk123]'
PASSED 'suites/password/pwdPolicy_warning_test.py::test_different_values[on]'
PASSED 'suites/password/pwdPolicy_warning_test.py::test_different_values[off]'
PASSED suites/password/pwdPolicy_warning_test.py::test_expiry_time PASSED
'suites/password/pwdPolicy_warning_test.py::test_password_warning[passwordSendExpiringTime-off]'
PASSED
'suites/password/pwdPolicy_warning_test.py::test_password_warning[passwordWarning-3600]'
PASSED suites/password/pwdPolicy_warning_test.py::test_with_different_password_states
PASSED suites/password/pwdPolicy_warning_test.py::test_default_behavior PASSED
suites/password/pwdPolicy_warning_test.py::test_with_local_policy PASSED
suites/password/pwd_algo_test.py::test_pwd_algo_test PASSED
suites/password/pwp_history_test.py::test_pwp_history_test PASSED
suites/posix_winsync_plugin/posix_winsync_test.py::test_posix_winsync_init PASSED
suites/posix_winsync_plugin/posix_winsync_test.py::test_posix_winsync_ PASSED
suites/psearch/psearch_test.py::test_psearch_init PASSED
suites/psearch/psearch_test.py::test_psearch_ PASSED
suites/referint_plugin/referint_test.py::test_referint_init PASSED
suites/referint_plugin/referint_test.py::test_referint_ PASSED
suites/replication/cleanallruv_test.py::test_cleanallruv_init PASSED
suites/replication/cleanallruv_test.py::test_cleanallruv_clean PASSED
suites/replication/cleanallruv_test.py::test_cleanallruv_clean_restart PASSED
suites/replication/cleanallruv_test.py::test_cleanallruv_clean_force PASSED
suites/replication/cleanallruv_test.py::test_cleanallruv_abort PASSED
suites/replication/cleanallruv_test.py::test_cleanallruv_abort_restart PASSED
suites/replication/cleanallruv_test.py::test_cleanallruv_abort_certify PASSED
suites/replication/cleanallruv_test.py::test_cleanallruv_stress_clean PASSED
suites/replication/wait_for_async_feature_test.py::test_not_int_value PASSED
suites/replication/wait_for_async_feature_test.py::test_multi_value PASSED
'suites/replication/wait_for_async_feature_test.py::test_value_check[waitfor_async_attr0]'
PASSED
'suites/replication/wait_for_async_feature_test.py::test_value_check[waitfor_async_attr1]'
PASSED
'suites/replication/wait_for_async_feature_test.py::test_value_check[waitfor_async_attr2]'
PASSED
'suites/replication/wait_for_async_feature_test.py::test_value_check[waitfor_async_attr3]'
PASSED
'suites/replication/wait_for_async_feature_test.py::test_behavior_with_value[waitfor_async_attr0]'
PASSED
'suites/replication/wait_for_async_feature_test.py::test_behavior_with_value[waitfor_async_attr1]'
PASSED
'suites/replication/wait_for_async_feature_test.py::test_behavior_with_value[waitfor_async_attr2]'
PASSED
'suites/replication/wait_for_async_feature_test.py::test_behavior_with_value[waitfor_async_attr3]'
PASSED suites/replsync_plugin/repl_sync_test.py::test_repl_sync_init PASSED
suites/replsync_plugin/repl_sync_test.py::test_repl_sync_ PASSED
suites/resource_limits/res_limits_test.py::test_res_limits_init PASSED
suites/resource_limits/res_limits_test.py::test_res_limits_ PASSED
suites/retrocl_plugin/retrocl_test.py::test_retrocl_init PASSED
suites/retrocl_plugin/retrocl_test.py::test_retrocl_ PASSED
suites/reverpwd_plugin/reverpwd_test.py::test_reverpwd_init PASSED
suites/reverpwd_plugin/reverpwd_test.py::test_reverpwd_ PASSED
suites/roles_plugin/roles_test.py::test_roles_init PASSED
suites/roles_plugin/roles_test.py::test_roles_ PASSED
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_init PASSED
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_access_specific_time PASSED
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_access_day_of_week PASSED
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_access_denied_ip PASSED
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_access_denied_host PASSED
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_access_allowed_ip PASSED
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_access_allowed_host PASSED
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_config_validate PASSED
suites/sasl/sasl_test.py::test_sasl_init PASSED suites/sasl/sasl_test.py::test_sasl_
PASSED suites/schema/test_schema.py::test_schema_comparewithfiles PASSED
suites/schema_reload_plugin/schema_reload_test.py::test_schema_reload_init PASSED
suites/schema_reload_plugin/schema_reload_test.py::test_schema_reload_ PASSED
suites/snmp/snmp_test.py::test_snmp_init PASSED suites/snmp/snmp_test.py::test_snmp_
PASSED suites/ssl/ssl_test.py::test_ssl_init PASSED suites/ssl/ssl_test.py::test_ssl_
PASSED suites/syntax_plugin/syntax_test.py::test_syntax_init PASSED
suites/syntax_plugin/syntax_test.py::test_syntax_ PASSED
suites/usn_plugin/usn_test.py::test_usn_init PASSED
suites/usn_plugin/usn_test.py::test_usn_ PASSED
suites/views_plugin/views_test.py::test_views_init PASSED
suites/views_plugin/views_test.py::test_views_ PASSED
suites/vlv/vlv_test.py::test_vlv_init PASSED suites/vlv/vlv_test.py::test_vlv_ PASSED
suites/whoami_plugin/whoami_test.py::test_whoami_init PASSED
suites/whoami_plugin/whoami_test.py::test_whoami_ PASSED
==================================== ERRORS ====================================
______________________ ERROR at setup of test_ticket4026 _______________________ request =
'<SubRequest' ''\''topology'\''' for
'<Function' ''\''test_ticket4026'\''>>'
'(a)pytest.fixture(scope="module")' def 'topology(request):'
global installation1_prefix if installation1_prefix:
'args_instance[SER_DEPLOYED_DIR]' = installation1_prefix '#' Creating
master 1... master1 = 'DirSrv(verbose=False)' if installation1_prefix:
'args_instance[SER_DEPLOYED_DIR]' = installation1_prefix
'args_instance[SER_HOST]' = HOST_MASTER_1 'args_instance[SER_PORT]' =
PORT_MASTER_1 'args_instance[SER_SERVERID_PROP]' = SERVERID_MASTER_1
'args_instance[SER_CREATION_SUFFIX]' = DEFAULT_SUFFIX args_master =
'args_instance.copy()' 'master1.allocate(args_master)' instance_master1 =
'master1.exists()' if instance_master1: 'master1.delete()'
'master1.create()' 'master1.open()'
'master1.replica.enableReplication(suffix=SUFFIX,' role=REPLICAROLE_MASTER,
'replicaId=REPLICAID_MASTER_1)' '#' Creating master 2... master2 =
'DirSrv(verbose=False)' if installation1_prefix:
'args_instance[SER_DEPLOYED_DIR]' = installation1_prefix
'args_instance[SER_HOST]' = HOST_MASTER_2 'args_instance[SER_PORT]' =
PORT_MASTER_2 'args_instance[SER_SERVERID_PROP]' = SERVERID_MASTER_2
'args_instance[SER_CREATION_SUFFIX]' = DEFAULT_SUFFIX args_master =
'args_instance.copy()' 'master2.allocate(args_master)' instance_master2 =
'master2.exists()' if instance_master2: 'master2.delete()'
'master2.create()' 'master2.open()'
'master2.replica.enableReplication(suffix=SUFFIX,' role=REPLICAROLE_MASTER,
'replicaId=REPLICAID_MASTER_2)' '#' Creating master 3... master3 =
'DirSrv(verbose=False)' if installation1_prefix:
'args_instance[SER_DEPLOYED_DIR]' = installation1_prefix
'args_instance[SER_HOST]' = HOST_MASTER_3 'args_instance[SER_PORT]' =
PORT_MASTER_3 'args_instance[SER_SERVERID_PROP]' = SERVERID_MASTER_3
'args_instance[SER_CREATION_SUFFIX]' = DEFAULT_SUFFIX args_master =
'args_instance.copy()' 'master3.allocate(args_master)' instance_master3 =
'master3.exists()' if instance_master3: 'master3.delete()'
'master3.create()' 'master3.open()'
'master3.replica.enableReplication(suffix=SUFFIX,' role=REPLICAROLE_MASTER,
'replicaId=REPLICAID_MASTER_3)' '#' '#' Create all the agreements
'#' '#' Creating agreement from master 1 to master 2 properties =
'{RA_BINDDN:' 'defaultProperties[REPLICATION_BIND_DN],' RA_BINDPW:
'defaultProperties[REPLICATION_BIND_PW],' RA_METHOD:
'defaultProperties[REPLICATION_BIND_METHOD],' RA_TRANSPORT_PROT:
'defaultProperties[REPLICATION_TRANSPORT]}' m1_m2_agmt =
'master1.agreement.create(suffix=SUFFIX,' host=master2.host, port=master2.port,
'properties=properties)' if not m1_m2_agmt: 'log.fatal("Fail' to
create a master '->' master replica 'agreement")'
'sys.exit(1)' 'log.debug("%s' 'created"' %
'm1_m2_agmt)' '#' Creating agreement from master 1 to master 3 '#'
properties = '{RA_NAME:'
'r'\''meTo_$host:$port'\'',' '#' RA_BINDDN:
'defaultProperties[REPLICATION_BIND_DN],' '#' RA_BINDPW:
'defaultProperties[REPLICATION_BIND_PW],' '#' RA_METHOD:
'defaultProperties[REPLICATION_BIND_METHOD],' '#' RA_TRANSPORT_PROT:
'defaultProperties[REPLICATION_TRANSPORT]}' '#' m1_m3_agmt =
'master1.agreement.create(suffix=SUFFIX,' host=master3.host, port=master3.port,
'properties=properties)' '#' if not m1_m3_agmt: '#'
'log.fatal("Fail' to create a master '->' master replica
'agreement")' '#' 'sys.exit(1)' '#'
'log.debug("%s' 'created"' % 'm1_m3_agmt)' '#'
Creating agreement from master 2 to master 1 properties = '{RA_BINDDN:'
'defaultProperties[REPLICATION_BIND_DN],' RA_BINDPW:
'defaultProperties[REPLICATION_BIND_PW],' RA_METHOD:
'defaultProperties[REPLICATION_BIND_METHOD],' RA_TRANSPORT_PROT:
'defaultProperties[REPLICATION_TRANSPORT]}' m2_m1_agmt =
'master2.agreement.create(suffix=SUFFIX,' host=master1.host, port=master1.port,
'properties=properties)' if not m2_m1_agmt: 'log.fatal("Fail' to
create a master '->' master replica 'agreement")'
'sys.exit(1)' 'log.debug("%s' 'created"' %
'm2_m1_agmt)' '#' Creating agreement from master 2 to master 3 properties
= '{RA_BINDDN:' 'defaultProperties[REPLICATION_BIND_DN],' RA_BINDPW:
'defaultProperties[REPLICATION_BIND_PW],' RA_METHOD:
'defaultProperties[REPLICATION_BIND_METHOD],' RA_TRANSPORT_PROT:
'defaultProperties[REPLICATION_TRANSPORT]}' m2_m3_agmt =
'master2.agreement.create(suffix=SUFFIX,' host=master3.host, port=master3.port,
'properties=properties)' if not m2_m3_agmt: 'log.fatal("Fail' to
create a master '->' master replica 'agreement")'
'sys.exit(1)' 'log.debug("%s' 'created"' %
'm2_m3_agmt)' '#' Creating agreement from master 3 to master 1 '#'
properties = '{RA_NAME:'
'r'\''meTo_$host:$port'\'',' '#' RA_BINDDN:
'defaultProperties[REPLICATION_BIND_DN],' '#' RA_BINDPW:
'defaultProperties[REPLICATION_BIND_PW],' '#' RA_METHOD:
'defaultProperties[REPLICATION_BIND_METHOD],' '#' RA_TRANSPORT_PROT:
'defaultProperties[REPLICATION_TRANSPORT]}' '#' m3_m1_agmt =
'master3.agreement.create(suffix=SUFFIX,' host=master1.host, port=master1.port,
'properties=properties)' '#' if not m3_m1_agmt: '#'
'log.fatal("Fail' to create a master '->' master replica
'agreement")' '#' 'sys.exit(1)' '#'
'log.debug("%s' 'created"' % 'm3_m1_agmt)' '#'
Creating agreement from master 3 to master 2 properties = '{RA_BINDDN:'
'defaultProperties[REPLICATION_BIND_DN],' RA_BINDPW:
'defaultProperties[REPLICATION_BIND_PW],' RA_METHOD:
'defaultProperties[REPLICATION_BIND_METHOD],' RA_TRANSPORT_PROT:
'defaultProperties[REPLICATION_TRANSPORT]}' m3_m2_agmt =
'master3.agreement.create(suffix=SUFFIX,' host=master2.host, port=master2.port,
'properties=properties)' if not m3_m2_agmt: 'log.fatal("Fail' to
create a master '->' master replica 'agreement")'
'sys.exit(1)' 'log.debug("%s' 'created"' %
'm3_m2_agmt)' '#' Allow the replicas to get situated with the new
agreements... 'time.sleep(5)' '#' '#' Initialize all the
agreements '#' 'master1.agreement.init(SUFFIX,' HOST_MASTER_2,
'PORT_MASTER_2)' 'master1.waitForReplInit(m1_m2_agmt)'
'time.sleep(5)' '#' just to be safe
'master2.agreement.init(SUFFIX,' HOST_MASTER_3, 'PORT_MASTER_3)'
'master2.waitForReplInit(m2_m3_agmt)' '#' Check replication is working...
if 'master1.testReplication(DEFAULT_SUFFIX,' 'master2):'
'log.info('\''Replication' is 'working.'\'')'
else: 'log.fatal('\''Replication' is not
'working.'\'')' assert False '#' Delete each instance in the
end def 'fin():' for master in '(master1,' master2, 'master3):'
'master.delete()' 'request.addfinalizer(fin)' '#' Clear out the
tmp dir 'master1.clearTmpDir(__file__)' '>' return
'TopologyReplication(master1,' master2, 'master3)'
<
http://vm-058-081.abc.idm.lab.eng.brq.redhat.com:8080/job/389-DS-NIGHTLY/...:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
<
http://vm-058-081.abc.idm.lab.eng.brq.redhat.com:8080/job/389-DS-NIGHTLY/...:
in __init__ 'master3.open()' _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ self = '<lib389.DirSrv' object at
'0x7f17bd54f210>,' saslmethod = None certdir = None, starttls = False, connOnly
= False, reqcert = 1 def 'open(self,' saslmethod=None, certdir=None,
starttls=False, connOnly=False, 'reqcert=ldap.OPT_X_TLS_HARD):'
''\'''\'''\''' It opens a ldap bound
connection to dirsrv so that online administrative tasks are possible. It binds with the
binddn property, then it initializes various fields from DirSrv '(via'
'__initPart2)' The state changes '->' DIRSRV_STATE_ONLINE @param self
@param saslmethod - None, or GSSAPI @param certdir - Certificate directory for TLS @return
None @raise LDAPError ''\'''\'''\''' uri =
'self.toLDAPURL()' if self.verbose:
'self.log.info('\''open():' Connecting to uri
'%s'\''' % 'uri)' if 'hasattr(ldap,'
''\''PYLDAP_VERSION'\'')' and MAJOR '>=' 3:
'super(DirSrv,' 'self).__init__(uri,' 'bytes_mode=False)' else:
'super(DirSrv,' 'self).__init__(uri)' if certdir:
'"""' We have a certificate directory, so lets start up TLS
negotiations '"""'
'ldap.set_option(ldap.OPT_X_TLS_CACERTDIR,' 'certdir)'
'log.debug("Using' ca certificate '%s"' % 'certdir)' if
certdir or starttls: try: '#' MUST be set on ldap. not the object, because pyldap
is broken '#' and only works if you set this globally.
'ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT,' 'reqcert)'
'log.debug("ldap.OPT_X_TLS_REQUIRE_CERT' = '%s"' %
'reqcert)' 'self.start_tls_s()' except ldap.LDAPError as e:
'log.fatal('\''TLS' negotiation failed: '%s'\''' %
'str(e))' raise e if saslmethod and 'saslmethod.lower()' ==
''\''gssapi'\'':' '"""' Perform
kerberos/gssapi authentication '"""' try: sasl_auth =
'ldap.sasl.gssapi("")'
'self.sasl_interactive_bind_s("",' 'sasl_auth)' except
ldap.LOCAL_ERROR as e: '#' No Ticket - ultimately invalid credentials
'log.debug("Error:' No Ticket '(%s)"' % 'str(e))' raise
ldap.INVALID_CREDENTIALS except ldap.LDAPError as e: 'log.debug("SASL/GSSAPI'
Bind Failed: '%s"' % 'str(e))' raise e elif saslmethod: '#'
Unknown or unsupported method 'log.debug('\''Unsupported' SASL method:
'%s'\''' % 'saslmethod)' raise ldap.UNWILLING_TO_PERFORM elif
'self.can_autobind():' '#' Connect via ldapi, and autobind. '#' do
nothing: the bind is complete. if self.verbose: 'log.info("open():' Using
root autobind '...")' sasl_auth = 'ldap.sasl.external()'
'self.sasl_interactive_bind_s("",' 'sasl_auth)' else:
'"""' Do a simple bind '"""' try:
'self.simple_bind_s(ensure_str(self.binddn),' 'self.bindpw)' except
ldap.SERVER_DOWN as e: '#' TODO add server info in exception
'log.debug("Cannot' connect to '%r"' % 'uri)'
'>' raise e E SERVER_DOWN: '{'\''desc'\'':'
'"Can'\''t' contact LDAP 'server"}'
<
http://vm-058-081.abc.idm.lab.eng.brq.redhat.com:8080/job/389-DS-NIGHTLY/...:
SERVER_DOWN ---------------------------- 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
'('\''Update' succeeded: status ''\'','
''\''0' Total update 'succeeded'\'')'
'('\''Update' succeeded: status ''\'','
''\''0' Total update 'succeeded'\'')'
---------------------------- Captured stderr setup -----------------------------
INFO:lib389:List backend with suffix=dc=example,dc=com INFO:lib389:Found entry dn:
cn=replrepl,cn=config cn: bind dn pseudo user cn: replrepl objectClass: top objectClass:
person sn: bind dn pseudo user userPassword:
'{SSHA512}gCLKee78+i8FXTOrV54qt3k9U2lHQEXloOVGuTZ/JmglIi02g1D43seoTE1mj8XehbPOD2xmL9dMf/LB4uyXUwltmt0TpONw'
INFO:lib389:List backend with suffix=dc=example,dc=com INFO:lib389:Found entry dn:
cn=replrepl,cn=config cn: bind dn pseudo user cn: replrepl objectClass: top objectClass:
person sn: bind dn pseudo user userPassword:
'{SSHA512}W2TQP+mdNhYG610qV/ZddzgPHP1B9IT8W1oYqc4QUN4gdaxzCJ+UCwyjaCG3QjFTLL6ZHQUCcUJX38O+AgmeaoyD5afQStnu'
INFO:lib389:List backend with suffix=dc=example,dc=com INFO:lib389:Found entry dn:
cn=replrepl,cn=config cn: bind dn pseudo user cn: replrepl objectClass: top objectClass:
person sn: bind dn pseudo user userPassword:
'{SSHA512}vzRIHjGx9Bu7fHwn2KzhY3EqaMg/uXOvWjK3wWrzbVZqQBCuM13LFYW7wI7ZcCK9Qz3Nc4JjcLsxEQRVDZ0GJNe2uC4piF7T'
'DEBUG:tickets.ticket48342_test:cn=meTo_localhost.localdomain:38942,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping'
tree,cn=config created
'DEBUG:tickets.ticket48342_test:cn=meTo_localhost.localdomain:38941,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping'
tree,cn=config created
'DEBUG:tickets.ticket48342_test:cn=meTo_localhost.localdomain:38943,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping'
tree,cn=config created
'DEBUG:tickets.ticket48342_test:cn=meTo_localhost.localdomain:38942,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping'
tree,cn=config created INFO:lib389:Starting total init
'cn=meTo_localhost.localdomain:38942,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping'
tree,cn=config INFO:lib389:Starting total init
'cn=meTo_localhost.localdomain:38943,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping'
tree,cn=config INFO:tickets.ticket48342_test:Replication is working. ====================
524 passed, 1 error in 7482.66 seconds ====================
============================= test session starts ============================== platform
linux2 -- Python 2.7.12, pytest-2.9.2, py-1.4.31, pluggy-0.3.1 -- /usr/bin/python2
cachedir: .cache rootdir:
<
http://vm-058-081.abc.idm.lab.eng.brq.redhat.com:8080/job/389-DS-NIGHTLY/...
inifile: plugins: sourceorder-0.5, multihost-1.0 collecting ... collected 525 items
tickets/ticket1347760_test.py::test_ticket1347760 PASSED
tickets/ticket365_test.py::test_ticket365 PASSED tickets/ticket397_test.py::test_397
PASSED tickets/ticket47313_test.py::test_ticket47313_run PASSED
tickets/ticket47384_test.py::test_ticket47384 PASSED
tickets/ticket47431_test.py::test_ticket47431_0 PASSED
tickets/ticket47431_test.py::test_ticket47431_1 PASSED
tickets/ticket47431_test.py::test_ticket47431_2 PASSED
tickets/ticket47431_test.py::test_ticket47431_3 PASSED
tickets/ticket47462_test.py::test_ticket47462 PASSED
tickets/ticket47490_test.py::test_ticket47490_init PASSED
tickets/ticket47490_test.py::test_ticket47490_one PASSED
tickets/ticket47490_test.py::test_ticket47490_two PASSED
tickets/ticket47490_test.py::test_ticket47490_three PASSED
tickets/ticket47490_test.py::test_ticket47490_four PASSED
tickets/ticket47490_test.py::test_ticket47490_five PASSED
tickets/ticket47490_test.py::test_ticket47490_six PASSED
tickets/ticket47490_test.py::test_ticket47490_seven PASSED
tickets/ticket47490_test.py::test_ticket47490_eight PASSED
tickets/ticket47490_test.py::test_ticket47490_nine PASSED
tickets/ticket47536_test.py::test_ticket47536 PASSED
tickets/ticket47553_test.py::test_ticket47553 PASSED
tickets/ticket47560_test.py::test_ticket47560 PASSED
tickets/ticket47573_test.py::test_ticket47573_init PASSED
tickets/ticket47573_test.py::test_ticket47573_one PASSED
tickets/ticket47573_test.py::test_ticket47573_two PASSED
tickets/ticket47573_test.py::test_ticket47573_three PASSED
tickets/ticket47619_test.py::test_ticket47619_init PASSED
tickets/ticket47619_test.py::test_ticket47619_create_index PASSED
tickets/ticket47619_test.py::test_ticket47619_reindex PASSED
tickets/ticket47619_test.py::test_ticket47619_check_indexed_search PASSED
tickets/ticket47640_test.py::test_ticket47640 PASSED
tickets/ticket47653MMR_test.py::test_ticket47653_init PASSED
tickets/ticket47653MMR_test.py::test_ticket47653_add PASSED
tickets/ticket47653MMR_test.py::test_ticket47653_modify PASSED
tickets/ticket47653_test.py::test_ticket47653_init PASSED
tickets/ticket47653_test.py::test_ticket47653_add PASSED
tickets/ticket47653_test.py::test_ticket47653_search PASSED
tickets/ticket47653_test.py::test_ticket47653_modify PASSED
tickets/ticket47653_test.py::test_ticket47653_delete PASSED
tickets/ticket47669_test.py::test_ticket47669_init PASSED
tickets/ticket47669_test.py::test_ticket47669_changelog_maxage PASSED
tickets/ticket47669_test.py::test_ticket47669_changelog_triminterval PASSED
tickets/ticket47669_test.py::test_ticket47669_changelog_compactdbinterval PASSED
tickets/ticket47669_test.py::test_ticket47669_retrochangelog_maxage PASSED
tickets/ticket47676_test.py::test_ticket47676_init PASSED
tickets/ticket47676_test.py::test_ticket47676_skip_oc_at PASSED
tickets/ticket47676_test.py::test_ticket47676_reject_action PASSED
tickets/ticket47714_test.py::test_ticket47714_init PASSED
tickets/ticket47714_test.py::test_ticket47714_run_0 PASSED
tickets/ticket47714_test.py::test_ticket47714_run_1 PASSED
tickets/ticket47721_test.py::test_ticket47721_init PASSED
tickets/ticket47721_test.py::test_ticket47721_0 PASSED
tickets/ticket47721_test.py::test_ticket47721_1 PASSED
tickets/ticket47721_test.py::test_ticket47721_2 PASSED
tickets/ticket47721_test.py::test_ticket47721_3 PASSED
tickets/ticket47721_test.py::test_ticket47721_4 PASSED
tickets/ticket47781_test.py::test_ticket47781 PASSED
tickets/ticket47787_test.py::test_ticket47787_init PASSED
tickets/ticket47787_test.py::test_ticket47787_2 PASSED
tickets/ticket47808_test.py::test_ticket47808_run PASSED
tickets/ticket47815_test.py::test_ticket47815 PASSED
tickets/ticket47819_test.py::test_ticket47819 PASSED
tickets/ticket47823_test.py::test_ticket47823_init PASSED
tickets/ticket47823_test.py::test_ticket47823_one_container_add PASSED
tickets/ticket47823_test.py::test_ticket47823_one_container_mod PASSED
tickets/ticket47823_test.py::test_ticket47823_one_container_modrdn PASSED
tickets/ticket47823_test.py::test_ticket47823_multi_containers_add PASSED
tickets/ticket47823_test.py::test_ticket47823_multi_containers_mod PASSED
tickets/ticket47823_test.py::test_ticket47823_multi_containers_modrdn PASSED
tickets/ticket47823_test.py::test_ticket47823_across_multi_containers_add PASSED
tickets/ticket47823_test.py::test_ticket47823_across_multi_containers_mod PASSED
tickets/ticket47823_test.py::test_ticket47823_across_multi_containers_modrdn PASSED
tickets/ticket47823_test.py::test_ticket47823_invalid_config_1 PASSED
tickets/ticket47823_test.py::test_ticket47823_invalid_config_2 PASSED
tickets/ticket47823_test.py::test_ticket47823_invalid_config_3 PASSED
tickets/ticket47823_test.py::test_ticket47823_invalid_config_4 PASSED
tickets/ticket47823_test.py::test_ticket47823_invalid_config_5 PASSED
tickets/ticket47823_test.py::test_ticket47823_invalid_config_6 PASSED
tickets/ticket47823_test.py::test_ticket47823_invalid_config_7 PASSED
tickets/ticket47828_test.py::test_ticket47828_init PASSED
tickets/ticket47828_test.py::test_ticket47828_run_0 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_1 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_2 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_3 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_4 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_5 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_6 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_7 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_8 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_9 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_10 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_11 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_12 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_13 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_14 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_15 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_16 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_17 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_18 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_19 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_20 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_21 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_22 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_23 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_24 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_25 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_26 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_27 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_28 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_29 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_30 PASSED
tickets/ticket47828_test.py::test_ticket47828_run_31 PASSED
tickets/ticket47829_test.py::test_ticket47829_init PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_active_user_1 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_active_user_2 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_active_user_3 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_stage_user_1 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_stage_user_2 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_stage_user_3 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_out_user_1 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_out_user_2 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_out_user_3 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_active_user_modrdn_active_user_1 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_active_user_modrdn_stage_user_1 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_active_user_modrdn_out_user_1 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_modrdn_1 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_stage_user_modrdn_active_user_1 PASSED
tickets/ticket47829_test.py::test_ticket47829_mod_stage_user_modrdn_stage_user_1 PASSED
tickets/ticket47829_test.py::test_ticket47829_indirect_active_group_1 PASSED
tickets/ticket47829_test.py::test_ticket47829_indirect_active_group_2 PASSED
tickets/ticket47829_test.py::test_ticket47829_indirect_active_group_3 PASSED
tickets/ticket47829_test.py::test_ticket47829_indirect_active_group_4 PASSED
tickets/ticket47833_test.py::test_ticket47829_init PASSED
tickets/ticket47833_test.py::test_ticket47829_mod_stage_user_modrdn_stage_user_1 PASSED
tickets/ticket47869MMR_test.py::test_ticket47869_init PASSED
tickets/ticket47869MMR_test.py::test_ticket47869_check PASSED
tickets/ticket47871_test.py::test_ticket47871_init PASSED
tickets/ticket47871_test.py::test_ticket47871_1 PASSED
tickets/ticket47871_test.py::test_ticket47871_2 PASSED
tickets/ticket47900_test.py::test_ticket47900 PASSED
tickets/ticket47910_test.py::test_ticket47910_logconv_start_end_positive PASSED
tickets/ticket47910_test.py::test_ticket47910_logconv_start_end_negative PASSED
tickets/ticket47910_test.py::test_ticket47910_logconv_start_end_invalid PASSED
tickets/ticket47910_test.py::test_ticket47910_logconv_noaccesslogs PASSED
tickets/ticket47920_test.py::test_ticket47920_init PASSED
tickets/ticket47920_test.py::test_ticket47920_mod_readentry_ctrl PASSED
tickets/ticket47921_test.py::test_ticket47921 PASSED
tickets/ticket47927_test.py::test_ticket47927_init PASSED
tickets/ticket47927_test.py::test_ticket47927_one PASSED
tickets/ticket47927_test.py::test_ticket47927_two PASSED
tickets/ticket47927_test.py::test_ticket47927_three PASSED
tickets/ticket47927_test.py::test_ticket47927_four PASSED
tickets/ticket47927_test.py::test_ticket47927_five PASSED
tickets/ticket47927_test.py::test_ticket47927_six PASSED
tickets/ticket47931_test.py::test_ticket47931 PASSED
tickets/ticket47937_test.py::test_ticket47937 PASSED
tickets/ticket47950_test.py::test_ticket47950 PASSED
tickets/ticket47953_test.py::test_ticket47953 PASSED
tickets/ticket47963_test.py::test_ticket47963 PASSED
tickets/ticket47966_test.py::test_ticket47966 PASSED
tickets/ticket47970_test.py::test_ticket47970 PASSED
tickets/ticket47973_test.py::test_ticket47973 PASSED
tickets/ticket47976_test.py::test_ticket47976_init PASSED
tickets/ticket47976_test.py::test_ticket47976_1 PASSED
tickets/ticket47976_test.py::test_ticket47976_2 PASSED
tickets/ticket47976_test.py::test_ticket47976_3 PASSED
tickets/ticket47980_test.py::test_ticket47980 PASSED
tickets/ticket47981_test.py::test_ticket47981 PASSED
tickets/ticket47988_test.py::test_ticket47988_init PASSED
tickets/ticket47988_test.py::test_ticket47988_1 PASSED
tickets/ticket47988_test.py::test_ticket47988_2 PASSED
tickets/ticket47988_test.py::test_ticket47988_3 PASSED
tickets/ticket47988_test.py::test_ticket47988_4 PASSED
tickets/ticket47988_test.py::test_ticket47988_5 PASSED
tickets/ticket47988_test.py::test_ticket47988_6 PASSED
tickets/ticket48005_test.py::test_ticket48005_setup PASSED
tickets/ticket48005_test.py::test_ticket48005_memberof PASSED
tickets/ticket48005_test.py::test_ticket48005_automember PASSED
tickets/ticket48005_test.py::test_ticket48005_syntaxvalidate PASSED
tickets/ticket48005_test.py::test_ticket48005_usn PASSED
tickets/ticket48005_test.py::test_ticket48005_schemareload PASSED
tickets/ticket48013_test.py::test_ticket48013 PASSED
tickets/ticket48026_test.py::test_ticket48026 PASSED
tickets/ticket48109_test.py::test_ticket48109 PASSED
tickets/ticket48170_test.py::test_ticket48170 PASSED
tickets/ticket48194_test.py::test_init PASSED tickets/ticket48194_test.py::test_run_0
PASSED tickets/ticket48194_test.py::test_run_1 PASSED
tickets/ticket48194_test.py::test_run_2 PASSED tickets/ticket48194_test.py::test_run_3
PASSED tickets/ticket48194_test.py::test_run_4 PASSED
tickets/ticket48194_test.py::test_run_5 PASSED tickets/ticket48194_test.py::test_run_6
PASSED tickets/ticket48194_test.py::test_run_7 PASSED
tickets/ticket48194_test.py::test_run_8 PASSED tickets/ticket48194_test.py::test_run_9
PASSED tickets/ticket48194_test.py::test_run_10 PASSED
tickets/ticket48194_test.py::test_run_11 PASSED
tickets/ticket48212_test.py::test_ticket48212 PASSED
tickets/ticket48214_test.py::test_ticket48214_run PASSED
tickets/ticket48226_test.py::test_ticket48226_set_purgedelay PASSED
tickets/ticket48226_test.py::test_ticket48226_1 PASSED
tickets/ticket48228_test.py::test_ticket48228_test_global_policy PASSED
tickets/ticket48228_test.py::test_ticket48228_test_subtree_policy PASSED
tickets/ticket48233_test.py::test_ticket48233 PASSED
tickets/ticket48234_test.py::test_ticket48234 PASSED
tickets/ticket48252_test.py::test_ticket48252_setup PASSED
tickets/ticket48252_test.py::test_ticket48252_run_0 PASSED
tickets/ticket48252_test.py::test_ticket48252_run_1 PASSED
tickets/ticket48265_test.py::test_ticket48265_test PASSED
tickets/ticket48266_test.py::test_ticket48266_fractional PASSED
tickets/ticket48266_test.py::test_ticket48266_check_repl_desc PASSED
tickets/ticket48266_test.py::test_ticket48266_count_csn_evaluation PASSED
tickets/ticket48270_test.py::test_ticket48270_init PASSED
tickets/ticket48270_test.py::test_ticket48270_homeDirectory_indexed_cis PASSED
tickets/ticket48270_test.py::test_ticket48270_homeDirectory_mixed_value PASSED
tickets/ticket48270_test.py::test_ticket48270_extensible_search PASSED
tickets/ticket48272_test.py::test_ticket48272 PASSED
tickets/ticket48294_test.py::test_48294_init PASSED
tickets/ticket48294_test.py::test_48294_run_0 PASSED
tickets/ticket48294_test.py::test_48294_run_1 PASSED
tickets/ticket48294_test.py::test_48294_run_2 PASSED
tickets/ticket48295_test.py::test_48295_init PASSED
tickets/ticket48295_test.py::test_48295_run PASSED
tickets/ticket48312_test.py::test_ticket48312 PASSED
tickets/ticket48325_test.py::test_ticket48325 PASSED
tickets/ticket48342_test.py::test_ticket4026 ERROR
tickets/ticket48354_test.py::test_ticket48354 PASSED
tickets/ticket48362_test.py::test_ticket48362 PASSED
tickets/ticket48366_test.py::test_ticket48366_init PASSED
tickets/ticket48366_test.py::test_ticket48366_search_user PASSED
tickets/ticket48366_test.py::test_ticket48366_search_dm PASSED
tickets/ticket48370_test.py::test_ticket48370 PASSED
tickets/ticket48383_test.py::test_ticket48383 PASSED
tickets/ticket48497_test.py::test_ticket48497_init PASSED
tickets/ticket48497_test.py::test_ticket48497_homeDirectory_mixed_value PASSED
tickets/ticket48497_test.py::test_ticket48497_extensible_search PASSED
tickets/ticket48497_test.py::test_ticket48497_homeDirectory_index_cfg PASSED
tickets/ticket48497_test.py::test_ticket48497_homeDirectory_index_run PASSED
tickets/ticket48637_test.py::test_ticket48637 PASSED
tickets/ticket48665_test.py::test_ticket48665 PASSED
tickets/ticket48745_test.py::test_ticket48745_init PASSED
tickets/ticket48745_test.py::test_ticket48745_homeDirectory_indexed_cis PASSED
tickets/ticket48745_test.py::test_ticket48745_homeDirectory_mixed_value PASSED
tickets/ticket48745_test.py::test_ticket48745_extensible_search_after_index PASSED
tickets/ticket48746_test.py::test_ticket48746_init PASSED
tickets/ticket48746_test.py::test_ticket48746_homeDirectory_indexed_cis PASSED
tickets/ticket48746_test.py::test_ticket48746_homeDirectory_mixed_value PASSED
tickets/ticket48746_test.py::test_ticket48746_extensible_search_after_index PASSED
tickets/ticket48746_test.py::test_ticket48746_homeDirectory_indexed_ces PASSED
tickets/ticket48755_test.py::test_ticket48755 PASSED
tickets/ticket48759_test.py::test_ticket48759 PASSED
tickets/ticket48784_test.py::test_ticket48784 PASSED
tickets/ticket48798_test.py::test_ticket48798 PASSED
tickets/ticket48799_test.py::test_ticket48799 PASSED
tickets/ticket48808_test.py::test_ticket48808 PASSED
tickets/ticket48844_test.py::test_ticket48844_init PASSED
tickets/ticket48844_test.py::test_ticket48844_bitwise_on PASSED
tickets/ticket48844_test.py::test_ticket48844_bitwise_off PASSED
tickets/ticket48891_test.py::test_ticket48891_setup PASSED
tickets/ticket48893_test.py::test_ticket48893 PASSED
tickets/ticket48896_test.py::test_ticket48896 PASSED
tickets/ticket48906_test.py::test_ticket48906_setup PASSED
tickets/ticket48906_test.py::test_ticket48906_dblock_default PASSED
tickets/ticket48906_test.py::test_ticket48906_dblock_ldap_update PASSED
tickets/ticket48906_test.py::test_ticket48906_dblock_edit_update PASSED
tickets/ticket48906_test.py::test_ticket48906_dblock_robust PASSED
tickets/ticket48916_test.py::test_ticket48916 PASSED
tickets/ticket48956_test.py::test_ticket48956 PASSED
tickets/ticket48961_test.py::test_ticket48961_storagescheme PASSED
tickets/ticket48961_test.py::test_ticket48961_deleteall PASSED
tickets/ticket548_test.py::test_ticket548_test_with_no_policy PASSED
tickets/ticket548_test.py::test_ticket548_test_global_policy PASSED
tickets/ticket548_test.py::test_ticket548_test_subtree_policy PASSED
suites/acct_usability_plugin/acct_usability_test.py::test_acct_usability_init PASSED
suites/acct_usability_plugin/acct_usability_test.py::test_acct_usability_ PASSED
suites/acctpolicy_plugin/accpol_test.py::test_inact_plugin PASSED
suites/acctpolicy_plugin/acctpolicy_test.py::test_acctpolicy_init PASSED
suites/acctpolicy_plugin/acctpolicy_test.py::test_acctpolicy_ PASSED
suites/acl/acl_test.py::test_aci_attr_subtype_targetattr[lang-ja] PASSED
suites/acl/acl_test.py::test_aci_attr_subtype_targetattr[binary] PASSED
suites/acl/acl_test.py::test_aci_attr_subtype_targetattr[phonetic] PASSED
suites/acl/acl_test.py::test_mode_default_add_deny PASSED
suites/acl/acl_test.py::test_mode_default_delete_deny PASSED
suites/acl/acl_test.py::test_moddn_staging_prod[0-cn=staged
user,dc=example,dc=com-cn=accounts,dc=example,dc=com-False] PASSED
suites/acl/acl_test.py::test_moddn_staging_prod[1-cn=staged
user,dc=example,dc=com-cn=accounts,dc=example,dc=com-False] PASSED
suites/acl/acl_test.py::test_moddn_staging_prod[2-cn=staged
user,dc=example,dc=com-cn=bad*,dc=example,dc=com-True] PASSED
suites/acl/acl_test.py::test_moddn_staging_prod[3-cn=st*,dc=example,dc=com-cn=accounts,dc=example,dc=com-False]
PASSED
suites/acl/acl_test.py::test_moddn_staging_prod[4-cn=bad*,dc=example,dc=com-cn=accounts,dc=example,dc=com-True]
PASSED
suites/acl/acl_test.py::test_moddn_staging_prod[5-cn=st*,dc=example,dc=com-cn=ac*,dc=example,dc=com-False]
PASSED
suites/acl/acl_test.py::test_moddn_staging_prod[6-None-cn=ac*,dc=example,dc=com-False]
PASSED
suites/acl/acl_test.py::test_moddn_staging_prod[7-cn=st*,dc=example,dc=com-None-False]
PASSED suites/acl/acl_test.py::test_moddn_staging_prod[8-None-None-False] PASSED
suites/acl/acl_test.py::test_moddn_staging_prod_9 PASSED
suites/acl/acl_test.py::test_moddn_prod_staging PASSED
suites/acl/acl_test.py::test_check_repl_M2_to_M1 PASSED
suites/acl/acl_test.py::test_moddn_staging_prod_except PASSED
suites/acl/acl_test.py::test_mode_default_ger_no_moddn PASSED
suites/acl/acl_test.py::test_mode_default_ger_with_moddn PASSED
suites/acl/acl_test.py::test_mode_switch_default_to_legacy PASSED
suites/acl/acl_test.py::test_mode_legacy_ger_no_moddn1 PASSED
suites/acl/acl_test.py::test_mode_legacy_ger_no_moddn2 PASSED
suites/acl/acl_test.py::test_mode_legacy_ger_with_moddn PASSED
suites/acl/acl_test.py::test_rdn_write_get_ger PASSED
suites/acl/acl_test.py::test_rdn_write_modrdn_anonymous PASSED
suites/attr_encryption/attr_encrypt_test.py::test_attr_encrypt_init PASSED
suites/attr_encryption/attr_encrypt_test.py::test_attr_encrypt_ PASSED
suites/attr_uniqueness_plugin/attr_uniqueness_test.py::test_attr_uniqueness_init PASSED
suites/attr_uniqueness_plugin/attr_uniqueness_test.py::test_attr_uniqueness PASSED
suites/automember_plugin/automember_test.py::test_automember_init PASSED
suites/automember_plugin/automember_test.py::test_automember_ PASSED
suites/basic/basic_test.py::test_basic_ops PASSED
suites/basic/basic_test.py::test_basic_import_export PASSED
suites/basic/basic_test.py::test_basic_backup PASSED
suites/basic/basic_test.py::test_basic_acl PASSED
suites/basic/basic_test.py::test_basic_searches PASSED
suites/basic/basic_test.py::test_basic_referrals PASSED
suites/basic/basic_test.py::test_basic_systemctl PASSED
suites/basic/basic_test.py::test_basic_ldapagent PASSED
suites/basic/basic_test.py::test_basic_dse PASSED
suites/basic/basic_test.py::test_def_rootdse_attr[namingContexts] PASSED
suites/basic/basic_test.py::test_def_rootdse_attr[supportedLDAPVersion] PASSED
suites/basic/basic_test.py::test_def_rootdse_attr[supportedControl] PASSED
suites/basic/basic_test.py::test_def_rootdse_attr[supportedExtension] PASSED
suites/basic/basic_test.py::test_def_rootdse_attr[supportedSASLMechanisms] PASSED
suites/basic/basic_test.py::test_def_rootdse_attr[vendorName] PASSED
suites/basic/basic_test.py::test_def_rootdse_attr[vendorVersion] PASSED
suites/basic/basic_test.py::test_mod_def_rootdse_attr[namingContexts] PASSED
suites/basic/basic_test.py::test_mod_def_rootdse_attr[supportedLDAPVersion] PASSED
suites/basic/basic_test.py::test_mod_def_rootdse_attr[supportedControl] PASSED
suites/basic/basic_test.py::test_mod_def_rootdse_attr[supportedExtension] PASSED
suites/basic/basic_test.py::test_mod_def_rootdse_attr[supportedSASLMechanisms] PASSED
suites/basic/basic_test.py::test_mod_def_rootdse_attr[vendorName] PASSED
suites/basic/basic_test.py::test_mod_def_rootdse_attr[vendorVersion] PASSED
suites/betxns/betxn_test.py::test_betxn_init PASSED
suites/betxns/betxn_test.py::test_betxt_7bit PASSED
suites/betxns/betxn_test.py::test_betxn_attr_uniqueness PASSED
suites/betxns/betxn_test.py::test_betxn_memberof PASSED
suites/chaining_plugin/chaining_test.py::test_chaining_init PASSED
suites/chaining_plugin/chaining_test.py::test_chaining_ PASSED
suites/clu/clu_test.py::test_clu_init PASSED suites/clu/clu_test.py::test_clu_pwdhash
PASSED suites/clu/db2ldif_test.py::test_db2ldif_init PASSED
suites/collation_plugin/collatation_test.py::test_collatation_init PASSED
suites/collation_plugin/collatation_test.py::test_collatation_ PASSED
suites/config/config_test.py::test_maxbersize_repl PASSED
suites/config/config_test.py::test_config_listen_backport_size PASSED
suites/config/config_test.py::test_config_deadlock_policy PASSED
suites/cos_plugin/cos_test.py::test_cos_init PASSED
suites/cos_plugin/cos_test.py::test_cos_ PASSED
suites/deref_plugin/deref_test.py::test_deref_init PASSED
suites/deref_plugin/deref_test.py::test_deref_ PASSED
suites/disk_monitoring/disk_monitor_test.py::test_disk_monitor_init PASSED
suites/disk_monitoring/disk_monitor_test.py::test_disk_monitor_ PASSED
suites/distrib_plugin/distrib_test.py::test_distrib_init PASSED
suites/distrib_plugin/distrib_test.py::test_distrib_ PASSED
suites/dna_plugin/dna_test.py::test_dna_init PASSED
suites/dna_plugin/dna_test.py::test_dna_ PASSED
suites/ds_logs/ds_logs_test.py::test_ds_logs_init PASSED
suites/ds_logs/ds_logs_test.py::test_ds_logs_ PASSED
suites/dynamic-plugins/test_dynamic_plugins.py::test_dynamic_plugins PASSED
suites/filter/filter_test.py::test_filter_init PASSED
suites/filter/filter_test.py::test_filter_escaped PASSED
suites/filter/filter_test.py::test_filter_search_original_attrs PASSED
suites/filter/rfc3673_all_oper_attrs_test.py::test_supported_features PASSED
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-False-oper_attr_list0]
PASSED
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-False-oper_attr_list0-*]
PASSED
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-False-oper_attr_list0-objectClass]
PASSED
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-True-oper_attr_list1]
PASSED
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-True-oper_attr_list1-*]
PASSED
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-True-oper_attr_list1-objectClass]
PASSED
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-False-oper_attr_list2]
PASSED
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-False-oper_attr_list2-*]
PASSED
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-False-oper_attr_list2-objectClass]
PASSED
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-True-oper_attr_list3]
PASSED
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-True-oper_attr_list3-*]
PASSED
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-True-oper_attr_list3-objectClass]
PASSED
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-False-oper_attr_list4]
PASSED
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-False-oper_attr_list4-*]
PASSED
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-False-oper_attr_list4-objectClass]
PASSED
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-True-oper_attr_list5]
PASSED
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-True-oper_attr_list5-*]
PASSED
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-True-oper_attr_list5-objectClass]
PASSED
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[cn=config-False-oper_attr_list6]
PASSED
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[cn=config-False-oper_attr_list6-*]
PASSED
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[cn=config-False-oper_attr_list6-objectClass]
PASSED suites/get_effective_rights/ger_test.py::test_ger_init PASSED
suites/get_effective_rights/ger_test.py::test_ger_ PASSED
suites/gssapi_repl/gssapi_repl_test.py::test_gssapi_repl PASSED
suites/ldapi/ldapi_test.py::test_ldapi_init PASSED suites/ldapi/ldapi_test.py::test_ldapi_
PASSED suites/linkedattrs_plugin/linked_attrs_test.py::test_linked_attrs_init PASSED
suites/linkedattrs_plugin/linked_attrs_test.py::test_linked_attrs_ PASSED
suites/mapping_tree/mapping_tree_test.py::test_mapping_tree_init PASSED
suites/mapping_tree/mapping_tree_test.py::test_mapping_tree_ PASSED
suites/memberof_plugin/memberof_test.py::test_memberof_auto_add_oc PASSED
suites/memory_leaks/range_search_test.py::test_range_search_init PASSED
suites/memory_leaks/range_search_test.py::test_range_search PASSED
suites/monitor/monitor_test.py::test_monitor_init PASSED
suites/monitor/monitor_test.py::test_monitor_ PASSED
suites/paged_results/paged_results_test.py::test_search_success[6-5] PASSED
suites/paged_results/paged_results_test.py::test_search_success[5-5] PASSED
suites/paged_results/paged_results_test.py::test_search_success[5-25] PASSED
suites/paged_results/paged_results_test.py::test_search_limits_fail[50-200-cn=config,cn=ldbm
database,cn=plugins,cn=config-nsslapd-idlistscanlimit-100-UNWILLING_TO_PERFORM] PASSED
suites/paged_results/paged_results_test.py::test_search_limits_fail[5-15-cn=config-nsslapd-timelimit-20-UNAVAILABLE_CRITICAL_EXTENSION]
PASSED
suites/paged_results/paged_results_test.py::test_search_limits_fail[21-50-cn=config-nsslapd-sizelimit-20-SIZELIMIT_EXCEEDED]
PASSED
suites/paged_results/paged_results_test.py::test_search_limits_fail[21-50-cn=config-nsslapd-pagedsizelimit-5-SIZELIMIT_EXCEEDED]
PASSED
suites/paged_results/paged_results_test.py::test_search_limits_fail[5-50-cn=config,cn=ldbm
database,cn=plugins,cn=config-nsslapd-lookthroughlimit-20-ADMINLIMIT_EXCEEDED] PASSED
suites/paged_results/paged_results_test.py::test_search_sort_success PASSED
suites/paged_results/paged_results_test.py::test_search_abandon PASSED
suites/paged_results/paged_results_test.py::test_search_with_timelimit PASSED
suites/paged_results/paged_results_test.py::test_search_dns_ip_aci[dns =
"localhost.localdomain"] PASSED
suites/paged_results/paged_results_test.py::test_search_dns_ip_aci[ip = "::1" or
ip = "127.0.0.1"] PASSED
suites/paged_results/paged_results_test.py::test_search_multiple_paging PASSED
suites/paged_results/paged_results_test.py::test_search_invalid_cookie[1000] PASSED
suites/paged_results/paged_results_test.py::test_search_invalid_cookie[-1] PASSED
suites/paged_results/paged_results_test.py::test_search_abandon_with_zero_size PASSED
suites/paged_results/paged_results_test.py::test_search_pagedsizelimit_success PASSED
suites/paged_results/paged_results_test.py::test_search_nspagedsizelimit[5-15-PASS] PASSED
suites/paged_results/paged_results_test.py::test_search_nspagedsizelimit[15-5-SIZELIMIT_EXCEEDED]
PASSED
suites/paged_results/paged_results_test.py::test_search_paged_limits[conf_attr_values0-ADMINLIMIT_EXCEEDED]
PASSED
suites/paged_results/paged_results_test.py::test_search_paged_limits[conf_attr_values1-PASS]
PASSED
suites/paged_results/paged_results_test.py::test_search_paged_user_limits[conf_attr_values0-ADMINLIMIT_EXCEEDED]
PASSED
suites/paged_results/paged_results_test.py::test_search_paged_user_limits[conf_attr_values1-PASS]
PASSED suites/paged_results/paged_results_test.py::test_ger_basic PASSED
suites/paged_results/paged_results_test.py::test_multi_suffix_search PASSED
suites/paged_results/paged_results_test.py::test_maxsimplepaged_per_conn_success[None]
PASSED
suites/paged_results/paged_results_test.py::test_maxsimplepaged_per_conn_success[-1]
PASSED
suites/paged_results/paged_results_test.py::test_maxsimplepaged_per_conn_success[1000]
PASSED suites/paged_results/paged_results_test.py::test_maxsimplepaged_per_conn_failure[0]
PASSED suites/paged_results/paged_results_test.py::test_maxsimplepaged_per_conn_failure[1]
PASSED suites/pam_passthru_plugin/pam_test.py::test_pam_init PASSED
suites/pam_passthru_plugin/pam_test.py::test_pam_ PASSED
suites/passthru_plugin/passthru_test.py::test_passthru_init PASSED
suites/passthru_plugin/passthru_test.py::test_passthru_ PASSED
suites/password/password_test.py::test_password_init PASSED
suites/password/password_test.py::test_password_delete_specific_password PASSED
suites/password/pwdAdmin_test.py::test_pwdAdmin_init PASSED
suites/password/pwdAdmin_test.py::test_pwdAdmin PASSED
suites/password/pwdAdmin_test.py::test_pwdAdmin_config_validation PASSED
suites/password/pwdPolicy_attribute_test.py::test_change_pwd[on-off-UNWILLING_TO_PERFORM]
PASSED
suites/password/pwdPolicy_attribute_test.py::test_change_pwd[off-off-UNWILLING_TO_PERFORM]
PASSED suites/password/pwdPolicy_attribute_test.py::test_change_pwd[off-on-None] PASSED
suites/password/pwdPolicy_attribute_test.py::test_change_pwd[on-on-None] PASSED
suites/password/pwdPolicy_attribute_test.py::test_pwd_min_age PASSED
suites/password/pwdPolicy_inherit_global_test.py::test_entry_has_no_restrictions[off-off]
PASSED
suites/password/pwdPolicy_inherit_global_test.py::test_entry_has_no_restrictions[on-off]
PASSED
suites/password/pwdPolicy_inherit_global_test.py::test_entry_has_no_restrictions[off-on]
PASSED
suites/password/pwdPolicy_inherit_global_test.py::test_entry_has_restrictions[cn=config]
PASSED
suites/password/pwdPolicy_inherit_global_test.py::test_entry_has_restrictions[cn="cn=nsPwPolicyEntry,ou=People,dc=example,dc=com",cn=nsPwPolicyContainer,ou=People,dc=example,dc=com]
PASSED suites/password/pwdPolicy_syntax_test.py::test_pwdPolicy_syntax PASSED
suites/password/pwdPolicy_warning_test.py::test_different_values[ ] PASSED
suites/password/pwdPolicy_warning_test.py::test_different_values[junk123] PASSED
suites/password/pwdPolicy_warning_test.py::test_different_values[on] PASSED
suites/password/pwdPolicy_warning_test.py::test_different_values[off] PASSED
suites/password/pwdPolicy_warning_test.py::test_expiry_time PASSED
suites/password/pwdPolicy_warning_test.py::test_password_warning[passwordSendExpiringTime-off]
PASSED
suites/password/pwdPolicy_warning_test.py::test_password_warning[passwordWarning-3600]
PASSED suites/password/pwdPolicy_warning_test.py::test_with_different_password_states
PASSED suites/password/pwdPolicy_warning_test.py::test_default_behavior PASSED
suites/password/pwdPolicy_warning_test.py::test_with_local_policy PASSED
suites/password/pwd_algo_test.py::test_pwd_algo_test PASSED
suites/password/pwp_history_test.py::test_pwp_history_test PASSED
suites/posix_winsync_plugin/posix_winsync_test.py::test_posix_winsync_init PASSED
suites/posix_winsync_plugin/posix_winsync_test.py::test_posix_winsync_ PASSED
suites/psearch/psearch_test.py::test_psearch_init PASSED
suites/psearch/psearch_test.py::test_psearch_ PASSED
suites/referint_plugin/referint_test.py::test_referint_init PASSED
suites/referint_plugin/referint_test.py::test_referint_ PASSED
suites/replication/cleanallruv_test.py::test_cleanallruv_init PASSED
suites/replication/cleanallruv_test.py::test_cleanallruv_clean PASSED
suites/replication/cleanallruv_test.py::test_cleanallruv_clean_restart PASSED
suites/replication/cleanallruv_test.py::test_cleanallruv_clean_force PASSED
suites/replication/cleanallruv_test.py::test_cleanallruv_abort PASSED
suites/replication/cleanallruv_test.py::test_cleanallruv_abort_restart PASSED
suites/replication/cleanallruv_test.py::test_cleanallruv_abort_certify PASSED
suites/replication/cleanallruv_test.py::test_cleanallruv_stress_clean PASSED
suites/replication/wait_for_async_feature_test.py::test_not_int_value PASSED
suites/replication/wait_for_async_feature_test.py::test_multi_value PASSED
suites/replication/wait_for_async_feature_test.py::test_value_check[waitfor_async_attr0]
PASSED
suites/replication/wait_for_async_feature_test.py::test_value_check[waitfor_async_attr1]
PASSED
suites/replication/wait_for_async_feature_test.py::test_value_check[waitfor_async_attr2]
PASSED
suites/replication/wait_for_async_feature_test.py::test_value_check[waitfor_async_attr3]
PASSED
suites/replication/wait_for_async_feature_test.py::test_behavior_with_value[waitfor_async_attr0]
PASSED
suites/replication/wait_for_async_feature_test.py::test_behavior_with_value[waitfor_async_attr1]
PASSED
suites/replication/wait_for_async_feature_test.py::test_behavior_with_value[waitfor_async_attr2]
PASSED
suites/replication/wait_for_async_feature_test.py::test_behavior_with_value[waitfor_async_attr3]
PASSED suites/replsync_plugin/repl_sync_test.py::test_repl_sync_init PASSED
suites/replsync_plugin/repl_sync_test.py::test_repl_sync_ PASSED
suites/resource_limits/res_limits_test.py::test_res_limits_init PASSED
suites/resource_limits/res_limits_test.py::test_res_limits_ PASSED
suites/retrocl_plugin/retrocl_test.py::test_retrocl_init PASSED
suites/retrocl_plugin/retrocl_test.py::test_retrocl_ PASSED
suites/reverpwd_plugin/reverpwd_test.py::test_reverpwd_init PASSED
suites/reverpwd_plugin/reverpwd_test.py::test_reverpwd_ PASSED
suites/roles_plugin/roles_test.py::test_roles_init PASSED
suites/roles_plugin/roles_test.py::test_roles_ PASSED
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_init PASSED
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_access_specific_time PASSED
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_access_day_of_week PASSED
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_access_denied_ip PASSED
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_access_denied_host PASSED
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_access_allowed_ip PASSED
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_access_allowed_host PASSED
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_config_validate PASSED
suites/sasl/sasl_test.py::test_sasl_init PASSED suites/sasl/sasl_test.py::test_sasl_
PASSED suites/schema/test_schema.py::test_schema_comparewithfiles PASSED
suites/schema_reload_plugin/schema_reload_test.py::test_schema_reload_init PASSED
suites/schema_reload_plugin/schema_reload_test.py::test_schema_reload_ PASSED
suites/snmp/snmp_test.py::test_snmp_init PASSED suites/snmp/snmp_test.py::test_snmp_
PASSED suites/ssl/ssl_test.py::test_ssl_init PASSED suites/ssl/ssl_test.py::test_ssl_
PASSED suites/syntax_plugin/syntax_test.py::test_syntax_init PASSED
suites/syntax_plugin/syntax_test.py::test_syntax_ PASSED
suites/usn_plugin/usn_test.py::test_usn_init PASSED
suites/usn_plugin/usn_test.py::test_usn_ PASSED
suites/views_plugin/views_test.py::test_views_init PASSED
suites/views_plugin/views_test.py::test_views_ PASSED
suites/vlv/vlv_test.py::test_vlv_init PASSED suites/vlv/vlv_test.py::test_vlv_ PASSED
suites/whoami_plugin/whoami_test.py::test_whoami_init PASSED
suites/whoami_plugin/whoami_test.py::test_whoami_ PASSED
==================================== ERRORS ====================================
______________________ ERROR at setup of test_ticket4026 _______________________ request =
<SubRequest 'topology' for <Function 'test_ticket4026'>>
@pytest.fixture(scope="module") def topology(request): global
installation1_prefix if installation1_prefix: args_instance[SER_DEPLOYED_DIR] =
installation1_prefix # Creating master 1... master1 = DirSrv(verbose=False) if
installation1_prefix: args_instance[SER_DEPLOYED_DIR] = installation1_prefix
args_instance[SER_HOST] = HOST_MASTER_1 args_instance[SER_PORT] = PORT_MASTER_1
args_instance[SER_SERVERID_PROP] = SERVERID_MASTER_1 args_instance[SER_CREATION_SUFFIX] =
DEFAULT_SUFFIX args_master = args_instance.copy() master1.allocate(args_master)
instance_master1 = master1.exists() if instance_master1: master1.delete() master1.create()
master1.open() master1.replica.enableReplication(suffix=SUFFIX, role=REPLICAROLE_MASTER,
replicaId=REPLICAID_MASTER_1) # Creating master 2... master2 = DirSrv(verbose=False) if
installation1_prefix: args_instance[SER_DEPLOYED_DIR] = installation1_prefix
args_instance[SER_HOST] = HOST_MASTER_2 args_instance[SER_PORT] = PORT_MASTER_2
args_instance[SER_SERVERID_PROP] = SERVERID_MASTER_2 args_instance[SER_CREATION_SUFFIX] =
DEFAULT_SUFFIX args_master = args_instance.copy() master2.allocate(args_master)
instance_master2 = master2.exists() if instance_master2: master2.delete() master2.create()
master2.open() master2.replica.enableReplication(suffix=SUFFIX, role=REPLICAROLE_MASTER,
replicaId=REPLICAID_MASTER_2) # Creating master 3... master3 = DirSrv(verbose=False) if
installation1_prefix: args_instance[SER_DEPLOYED_DIR] = installation1_prefix
args_instance[SER_HOST] = HOST_MASTER_3 args_instance[SER_PORT] = PORT_MASTER_3
args_instance[SER_SERVERID_PROP] = SERVERID_MASTER_3 args_instance[SER_CREATION_SUFFIX] =
DEFAULT_SUFFIX args_master = args_instance.copy() master3.allocate(args_master)
instance_master3 = master3.exists() if instance_master3: master3.delete() master3.create()
master3.open() master3.replica.enableReplication(suffix=SUFFIX, role=REPLICAROLE_MASTER,
replicaId=REPLICAID_MASTER_3) # # Create all the agreements # # Creating agreement from
master 1 to master 2 properties = {RA_BINDDN: defaultProperties[REPLICATION_BIND_DN],
RA_BINDPW: defaultProperties[REPLICATION_BIND_PW], RA_METHOD:
defaultProperties[REPLICATION_BIND_METHOD], RA_TRANSPORT_PROT:
defaultProperties[REPLICATION_TRANSPORT]} m1_m2_agmt =
master1.agreement.create(suffix=SUFFIX, host=master2.host, port=master2.port,
properties=properties) if not m1_m2_agmt: log.fatal("Fail to create a master ->
master replica agreement") sys.exit(1) log.debug("%s created" % m1_m2_agmt)
# Creating agreement from master 1 to master 3 # properties = {RA_NAME:
r'meTo_$host:$port', # RA_BINDDN: defaultProperties[REPLICATION_BIND_DN], #
RA_BINDPW: defaultProperties[REPLICATION_BIND_PW], # RA_METHOD:
defaultProperties[REPLICATION_BIND_METHOD], # RA_TRANSPORT_PROT:
defaultProperties[REPLICATION_TRANSPORT]} # m1_m3_agmt =
master1.agreement.create(suffix=SUFFIX, host=master3.host, port=master3.port,
properties=properties) # if not m1_m3_agmt: # log.fatal("Fail to create a master
-> master replica agreement") # sys.exit(1) # log.debug("%s created" %
m1_m3_agmt) # Creating agreement from master 2 to master 1 properties = {RA_BINDDN:
defaultProperties[REPLICATION_BIND_DN], RA_BINDPW: defaultProperties[REPLICATION_BIND_PW],
RA_METHOD: defaultProperties[REPLICATION_BIND_METHOD], RA_TRANSPORT_PROT:
defaultProperties[REPLICATION_TRANSPORT]} m2_m1_agmt =
master2.agreement.create(suffix=SUFFIX, host=master1.host, port=master1.port,
properties=properties) if not m2_m1_agmt: log.fatal("Fail to create a master ->
master replica agreement") sys.exit(1) log.debug("%s created" % m2_m1_agmt)
# Creating agreement from master 2 to master 3 properties = {RA_BINDDN:
defaultProperties[REPLICATION_BIND_DN], RA_BINDPW: defaultProperties[REPLICATION_BIND_PW],
RA_METHOD: defaultProperties[REPLICATION_BIND_METHOD], RA_TRANSPORT_PROT:
defaultProperties[REPLICATION_TRANSPORT]} m2_m3_agmt =
master2.agreement.create(suffix=SUFFIX, host=master3.host, port=master3.port,
properties=properties) if not m2_m3_agmt: log.fatal("Fail to create a master ->
master replica agreement") sys.exit(1) log.debug("%s created" % m2_m3_agmt)
# Creating agreement from master 3 to master 1 # properties = {RA_NAME:
r'meTo_$host:$port', # RA_BINDDN: defaultProperties[REPLICATION_BIND_DN], #
RA_BINDPW: defaultProperties[REPLICATION_BIND_PW], # RA_METHOD:
defaultProperties[REPLICATION_BIND_METHOD], # RA_TRANSPORT_PROT:
defaultProperties[REPLICATION_TRANSPORT]} # m3_m1_agmt =
master3.agreement.create(suffix=SUFFIX, host=master1.host, port=master1.port,
properties=properties) # if not m3_m1_agmt: # log.fatal("Fail to create a master
-> master replica agreement") # sys.exit(1) # log.debug("%s created" %
m3_m1_agmt) # Creating agreement from master 3 to master 2 properties = {RA_BINDDN:
defaultProperties[REPLICATION_BIND_DN], RA_BINDPW: defaultProperties[REPLICATION_BIND_PW],
RA_METHOD: defaultProperties[REPLICATION_BIND_METHOD], RA_TRANSPORT_PROT:
defaultProperties[REPLICATION_TRANSPORT]} m3_m2_agmt =
master3.agreement.create(suffix=SUFFIX, host=master2.host, port=master2.port,
properties=properties) if not m3_m2_agmt: log.fatal("Fail to create a master ->
master replica agreement") sys.exit(1) log.debug("%s created" % m3_m2_agmt)
# Allow the replicas to get situated with the new agreements... time.sleep(5) # #
Initialize all the agreements # master1.agreement.init(SUFFIX, HOST_MASTER_2,
PORT_MASTER_2) master1.waitForReplInit(m1_m2_agmt) time.sleep(5) # just to be safe
master2.agreement.init(SUFFIX, HOST_MASTER_3, PORT_MASTER_3)
master2.waitForReplInit(m2_m3_agmt) # Check replication is working... if
master1.testReplication(DEFAULT_SUFFIX, master2): log.info('Replication is
working.') else: log.fatal('Replication is not working.') assert False #
Delete each instance in the end def fin(): for master in (master1, master2, master3):
master.delete() request.addfinalizer(fin) # Clear out the tmp dir
master1.clearTmpDir(__file__) > return TopologyReplication(master1, master2, master3)
<
http://vm-058-081.abc.idm.lab.eng.brq.redhat.com:8080/job/389-DS-NIGHTLY/...:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
<
http://vm-058-081.abc.idm.lab.eng.brq.redhat.com:8080/job/389-DS-NIGHTLY/...:
in __init__ master3.open() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ self = <lib389.DirSrv object at 0x7f17bd54f210>, saslmethod = None
certdir = None, starttls = False, connOnly = False, reqcert = 1 def open(self,
saslmethod=None, certdir=None, starttls=False, connOnly=False,
reqcert=ldap.OPT_X_TLS_HARD): ''' It opens a ldap bound connection to dirsrv
so that online administrative tasks are possible. It binds with the binddn property, then
it initializes various fields from DirSrv (via __initPart2) The state changes ->
DIRSRV_STATE_ONLINE @param self @param saslmethod - None, or GSSAPI @param certdir -
Certificate directory for TLS @return None @raise LDAPError ''' uri =
self.toLDAPURL() if self.verbose: self.log.info('open(): Connecting to uri %s' %
uri) if hasattr(ldap, 'PYLDAP_VERSION') and MAJOR >= 3: super(DirSrv,
self).__init__(uri, bytes_mode=False) else: super(DirSrv, self).__init__(uri) if certdir:
""" We have a certificate directory, so lets start up TLS negotiations
""" ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, certdir)
log.debug("Using ca certificate %s" % certdir) if certdir or starttls: try: #
MUST be set on ldap. not the object, because pyldap is broken # and only works if you set
this globally. ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, reqcert)
log.debug("ldap.OPT_X_TLS_REQUIRE_CERT = %s" % reqcert) self.start_tls_s()
except ldap.LDAPError as e: log.fatal('TLS negotiation failed: %s' % str(e)) raise
e if saslmethod and saslmethod.lower() == 'gssapi': """ Perform
kerberos/gssapi authentication """ try: sasl_auth =
ldap.sasl.gssapi("") self.sasl_interactive_bind_s("", sasl_auth)
except ldap.LOCAL_ERROR as e: # No Ticket - ultimately invalid credentials
log.debug("Error: No Ticket (%s)" % str(e)) raise ldap.INVALID_CREDENTIALS
except ldap.LDAPError as e: log.debug("SASL/GSSAPI Bind Failed: %s" % str(e))
raise e elif saslmethod: # Unknown or unsupported method log.debug('Unsupported SASL
method: %s' % saslmethod) raise ldap.UNWILLING_TO_PERFORM elif self.can_autobind(): #
Connect via ldapi, and autobind. # do nothing: the bind is complete. if self.verbose:
log.info("open(): Using root autobind ...") sasl_auth = ldap.sasl.external()
self.sasl_interactive_bind_s("", sasl_auth) else: """ Do a simple
bind """ try: self.simple_bind_s(ensure_str(self.binddn), self.bindpw)
except ldap.SERVER_DOWN as e: # TODO add server info in exception log.debug("Cannot
connect to %r" % uri) > raise e E SERVER_DOWN: {'desc': "Can't
contact LDAP server"}
<
http://vm-058-081.abc.idm.lab.eng.brq.redhat.com:8080/job/389-DS-NIGHTLY/...:
SERVER_DOWN ---------------------------- 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 ('Update
succeeded: status ', '0 Total update succeeded') ('Update succeeded:
status ', '0 Total update succeeded') ---------------------------- Captured
stderr setup ----------------------------- INFO:lib389:List backend with
suffix=dc=example,dc=com INFO:lib389:Found entry dn: cn=replrepl,cn=config cn: bind dn
pseudo user cn: replrepl objectClass: top objectClass: person sn: bind dn pseudo user
userPassword:
{SSHA512}gCLKee78+i8FXTOrV54qt3k9U2lHQEXloOVGuTZ/JmglIi02g1D43seoTE1mj8XehbPOD2xmL9dMf/LB4uyXUwltmt0TpONw
INFO:lib389:List backend with suffix=dc=example,dc=com INFO:lib389:Found entry dn:
cn=replrepl,cn=config cn: bind dn pseudo user cn: replrepl objectClass: top objectClass:
person sn: bind dn pseudo user userPassword:
{SSHA512}W2TQP+mdNhYG610qV/ZddzgPHP1B9IT8W1oYqc4QUN4gdaxzCJ+UCwyjaCG3QjFTLL6ZHQUCcUJX38O+AgmeaoyD5afQStnu
INFO:lib389:List backend with suffix=dc=example,dc=com INFO:lib389:Found entry dn:
cn=replrepl,cn=config cn: bind dn pseudo user cn: replrepl objectClass: top objectClass:
person sn: bind dn pseudo user userPassword:
{SSHA512}vzRIHjGx9Bu7fHwn2KzhY3EqaMg/uXOvWjK3wWrzbVZqQBCuM13LFYW7wI7ZcCK9Qz3Nc4JjcLsxEQRVDZ0GJNe2uC4piF7T
DEBUG:tickets.ticket48342_test:cn=meTo_localhost.localdomain:38942,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping
tree,cn=config created
DEBUG:tickets.ticket48342_test:cn=meTo_localhost.localdomain:38941,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping
tree,cn=config created
DEBUG:tickets.ticket48342_test:cn=meTo_localhost.localdomain:38943,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping
tree,cn=config created
DEBUG:tickets.ticket48342_test:cn=meTo_localhost.localdomain:38942,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping
tree,cn=config created INFO:lib389:Starting total init
cn=meTo_localhost.localdomain:38942,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping
tree,cn=config INFO:lib389:Starting total init
cn=meTo_localhost.localdomain:38943,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping
tree,cn=config INFO:tickets.ticket48342_test:Replication is working. ====================
524 passed, 1 error in 7482.66 seconds ====================
+ MSG=FAILED
+ RC=1
+ sudo /usr/sbin/sendmail mreynolds(a)redhat.com
+ exit 1
Build step 'Execute shell' marked build as failure