mirror of
https://github.com/samba-team/samba.git
synced 2024-12-22 13:34:15 +03:00
kcc: Allow RODC to be included in intersite topology
This creates behaviour not described by ADTS. RODC are now treated as RED, however they are demoted to the equivalent of WHITE when running the first half of the algorithm. The change implies that RED does in fact refer to full-replicas, not writable replicas. Signed-off-by: Garming Sam <garming@catalyst.net.nz> Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
parent
7c6a6f2bd8
commit
a0b0a0f91a
@ -1633,7 +1633,10 @@ class KCC(object):
|
|||||||
bh = self.get_bridgehead(vertex.site, vertex.part, transport,
|
bh = self.get_bridgehead(vertex.site, vertex.part, transport,
|
||||||
partial_replica_okay, detect_failed)
|
partial_replica_okay, detect_failed)
|
||||||
if bh is None:
|
if bh is None:
|
||||||
found_failed = True
|
if vertex.site.is_rodc_site():
|
||||||
|
vertex.accept_red_red.append(t_guid)
|
||||||
|
else:
|
||||||
|
found_failed = True
|
||||||
continue
|
continue
|
||||||
|
|
||||||
vertex.accept_red_red.append(t_guid)
|
vertex.accept_red_red.append(t_guid)
|
||||||
|
@ -1651,6 +1651,11 @@ class Site(object):
|
|||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def is_rodc_site(self):
|
||||||
|
if len(self.dsa_table) > 0 and len(self.rw_dsa_table) == 0:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
'''Debug dump string output of class'''
|
'''Debug dump string output of class'''
|
||||||
text = "%s:" % self.__class__.__name__
|
text = "%s:" % self.__class__.__name__
|
||||||
|
Loading…
Reference in New Issue
Block a user