[SCM] Samba Shared Repository - branch master updated
Andrew Bartlett
abartlet at samba.org
Fri Jun 12 01:47:05 MDT 2015
The branch, master has been updated
via eef3dab KCC: use python 2.6 compatible dictonary comprehensions
via bbe9084 KCC: intrasite double_directed_ring test shouldn't include RODCs
via c450079 KCC: use logger.critical rather than print >> sys.stderr
via db48fb2 KCC: draw a site-edges graph for each partition
via db4e96b KCC: use KccError, simplify logic in NTDSConn.commit_modified
via 65fb95e KCC: remove unused create_edge_set() function
via dcf582a KCC: ignore the bridges_required option
via 430b089 KCC: fix the polarity of bridges_required option
via 2291655 KCC: remove a TODO with seemingly no basis in specification
via 534dfb0 KCC: clarify setup-vertices docstring, remove TODO
via 218baa6 KCC: note about the meaning of None in schedule types
via 957e9b0 KCC: combine_repl_info() returns the combined replinfo
via d662cc7 KCC: remove unnecessary comment
via 7fc108b KCC: reword comment, removing unwarranted XXX
via 69488c8 KCC: remove an unwarranted XXX comment
via b5a294e KCC: let kcc.graph.ReplInfo know its duration
via 27e08cd KCC: docstring for kcc.graph.InternalEdge
via 0f438ac KCC: docstring for kcc.graph.MultiEdge
via 5a3cb71 KCC: docstring for kcc.graph.Vertex
via ea48c8f KCC: docstring for kcc.graph.VertexColour()
via 7663951 KCC: docstring for kcc.graph.setup_graph()
via 2331161 KCC: docstring for kcc.graph.add_edge_out()
via 3a5a516 KCC: docstring for kcc.graph.find_component()
via f019fea KCC: some rearrangement in kcc.graph.add_int_edge()
via 6c760c1 KCC: docstring for kcc.graph.kruskal()
via 84fb4af KCC: docstring for kcc.graph.add_int_edge()
via 61c1d8a KCC: docstring for kcc.graph.process_edge()
via a75b874 KCC: docstring for kcc.graph.process_edge_set()
via 7c62a85 KCC: docstring for kcc.graph.undemote_vertex()
via 90aa7f1 KCC: docstring for kcc.graph.check_demote_vertex()
via 490eb10 KCC: pep8 line length in plot all connections
via 5ea0dfb KCC: pep8 -- remove an extra line in graph_utils
via f360010 KCC: pep8 remove a line
via 316fa2e KCC: samba.kcc formatting fixes for pep8
via 68a0f13 KCC: remove XXX scare comments around guid comparisons.
via af1a307 KCC: setup_dijkstra() creates its own empty queue
via 4a9b9b2 KCC: Add graph.InternalEdge.__lt__ docstring
via b59666c KCC: Add graph.try_new_path docstring
via 3069fba KCC: Add graph.dijkstra and setup_dijkstra() docstrings
via a0fea23 KCC: Add graph.setup_vertices() docstring
via aeda7f4 KCC: don't pretend graph.create_edge_set() is useful
via a49cd69 KCC: Add s.k.g.create_auto_edge_set() docstring, improve variable name
via f86620e KCC: Add samba.kcc.graph.create_edge() docstring
via 86004da KCC: improve samba.kcc.graph.get_spanning_tree_edges() docstring
via 79f2c71 KCC: Add ReplInfo docstring
via 6c86ddc KCC: docstring for test_all_reps_from()
via 99f07fa KCC: use logger functions rather than print in create_connections
via 56b7b15 KCC: ldif_import_export tests dotfiles have contents
via 33e82b8 KCC: ldif_import_export tests checks the dot-files
via 746c67c KCC: ldif_import_export tests use samba.tests.TestCaseInTempDir
via 3102509 KCC: add tests for kcc.graph repltimes functions
via 751726c KCC: beginning of tests for kcc.graph
via 9f33d91 KCC: add a very puny stub for kcc.kcc_utils tests
via 004a9ba KCC: shift ReplInfo, MAX_DWORD from kcc.kcc_utils to kcc.graph
via a6b7a9a KCC: Don't pretend to "load_all_transports"
via 12de3df KCC: ignore SMTP transport and warn about unknown ones
via e6d8a8e KCC: remove "forest_of_rings" verification check
via f8a68af KCC: improve docstring for kcc.graph.get_spanning_tree_edges()
via 9af0a06 KCC: improve docstring for kcc.graph.combine_repl_info()
via 4376f1a KCC: improve documentation for KCC.export_ldif()
via a811df8 KCC: improve documentation for KCC.import_ldif()
via 303c2c0 KCC: print error messages to stderr, not stdout
via ce9d1d5 KCC: improve documentation for KCC.intrasite_max_node_edges()
via 9ff5a38 KCC: improve documentation for KCC.intersite() and KCC.intrasite()
via a866b70 KCC: improve docstring for KCC.create_connections()
via c93c2fc KCC: samba_kcc uses forced_local_dsa in import_ldif
via 6328b10 KCC move and fix ldif_import_export and graph_utils tests
via e6991d2 KCC: remove dead code that depends on SMTP replication
via 94094d0 KCC: fix KCC.import_ldif() use of forced_local_dsa
via 9f0209a KCC: shift tests/ldif_utils.py to tests/kcc/ldif_import_export.py
via 07daef8 KCC: shift tests/graph_utils.py to tests/kcc/graph_utils.py
via a0b0a0f kcc: Allow RODC to be included in intersite topology
via 7c6a6f2 KCC: remove a condition dependant on non-IP transport
via e2eb3f7 KCC: Add fake transport EDGE_TYPE_ALL at most once
via 7f4b7fe KCC: simplify repsfrom pruning in KCC.translate_ntdsconn()
via 7e8a1a8 KCC: improve docstring for KCC.plot_all_connections()
via fcd8639 KCC: improve docstring for KCC.run()
via 9b945bd KCC: add multi-site ldif to ldif_import_export test suite
via a918edc KCC: test stub for KCC object
via eba852c KCC: write dot files in a deterministic, user specified place
via 169fcd7 KCC: remove unnecessary debug message in KCC.get_all_bridgeheads()
via bfbb3dc KCC: don't generate dot/verify graph edges unless necessary
via cc375f5 KCC: clarify a comment in is_stale_link_connection()
via 7ff2861 KCC: explicit None check in refresh_failed_links_connections()
via 747e080 KCC: remove commented out code in KCC.refresh_failed_links_connections()
via 21e276d KCC: remove unused method KCC.should_be_present_test()
via 2a776d9 KCC: remove an unused variable in KCC.remove_unneeded_ntdsconn()
via 733d6ea KCC: rename is_repsFrom_implied to get_dsa_for_implied_replica, simplify
via fa22921 KCC: tidy up a missed keystroke in a comment
via b08684c KCC: remove unused variable from KCC.modify_repsFrom()
via b845e29 KCC: move functions used in kcc.graph into kcc.graph
via f1b7007 KCC: add a warning about side-effects in RepsFromTo.__setattr__
via c73a571 KCC: fix combine_repl_info
via ff7a090 KCC: clarify a couple of comments in graph.py
via cb94863 KCC: switch samba_kcc over to samba.kcc module
via c182df9 KCC: KCC object keeps lp and creds for live pings
via 215f1c2 KCC improve docstring for KCC.load_samdb()
via 21b792b KCC improve docstring for KCC.construct_intrasite_graph()
via 62a7ae5 KCC improve docstring for update_rodc_connection()
via 257219c KCC improve docstring for KCC.create_intersite_connections()
via 6aa9240 KCC improve docstring for refresh_failed_links_connections()
via 032291f KCC: shift samba.ldif_utils to samba.kcc.ldif_import_export
via db56d4a KCC: remove remnants of script from samba/kcc/__init__
via 427d05d KCC: shift samba.kcc intersite functions to samba.kcc.graph
via b0e6a74 KCC: split kcc_utils into samba.kcc.{kcc_utils,graph}
via 8d6f256 KCC: rearrange 3 functions in samba.kcc __init__
via 7cd3505 KCC: split and shift samba.graph_utils -> samba.kcc.{graph_utils,debug}
via f37b89c KCC: Reduce brokenness of samba.kcc module
via 94b1258 KCC: Copy KCC core out of samba_kcc into samba.kcc module
from 6e473c5 messaging: Init server_id_db after clustering
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit eef3dab079bef63eb52a15e47f3a8f1c4a386df2
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu Jun 11 11:11:06 2015 +1200
KCC: use python 2.6 compatible dictonary comprehensions
The `{k: v for k, v in whatever}` syntax is "new" in Python 2.7.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Autobuild-User(master): Andrew Bartlett <abartlet at samba.org>
Autobuild-Date(master): Fri Jun 12 09:46:13 CEST 2015 on sn-devel-104
commit bbe90840b94b6af5f5c0326a0aebaa8158e65ded
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed May 27 18:04:15 2015 +1200
KCC: intrasite double_directed_ring test shouldn't include RODCs
RODCs don't belong in the ring. In practice, they don't really belong
in the same site as a ring, but that is another matter.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit c45007953b71e733976a7dca38adec5c7569b04a
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 15 15:04:01 2015 +1200
KCC: use logger.critical rather than print >> sys.stderr
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit db48fb252fc1acbea15b4da291443128aecd7c96
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 15 15:03:35 2015 +1200
KCC: draw a site-edges graph for each partition
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit db4e96ba06fd4c3f9d6e43e14f0c5bd003b9b703
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed May 13 15:36:09 2015 +1200
KCC: use KccError, simplify logic in NTDSConn.commit_modified
silence a pep8 thing.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 65fb95eda19f2883ad833877bc1e084a9bd3e5d3
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed May 13 14:43:29 2015 +1200
KCC: remove unused create_edge_set() function
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit dcf582ae31722d29bab4f97c5e6660991000d128
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed May 13 13:58:15 2015 +1200
KCC: ignore the bridges_required option
At least until we have SiteLinkBridges to test against.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 430b0896f271946e5464f27067502ce35cd44009
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed May 13 13:55:00 2015 +1200
KCC: fix the polarity of bridges_required option
If one of the *_BRIDGES_REQUIRED flags is set, bridges_required is
True.
We ignore this option anyway.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 229165553af1c976c71e407406883b77a60f5e9d
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed May 13 13:33:51 2015 +1200
KCC: remove a TODO with seemingly no basis in specification
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 534dfb08fbb55f830a4218a31af7ec7a7afbf041
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri Jun 5 12:14:12 2015 +1200
KCC: clarify setup-vertices docstring, remove TODO
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 218baa67ca20a538922ca301538cfbeb64fc67f8
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 8 16:38:42 2015 +1200
KCC: note about the meaning of None in schedule types
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 957e9b0278a8ea2add0ccdc08876c61e4a2178d1
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed Jun 10 16:01:52 2015 +1200
KCC: combine_repl_info() returns the combined replinfo
Previously it returned False if there was no intersections (i.e,
the new repl_info duration was 0). Now the same check can be performed
by checking the duration directly.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Conflicts:
python/samba/kcc/graph.py
commit d662cc7519c0244eef6cc1f1b38ed2d7c11929f2
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed May 13 15:09:03 2015 +1200
KCC: remove unnecessary comment
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 7fc108bcb3ac8483cfa7823c0a27c492e692769a
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed May 13 15:08:47 2015 +1200
KCC: reword comment, removing unwarranted XXX
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 69488c85c1f3fc945147d86a756ae7dcd1b651d1
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed May 13 15:08:06 2015 +1200
KCC: remove an unwarranted XXX comment
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit b5a294eb50f2303298c146d4a73a35bc61b3b44e
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri Jun 5 12:35:39 2015 +1200
KCC: let kcc.graph.ReplInfo know its duration
This is going to lead to a few simplifications.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 27e08cdead00db1abee3be6956eba3044bb96e43
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 8 14:53:41 2015 +1200
KCC: docstring for kcc.graph.InternalEdge
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 0f438acd8cfb4ce09d2fd4229f852daa9ab8c3f0
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 8 14:53:27 2015 +1200
KCC: docstring for kcc.graph.MultiEdge
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 5a3cb71d0ba1391b033526d29c597c627708684c
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 8 14:53:16 2015 +1200
KCC: docstring for kcc.graph.Vertex
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit ea48c8f2b6bbc77973ad324f3d57c8ab6b637d88
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 8 14:52:59 2015 +1200
KCC: docstring for kcc.graph.VertexColour()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 7663951112255eb5561df626331dbcb72ad706ef
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 8 14:52:41 2015 +1200
KCC: docstring for kcc.graph.setup_graph()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 2331161a4a1034c45a4f98138d1c8ca7f09d17b2
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 8 14:52:27 2015 +1200
KCC: docstring for kcc.graph.add_edge_out()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 3a5a516ce3e10982156268cb639b564c1dad5e84
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 8 14:52:13 2015 +1200
KCC: docstring for kcc.graph.find_component()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit f019fea9472d774291041b645a4315f77b9883b2
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 8 12:26:00 2015 +1200
KCC: some rearrangement in kcc.graph.add_int_edge()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 6c760c1a0dd66ac7a38501adb9397e291fca4673
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 8 12:25:12 2015 +1200
KCC: docstring for kcc.graph.kruskal()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 84fb4afe874d235936ab4a3c7b70f69c095e6b94
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 8 12:19:51 2015 +1200
KCC: docstring for kcc.graph.add_int_edge()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 61c1d8ad390c70507618bde1a6c659e92a62e286
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 8 11:03:37 2015 +1200
KCC: docstring for kcc.graph.process_edge()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit a75b87490232a599c1aa3d0ccef660334eea9cc7
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 8 11:03:26 2015 +1200
KCC: docstring for kcc.graph.process_edge_set()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 7c62a858514090217a84ac7fe2b6595a1654cc77
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 8 11:03:07 2015 +1200
KCC: docstring for kcc.graph.undemote_vertex()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 90aa7f12e109669eef23959c510387af31bd8569
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 8 11:02:54 2015 +1200
KCC: docstring for kcc.graph.check_demote_vertex()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 490eb10023c219e04273f2ff72358d0521203fb1
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed May 13 15:38:22 2015 +1200
KCC: pep8 line length in plot all connections
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 5ea0dfb46f5192b8bc2c8d7d8bea444364cf124e
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed May 13 15:37:24 2015 +1200
KCC: pep8 -- remove an extra line in graph_utils
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit f3600102ea72c1c56e7c8454ddd713dd570e68c2
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed May 13 15:34:32 2015 +1200
KCC: pep8 remove a line
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 316fa2ee8a634f0408e7562e04c537d4b99f4139
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 8 11:00:23 2015 +1200
KCC: samba.kcc formatting fixes for pep8
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 68a0f131fb5adc48e9c1a49dede696cacf358d76
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu May 7 14:26:33 2015 +1200
KCC: remove XXX scare comments around guid comparisons.
The guid comparisons are settled. We use ndrpack.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit af1a307f8d6d1d6b721ed4803a9d9ad08faa7e53
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu May 7 14:22:56 2015 +1200
KCC: setup_dijkstra() creates its own empty queue
It needs to operate on an empty list, which is something the caller
really shouldn't have to worry about.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 4a9b9b23f0b962677d406df7bfefc8c179913503
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu May 7 14:07:27 2015 +1200
KCC: Add graph.InternalEdge.__lt__ docstring
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit b59666c36d3992674caf1233e1a1f7f245e26f2f
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu May 7 14:07:01 2015 +1200
KCC: Add graph.try_new_path docstring
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 3069fba6e52fa6e5e8814adec7cd1948b20dfeed
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu May 7 14:06:42 2015 +1200
KCC: Add graph.dijkstra and setup_dijkstra() docstrings
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit a0fea23811601bf8ecc07017c2e28ac811b1d1bd
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu May 7 14:06:09 2015 +1200
KCC: Add graph.setup_vertices() docstring
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit aeda7f4c61105bdda8d1d1a35c8c55858054d0bc
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu May 7 14:04:23 2015 +1200
KCC: don't pretend graph.create_edge_set() is useful
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit a49cd696429ea6a45b0f82105751f3c9d34989b8
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu May 7 13:59:39 2015 +1200
KCC: Add s.k.g.create_auto_edge_set() docstring, improve variable name
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit f86620edc72ebc5557c2fda83d0d5edbd09f3cb0
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu May 7 13:57:58 2015 +1200
KCC: Add samba.kcc.graph.create_edge() docstring
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 86004daff50c8f8277d413e80af66f7ec73b355a
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu May 7 13:57:10 2015 +1200
KCC: improve samba.kcc.graph.get_spanning_tree_edges() docstring
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 79f2c717096274f97602bbfb59f534f8ca08409e
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu May 7 13:56:18 2015 +1200
KCC: Add ReplInfo docstring
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 6c86ddc3ff1d2ba6384698fbffb8629b54cb66ff
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu May 7 10:33:29 2015 +1200
KCC: docstring for test_all_reps_from()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 99f07fa69513e023594a079be7a6a77ba356e3ee
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed May 6 14:30:42 2015 +1200
KCC: use logger functions rather than print in create_connections
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 56b7b157a882752b0d2373c513dd29e862a17c00
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed May 6 13:40:50 2015 +1200
KCC: ldif_import_export tests dotfiles have contents
This is regardless of whether validation is available via /usr/bin/dot -Tcanon
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 33e82b88b65d8492e9d1b64f39b354a93915a3a4
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed May 6 12:28:24 2015 +1200
KCC: ldif_import_export tests checks the dot-files
if /usr/bin/dot exists, the files should be checked for validity.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 746c67c527c97a3a540915f2b2df9146835aa144
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed May 6 12:27:11 2015 +1200
KCC: ldif_import_export tests use samba.tests.TestCaseInTempDir
Rather than making their own tempdirs.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 310250935ecdd9c92a6b6ea49b11555fe28b459b
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed May 6 11:20:28 2015 +1200
KCC: add tests for kcc.graph repltimes functions
There used to be bugs in these.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 751726c02dafcc36dd7fa25d3004ab5815b6b6b9
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Tue May 5 12:06:52 2015 +1200
KCC: beginning of tests for kcc.graph
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 9f33d91ee7601ae8aeaa1345d77a46d5e35d505d
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Tue May 5 11:26:42 2015 +1200
KCC: add a very puny stub for kcc.kcc_utils tests
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 004a9ba6b1c27bce0ea7464cdaf4b72e149a4c79
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Tue May 5 11:12:30 2015 +1200
KCC: shift ReplInfo, MAX_DWORD from kcc.kcc_utils to kcc.graph
They are only used in graph.py.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit a6b7a9abc330c8b396ad2b743bef4c3a090fdc9e
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed Jun 10 17:12:51 2015 +1200
KCC: Don't pretend to "load_all_transports"
Samba doesn't do SMTP, so nor does Samba KCC. Because we were
following the spec, we have had special cases for non-IP transports
in numerous places. This removes a few more of those.
The gains are a loss of complexity and the removal of untestable code.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Conflicts:
python/samba/kcc/__init__.py
commit 12de3dfe6aad3222052474ff0be259bf2c5c980b
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri Jun 5 12:05:30 2015 +1200
KCC: ignore SMTP transport and warn about unknown ones
An info line is enough for SMTP. Warn about other as yet unknown
transports, because we want to know if they turn up.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit e6d8a8ec2a3c427f8a85697c9f51b8754ce338e6
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 1 15:08:51 2015 +1200
KCC: remove "forest_of_rings" verification check
Because it didn't actually check anything.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit f8a68af6ff571de7f51f1b9a37570d3930f7fd32
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 1 15:06:22 2015 +1200
KCC: improve docstring for kcc.graph.get_spanning_tree_edges()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 9af0a067f034866eda9a27ca500098baac70ca5b
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed Jun 10 16:00:36 2015 +1200
KCC: improve docstring for kcc.graph.combine_repl_info()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 4376f1aa1d2cd34c18660adb906bdde748a688de
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 1 13:48:34 2015 +1200
KCC: improve documentation for KCC.export_ldif()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit a811df892bb4774592397ea7013188f939493da7
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 1 13:38:31 2015 +1200
KCC: improve documentation for KCC.import_ldif()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 303c2c028d124e067619dc58f4a7ca9a07bffcf7
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 1 13:36:04 2015 +1200
KCC: print error messages to stderr, not stdout
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit ce9d1d5b27e526841807450e9b8ce4d05bf68ff8
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 1 12:12:39 2015 +1200
KCC: improve documentation for KCC.intrasite_max_node_edges()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 9ff5a38566329b633bb7fa696f23567392d2bb8c
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 1 12:00:14 2015 +1200
KCC: improve documentation for KCC.intersite() and KCC.intrasite()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit a866b70cd7dd04a7aaa8dd352379209120d437d9
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 1 11:00:12 2015 +1200
KCC: improve docstring for KCC.create_connections()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit c93c2fcba5226418c8807f3545cf6edf87e71ddf
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu Apr 30 14:35:18 2015 +1200
KCC: samba_kcc uses forced_local_dsa in import_ldif
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 6328b100a3177012e0d39090e4e382b14acd4a87
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu Apr 30 14:33:30 2015 +1200
KCC move and fix ldif_import_export and graph_utils tests
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit e6991d2a071c0ab50d32bb002b04b87faf9200e9
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 1 16:15:43 2015 +1200
KCC: remove dead code that depends on SMTP replication
We don't support SMTP replication and probably never will. This code
is never used, untested, and unlikely to be correct.
The remaining little bit of IP transport code is slightly rewritten.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 94094d0c918e5368b6643b89bffe64d2e8ccf5aa
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 1 16:11:04 2015 +1200
KCC: fix KCC.import_ldif() use of forced_local_dsa
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 9f0209a486ee56a7c06ef19e39556a05a339a3c0
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 1 16:09:30 2015 +1200
KCC: shift tests/ldif_utils.py to tests/kcc/ldif_import_export.py
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 07daef8d85344dde2959086ee07028305b692f66
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri May 1 16:08:46 2015 +1200
KCC: shift tests/graph_utils.py to tests/kcc/graph_utils.py
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit a0b0a0f91a16c7ac1d0c77c7678425697fef3ab6
Author: Garming Sam <garming at catalyst.net.nz>
Date: Thu Apr 30 11:26:18 2015 +1200
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 at catalyst.net.nz>
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 7c6a6f2bd8e852c69b6f588b5ce1bef01f7745dc
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu Apr 30 12:44:51 2015 +1200
KCC: remove a condition dependant on non-IP transport
Because it is in a loop that ignores non-IP transports
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit e2eb3f7e9eab0ce0f01f8b0bc563bd97aa157d8f
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu Apr 30 12:41:34 2015 +1200
KCC: Add fake transport EDGE_TYPE_ALL at most once
It was being added in a loop which only ever looped once (because
we only do one transport, IP), so this makes no actual difference
but it is the correct thing.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 7f4b7fed1e7619b5cc6af38c8d40dddf840e5737
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu Apr 30 12:36:18 2015 +1200
KCC: simplify repsfrom pruning in KCC.translate_ntdsconn()
This section is actually quite simple -- we don't want a repsFrom if
there is no DRS connection -- but the existing comments and code had
managed to cause us hours of confusion and much gnashing teeth, the
evidence of which will hopefully have been squashed out of the git
history by the time you read this.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 7e8a1a8ae9220da4e94a4891b58b6ecad2418d99
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu Apr 30 11:33:23 2015 +1200
KCC: improve docstring for KCC.plot_all_connections()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit fcd863958182aaa85322897a6f697705df37c9bd
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu Apr 30 11:33:01 2015 +1200
KCC: improve docstring for KCC.run()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 9b945bdc5b68e54a816e5cd628376b94cbf6bbe7
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu Apr 30 11:32:11 2015 +1200
KCC: add multi-site ldif to ldif_import_export test suite
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit a918edced08d0c1d1c294a31dbc90125b5c76d3a
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri Jun 5 11:53:19 2015 +1200
KCC: test stub for KCC object
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit eba852cc98714fa383a058c4da73a9d8854e8d9b
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu Apr 30 10:39:54 2015 +1200
KCC: write dot files in a deterministic, user specified place
We were using randomised tempfile names in /tmp, initially to avoid
overwriting previous runs so as to track progress. Now we hardly ever
care about the old versions, and a user-specified name will be handy
for testing.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 169fcd7addad00c5e5c0bdf00edff418ed7aab3d
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Tue Apr 28 11:31:14 2015 +1200
KCC: remove unnecessary debug message in KCC.get_all_bridgeheads()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit bfbb3dc81b974565fefc9e249bc2b47c3425a171
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Tue Apr 28 11:27:57 2015 +1200
KCC: don't generate dot/verify graph edges unless necessary
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit cc375f5f28cca3154937d23b66787d6395aab7d8
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Tue Apr 28 11:26:31 2015 +1200
KCC: clarify a comment in is_stale_link_connection()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 7ff2861e71632223c08649e15d999dad7e7500d9
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Tue Apr 28 11:25:44 2015 +1200
KCC: explicit None check in refresh_failed_links_connections()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 747e0804f4755f6c74f9cafdcf169a01836e9010
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Tue Apr 28 11:25:18 2015 +1200
KCC: remove commented out code in KCC.refresh_failed_links_connections()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 21e276d31921743f26bb736ff25ed08cd2e01366
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Tue Apr 28 11:23:50 2015 +1200
KCC: remove unused method KCC.should_be_present_test()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 2a776d9f8d391e615503a2e17d077a58e4ab1ef9
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed Jun 10 16:38:32 2015 +1200
KCC: remove an unused variable in KCC.remove_unneeded_ntdsconn()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 733d6ea6fab18be6ad8a2b59e38c494baf4ff13d
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Tue Apr 28 11:20:30 2015 +1200
KCC: rename is_repsFrom_implied to get_dsa_for_implied_replica, simplify
KCC.is_repsFrom_implied() did more than it sounded like -- it returned
a tuple of (implied, dsa), where the dsa was None if and only if implied
was False, and a DSA object if implied was True. Thus the implied flag
was strictly reduntant and the only caller really only wanted the DSA.
Now it just gets the DSA, or None.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit fa22921ed45ae65777305cf6a2c999bd15e86854
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Tue Apr 28 11:12:37 2015 +1200
KCC: tidy up a missed keystroke in a comment
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit b08684c402c8fbff63a8339e4623a40a7decef83
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Tue Apr 28 11:10:15 2015 +1200
KCC: remove unused variable from KCC.modify_repsFrom()
It looks as if this update bitfield was meant to be returned. It isn't,
and none of the callers expect it. Good riddance.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit b845e29b268b2122779e3b0218caa73a089aed03
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu Apr 23 14:42:51 2015 +1200
KCC: move functions used in kcc.graph into kcc.graph
This should have happened when graph.py was split off from kcc_utils,
and we *would* merge it there, but too many things have happened to
these functions in the meantime.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit f1b7007883bb4a12d93ecf7de48560e9703cbf36
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu Apr 23 14:24:59 2015 +1200
KCC: add a warning about side-effects in RepsFromTo.__setattr__
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit c73a5713533a2d33b11fe26d4459af36869eb396
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri Jun 5 12:29:44 2015 +1200
KCC: fix combine_repl_info
Previous the supposedly combined repl_info was always the default, all
0x11, repl_info.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit ff7a0902dde932b4d166abc664165a2f9f12603d
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu Apr 23 14:18:53 2015 +1200
KCC: clarify a couple of comments in graph.py
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit cb9486308780c5736d2f7a3dde5f45a0e7f4a8ce
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu Jun 4 11:19:56 2015 +1200
KCC: switch samba_kcc over to samba.kcc module
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit c182df99698332772ae5b4a454dc55dff35a398d
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed Jun 10 15:40:43 2015 +1200
KCC: KCC object keeps lp and creds for live pings
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 215f1c2c5386543b0f6ad763f15b85f253f3781b
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed May 6 18:07:23 2015 +1200
KCC improve docstring for KCC.load_samdb()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 21b792b7ba253553ab19ed0839b9756b2a6d0acd
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed May 6 18:05:50 2015 +1200
KCC improve docstring for KCC.construct_intrasite_graph()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 62a7ae572796f4d45790666582ff53159da03a35
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed May 6 18:05:21 2015 +1200
KCC improve docstring for update_rodc_connection()
Also make a short-cut early exit visually shorter and earlier.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 257219c836d7edccff530eaf27c50180dc40bba1
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed May 6 18:03:05 2015 +1200
KCC improve docstring for KCC.create_intersite_connections()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 6aa9240cb8afc62b25806f02cb3cac1bc97c13b4
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed May 6 18:02:34 2015 +1200
KCC improve docstring for refresh_failed_links_connections()
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 032291f49247b740aa6f4c9ec5bd51364e02779d
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri Jun 5 15:09:05 2015 +1200
KCC: shift samba.ldif_utils to samba.kcc.ldif_import_export
These functions are really only of use for KCC, and they only import and
export rather than be general utils.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit db56d4ae3b0a0b8e76beee1fe5ccbb2c3c258e68
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed Jun 10 15:39:40 2015 +1200
KCC: remove remnants of script from samba/kcc/__init__
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 427d05d1ac451bdeeabdc3567e9c2243ee31e1dd
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed Jun 10 16:42:54 2015 +1200
KCC: shift samba.kcc intersite functions to samba.kcc.graph
So samba.kcc.graph is the place to look for everything intersite.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit b0e6a7436233c39f1ebf1a40e4c6cc495ed926f9
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed Jun 10 16:42:37 2015 +1200
KCC: split kcc_utils into samba.kcc.{kcc_utils,graph}
graph.py has the intersite graph stuff.
kcc_utils does intrasite, namespace, &cetera.
The wildcard imports are tidied up, so samba_kcc imports unix2nttime
directly rather than letting it fall out of kcc_utils.
Intersite graph functions samba/kcc/__init__.py are also shifted into
graph.py.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 8d6f256f381abf1d932bfecb6542590eae9a5f32
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Wed Jun 10 15:35:05 2015 +1200
KCC: rearrange 3 functions in samba.kcc __init__
This module still isn't actually used.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 7cd35051c80a01fbe289f73b3f57180d997d523f
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu Jun 4 11:16:15 2015 +1200
KCC: split and shift samba.graph_utils -> samba.kcc.{graph_utils,debug}
The debug module contains debug functions and colours.
Graph_utils keeps the DOT file generation and graph verification code.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit f37b89c157f0f439e3c5edb24419ba5efed180b0
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri Jun 5 10:59:23 2015 +1200
KCC: Reduce brokenness of samba.kcc module
This module is still not being used, and is being fixed slowly to make
it clear what is happening. Here we remove references to globals in
the samba_kcc script (notably opts), and instead add the various
options as KCC.__init__ arguments.
There is more to come.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 94b1258501b717e2173d266dfc118fcd42649ca6
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri Jun 5 10:49:30 2015 +1200
KCC: Copy KCC core out of samba_kcc into samba.kcc module
The "module" is not actually used at this point, which is just as well
as it would be utterly broken. This copy is just to show that the
eventual move is really a move and not a complete rewrite.
Note that if this file is not executable (and it really shouldn't be),
this commit causes the samba.tests.source test to fail with "Files
with shebang line that are not executable".
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
-----------------------------------------------------------------------
Summary of changes:
.../bin/samba_kcc => python/samba/kcc/__init__.py | 1636 +++-------
python/samba/kcc/debug.py | 68 +
python/samba/kcc/graph.py | 850 ++++++
python/samba/{ => kcc}/graph_utils.py | 60 +-
python/samba/{ => kcc}/kcc_utils.py | 272 +-
.../{ldif_utils.py => kcc/ldif_import_export.py} | 3 +-
python/samba/tests/kcc/__init__.py | 80 +
python/samba/tests/kcc/graph.py | 70 +
python/samba/tests/{ => kcc}/graph_utils.py | 9 +-
python/samba/tests/kcc/kcc_utils.py | 37 +
.../{ldif_utils.py => kcc/ldif_import_export.py} | 110 +-
selftest/tests.py | 6 +-
source4/scripting/bin/samba_kcc | 3165 +-------------------
source4/selftest/tests.py | 12 +
14 files changed, 1755 insertions(+), 4623 deletions(-)
copy source4/scripting/bin/samba_kcc => python/samba/kcc/__init__.py (67%)
mode change 100755 => 100644
create mode 100644 python/samba/kcc/debug.py
create mode 100644 python/samba/kcc/graph.py
rename python/samba/{ => kcc}/graph_utils.py (89%)
rename python/samba/{ => kcc}/kcc_utils.py (91%)
rename python/samba/{ldif_utils.py => kcc/ldif_import_export.py} (99%)
create mode 100644 python/samba/tests/kcc/__init__.py
create mode 100644 python/samba/tests/kcc/graph.py
rename python/samba/tests/{ => kcc}/graph_utils.py (96%)
create mode 100644 python/samba/tests/kcc/kcc_utils.py
rename python/samba/tests/{ldif_utils.py => kcc/ldif_import_export.py} (53%)
Changeset truncated at 500 lines:
diff --git a/source4/scripting/bin/samba_kcc b/python/samba/kcc/__init__.py
old mode 100755
new mode 100644
similarity index 67%
copy from source4/scripting/bin/samba_kcc
copy to python/samba/kcc/__init__.py
index 1c1e6d9..46a25ce
--- a/source4/scripting/bin/samba_kcc
+++ b/python/samba/kcc/__init__.py
@@ -1,6 +1,4 @@
-#!/usr/bin/env python
-#
-# Compute our KCC topology
+# define the KCC object
#
# Copyright (C) Dave Craft 2011
# Copyright (C) Andrew Bartlett 2015
@@ -21,43 +19,71 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-import os
-import sys
import random
import uuid
-# ensure we get messages out immediately, so they get in the samba logs,
-# and don't get swallowed by a timeout
-os.environ['PYTHONUNBUFFERED'] = '1'
-
-# forcing GMT avoids a problem in some timezones with kerberos. Both MIT
-# heimdal can get mutual authentication errors due to the 24 second difference
-# between UTC and GMT when using some zone files (eg. the PDT zone from
-# the US)
-os.environ["TZ"] = "GMT"
-
-# Find right directory when running from source tree
-sys.path.insert(0, "bin/python")
-
-import optparse
-import logging
import itertools
-import heapq
-import time
-from functools import partial
-
-from samba import (
- getopt as options,
- ldb,
- dsdb,
- drs_utils,
- nttime2unix)
+from samba import unix2nttime, nttime2unix
+from samba import ldb, dsdb, drs_utils
from samba.auth import system_session
from samba.samdb import SamDB
-from samba.dcerpc import drsuapi
-from samba.kcc_utils import *
-from samba.graph_utils import *
-from samba import ldif_utils
+from samba.dcerpc import drsuapi, misc
+
+from samba.kcc.kcc_utils import Site, Partition, Transport, SiteLink
+from samba.kcc.kcc_utils import NCReplica, NCType, nctype_lut, GraphNode
+from samba.kcc.kcc_utils import RepsFromTo, KCCError, KCCFailedObject
+from samba.kcc.graph import convert_schedule_to_repltimes
+
+from samba.ndr import ndr_pack
+
+from samba.kcc.graph_utils import verify_and_dot
+
+from samba.kcc import ldif_import_export
+from samba.kcc.graph import setup_graph, get_spanning_tree_edges
+from samba.kcc.graph import Vertex
+
+from samba.kcc.debug import DEBUG, DEBUG_FN, logger
+from samba.kcc import debug
+
+
+def sort_replica_by_dsa_guid(rep1, rep2):
+ """Helper to sort NCReplicas by their DSA guids
+
+ The guids need to be sorted in their NDR form.
+
+ :param rep1: An NC replica
+ :param rep2: Another replica
+ :return: -1, 0, or 1, indicating sort order.
+ """
+ return cmp(ndr_pack(rep1.rep_dsa_guid), ndr_pack(rep2.rep_dsa_guid))
+
+
+def sort_dsa_by_gc_and_guid(dsa1, dsa2):
+ """Helper to sort DSAs by guid global catalog status
+
+ GC DSAs come before non-GC DSAs, other than that, the guids are
+ sorted in NDR form.
+
+ :param dsa1: A DSA object
+ :param dsa2: Another DSA
+ :return: -1, 0, or 1, indicating sort order.
+ """
+ if dsa1.is_gc() and not dsa2.is_gc():
+ return -1
+ if not dsa1.is_gc() and dsa2.is_gc():
+ return +1
+ return cmp(ndr_pack(dsa1.dsa_guid), ndr_pack(dsa2.dsa_guid))
+
+
+def is_smtp_replication_available():
+ """Can the KCC use SMTP replication?
+
+ Currently always returns false because Samba doesn't implement
+ SMTP transfer for NC changes between DCs.
+
+ :return: Boolean (always False)
+ """
+ return False
class KCC(object):
@@ -71,16 +97,16 @@ class KCC(object):
:param read_only: Don't write to the database.
:param verify: Check topological invariants for the generated graphs
:param debug: Write verbosely to stderr.
- "param dot_files: write Graphviz files in /tmp showing topology
+ "param dot_file_dir: write diagnostic Graphviz files in this directory
"""
- def __init__(self):
+ def __init__(self, unix_now, readonly=False, verify=False, debug=False,
+ dot_file_dir=None):
"""Initializes the partitions class which can hold
our local DCs partitions or all the partitions in
the forest
"""
self.part_table = {} # partition objects
self.site_table = {}
- self.transport_table = {}
self.ip_transport = None
self.sitelink_table = {}
self.dsa_by_dnstr = {}
@@ -108,7 +134,14 @@ class KCC(object):
self.samdb = None
- def load_all_transports(self):
+ self.unix_now = unix_now
+ self.nt_now = unix2nttime(unix_now)
+ self.readonly = readonly
+ self.verify = verify
+ self.debug = debug
+ self.dot_file_dir = dot_file_dir
+
+ def load_ip_transport(self):
"""Loads the inter-site transport objects for Sites
:return: None
@@ -129,10 +162,14 @@ class KCC(object):
transport = Transport(dnstr)
transport.load_transport(self.samdb)
- self.transport_table.setdefault(str(transport.guid),
- transport)
if transport.name == 'IP':
self.ip_transport = transport
+ elif transport.name == 'SMTP':
+ logger.info("Samba KCC is ignoring the obsolete SMTP transport.")
+
+ else:
+ logger.warning("Samba KCC does not support the transport called %r."
+ % (transport.name,))
if self.ip_transport is None:
raise KCCError("there doesn't seem to be an IP transport")
@@ -174,7 +211,7 @@ class KCC(object):
:param dn_str: a site dn_str
:return: the Site object pertaining to the dn_str
"""
- site = Site(dn_str, unix_now)
+ site = Site(dn_str, self.unix_now)
site.load_site(self.samdb)
# We avoid replacing the site with an identical copy in case
@@ -264,11 +301,11 @@ class KCC(object):
self.my_dsa = self.my_site.get_dsa(self.my_dsa_dnstr)
if self.my_dsa_dnstr not in self.dsa_by_dnstr:
- DEBUG_DARK_YELLOW("my_dsa %s isn't in self.dsas_by_dnstr:"
- " it must be RODC.\n"
- "Let's add it, because my_dsa is special!\n"
- "(likewise for self.dsa_by_guid of course)" %
- self.my_dsas_dnstr)
+ debug.DEBUG_DARK_YELLOW("my_dsa %s isn't in self.dsas_by_dnstr:"
+ " it must be RODC.\n"
+ "Let's add it, because my_dsa is special!"
+ "\n(likewise for self.dsa_by_guid)" %
+ self.my_dsas_dnstr)
self.dsa_by_dnstr[self.my_dsa_dnstr] = self.my_dsa
self.dsa_by_guid[str(self.my_dsa.dsa_guid)] = self.my_dsa
@@ -302,22 +339,14 @@ class KCC(object):
part.load_partition(self.samdb)
self.part_table[partstr] = part
- def should_be_present_test(self):
- """Enumerate all loaded partitions and DSAs in local
- site and test if NC should be present as replica
- """
- for partdn, part in self.part_table.items():
- for dsadn, dsa in self.my_site.dsa_table.items():
- needed, ro, partial = part.should_be_present(dsa)
- logger.info("dsadn:%s\nncdn:%s\nneeded=%s:ro=%s:partial=%s\n" %
- (dsadn, part.nc_dnstr, needed, ro, partial))
-
- def refresh_failed_links_connections(self):
- """Based on MS-ADTS 6.2.2.1"""
+ def refresh_failed_links_connections(self, ping=None):
+ """Ensure the failed links list is up to date
- # Instead of NULL link with failure_count = 0, the tuple is
- # simply removed
+ Based on MS-ADTS 6.2.2.1
+ :param ping: An oracle function of remote site availability
+ :return: None
+ """
# LINKS: Refresh failed links
self.kcc_failed_links = {}
current, needed = self.my_dsa.get_rep_tables()
@@ -334,15 +363,11 @@ class KCC(object):
dns_name = reps_from.dns_name1
f = self.kcc_failed_links.get(dsa_guid)
- if not f:
+ if f is None:
f = KCCFailedObject(dsa_guid, failure_count,
time_first_failure, last_result,
dns_name)
self.kcc_failed_links[dsa_guid] = f
- #elif f.failure_count == 0:
- # f.failure_count = failure_count
- # f.time_first_failure = time_first_failure
- # f.last_result = last_result
else:
f.failure_count = max(f.failure_count, failure_count)
f.time_first_failure = min(f.time_first_failure,
@@ -351,15 +376,13 @@ class KCC(object):
# CONNECTIONS: Refresh failed connections
restore_connections = set()
- if opts.attempt_live_connections:
+ if ping is not None:
DEBUG("refresh_failed_links: checking if links are still down")
for connection in self.kcc_failed_connections:
- try:
- drs_utils.drsuapi_connect(connection.dns_name, lp, creds)
+ if ping(connection.dns_name):
# Failed connection is no longer failing
restore_connections.add(connection)
- except drs_utils.drsException:
- # Failed connection still failing
+ else:
connection.failure_count += 1
else:
DEBUG("refresh_failed_links: not checking live links because we\n"
@@ -386,15 +409,17 @@ class KCC(object):
unix_first_failure = \
nttime2unix(failed_link.time_first_failure)
# TODO guard against future
- if unix_first_failure > unix_now:
+ if unix_first_failure > self.unix_now:
logger.error("The last success time attribute for \
repsFrom is in the future!")
# Perform calculation in seconds
- if (unix_now - unix_first_failure) > 60 * 60 * 2:
+ if (self.unix_now - unix_first_failure) > 60 * 60 * 2:
return True
- # TODO connections
+ # TODO connections.
+ # We have checked failed *links*, but we also need to check
+ # *connections*
return False
@@ -421,9 +446,9 @@ class KCC(object):
# sorting. Add them.
for cn_conn in mydsa.connect_table.values():
if cn_conn.guid is None:
- if opts.readonly:
+ if self.readonly:
cn_conn.guid = misc.GUID(str(uuid.uuid4()))
- cn_conn.whenCreated = nt_now
+ cn_conn.whenCreated = self.nt_now
else:
cn_conn.load_connection(self.samdb)
@@ -434,10 +459,6 @@ class KCC(object):
cn_conn.to_be_deleted = True
continue
- # Get the source DSA no matter what site
- # XXX s_dsa is NEVER USED. It will be removed.
- s_dsa = self.get_dsa(s_dnstr)
-
#XXX should an RODC be regarded as same site
same_site = s_dnstr in self.my_site.dsa_table
@@ -485,7 +506,6 @@ class KCC(object):
if s2_dnstr != s_dnstr:
continue
- #XXX GUID comparison
lesser = (cn_conn.whenCreated < cn2_conn.whenCreated or
(cn_conn.whenCreated == cn2_conn.whenCreated and
packed_guid < ndr_pack(cn2_conn.guid)))
@@ -548,7 +568,7 @@ class KCC(object):
if not cn_conn.is_rodc_topology():
cn_conn.to_be_deleted = True
- if mydsa.is_ro() or opts.readonly:
+ if mydsa.is_ro() or self.readonly:
for connect in mydsa.connect_table.values():
if connect.to_be_deleted:
DEBUG_FN("TO BE DELETED:\n%s" % connect)
@@ -587,15 +607,12 @@ class KCC(object):
:return: None
"""
s_dnstr = s_dsa.dsa_dnstr
- update = 0x0
-
same_site = s_dnstr in self.my_site.dsa_table
# if schedule doesn't match then update and modify
times = convert_schedule_to_repltimes(cn_conn.schedule)
if times != t_repsFrom.schedule:
t_repsFrom.schedule = times
- update |= drsuapi.DRSUAPI_DRS_UPDATE_SCHEDULE
# Bit DRS_PER_SYNC is set in replicaFlags if and only
# if nTDSConnection schedule has a value v that specifies
@@ -627,7 +644,7 @@ class KCC(object):
dsdb.NTDSCONN_OPT_OVERRIDE_NOTIFY_DEFAULT) != 0x0):
if (cn_conn.options & dsdb.NTDSCONN_OPT_USE_NOTIFY) == 0x0:
- # XXX WARNING
+ # WARNING
#
# it LOOKS as if this next test is a bit silly: it
# checks the flag then sets it if it not set; the same
@@ -744,109 +761,41 @@ class KCC(object):
#
nastr = "%s._msdcs.%s" % (s_dsa.dsa_guid, self.samdb.forest_dns_name())
- # We're not currently supporting SMTP replication
- # so is_smtp_replication_available() is currently
- # always returning False
- if ((same_site or
- cn_conn.transport_dnstr is None or
- cn_conn.transport_dnstr.find("CN=IP") == 0 or
- not is_smtp_replication_available())):
-
- if ((t_repsFrom.replica_flags &
- drsuapi.DRSUAPI_DRS_MAIL_REP) != 0x0):
- t_repsFrom.replica_flags &= ~drsuapi.DRSUAPI_DRS_MAIL_REP
+ if ((t_repsFrom.replica_flags &
+ drsuapi.DRSUAPI_DRS_MAIL_REP) != 0x0):
+ t_repsFrom.replica_flags &= ~drsuapi.DRSUAPI_DRS_MAIL_REP
- t_repsFrom.transport_guid = misc.GUID()
+ t_repsFrom.transport_guid = misc.GUID()
- # See (NOTE MS-TECH INCORRECT) above
- if t_repsFrom.version == 0x1:
- if t_repsFrom.dns_name1 is None or \
- t_repsFrom.dns_name1 != nastr:
- t_repsFrom.dns_name1 = nastr
- else:
- if t_repsFrom.dns_name1 is None or \
- t_repsFrom.dns_name2 is None or \
- t_repsFrom.dns_name1 != nastr or \
- t_repsFrom.dns_name2 != nastr:
- t_repsFrom.dns_name1 = nastr
- t_repsFrom.dns_name2 = nastr
+ # See (NOTE MS-TECH INCORRECT) above
- else:
- # XXX This entire branch is NEVER used! Because we don't do SMTP!
- # (see the if condition above). Just close your eyes here.
- if ((t_repsFrom.replica_flags &
- drsuapi.DRSUAPI_DRS_MAIL_REP) == 0x0):
- t_repsFrom.replica_flags |= drsuapi.DRSUAPI_DRS_MAIL_REP
+ # NOTE: it looks like these conditionals are pointless,
+ # because the state will end up as `t_repsFrom.dns_name1 ==
+ # nastr` in either case, BUT the repsFrom thing is magic and
+ # assigning to it alters some flags. So we try not to update
+ # it unless necessary.
+ if t_repsFrom.dns_name1 != nastr:
+ t_repsFrom.dns_name1 = nastr
- # We have a transport type but its not an
- # object in the database
- if cn_conn.transport_guid not in self.transport_table:
- raise KCCError("Missing inter-site transport - (%s)" %
- cn_conn.transport_dnstr)
+ if t_repsFrom.version > 0x1 and t_repsFrom.dns_name2 != nastr:
+ t_repsFrom.dns_name2 = nastr
- x_transport = self.transport_table[str(cn_conn.transport_guid)]
-
- if t_repsFrom.transport_guid != x_transport.guid:
- t_repsFrom.transport_guid = x_transport.guid
-
- # See (NOTE MS-TECH INCORRECT) above
- if x_transport.address_attr == "dNSHostName":
-
- if t_repsFrom.version == 0x1:
- if t_repsFrom.dns_name1 is None or \
- t_repsFrom.dns_name1 != nastr:
- t_repsFrom.dns_name1 = nastr
- else:
- if t_repsFrom.dns_name1 is None or \
- t_repsFrom.dns_name2 is None or \
- t_repsFrom.dns_name1 != nastr or \
- t_repsFrom.dns_name2 != nastr:
- t_repsFrom.dns_name1 = nastr
- t_repsFrom.dns_name2 = nastr
-
- else:
- # MS tech specification says we retrieve the named
- # attribute in "transportAddressAttribute" from the parent of
- # the DSA object
- try:
- pdnstr = s_dsa.get_parent_dnstr()
- attrs = [x_transport.address_attr]
-
- res = self.samdb.search(base=pdnstr, scope=ldb.SCOPE_BASE,
- attrs=attrs)
- except ldb.LdbError, (enum, estr):
- raise KCCError(
- "Unable to find attr (%s) for (%s) - (%s)" %
- (x_transport.address_attr, pdnstr, estr))
-
- msg = res[0]
- nastr = str(msg[x_transport.address_attr][0])
-
- # See (NOTE MS-TECH INCORRECT) above
- if t_repsFrom.version == 0x1:
- if t_repsFrom.dns_name1 is None or \
- t_repsFrom.dns_name1 != nastr:
- t_repsFrom.dns_name1 = nastr
- else:
- if t_repsFrom.dns_name1 is None or \
- t_repsFrom.dns_name2 is None or \
- t_repsFrom.dns_name1 != nastr or \
- t_repsFrom.dns_name2 != nastr:
+ if t_repsFrom.is_modified():
+ DEBUG_FN("modify_repsFrom(): %s" % t_repsFrom)
- t_repsFrom.dns_name1 = nastr
- t_repsFrom.dns_name2 = nastr
+ def get_dsa_for_implied_replica(self, n_rep, cn_conn):
+ """If a connection imply a replica, find the relevant DSA
- if t_repsFrom.is_modified():
- logger.debug("modify_repsFrom(): %s" % t_repsFrom)
+ Given a NC replica and NTDS Connection, determine if the
+ connection implies a repsFrom tuple should be present from the
+ source DSA listed in the connection to the naming context. If
+ it should be, return the DSA; otherwise return None.
- def is_repsFrom_implied(self, n_rep, cn_conn):
- """Given a NC replica and NTDS Connection, determine if the connection
- implies a repsFrom tuple should be present from the source DSA listed
- in the connection to the naming context
+ Based on part of MS-ADTS 6.2.2.5
:param n_rep: NC replica
- :param conn: NTDS Connection
- ::returns (True || False), source DSA:
+ :param cn_conn: NTDS Connection
+ :return: source DSA or None
"""
#XXX different conditions for "implies" than MS-ADTS 6.2.2
@@ -857,16 +806,15 @@ class KCC(object):
# cn!options does not contain NTDSCONN_OPT_RODC_TOPOLOGY.
# cn!fromServer references an nTDSDSA object.
- s_dsa = None
+ if not cn_conn.is_enabled() or cn_conn.is_rodc_topology():
+ return None
- if cn_conn.is_enabled() and not cn_conn.is_rodc_topology():
- s_dnstr = cn_conn.get_from_dnstr()
- if s_dnstr is not None:
- s_dsa = self.get_dsa(s_dnstr)
+ s_dnstr = cn_conn.get_from_dnstr()
+ s_dsa = self.get_dsa(s_dnstr)
--
Samba Shared Repository
More information about the samba-cvs
mailing list