Univention Bugzilla – Attachment 10006 Details for
Bug 49415
stabilize errata tests on S4 connector
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
draft_wait_for.patch
draft_wait_for.patch (text/plain), 4.20 KB, created by
Arvid Requate
on 2019-05-06 14:18 CEST
(
hide
)
Description:
draft_wait_for.patch
Filename:
MIME Type:
Creator:
Arvid Requate
Created:
2019-05-06 14:18 CEST
Size:
4.20 KB
patch
obsolete
>diff --git a/test/ucs-test/univention/testing/utils.py b/test/ucs-test/univention/testing/utils.py >index 6485069296..fbe46b7e82 100644 >--- a/test/ucs-test/univention/testing/utils.py >+++ b/test/ucs-test/univention/testing/utils.py >@@ -343,22 +343,74 @@ class FollowLogfile(object): > print "=" * 79 > > >-def wait_for(replication=True, replication_postrun=False, drs_replication=False, s4_connector=True, verbose=True): >+from enum import Enum >+class ReplicationType(Enum): >+ LISTENER = 1 >+ POSTRUN = 2 >+ S4C_FROM_UCS = 3 >+ S4C_TO_UCS = 4 >+ DRS = 5 >+ >+ >+def wait_for_replication_from_master_openldap_to_local_samba(replication_postrun=False, ldap_filter=None, verbose=True): > """Wait for all kind of replications""" > # the order matters! >- if replication or drs_replication: # does wait_for_drs_replication depend on wait_for_replication?! >- if replication_postrun: >- wait_for_replication_and_postrun(verbose) >- else: >- wait_for_replication(verbose) >- from univention.testing.ucs_samba import wait_for_drs_replication, wait_for_s4connector >- if drs_replication: >- wait_for_drs_replication(drs_replication) >- if s4_connector: >- wait_for_s4connector(120) >+ if replication_postrun: >+ conditions = [(ReplicationType.LISTENER, 'postrun')] >+ else: >+ conditions = [(ReplicationType.LISTENER, True)] >+ ucr = univention.config_registry.ConfigRegistry() >+ ucr.load() >+ if ucr.get('samba4/ldap/base'): >+ conditions.append((ReplicationType.S4C_FROM_UCS, ldap_filter)) >+ if ucr.get('server/role') in ('domaincontroller_backup', 'domaincontroller_slave'): >+ conditions.append((ReplicationType.DRS, ldap_filter)) >+ wait_for(conditions, verbose=True) >+ >+ >+def wait_for_replication_from_local_samba_to_local_openldap(replication_postrun=False, ldap_filter=None, verbose=True): >+ """Wait for all kind of replications""" >+ conditions = [] >+ # the order matters! >+ ucr = univention.config_registry.ConfigRegistry() >+ ucr.load() >+ if ucr.get('server/role') in ('domaincontroller_backup', 'domaincontroller_slave'): >+ conditions.append((ReplicationType.DRS, ldap_filter)) >+ if ucr.get('samba4/ldap/base'): >+ conditions.append((ReplicationType.S4C_FROM_UCS, ldap_filter)) >+ if replication_postrun: >+ conditions.append((ReplicationType.LISTENER, 'postrun')) >+ else: >+ conditions.append((ReplicationType.LISTENER, True)) >+ wait_for(conditions, verbose=True) > > >-def wait_for_replication(verbose=True): >+def wait_for(conditions=None, verbose=True): >+ """Wait for all kind of replications""" >+ if not conditions: >+ conditions = [] >+ for replicationtype, detail in conditions: >+ if replicationtype == ReplicationType.LISTENER: >+ if detail == 'postrun': >+ wait_for_listener_replication_and_postrun(verbose) >+ else: >+ wait_for_listener_replication(verbose) >+ elif replicationtype == ReplicationType.S4C_FROM_UCS: >+ wait_for_s4connector_replication() >+ if detail: >+ ## TODO: search in Samba/AD with filter=detail >+ pass >+ elif replicationtype == ReplicationType.S4C_TO_UCS: >+ wait_for_s4connector_replication() >+ if detail: >+ ## TODO: search in OpenLDAP with filter=detail >+ pass >+ elif replicationtype == ReplicationType.DRS: >+ from univention.testing.ucs_samba import wait_for_drs_replication >+ wait_for_drs_replication(detail) >+ >+ >+def wait_for_listener_replication(verbose=True): > sys.stdout.flush() > time.sleep(1) # Give the notifier some time to increase its transaction id > if verbose: >@@ -380,13 +432,13 @@ def wait_for_replication(verbose=True): > raise LDAPReplicationFailed() > > >-def wait_for_replication_and_postrun(verbose=True): >+def wait_for_listener_replication_and_postrun(verbose=True): > # Postrun function in listener modules are called after 15 seconds without any events > def get_lid(): > with open("/var/lib/univention-directory-listener/notifier_id", "r") as notifier_id: > return int(notifier_id.readline()) > >- wait_for_replication(verbose=verbose) >+ wait_for_listener_replication(verbose=verbose) > if verbose: > print "Waiting for postrun..." > lid = get_lid() >@@ -410,7 +462,7 @@ def wait_for_replication_and_postrun(verbose=True): > raise LDAPReplicationFailed > > >-def wait_for_connector_replication(): >+def wait_for_s4connector_replication(): > print 'Waiting for connector replication' > import univention.testing.ucs_samba > try:
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
Actions:
View
|
Diff
Attachments on
bug 49415
: 10006 |
10019