[nunc-stans] branch master updated (fa990ff -> b2e8187)
by git repository hosting
This is an automated email from the git hooks/post-receive script.
mreynolds pushed a change to branch master
in repository nunc-stans.
from fa990ff Fix README
new b2e8187 Fix README
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.
Summary of changes:
README.md | 1 +
1 file changed, 1 insertion(+)
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
7 years, 2 months
[nunc-stans] branch master updated (8afb266 -> fa990ff)
by git repository hosting
This is an automated email from the git hooks/post-receive script.
mreynolds pushed a change to branch master
in repository nunc-stans.
from 8afb266 Fix README
new fa990ff Fix README
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.
Summary of changes:
README.md | 1 -
1 file changed, 1 deletion(-)
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
7 years, 2 months
[nunc-stans] 01/01: Fix README
by git repository hosting
This is an automated email from the git hooks/post-receive script.
mreynolds pushed a commit to branch master
in repository nunc-stans.
commit 8afb2662cc1b04401d08093fd1b2e0ef4c6d74aa
Author: Mark Reynolds <mreynolds(a)redhat.com>
Date: Mon Feb 13 18:10:02 2017 -0500
Fix README
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index 977c4cd..ba37d46 100644
--- a/README.md
+++ b/README.md
@@ -8,3 +8,4 @@ It has been primarily developed using http://libevent.org .
Nunc Stans uses doxygen to generate docs from the source. The generated docs are here: https://firstyear.fedorapeople.org/nunc-stans/index.html .
+
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
7 years, 2 months
[nunc-stans] 01/01: Fix README
by git repository hosting
This is an automated email from the git hooks/post-receive script.
mreynolds pushed a commit to branch master
in repository nunc-stans.
commit 88cf541af4364e0a4bfdcb002fbc1592c3a00c33
Author: Mark Reynolds <mreynolds(a)redhat.com>
Date: Mon Feb 13 18:03:17 2017 -0500
Fix README
---
README.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/README.md b/README.md
index ba37d46..977c4cd 100644
--- a/README.md
+++ b/README.md
@@ -8,4 +8,3 @@ It has been primarily developed using http://libevent.org .
Nunc Stans uses doxygen to generate docs from the source. The generated docs are here: https://firstyear.fedorapeople.org/nunc-stans/index.html .
-
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
7 years, 2 months
[nunc-stans] 01/01: Fix README
by git repository hosting
This is an automated email from the git hooks/post-receive script.
mreynolds pushed a commit to branch master
in repository nunc-stans.
commit 1c74ddc0721b592514b3afa9c2c16bf0ea5fb633
Author: Mark Reynolds <mreynolds(a)redhat.com>
Date: Mon Feb 13 18:01:36 2017 -0500
Fix README
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index e221c32..ba37d46 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
Nunc Stans is an event framework wrapper that provides a thread pool for event callback execution. It provides thread safety to event frameworks by isolating and protecting the thread safe parts from the non-thread safe parts, and allows multi-threaded applications to use event frameworks that are not thread safe.
-It has been primarily developed using http://libevent.org.
+It has been primarily developed using http://libevent.org .
# Documentation
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
7 years, 2 months
[nunc-stans] 01/01: Fix README 2
by git repository hosting
This is an automated email from the git hooks/post-receive script.
mreynolds pushed a commit to branch master
in repository nunc-stans.
commit e20eb7a10708a66ee5b79991df67a46b2446a921
Author: Mark Reynolds <mreynolds(a)redhat.com>
Date: Mon Feb 13 18:00:20 2017 -0500
Fix README 2
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index ba37d46..e221c32 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
Nunc Stans is an event framework wrapper that provides a thread pool for event callback execution. It provides thread safety to event frameworks by isolating and protecting the thread safe parts from the non-thread safe parts, and allows multi-threaded applications to use event frameworks that are not thread safe.
-It has been primarily developed using http://libevent.org .
+It has been primarily developed using http://libevent.org.
# Documentation
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
7 years, 2 months
[nunc-stans] 01/01: Fix README
by git repository hosting
This is an automated email from the git hooks/post-receive script.
mreynolds pushed a commit to branch master
in repository nunc-stans.
commit b2f05c1f3d17645953597687c214f17e1641a4cc
Author: Mark Reynolds <mreynolds(a)redhat.com>
Date: Mon Feb 13 17:55:02 2017 -0500
Fix README
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index e221c32..ba37d46 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
Nunc Stans is an event framework wrapper that provides a thread pool for event callback execution. It provides thread safety to event frameworks by isolating and protecting the thread safe parts from the non-thread safe parts, and allows multi-threaded applications to use event frameworks that are not thread safe.
-It has been primarily developed using http://libevent.org.
+It has been primarily developed using http://libevent.org .
# Documentation
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
7 years, 2 months
[nunc-stans] 01/01: Update README
by git repository hosting
This is an automated email from the git hooks/post-receive script.
mreynolds pushed a commit to branch master
in repository nunc-stans.
commit 04eeeca0229a02575825afde6f895095ad8537df
Author: Mark Reynolds <mreynolds(a)redhat.com>
Date: Mon Feb 13 17:35:09 2017 -0500
Update README
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index ba37d46..e221c32 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
Nunc Stans is an event framework wrapper that provides a thread pool for event callback execution. It provides thread safety to event frameworks by isolating and protecting the thread safe parts from the non-thread safe parts, and allows multi-threaded applications to use event frameworks that are not thread safe.
-It has been primarily developed using http://libevent.org .
+It has been primarily developed using http://libevent.org.
# Documentation
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
7 years, 2 months
Branch '389-ds-base-1.3.5' - ldap/servers
by Ludwig Krispenz
ldap/servers/plugins/replication/repl5_ruv.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
New commits:
commit 23d98baa8aadab80691680ba065563ad1e35591c
Author: Ludwig Krispenz <lkrispen(a)redhat.com>
Date: Tue Feb 7 17:02:00 2017 +0100
fix for reg in 49008, check if ruv element exists
diff --git a/ldap/servers/plugins/replication/repl5_ruv.c b/ldap/servers/plugins/replication/repl5_ruv.c
index c2d3bb4..5086313 100644
--- a/ldap/servers/plugins/replication/repl5_ruv.c
+++ b/ldap/servers/plugins/replication/repl5_ruv.c
@@ -1703,8 +1703,14 @@ int ruv_cancel_csn_inprogress (RUV *ruv, const CSN *csn, ReplicaId local_rid)
replica = ruvGetReplica (ruv, prim_rid);
rc = csnplRemoveAll (replica->csnpl, prim_csn);
if (prim_rid != local_rid) {
- replica = ruvGetReplica (ruv, local_rid);
- rc = csnplRemoveAll (replica->csnpl, prim_csn);
+ if( local_rid != READ_ONLY_REPLICA_ID) {
+ replica = ruvGetReplica (ruv, local_rid);
+ if (replica) {
+ rc = csnplRemoveAll (replica->csnpl, prim_csn);
+ } else {
+ rc = RUV_NOTFOUND;
+ }
+ }
}
} else {
rc = csnplRemove (replica->csnpl, csn);
7 years, 2 months
dirsrvtests/tests
by Simon Pichugin
dirsrvtests/tests/suites/replication/acceptance_test.py | 200 +++++++++++++
dirsrvtests/tests/suites/replication/single_master_test.py | 2
2 files changed, 201 insertions(+), 1 deletion(-)
New commits:
commit 5cd0a0306d2989436563d7971cdb881d751e9450
Author: Simon Pichugin <spichugi(a)redhat.com>
Date: Wed Feb 1 14:43:59 2017 +0100
Ticket 48085 - Add replica acceptance test suite
Description: Add basic operations test cases on 4 masters:
- add
- modify (add, replace, delete attribute)
- delete
- moderdn (delold = 0 and = 1)
[ported from TET]
https://fedorahosted.org/389/ticket/48085
Reviewed by: wibrown (Thanks!)
diff --git a/dirsrvtests/tests/suites/replication/acceptance_test.py b/dirsrvtests/tests/suites/replication/acceptance_test.py
new file mode 100644
index 0000000..e6f2ef7
--- /dev/null
+++ b/dirsrvtests/tests/suites/replication/acceptance_test.py
@@ -0,0 +1,200 @@
+import pytest
+from lib389.tasks import *
+from lib389.utils import *
+from lib389.topologies import topology_m4 as topo
+
+TEST_ENTRY_NAME = 'mmrepl_test'
+TEST_ENTRY_DN = 'uid={},{}'.format(TEST_ENTRY_NAME, DEFAULT_SUFFIX)
+
+DEBUGGING = os.getenv("DEBUGGING", default=False)
+if DEBUGGING:
+ logging.getLogger(__name__).setLevel(logging.DEBUG)
+else:
+ logging.getLogger(__name__).setLevel(logging.INFO)
+log = logging.getLogger(__name__)
+
+
+(a)pytest.fixture(scope="function")
+def test_entry(topo, request):
+ """Add test entry to master1"""
+
+ log.info('Adding entry {}'.format(TEST_ENTRY_DN))
+ try:
+ topo.ms["master1"].add_s(Entry((TEST_ENTRY_DN, {
+ 'objectclass': 'top person'.split(),
+ 'objectclass': 'organizationalPerson',
+ 'objectclass': 'inetorgperson',
+ 'cn': TEST_ENTRY_NAME,
+ 'sn': TEST_ENTRY_NAME,
+ 'uid': TEST_ENTRY_NAME
+ })))
+ except ldap.LDAPError as e:
+ log.error('Failed to add entry (%s): error (%s)' % (TEST_ENTRY_DN,
+ e.message['desc']))
+ raise e
+
+ def fin():
+ log.info('Deleting entry {}'.format(TEST_ENTRY_DN))
+ try:
+ topo.ms["master1"].delete_s(TEST_ENTRY_DN)
+ except ldap.NO_SUCH_OBJECT:
+ log.info("Entry {} wasn't found".format(TEST_ENTRY_DN))
+
+ request.addfinalizer(fin)
+
+
+def get_repl_entries(topo, entry_name, attr_list):
+ """Get a list of test entries from all masters"""
+
+ entries_list = []
+
+ log.info('Wait for replication to happen')
+ time.sleep(3)
+
+ for num in range(1, 5):
+ entries = topo.ms['master{}'.format(num)].search_s(DEFAULT_SUFFIX, ldap.SCOPE_SUBTREE,
+ "uid={}".format(entry_name), attr_list)
+ entries_list += entries
+
+ return entries_list
+
+
+def test_add_entry(topo, test_entry):
+ """Check that entries are replicated after add operation
+
+ :Feature: Multi master replication
+
+ :Setup: Four masters replication setup
+
+ :Steps: 1. Add entry to master1
+ 2. Wait for replication to happen
+ 3. Check entry on all other masters
+
+ :Assert: Entry should be replicated
+ """
+
+ entries = get_repl_entries(topo, TEST_ENTRY_NAME, ["uid"])
+ assert all(entries), "Entry {} wasn't replicated successfully".format(TEST_ENTRY_DN)
+
+
+def test_modify_entry(topo, test_entry):
+ """Check that entries are replicated after modify operation
+
+ :Feature: Multi master replication
+
+ :Setup: Four masters replication setup, an entry
+
+ :Steps: 1. Modify the entry on master1 (try add, modify and delete operations)
+ 2. Wait for replication to happen
+ 3. Check entry on all other masters
+
+ :Assert: Entry attr should be replicated
+ """
+
+ log.info('Modifying entry {} - add operation'.format(TEST_ENTRY_DN))
+ try:
+ topo.ms["master1"].modify_s(TEST_ENTRY_DN, [(ldap.MOD_ADD,
+ 'mail', '{}(a)redhat.com'.format(TEST_ENTRY_NAME))])
+ except ldap.LDAPError as e:
+ log.error('Failed to modify entry (%s): error (%s)' % (TEST_ENTRY_DN,
+ e.message['desc']))
+ raise e
+
+ entries = get_repl_entries(topo, TEST_ENTRY_NAME, ["mail"])
+ assert all(entry["mail"] == "{}(a)redhat.com".format(TEST_ENTRY_NAME)
+ for entry in entries), "Entry attr {} wasn't replicated successfully".format(TEST_ENTRY_DN)
+
+ log.info('Modifying entry {} - replace operation'.format(TEST_ENTRY_DN))
+ try:
+ topo.ms["master1"].modify_s(TEST_ENTRY_DN, [(ldap.MOD_REPLACE,
+ 'mail', '{}(a)greenhat.com'.format(TEST_ENTRY_NAME))])
+ except ldap.LDAPError as e:
+ log.error('Failed to modify entry (%s): error (%s)' % (TEST_ENTRY_DN,
+ e.message['desc']))
+ raise e
+
+ entries = get_repl_entries(topo, TEST_ENTRY_NAME, ["mail"])
+ assert all(entry["mail"] == "{}(a)greenhat.com".format(TEST_ENTRY_NAME)
+ for entry in entries), "Entry attr {} wasn't replicated successfully".format(TEST_ENTRY_DN)
+
+ log.info('Modifying entry {} - delete operation'.format(TEST_ENTRY_DN))
+ try:
+ topo.ms["master1"].modify_s(TEST_ENTRY_DN, [(ldap.MOD_DELETE,
+ 'mail', '{}(a)greenhat.com'.format(TEST_ENTRY_NAME))])
+ except ldap.LDAPError as e:
+ log.error('Failed to modify entry (%s): error (%s)' % (TEST_ENTRY_DN,
+ e.message['desc']))
+ raise e
+
+ entries = get_repl_entries(topo, TEST_ENTRY_NAME, ["mail"])
+ assert all(not entry["mail"] for entry in entries), "Entry attr {} wasn't replicated successfully".format(
+ TEST_ENTRY_DN)
+
+
+def test_delete_entry(topo, test_entry):
+ """Check that entry deletion is replicated after delete operation
+
+ :Feature: Multi master replication
+
+ :Setup: Four masters replication setup, an entry
+
+ :Steps: 1. Delete the entry from master1
+ 2. Wait for replication to happen
+ 3. Check entry on all other masters
+
+ :Assert: Entry deletion should be replicated
+ """
+
+ log.info('Deleting entry {} during the test'.format(TEST_ENTRY_DN))
+ topo.ms["master1"].delete_s(TEST_ENTRY_DN)
+
+ entries = get_repl_entries(topo, TEST_ENTRY_NAME, ["uid"])
+ assert not entries, "Entry deletion {} wasn't replicated successfully".format(TEST_ENTRY_DN)
+
+
+(a)pytest.mark.parametrize("delold", [0, 1])
+def test_modrdn_entry(topo, test_entry, delold):
+ """Check that entries are replicated after modrdn operation
+
+ :Feature: Multi master replication
+
+ :Setup: Four masters replication setup, an entry
+
+ :Steps: 1. Make modrdn operation on entry on master1 with both delold 1 and 0
+ 2. Wait for replication to happen
+ 3. Check entry on all other masters
+
+ :Assert: Entry with new RDN should be replicated.
+ If delold was specified, entry with old RDN shouldn't exist
+ """
+
+ newrdn_name = 'newrdn'
+ newrdn_dn = 'uid={},{}'.format(newrdn_name, DEFAULT_SUFFIX)
+ log.info('Modify entry RDN {}'.format(TEST_ENTRY_DN))
+ try:
+ topo.ms["master1"].modrdn_s(TEST_ENTRY_DN, 'uid={}'.format(newrdn_name), delold)
+ except ldap.LDAPError as e:
+ log.error('Failed to modrdn entry (%s): error (%s)' % (TEST_ENTRY_DN,
+ e.message['desc']))
+ raise e
+
+ try:
+ entries_new = get_repl_entries(topo, newrdn_name, ["uid"])
+ assert all(entries_new), "Entry {} wasn't replicated successfully".format(TEST_ENTRY_DN)
+ if delold == 0:
+ entries_old = get_repl_entries(topo, TEST_ENTRY_NAME, ["uid"])
+ assert all(entries_old), "Entry with old rdn {} wasn't replicated successfully".format(TEST_ENTRY_DN)
+ else:
+ entries_old = get_repl_entries(topo, TEST_ENTRY_NAME, ["uid"])
+ assert not entries_old, "Entry with old rdn {} wasn't removed in replicas successfully".format(
+ TEST_ENTRY_DN)
+ finally:
+ log.info('Remove entry with new RDN {}'.format(newrdn_dn))
+ topo.ms["master1"].delete_s(newrdn_dn)
+
+
+if __name__ == '__main__':
+ # Run isolated
+ # -s for DEBUG mode
+ CURRENT_FILE = os.path.realpath(__file__)
+ pytest.main("-s %s" % CURRENT_FILE)
diff --git a/dirsrvtests/tests/suites/replication/single_master_test.py b/dirsrvtests/tests/suites/replication/single_master_test.py
index a743d2c..7c2ff27 100644
--- a/dirsrvtests/tests/suites/replication/single_master_test.py
+++ b/dirsrvtests/tests/suites/replication/single_master_test.py
@@ -129,7 +129,7 @@ def test_mail_attr_repl(topo_r, test_user):
assert entries, "User {} wasn't replicated successfully".format(TEST_USER_NAME)
-def test_mail_attr_repl(topo_nr, replica_without_init):
+def test_lastupdate_attr_before_init(topo_nr, replica_without_init):
"""Check that LastUpdate replica attributes show right values
:Feature: Single master replication
7 years, 2 months