See <http://vm-058-081.abc.idm.lab.eng.brq.redhat.com:8080/job/389-DS-NIGHTLY/147/> ------------------------------------------ [...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/ws/source/ds/dirsrvtests/tests/tickets/ticket48342_test.py>:189: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ <http://vm-058-081.abc.idm.lab.eng.brq.redhat.com:8080/job/389-DS-NIGHTLY/ws/source/ds/dirsrvtests/tests/tickets/ticket48342_test.py>:29: 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/ws/source/lib389/lib389/__init__.py>:1057: 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/ws/source/ds/dirsrvtests/tests,> 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 tick ets/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_mo d_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/ticket4 7937_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/tick et48194_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=acco unts,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 PAS SED 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 s uites/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-o per_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_l inked_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/p aged_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/pwd Admin_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_ini t 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_D IR]' = 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 = 'mas ter2.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 ag reements... '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/ws/source/ds/dirsrvtests/tests/tickets/ticket48342_test.py>:189: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ <http://vm-058-081.abc.idm.lab.eng.brq.redhat.com:8080/job/389-DS-NIGHTLY/ws/source/ds/dirsrvtests/tests/tickets/ticket48342_test.py>:29: 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 MA JOR '>=' 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/ws/source/lib389/lib389/__init__.py>:1057: 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:l ib389: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/ws/source/ds/dirsrvtests/tests,> 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::tes t_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.p y::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/tic ket47828_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_activ e_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_te st.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_ticket 48362 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-Fal se] 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 s uites/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::t est_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] P ASSED 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_chan ge_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 PASSE D 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 s uites/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 = master 3.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.delet e() 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/ws/source/ds/dirsrvtests/tests/tickets/ticket48342_test.py>:189: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ <http://vm-058-081.abc.idm.lab.eng.brq.redhat.com:8080/job/389-DS-NIGHTLY/ws/source/ds/dirsrvtests/tests/tickets/ticket48342_test.py>:29: 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 kerber os/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/ws/source/lib389/lib389/__init__.py>:1057: 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 u serPassword: {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@xxxxxxxxxx + exit 1 Build step 'Execute shell' marked build as failure _______________________________________________ 389-devel mailing list -- 389-devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to 389-devel-leave@xxxxxxxxxxxxxxxxxxxxxxx