This is an automated email from the git hooks/post-receive script.
mreynolds pushed a commit to branch master
in repository 389-ds-base.
commit 59d1556458647d1573b7d4a224c80052cce7bee1
Author: Mark Reynolds <mreynolds(a)redhat.com>
Date: Mon Aug 21 16:02:54 2017 -0400
Ticket 49295 - Fix CI tests
Description: Fix the next round of failures. There are still more
issues with 48252 and 48755
https://pagure.io/389-ds-base/issue/49295
Reviewed by: spichugi(Thanks!)
---
.../tests/suites/plugins/rootdn_plugin_test.py | 19 +++--
.../replication/wait_for_async_feature_test.py | 11 ++-
dirsrvtests/tests/tickets/ticket1347760_test.py | 16 ++--
dirsrvtests/tests/tickets/ticket47536_test.py | 19 +++--
dirsrvtests/tests/tickets/ticket47966_test.py | 2 +-
dirsrvtests/tests/tickets/ticket47981_test.py | 4 +-
dirsrvtests/tests/tickets/ticket48252_test.py | 21 +++--
dirsrvtests/tests/tickets/ticket48755_test.py | 2 +-
dirsrvtests/tests/tickets/ticket48784_test.py | 6 +-
dirsrvtests/tests/tickets/ticket49287_test.py | 98 +++++++++++++---------
10 files changed, 114 insertions(+), 84 deletions(-)
diff --git a/dirsrvtests/tests/suites/plugins/rootdn_plugin_test.py
b/dirsrvtests/tests/suites/plugins/rootdn_plugin_test.py
index a5f42ac..af5c4c4 100644
--- a/dirsrvtests/tests/suites/plugins/rootdn_plugin_test.py
+++ b/dirsrvtests/tests/suites/plugins/rootdn_plugin_test.py
@@ -295,7 +295,7 @@ def test_rootdn_access_denied_ip(topology_st):
try:
topology_st.standalone.simple_bind_s(USER1_DN, PASSWORD)
except ldap.LDAPError as e:
- log.fatal('test_rootdn_access_denied_ip: : failed to bind as user1')
+ log.fatal('test_rootdn_access_denied_ip: failed to bind as user1')
assert False
try:
@@ -344,9 +344,10 @@ def test_rootdn_access_denied_host(topology_st):
topology_st.standalone.modify_s(PLUGIN_DN, [(ldap.MOD_ADD,
'rootdn-deny-host',
hostname)])
- topology_st.standalone.modify_s(PLUGIN_DN, [(ldap.MOD_ADD,
- 'rootdn-deny-host',
- localhost)])
+ if localhost != hostname:
+ topology_st.standalone.modify_s(PLUGIN_DN, [(ldap.MOD_ADD,
+ 'rootdn-deny-host',
+ localhost)])
except ldap.LDAPError as e:
log.fatal('test_rootdn_access_denied_host: Failed to set deny host: error
' +
e.message['desc'])
@@ -524,12 +525,16 @@ def test_rootdn_access_allowed_host(topology_st):
hostname = socket.gethostname()
localhost = DirSrvTools.getLocalhost()
try:
- topology_st.standalone.modify_s(PLUGIN_DN, [(ldap.MOD_ADD,
+ topology_st.standalone.modify_s(PLUGIN_DN, [(ldap.MOD_DELETE,
'rootdn-allow-host',
- localhost)])
+ None)])
topology_st.standalone.modify_s(PLUGIN_DN, [(ldap.MOD_ADD,
'rootdn-allow-host',
- hostname)])
+ localhost)])
+ if hostname != localhost:
+ topology_st.standalone.modify_s(PLUGIN_DN, [(ldap.MOD_ADD,
+ 'rootdn-allow-host',
+ hostname)])
except ldap.LDAPError as e:
log.fatal('test_rootdn_access_allowed_host: Failed to set allowed host: error
' +
e.message['desc'])
diff --git a/dirsrvtests/tests/suites/replication/wait_for_async_feature_test.py
b/dirsrvtests/tests/suites/replication/wait_for_async_feature_test.py
index 34ead67..cac25f8 100644
--- a/dirsrvtests/tests/suites/replication/wait_for_async_feature_test.py
+++ b/dirsrvtests/tests/suites/replication/wait_for_async_feature_test.py
@@ -36,7 +36,7 @@ def waitfor_async_attr(topology_m2, request):
# Run through all masters
for num in range(1, 3):
master = topology_m2.ms["master{}".format(num)]
- agmt = topology_m2.ms["master{}_agmts".format(num)].values()[0]
+ agmt = master.agreement.list(suffix=DEFAULT_SUFFIX)[0].dn
try:
if attr_value:
log.info("Set %s: %s on %s" % (
@@ -97,9 +97,8 @@ def entries(topology_m2, request):
def test_not_int_value(topology_m2):
"""Tests not integer value"""
-
master1 = topology_m2.ms["master1"]
- agmt = topology_m2.ms["master1_agmts"]["m1_m2"]
+ agmt = master1.agreement.list(suffix=DEFAULT_SUFFIX)[0].dn
log.info("Try to set %s: wv1" % WAITFOR_ASYNC_ATTR)
try:
@@ -111,9 +110,9 @@ def test_not_int_value(topology_m2):
def test_multi_value(topology_m2):
"""Tests multi value"""
-
master1 = topology_m2.ms["master1"]
- agmt = topology_m2.ms["master1_agmts"]["m1_m2"]
+ agmt = master1.agreement.list(suffix=DEFAULT_SUFFIX)[0].dn
+
log.info("agmt: %s" % agmt)
log.info("Try to set %s: 100 and 101 in the same time (multi value test)" %
(
@@ -134,7 +133,7 @@ def test_value_check(topology_m2, waitfor_async_attr):
for num in range(1, 3):
master = topology_m2.ms["master{}".format(num)]
- agmt = topology_m2.ms["master{}_agmts".format(num)].values()[0]
+ agmt = master.agreement.list(suffix=DEFAULT_SUFFIX)[0].dn
log.info("Check attr %s on %s" % (WAITFOR_ASYNC_ATTR,
master.serverid))
try:
diff --git a/dirsrvtests/tests/tickets/ticket1347760_test.py
b/dirsrvtests/tests/tickets/ticket1347760_test.py
index 9187cf6..4dc2311 100644
--- a/dirsrvtests/tests/tickets/ticket1347760_test.py
+++ b/dirsrvtests/tests/tickets/ticket1347760_test.py
@@ -79,7 +79,7 @@ def check_op_result(server, op, dn, superior, exists, rc):
else:
opstr = 'Modifying non-existing entry'
elif op == 'modrdn':
- if superior != None:
+ if superior is not None:
targetdn = superior
if exists:
opstr = 'Moving to existing superior'
@@ -113,7 +113,7 @@ def check_op_result(server, op, dn, superior, exists, rc):
elif op == 'modify':
server.modify_s(dn, [(ldap.MOD_REPLACE, 'description',
'test')])
elif op == 'modrdn':
- if superior != None:
+ if superior is not None:
server.rename_s(dn, 'uid=new', newsuperior=superior, delold=1)
else:
server.rename_s(dn, 'uid=new', delold=1)
@@ -127,7 +127,7 @@ def check_op_result(server, op, dn, superior, exists, rc):
log.info("Exception (expected): %s" % type(e).__name__)
log.info('Desc ' + e.message['desc'])
assert isinstance(e, rc)
- if e.message.has_key('matched'):
+ if 'matched' in e.message:
log.info('Matched is returned: ' + e.message['matched'])
if rc != ldap.NO_SUCH_OBJECT:
assert False
@@ -206,7 +206,7 @@ def test_ticket1347760(topology_st):
assert isinstance(e, ldap.INVALID_CREDENTIALS)
regex = re.compile('No such entry')
cause = pattern_accesslog(file_obj, regex)
- if cause == None:
+ if cause is None:
log.fatal('Cause not found - %s' % cause)
assert False
else:
@@ -220,7 +220,7 @@ def test_ticket1347760(topology_st):
topology_st.standalone.simple_bind_s(BOGUSSUFFIX, 'bogus')
regex = re.compile('No suffix for bind')
cause = pattern_accesslog(file_obj, regex)
- if cause == None:
+ if cause is None:
log.fatal('Cause not found - %s' % cause)
assert False
else:
@@ -238,7 +238,7 @@ def test_ticket1347760(topology_st):
assert isinstance(e, ldap.INVALID_CREDENTIALS)
regex = re.compile('Invalid credentials')
cause = pattern_accesslog(file_obj, regex)
- if cause == None:
+ if cause is None:
log.fatal('Cause not found - %s' % cause)
assert False
else:
@@ -437,13 +437,13 @@ def test_ticket1347760(topology_st):
log.info('Desc ' + e.message['desc'])
assert isinstance(e, ldap.UNWILLING_TO_PERFORM)
- log.info('Bind as {%s,%s} which should fail with %s.' % (BINDDN,
'bogus', ldap.INVALID_CREDENTIALS.__name__))
+ log.info('Bind as {%s,%s} which should fail with %s.' % (BINDDN,
'bogus', ldap.UNWILLING_TO_PERFORM.__name__))
try:
topology_st.standalone.simple_bind_s(BINDDN, 'bogus')
except ldap.LDAPError as e:
log.info("Exception (expected): %s" % type(e).__name__)
log.info('Desc ' + e.message['desc'])
- assert isinstance(e, ldap.INVALID_CREDENTIALS)
+ assert isinstance(e, ldap.UNWILLING_TO_PERFORM)
log.info('SUCCESS')
diff --git a/dirsrvtests/tests/tickets/ticket47536_test.py
b/dirsrvtests/tests/tickets/ticket47536_test.py
index bb30bc8..bd7baf8 100644
--- a/dirsrvtests/tests/tickets/ticket47536_test.py
+++ b/dirsrvtests/tests/tickets/ticket47536_test.py
@@ -13,8 +13,7 @@ import subprocess
from lib389.tasks import *
from lib389.utils import *
from lib389.topologies import topology_m2
-
-from lib389._constants import DEFAULT_SUFFIX, DN_DM, PASSWORD
+from lib389._constants import *
pytestmark = pytest.mark.skipif(ds_is_older('1.3.5'), reason="Not
implemented")
@@ -290,7 +289,9 @@ def config_tls_agreements(topology_m2):
log.info("##################### master1 <- tls_clientAuth -- master2
##################")
log.info("##### Update the agreement of master1")
- m1_m2_agmt = topology_m2.ms["master1_agmts"]["m1_m2"]
+ m1 = topology_m2.ms["master1"]
+ m1_m2_agmt = m1.agreement.list(suffix=DEFAULT_SUFFIX)[0].dn
+
topology_m2.ms["master1"].modify_s(m1_m2_agmt, [(ldap.MOD_REPLACE,
'nsDS5ReplicaTransportInfo', 'TLS')])
log.info("##### Add the cert to the repl manager on master1")
@@ -328,16 +329,18 @@ def config_tls_agreements(topology_m2):
m1certmap = '%s/certmap.conf' % (m1confdir)
os.system('chmod 660 %s' % m1certmap)
m1cm = open(m1certmap, "w")
- m1cm.write('certmap Example %s\n' % ISSUER)
- m1cm.write('Example:DNComps cn\n')
+ m1cm.write('certmap Example %s\n' % ISSUER)
+ m1cm.write('Example:DNComps cn\n')
m1cm.write('Example:FilterComps\n')
- m1cm.write('Example:verifycert on\n')
- m1cm.write('Example:CmapLdapAttr description')
+ m1cm.write('Example:verifycert on\n')
+ m1cm.write('Example:CmapLdapAttr description')
m1cm.close()
os.system('chmod 440 %s' % m1certmap)
log.info("##### Update the agreement of master2")
- m2_m1_agmt = topology_m2.ms["master2_agmts"]["m2_m1"]
+ m2 = topology_m2.ms["master2"]
+ m2_m1_agmt = m2.agreement.list(suffix=DEFAULT_SUFFIX)[0].dn
+
topology_m2.ms["master2"].modify_s(m2_m1_agmt, [(ldap.MOD_REPLACE,
'nsDS5ReplicaTransportInfo', 'TLS'),
(ldap.MOD_REPLACE,
'nsDS5ReplicaBindMethod', 'SSLCLIENTAUTH')])
diff --git a/dirsrvtests/tests/tickets/ticket47966_test.py
b/dirsrvtests/tests/tickets/ticket47966_test.py
index cace643..ba6f3b6 100644
--- a/dirsrvtests/tests/tickets/ticket47966_test.py
+++ b/dirsrvtests/tests/tickets/ticket47966_test.py
@@ -26,7 +26,7 @@ def test_ticket47966(topology_m2):
log.info('Testing Ticket 47966 - [VLV] slapd crashes during Dogtag clone
reinstallation')
M1 = topology_m2.ms["master1"]
M2 = topology_m2.ms["master2"]
- m1_m2_agmt = topology_m2.ms["master1_agmts"]["m1_m2"]
+ m1_m2_agmt = M1.agreement.list(suffix=DEFAULT_SUFFIX)[0].dn
log.info('0. Create a VLV index on Master 2.')
# get the backend entry
diff --git a/dirsrvtests/tests/tickets/ticket47981_test.py
b/dirsrvtests/tests/tickets/ticket47981_test.py
index 9ed3694..753169e 100644
--- a/dirsrvtests/tests/tickets/ticket47981_test.py
+++ b/dirsrvtests/tests/tickets/ticket47981_test.py
@@ -82,7 +82,7 @@ def addSubtreePwPolicy(inst):
except ldap.LDAPError as e:
log.error('Failed to add COS def: error ' + e.message['desc'])
assert False
- time.sleep(0.5)
+ time.sleep(1)
def delSubtreePwPolicy(inst):
@@ -109,7 +109,7 @@ def delSubtreePwPolicy(inst):
except ldap.LDAPError as e:
log.error('Failed to delete COS container: error ' +
e.message['desc'])
assert False
- time.sleep(0.5)
+ time.sleep(1)
def test_ticket47981(topology_st):
diff --git a/dirsrvtests/tests/tickets/ticket48252_test.py
b/dirsrvtests/tests/tickets/ticket48252_test.py
index d8d25e8..47f0eac 100644
--- a/dirsrvtests/tests/tickets/ticket48252_test.py
+++ b/dirsrvtests/tests/tickets/ticket48252_test.py
@@ -22,7 +22,6 @@ USER_NUM = 10
TEST_USER = "test_user"
-
def test_ticket48252_setup(topology_st):
"""
Enable USN plug-in for enabling tombstones
@@ -51,7 +50,7 @@ def test_ticket48252_setup(topology_st):
def in_index_file(topology_st, id, index):
key = "%s%s" % (TEST_USER, id)
- log.info(" dbscan - checking %s is in index file %s..." % (key, index))
+ log.info(" dbscan - checking %s is in index file %s..." % (key, index))
dbscanOut = topology_st.standalone.dbscan(DEFAULT_BENAME, index)
if key in dbscanOut:
@@ -73,16 +72,16 @@ def test_ticket48252_run_0(topology_st):
uas = UserAccounts(topology_st.standalone, DEFAULT_SUFFIX)
del_rdn = "cn=%s0" % TEST_USER
del_entry = uas.get('%s0' % TEST_USER)
- log.info(" Deleting a test entry %s..." % del_entry)
+ log.info(" Deleting a test entry %s..." % del_entry)
del_entry.delete()
assert in_index_file(topology_st, 0, 'cn') == False
- log.info(" db2index - reindexing %s ..." % 'cn')
+ log.info(" db2index - reindexing %s ..." % 'cn')
assert topology_st.standalone.db2index(DEFAULT_BENAME, 'cn')
assert in_index_file(topology_st, 0, 'cn') == False
- log.info(" entry %s is not in the cn index file after reindexed." %
del_rdn)
+ log.info(" entry %s is not in the cn index file after reindexed." %
del_rdn)
log.info('Case 1 - PASSED')
@@ -95,7 +94,7 @@ def test_ticket48252_run_1(topology_st):
uas = UserAccounts(topology_st.standalone, DEFAULT_SUFFIX)
del_rdn = "cn=%s1" % TEST_USER
del_entry = uas.get('%s1' % TEST_USER)
- log.info(" Deleting a test entry %s..." % del_rdn)
+ log.info(" Deleting a test entry %s..." % del_rdn)
del_uniqueid = del_entry.get_attr_val_utf8('nsuniqueid')
@@ -106,20 +105,20 @@ def test_ticket48252_run_1(topology_st):
entry = topology_st.standalone.search_s(SUFFIX, ldap.SCOPE_SUBTREE,
'(&(objectclass=nstombstone)(nsuniqueid=%s))' % del_uniqueid)
assert len(entry) == 1
- log.info(" entry %s is in the objectclass index file." % del_rdn)
+ log.info(" entry %s is in the objectclass index file." % del_rdn)
entry = topology_st.standalone.search_s(SUFFIX, ldap.SCOPE_SUBTREE,
'(&(objectclass=nstombstone)(%s))' % del_rdn)
assert len(entry) == 0
- log.info(" entry %s is correctly not in the cn index file before
reindexing." % del_rdn)
+ log.info(" entry %s is correctly not in the cn index file before
reindexing." % del_rdn)
- log.info(" db2index - reindexing %s ..." % 'objectclass')
+ log.info(" db2index - reindexing %s ..." % 'objectclass')
assert topology_st.standalone.db2index(DEFAULT_BENAME, 'objectclass')
entry = topology_st.standalone.search_s(SUFFIX, ldap.SCOPE_SUBTREE,
'(&(objectclass=nstombstone)(nsuniqueid=%s))' % del_uniqueid)
assert len(entry) == 1
- log.info(" entry %s is in the objectclass index file after reindexing." %
del_rdn)
+ log.info(" entry %s is in the objectclass index file after reindexing." %
del_rdn)
entry = topology_st.standalone.search_s(SUFFIX, ldap.SCOPE_SUBTREE,
'(&(objectclass=nstombstone)(%s))' % del_rdn)
assert len(entry) == 0
- log.info(" entry %s is correctly not in the cn index file after
reindexing." % del_rdn)
+ log.info(" entry %s is correctly not in the cn index file after
reindexing." % del_rdn)
log.info('Case 2 - PASSED')
diff --git a/dirsrvtests/tests/tickets/ticket48755_test.py
b/dirsrvtests/tests/tickets/ticket48755_test.py
index 9f2e2ac..b147d3e 100644
--- a/dirsrvtests/tests/tickets/ticket48755_test.py
+++ b/dirsrvtests/tests/tickets/ticket48755_test.py
@@ -133,7 +133,7 @@ def test_ticket48755(topology_m2):
log.info('%s => %s => %s => %s => 10 USERS' % (DEFAULT_SUFFIX,
parent1, parent01, parent001))
log.info("Run Consumer Initialization.")
- m1_m2_agmt = topology_m2.ms["master1_agmts"]["m1_m2"]
+ m1_m2_agmt = M1.agreement.list(suffix=DEFAULT_SUFFIX)[0].dn
M1.startReplication_async(m1_m2_agmt)
M1.waitForReplInit(m1_m2_agmt)
time.sleep(2)
diff --git a/dirsrvtests/tests/tickets/ticket48784_test.py
b/dirsrvtests/tests/tickets/ticket48784_test.py
index f562eb8..0f63302 100644
--- a/dirsrvtests/tests/tickets/ticket48784_test.py
+++ b/dirsrvtests/tests/tickets/ticket48784_test.py
@@ -113,11 +113,13 @@ def config_tls_agreements(topology_m2):
log.info("######################## master1 <-- startTLS -> master2
#####################")
log.info("##### Update the agreement of master1")
- m1_m2_agmt = topology_m2.ms["master1_agmts"]["m1_m2"]
+ m1 = topology_m2.ms["master1"]
+ m1_m2_agmt = m1.agreement.list(suffix=DEFAULT_SUFFIX)[0].dn
topology_m2.ms["master1"].modify_s(m1_m2_agmt, [(ldap.MOD_REPLACE,
'nsDS5ReplicaTransportInfo', 'TLS')])
log.info("##### Update the agreement of master2")
- m2_m1_agmt = topology_m2.ms["master2_agmts"]["m2_m1"]
+ m2 = topology_m2.ms["master2"]
+ m2_m1_agmt = m2.agreement.list(suffix=DEFAULT_SUFFIX)[0].dn
topology_m2.ms["master2"].modify_s(m2_m1_agmt, [(ldap.MOD_REPLACE,
'nsDS5ReplicaTransportInfo', 'TLS')])
time.sleep(1)
diff --git a/dirsrvtests/tests/tickets/ticket49287_test.py
b/dirsrvtests/tests/tickets/ticket49287_test.py
index 6a5f0a2..21ccf60 100644
--- a/dirsrvtests/tests/tickets/ticket49287_test.py
+++ b/dirsrvtests/tests/tickets/ticket49287_test.py
@@ -9,10 +9,9 @@
import pytest
from lib389.tasks import *
from lib389.utils import *
-from lib389._constants import (SUFFIX, ReplicaRole, defaultProperties,
REPLICATION_BIND_DN, PLUGIN_MEMBER_OF,
- REPLICATION_BIND_PW, REPLICATION_BIND_METHOD,
REPLICATION_TRANSPORT)
from lib389.properties import RA_NAME, RA_BINDDN, RA_BINDPW, RA_METHOD,
RA_TRANSPORT_PROT, BACKEND_NAME
from lib389.topologies import topology_m2
+from lib389._constants import *
DEBUGGING = os.getenv('DEBUGGING', False)
GROUP_DN = ("cn=group," + DEFAULT_SUFFIX)
@@ -23,17 +22,19 @@ else:
logging.getLogger(__name__).setLevel(logging.INFO)
log = logging.getLogger(__name__)
+
def _add_repl_backend(s1, s2, be, rid):
suffix = 'ou=%s,dc=test,dc=com' % be
create_backend(s1, s2, suffix, be)
add_ou(s1, suffix)
replicate_backend(s1, s2, suffix, rid)
+
def _wait_for_sync(s1, s2, testbase, final_db):
now = time.time()
- cn1 = 'sync-%s-%d' % (now,1)
- cn2 = 'sync-%s-%d' % (now,2)
+ cn1 = 'sync-%s-%d' % (now, 1)
+ cn2 = 'sync-%s-%d' % (now, 2)
add_user(s1, cn1, testbase, 'add on m1', sleep=False)
add_user(s2, cn2, testbase, 'add on m2', sleep=False)
dn1 = 'cn=%s,%s' % (cn1, testbase)
@@ -60,15 +61,16 @@ def _check_entry_exist(master, dn, loops=10, wait=1):
assert False
assert attempt <= loops
+
def config_memberof(server):
server.plugins.enable(name=PLUGIN_MEMBER_OF)
MEMBEROF_PLUGIN_DN = ('cn=' + PLUGIN_MEMBER_OF +
',cn=plugins,cn=config')
- server.modify_s(MEMBEROF_PLUGIN_DN,
- [(ldap.MOD_REPLACE,
- 'memberOfAllBackends','on')])
+ server.modify_s(MEMBEROF_PLUGIN_DN, [(ldap.MOD_REPLACE,
+ 'memberOfAllBackends',
+ 'on')])
# Configure fractional to prevent total init to send memberof
- ents = server.agreement.list(suffix=SUFFIX)
+ ents = server.agreement.list(suffix=DEFAULT_SUFFIX)
log.info('update %s to add nsDS5ReplicatedAttributeListTotal' % ents[0].dn)
for ent in ents:
server.modify_s(ent.dn,
@@ -79,25 +81,31 @@ def config_memberof(server):
'nsDS5ReplicatedAttributeList',
'(objectclass=*) $ EXCLUDE memberOf')])
+
def _disable_auto_oc_memberof(server):
MEMBEROF_PLUGIN_DN = ('cn=' + PLUGIN_MEMBER_OF +
',cn=plugins,cn=config')
server.modify_s(MEMBEROF_PLUGIN_DN,
[(ldap.MOD_REPLACE, 'memberOfAutoAddOC', 'nsContainer')])
+
def _enable_auto_oc_memberof(server):
MEMBEROF_PLUGIN_DN = ('cn=' + PLUGIN_MEMBER_OF +
',cn=plugins,cn=config')
server.modify_s(MEMBEROF_PLUGIN_DN,
[(ldap.MOD_REPLACE, 'memberOfAutoAddOC', 'nsMemberOf')])
+
def add_dc(server, dn):
server.add_s(Entry((dn, {'objectclass': ['top',
'domain']})))
+
def add_ou(server, dn):
server.add_s(Entry((dn, {'objectclass': ['top',
'organizationalunit']})))
+
def add_container(server, dn):
server.add_s(Entry((dn, {'objectclass': ['top',
'nscontainer']})))
+
def add_user(server, cn, testbase, desc, sleep=True):
dn = 'cn=%s,%s' % (cn, testbase)
log.fatal('Adding user (%s): ' % dn)
@@ -107,6 +115,7 @@ def add_user(server, cn, testbase, desc, sleep=True):
if sleep:
time.sleep(2)
+
def add_person(server, cn, testbase, desc, sleep=True):
dn = 'cn=%s,%s' % (cn, testbase)
log.fatal('Adding user (%s): ' % dn)
@@ -116,6 +125,7 @@ def add_person(server, cn, testbase, desc, sleep=True):
if sleep:
time.sleep(2)
+
def add_multi_member(server, cn, mem_id, mem_usr, testbase, sleep=True):
dn = 'cn=%s,ou=groups,%s' % (cn, testbase)
members = []
@@ -126,10 +136,11 @@ def add_multi_member(server, cn, mem_id, mem_usr, testbase,
sleep=True):
server.modify_s(dn, mod)
except ldap.OBJECT_CLASS_VIOLATION:
log.info('objectclass violation')
-
+
if sleep:
time.sleep(2)
+
def add_member(server, cn, mem, testbase, sleep=True):
dn = 'cn=%s,ou=groups,%s' % (cn, testbase)
mem_dn = 'cn=%s,ou=people,%s' % (mem, testbase)
@@ -138,19 +149,21 @@ def add_member(server, cn, mem, testbase, sleep=True):
if sleep:
time.sleep(2)
+
def add_group(server, testbase, nr, sleep=True):
dn = 'cn=g%d,ou=groups,%s' % (nr, testbase)
server.add_s(Entry((dn, {'objectclass': ['top',
'groupofnames'],
'member': [
- 'cn=m1_%d,%s' % (nr,testbase),
- 'cn=m2_%d,%s' % (nr,testbase),
- 'cn=m3_%d,%s' % (nr,testbase)
+ 'cn=m1_%d,%s' % (nr, testbase),
+ 'cn=m2_%d,%s' % (nr, testbase),
+ 'cn=m3_%d,%s' % (nr, testbase)
],
'description': 'group %d' % nr})))
if sleep:
time.sleep(2)
+
def del_group(server, testbase, nr, sleep=True):
dn = 'cn=g%d,%s' % (nr, testbase)
@@ -158,24 +171,28 @@ def del_group(server, testbase, nr, sleep=True):
if sleep:
time.sleep(2)
+
def mod_entry(server, cn, testbase, desc):
dn = 'cn=%s,%s' % (cn, testbase)
mod = [(ldap.MOD_ADD, 'description', desc)]
server.modify_s(dn, mod)
time.sleep(2)
+
def del_entry(server, testbase, cn):
dn = 'cn=%s,%s' % (cn, testbase)
server.delete_s(dn)
time.sleep(2)
+
def _disable_nunc_stans(server):
server.modify_s(DN_CONFIG,
[(ldap.MOD_REPLACE, 'nsslapd-enable-nunc-stans', 'off')])
+
def _enable_spec_logging(server):
mods = [(ldap.MOD_REPLACE, 'nsslapd-accesslog-level', str(260)), # Internal
op
- (ldap.MOD_REPLACE, 'nsslapd-errorlog-level', str(8192+65536)),
+ (ldap.MOD_REPLACE, 'nsslapd-errorlog-level', str(8192 + 65536)),
# (ldap.MOD_REPLACE, 'nsslapd-errorlog-level',
str(8192+32768+524288)),
# (ldap.MOD_REPLACE, 'nsslapd-errorlog-level', str(8192)),
(ldap.MOD_REPLACE, 'nsslapd-plugin-logging', 'on')]
@@ -183,17 +200,17 @@ def _enable_spec_logging(server):
server.modify_s(DN_CONFIG,
[(ldap.MOD_REPLACE, 'nsslapd-auditlog-logging-enabled', 'on')])
+
def create_agmt(s1, s2, replSuffix):
- properties = {RA_NAME: 'meTo_{}:{}'.format(s1.host,
- str(s2.port)),
+ properties = {RA_NAME: 'meTo_{}:{}'.format(s1.host, str(s2.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]}
new_agmt = s1.agreement.create(suffix=replSuffix,
- host=s2.host,
- port=s2.port,
- properties=properties)
+ host=s2.host,
+ port=s2.port,
+ properties=properties)
return new_agmt
@@ -203,9 +220,11 @@ def create_backend(s1, s2, beSuffix, beName):
s2.mappingtree.create(beSuffix, beName)
s2.backend.create(beSuffix, {BACKEND_NAME: beName})
+
def replicate_backend(s1, s2, beSuffix, rid):
s1.replica.enableReplication(suffix=beSuffix, role=ReplicaRole.MASTER,
replicaId=rid)
- s2.replica.enableReplication(suffix=beSuffix, role=ReplicaRole.MASTER,
replicaId=rid+1)
+ s2.replica.enableReplication(suffix=beSuffix, role=ReplicaRole.MASTER, replicaId=rid
+ 1)
+
# agreement m2_m1_agmt is not needed... :p
s1s2_agmt = create_agmt(s1, s2, beSuffix)
@@ -213,23 +232,25 @@ def replicate_backend(s1, s2, beSuffix, rid):
s1.agreement.init(beSuffix, s2.host, s2.port)
s1.waitForReplInit(s1s2_agmt)
+
def check_group_mods(server1, server2, group, testbase):
- # add members to group
+ # add members to group
add_multi_member(server1, group, 1, [1,2,3,4,5], testbase, sleep=False)
add_multi_member(server1, group, 2, [3,4,5], testbase, sleep=False)
add_multi_member(server1, group, 3, [0], testbase, sleep=False)
add_multi_member(server1, group, 4, [1,3,5], testbase, sleep=False)
add_multi_member(server1, group, 5, [2,0], testbase, sleep=False)
add_multi_member(server1, group, 6, [2,3,4], testbase, sleep=False)
- # check that replication is working
- # for main backend and some member backends
+ # check that replication is working
+ # for main backend and some member backends
_wait_for_sync(server1, server2, testbase, None)
for i in range(6):
be = "be_%d" % i
- _wait_for_sync(server1, server2, 'ou=%s,dc=test,dc=com'%be, None)
+ _wait_for_sync(server1, server2, 'ou=%s,dc=test,dc=com' % be, None)
+
def check_multi_group_mods(server1, server2, group1, group2, testbase):
- # add members to group
+ # add members to group
add_multi_member(server2, group1, 1, [1,2,3,4,5], testbase, sleep=False)
add_multi_member(server1, group2, 1, [1,2,3,4,5], testbase, sleep=False)
add_multi_member(server2, group1, 2, [3,4,5], testbase, sleep=False)
@@ -242,12 +263,13 @@ def check_multi_group_mods(server1, server2, group1, group2,
testbase):
add_multi_member(server1, group2, 5, [2,0], testbase, sleep=False)
add_multi_member(server2, group1, 6, [2,3,4], testbase, sleep=False)
add_multi_member(server1, group2, 6, [2,3,4], testbase, sleep=False)
- # check that replication is working
- # for main backend and some member backends
+ # check that replication is working
+ # for main backend and some member backends
_wait_for_sync(server1, server2, testbase, None)
for i in range(6):
be = "be_%d" % i
- _wait_for_sync(server1, server2, 'ou=%s,dc=test,dc=com'%be, None)
+ _wait_for_sync(server1, server2, 'ou=%s,dc=test,dc=com' % be, None)
+
def test_ticket49287(topology_m2):
"""
@@ -260,7 +282,6 @@ def test_ticket49287(topology_m2):
M1 = topology_m2.ms["master1"]
M2 = topology_m2.ms["master2"]
-
config_memberof(M1)
config_memberof(M2)
@@ -290,7 +311,7 @@ def test_ticket49287(topology_m2):
cn = 'a%d' % i
add_user(M1, cn, peoplebase, 'add on m1', sleep=False)
time.sleep(2)
- add_group(M1,testbase, 1)
+ add_group(M1, testbase, 1)
for i in range(10):
cn = 'a%d' % i
add_member(M1, 'g1', cn, testbase, sleep=False)
@@ -304,37 +325,38 @@ def test_ticket49287(topology_m2):
# test group with members in multiple backends
for i in range(7):
be = "be_%d" % i
- _add_repl_backend(M1, M2, be, 300+i)
+ _add_repl_backend(M1, M2, be, 300 + i)
# add entries akllowing meberof
- for i in range(1,7):
+ for i in range(1, 7):
be = "be_%d" % i
for i in range(10):
cn = 'a%d' % i
- add_user(M1, cn, 'ou=%s,dc=test,dc=com'%be, 'add on m1',
sleep=False)
+ add_user(M1, cn, 'ou=%s,dc=test,dc=com' % be, 'add on m1',
sleep=False)
# add entries not allowing memberof
be = 'be_0'
for i in range(10):
cn = 'a%d' % i
- add_person(M1, cn, 'ou=%s,dc=test,dc=com'%be, 'add on m1',
sleep=False)
+ add_person(M1, cn, 'ou=%s,dc=test,dc=com' % be, 'add on m1',
sleep=False)
_disable_auto_oc_memberof(M1)
_disable_auto_oc_memberof(M2)
- add_group(M1,testbase, 2)
+ add_group(M1, testbase, 2)
check_group_mods(M1, M2, 'g2', testbase)
_enable_auto_oc_memberof(M1)
- add_group(M1,testbase, 3)
+ add_group(M1, testbase, 3)
check_group_mods(M1, M2, 'g3', testbase)
_enable_auto_oc_memberof(M2)
- add_group(M1,testbase, 4)
+ add_group(M1, testbase, 4)
check_group_mods(M1, M2, 'g4', testbase)
- add_group(M1,testbase, 5)
- add_group(M1,testbase, 6)
+ add_group(M1, testbase, 5)
+ add_group(M1, testbase, 6)
check_multi_group_mods(M1, M2, 'g5', 'g6', testbase)
+
if __name__ == '__main__':
# Run isolated
# -s for DEBUG mode
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.