See <http://vm-166.abc.idm.lab.eng.brq.redhat.com:8080/job/NIGHTLY/115/display/redirect> ------------------------------------------ [...truncated 4570 lines...] suites/plugins/accpol_test.py::test_glnact_pwexp PASSED suites/plugins/accpol_test.py::test_locact_inact PASSED suites/plugins/accpol_test.py::test_locinact_modrdn PASSED suites/plugins/accpol_test.py::test_locact_modrdn PASSED suites/plugins/attr_uniqueness_test.py::test_attr_uniqueness_init PASSED suites/plugins/attr_uniqueness_test.py::test_attr_uniqueness PASSED suites/plugins/dna_test.py::test_basic PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_001 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_003 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_004 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_005 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_006 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_007 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_008 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_009 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_010 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_011 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_012 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_013 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_014 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_015 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_016 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_017 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_018 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_019 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_020 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_021 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_022 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_023 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_024 PASSED suites/plugins/memberof_test.py::test_memberof_MultiGrpAttr_025 PASSED suites/plugins/memberof_test.py::test_memberof_auto_add_oc PASSED suites/plugins/rootdn_plugin_test.py::test_rootdn_init PASSED suites/plugins/rootdn_plugin_test.py::test_rootdn_access_specific_time PASSED suites/plugins/rootdn_plugin_test.py::test_rootdn_access_day_of_week PASSED suites/plugins/rootdn_plugin_test.py::test_rootdn_access_denied_ip PASSED suites/plugins/rootdn_plugin_test.py::test_rootdn_access_denied_host PASSED suites/plugins/rootdn_plugin_test.py::test_rootdn_access_allowed_ip PASSED suites/plugins/rootdn_plugin_test.py::test_rootdn_access_allowed_host PASSED suites/plugins/rootdn_plugin_test.py::test_rootdn_config_validate PASSED suites/psearch/psearch_test.py::test_psearch PASSED suites/replication/acceptance_test.py::test_add_entry PASSED suites/replication/acceptance_test.py::test_modify_entry PASSED suites/replication/acceptance_test.py::test_delete_entry PASSED suites/replication/acceptance_test.py::test_modrdn_entry[0] PASSED suites/replication/acceptance_test.py::test_modrdn_entry[1] PASSED suites/replication/acceptance_test.py::test_modrdn_after_pause PASSED suites/replication/acceptance_test.py::test_modify_stripattrs PASSED suites/replication/acceptance_test.py::test_new_suffix PASSED suites/replication/acceptance_test.py::test_many_attrs PASSED suites/replication/acceptance_test.py::test_double_delete PASSED suites/replication/acceptance_test.py::test_password_repl_error PASSED suites/replication/acceptance_test.py::test_invalid_agmt PASSED suites/replication/changelog_test.py::test_verify_changelog PASSED suites/replication/changelog_test.py::test_verify_changelog_online_backup PASSED suites/replication/changelog_test.py::test_verify_changelog_offline_backup PASSED suites/replication/cleanallruv_test.py::test_clean PASSED suites/replication/cleanallruv_test.py::test_clean_restart PASSED suites/replication/cleanallruv_test.py::test_clean_force PASSED suites/replication/cleanallruv_test.py::test_abort PASSED suites/replication/cleanallruv_test.py::test_abort_restart PASSED suites/replication/cleanallruv_test.py::test_abort_certify PASSED suites/replication/cleanallruv_test.py::test_stress_clean PASSED suites/replication/cleanallruv_test.py::test_multiple_tasks_with_force PASSED suites/replication/regression_test.py::test_double_delete PASSED suites/replication/regression_test.py::test_password_repl_error PASSED suites/replication/regression_test.py::test_invalid_agmt PASSED suites/replication/ruvstore_test.py::test_ruv_entry_backup PASSED suites/replication/ruvstore_test.py::test_memoryruv_sync_with_databaseruv PASSED suites/replication/single_master_test.py::test_mail_attr_repl PASSED suites/replication/single_master_test.py::test_lastupdate_attr_before_init PASSED suites/replication/tombstone_test.py::test_purge_success 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/sasl/allowed_mechs_test.py::test_basic_feature PASSED suites/sasl/plain_test.py::test_basic_feature FAILED suites/schema/schema_reload_test.py::test_valid_schema PASSED suites/schema/schema_reload_test.py::test_invalid_schema PASSED suites/schema/test_eduperson.py::test_account_locking PASSED suites/schema/test_schema.py::test_schema_comparewithfiles PASSED suites/setup_ds/setup_ds_test.py::test_slapd_InstScriptsEnabled[true] PASSED suites/setup_ds/setup_ds_test.py::test_slapd_InstScriptsEnabled[false] PASSED =================================== FAILURES =================================== ______________________________ test_basic_feature ______________________________ topology_st = <lib389.topologies.TopologyMain object at 0x7f84216095d0> def test_basic_feature(topology_st): """Check basic SASL functionality for PLAIN mechanism :id: 75ddc6fa-aa5a-4025-9c71-1abad20c91fc :setup: Standalone instance :steps: 1. Stop the instance 2. Clean up confdir from previous cert and key files 3. Create RSA files: CA, key and cert 4. Start the instance 5. Create RSA entry 6. Set nsslapd-secureport to 636 and nsslapd-security to '\''on'\'' 7. Restart the instance 8. Create a user 9. Check we can bind 10. Check that PLAIN is listed in supported mechs 11. Set up Plain SASL credentials 12. Try to open a connection without TLS 13. Try to open a connection with TLS 14. Try to open a connection with a wrong password :expectedresults: 1. The instance should stop 2. Confdir should be clean 3. RSA files should be created 4. The instance should start 5. RSA entry should be created 6. nsslapd-secureport and nsslapd-security should be set successfully 7. The instance should be restarted 8. User should be created 9. Bind should be successful 10. PLAIN should be listed in supported mechs 11. Plain SASL should be successfully set 12. AUTH_UNKNOWN exception should be raised 13. The connection should open 14. INVALID_CREDENTIALS exception should be raised """ standalone = topology_st.standalone # SETUP TLS standalone.stop() # Prepare SSL but don'\''t enable it. for f in ('\''key3.db'\'', '\''cert8.db'\'', '\''key4.db'\'', '\''cert9.db'\'', '\''secmod.db'\'', '\''pkcs11.txt'\''): try: os.remove("%s/%s" % (standalone.confdir, f)) except: pass assert(standalone.nss_ssl.reinit() is True) assert(standalone.nss_ssl.create_rsa_ca() is True) assert(standalone.nss_ssl.create_rsa_key_and_cert() is True) # Start again standalone.start() standalone.rsa.create() # Set the secure port and nsslapd-security # Could this fail with selinux? standalone.config.set('\''nsslapd-secureport'\'', str(DEFAULT_SECURE_PORT)) standalone.config.set('\''nsslapd-security'\'', '\''on'\'') # Do we need to restart to allow starttls? standalone.restart() # Create a user sas = ServiceAccounts(standalone, DEFAULT_SUFFIX) sas._basedn = DEFAULT_SUFFIX sa = sas.create(properties={'\''cn'\'': '\''testaccount'\'', '\''userPassword'\'': '\''password'\''}) # Check we can bind. This will raise exceptions if it fails. sa.bind('\''password'\'') # Check that PLAIN is listed in supported mechns. assert(standalone.rootdse.supports_sasl_plain()) # The sasl parameters don'\''t change, so set them up now. # Do we need the sasl map dn:? auth_tokens = PlainSASL("dn:%s" % sa.dn, '\''password'\'') # Check that it fails without TLS with pytest.raises(ldap.AUTH_UNKNOWN): standalone.openConnection(saslmethod='\''PLAIN'\'', sasltoken=auth_tokens, starttls=False, connOnly=True) # We *have* to use REQCERT NEVER here because python ldap fails cert verification for .... some reason that even # I can not solve. I think it'\''s leaking state across connections in start_tls_s? # Check that it works with TLS conn = standalone.openConnection(saslmethod='\''PLAIN'\'', sasltoken=auth_tokens, starttls=True, connOnly=True, > certdir=standalone.get_cert_dir(), reqcert=ldap.OPT_X_TLS_NEVER) <http://vm-166.abc.idm.lab.eng.brq.redhat.com:8080/job/NIGHTLY/ws/source/389-ds-base/dirsrvtests/tests/suites/sasl/plain_test.py>:106: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ <http://vm-166.abc.idm.lab.eng.brq.redhat.com:8080/job/NIGHTLY/ws/source/389-ds-base/src/lib389/lib389/__init__.py>:540: in openConnection server.open(*args, **kwargs) <http://vm-166.abc.idm.lab.eng.brq.redhat.com:8080/job/NIGHTLY/ws/source/389-ds-base/src/lib389/lib389/__init__.py>:1081: in open self.start_tls_s() <http://vm-166.abc.idm.lab.eng.brq.redhat.com:8080/job/NIGHTLY/ws/source/389-ds-base/src/lib389/lib389/__init__.py>:162: in inner return f(*args, **kwargs) /usr/lib64/python2.7/site-packages/ldap/ldapobject.py:609: in start_tls_s return self._ldap_call(self._l.start_tls_s) <http://vm-166.abc.idm.lab.eng.brq.redhat.com:8080/job/NIGHTLY/ws/source/389-ds-base/src/lib389/lib389/__init__.py>:162: in inner return f(*args, **kwargs) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <lib389.DirSrv object at 0x7f8423ba8bd0> func = <built-in method start_tls_s of LDAP object at 0x7f842d239760>, args = () kwargs = {}, diagnostic_message_success = None e = CONNECT_ERROR({'\''info'\'': '\''TLS error -8174:security library: bad database.'\'', '\''desc'\'': '\''Connect error'\''},) def _ldap_call(self,func,*args,**kwargs): """ Wrapper method mainly for serializing calls into OpenLDAP libs and trace logs """ self._ldap_object_lock.acquire() if __debug__: if self._trace_level>=1: self._trace_file.write('\''*** %s %s - %s\n%s\n'\'' % ( repr(self), self._uri, '\''.'\''.join((self.__class__.__name__,func.__name__)), pprint.pformat((args,kwargs)) )) if self._trace_level>=9: traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file) diagnostic_message_success = None try: try: > result = func(*args,**kwargs) E CONNECT_ERROR: {'\''info'\'': '\''TLS error -8174:security library: bad database.'\'', '\''desc'\'': '\''Connect error'\''} /usr/lib64/python2.7/site-packages/ldap/ldapobject.py:106: CONNECT_ERROR ---------------------------- Captured stdout setup ----------------------------- OK group dirsrv exists OK user dirsrv exists ---------------------------- Captured stderr setup ----------------------------- INFO:lib389.topologies:Instance with parameters {'\''ldap-port'\'': 38901, '\''suffix'\'': '\''dc=example,dc=com'\'', '\''krb5_realm'\'': None, '\''deployed-dir'\'': '\''/usr'\'', '\''inst-backupdir'\'': '\''/tmp'\'', '\''hostname'\'': '\''localhost'\'', '\''server-id'\'': '\''standalone1'\'', '\''root-pw'\'': '\''password'\'', '\''root-dn'\'': '\''cn=Directory Manager'\'', '\''group-id'\'': None, '\''InstScriptsEnabled'\'': None, '\''user-id'\'': None, '\''ldap-secureport'\'': None} was created. ----------------------------- Captured stderr call ----------------------------- Generating key. This may take a few moments... Generating key. This may take a few moments... ============== 1 failed, 645 passed, 1 skipped in 9050.01 seconds ==============' + '[' 1 -ne 0 ']' + echo CI Tests 'FAILED!' CI Tests FAILED! + MSG=FAILED + RC=1 + sudo /usr/sbin/sendmail mreynolds@xxxxxxxxxx firstyear@xxxxxxxxxx + sudo rm -rf /var/tmp/slapd.vg.102701 /var/tmp/slapd.vg.18917 /var/tmp/slapd.vg.584 /var/tmp/slapd.vg.719 + exit 1 Build step 'Execute shell' marked build as failure [locks-and-latches] Releasing all the locks [locks-and-latches] All the locks released _______________________________________________ 389-devel mailing list -- 389-devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to 389-devel-leave@xxxxxxxxxxxxxxxxxxxxxxx