summaryrefslogtreecommitdiff
path: root/python/samba/kcc/kcc_utils.py
AgeCommit message (Collapse)AuthorFilesLines
2025-08-07samba_kcc: log when msDS-HasInstantiatedNCs is not BinaryDnDouglas Bagnall1-3/+10
Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
2025-08-07samba_kcc: use dsdb_dn_guess()Douglas Bagnall1-9/+9
We also remove a bit of .decode()ing, which now happens automatically. Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
2023-12-15python: pep257: docstring should use double quotesRob van der Linde1-27/+27
Signed-off-by: Rob van der Linde <rob@catalyst.net.nz> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2023-08-30python: Fix spellingJoseph Sutton1-2/+2
Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2023-06-23python:samba:kcc: Fix code spellingAndreas Schneider1-8/+8
Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2021-04-28python: remove all 'from __future__ import print_function'Douglas Bagnall1-1/+0
This made Python 2's print behave like Python 3's print(). In some cases, where we had: from __future__ import print_function """Intended module documentation...""" this will have the side effect of making the intended module documentation work as the actual module documentation (i.e. becoming __doc__), because it is once again the first statement in the module. Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2020-10-02python: Move dsdb_Dn to samdbDavid Mulder1-1/+1
The import dsdb needed for dsdb_Dn causes import errors when trying to import get_bytes/get_string in some places. Signed-off-by: David Mulder <dmulder@suse.com> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
2019-09-24kcc_utils.py: avoid inefficient string concatenationsBjörn Jacke1-103/+92
Signed-off-by: Bjoern Jacke <bjacke@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2019-01-19python/kcc lib: cope with differently formed repsToFromDouglas Bagnall1-5/+16
samba-tool visualise reuses these libraries to parse reps from other DCs, and Windows sometimes sends more data than we are expecting Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2018-12-10python/samba/kcc: PY3 fix some str versus ldb.bytes comparisonsNoel Power1-3/+3
Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2018-09-03python/samba: changes needed for samba.tests.samba_tool.visualize PY2/PY3Noel Power1-1/+1
Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2018-08-24PEP8: fix E713: test for membership should be 'not in'Joe Guo1-1/+1
Signed-off-by: Joe Guo <joeg@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
2018-08-24PEP8: fix E305: expected 2 blank lines after class or function definition, ↵Joe Guo1-0/+1
found 1 Signed-off-by: Joe Guo <joeg@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
2018-08-24PEP8: fix E265: block comment should start with '# 'Joe Guo1-1/+1
Signed-off-by: Joe Guo <joeg@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
2018-08-24PEP8: fix E123: closing bracket does not match indentation of opening ↵Joe Guo1-1/+1
bracket's line Signed-off-by: Joe Guo <joeg@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
2018-05-31kcc graphs: site edges in colour, labeled with DNsDouglas Bagnall1-4/+5
This makes it easy to see where the site edges objects are, and what sites they refer too. Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2018-04-30python/samba: bulk conversion of caller to dsdb_Dn 2nd param.Noel Power1-6/+6
Convert second param to dsdb_Dn to be unicode so py2 & py3 code will work Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: Alexander Bokovoy <ab@samba.org>
2018-04-13kcc: fix sort for py3Joe Guo1-6/+3
py2: list.sort(cmp=None, key=None, reverse=False) sorted(iterable[, cmp[, key[, reverse]]]) py3: list.sort(key=None, reverse=False) sorted(iterable, *, key=None, reverse=False) The `cmp` arg was removed in py3, make use of `key` arg to work around. Signed-off-by: Joe Guo <joeg@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
2018-04-13kcc/kcc_utils: fix divide for py3Joe Guo1-1/+1
`/` will return float other than int in py3. Use `//` to keep consistent with py2. Signed-off-by: Joe Guo <joeg@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
2018-03-21kcc_utils: Use lower name in automatic sites coveredGarming Sam1-1/+1
This allows easier testing, as well as some consistency in the DNS record creation. Signed-off-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
2018-03-21kcc_utils: Prevent multiple sites attached to a sitelink covering a siteGarming Sam1-3/+34
This avoids trivial duplicates in a similar manner as mentioned in: https://blogs.technet.microsoft.com/askds/2011/04/29/sites-sites-everywhere/ It prefers the largest sites then the earliest alphabetically, so that only a single site ever covers an uncovered site (within a site link). Note that this isn't applicable over multiple site links (like Windows presumably) and is only a simple mechanism to avoid excessive registering. DCs within the site will also still register for each. Signed-off-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
2018-03-21kcc_utils: Keep a count of the DCs in each siteGarming Sam1-2/+3
This is useful for ranking which sites are preferable within the same site link. Signed-off-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
2018-03-21kcc_utils: Add a routine for automatic site coverageGarming Sam1-0/+80
This allows double-coverage if two links exist with the same cost. Administrators should only connect an DC-less site via a single site link. This also allows unnecessary coverage by all sites in the adjoining site link (to be resolved in the later patches). Signed-off-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
2018-02-28samba python libs: convert 'except X, (tuple)' to 'except X as e'Noel Power1-20/+40
In addition to converting the except line another line is also added for each except to extract the tuple contents. Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2018-02-15samba python libs: convert 'except X, e' to 'except X as e'Douglas Bagnall1-3/+3
Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2018-01-13samba_kcc: simplify NCReplica.set_instantiated_flags()Douglas Bagnall1-5/+2
Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2018-01-13samba_kcc: simplify NCReplica constructorDouglas Bagnall1-4/+4
There is nothing to be gained from setting the dn and guid separately except subtle bugs. Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2018-01-13samba_kcc: clarify readonly logging, removing now unused functionDouglas Bagnall1-3/+0
The unused function was somewhat misnamed. Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2018-01-13samba_kcc: remove unused functionsDouglas Bagnall1-15/+0
Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2018-01-13samba_kcc: remove an unused functionDouglas Bagnall1-6/+0
Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2016-12-01KCC: avoid infinite recursion when edgelist contains selfDouglas Bagnall1-2/+4
Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Garming Sam <garming@catalyst.net.nz>
2016-09-23kcc: Don't check schedule if NoneGarming Sam1-5/+13
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12286 Signed-off-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Autobuild-User(master): Douglas Bagnall <dbagnall@samba.org> Autobuild-Date(master): Fri Sep 23 06:52:28 CEST 2016 on sn-devel-144
2016-08-12KCC: Fix misnamed variable in DSA objectDouglas Bagnall1-1/+1
Found by Garming. Unlikely to affect anyone. BUG: https://bugzilla.samba.org/show_bug.cgi?id=12143 Pair-programmed-with: Garming Sam <garming@catalyst.net.nz> Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Signed-off-by: Garming Sam <garming@catalyst.net.nz> Autobuild-User(master): Douglas Bagnall <dbagnall@samba.org> Autobuild-Date(master): Fri Aug 12 08:20:31 CEST 2016 on sn-devel-144
2016-07-26kcc: Clean up repsTo attribute for old DCsGarming Sam1-0/+3
Signed-off-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Autobuild-User(master): Garming Sam <garming@samba.org> Autobuild-Date(master): Tue Jul 26 05:11:57 CEST 2016 on sn-devel-144
2016-07-26kcc: Add corresponding methods for repsToGarming Sam1-0/+95
Signed-off-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2016-07-25kcc: fix a typoGarming Sam1-1/+1
Signed-off-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Volker Lendecke <vl@samba.org> Autobuild-User(master): Volker Lendecke <vl@samba.org> Autobuild-Date(master): Mon Jul 25 17:42:33 CEST 2016 on sn-devel-144
2015-10-29KCC: remove NTDSConnection API methods that are never usedDouglas Bagnall1-6/+0
These are not used, and using them would not be considered Pythonic. The flags they alter are always changed directly. The similar set_modified() method IS used. Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2015-10-29KCC: Correct capitalisation of KCCErrorDouglas Bagnall1-1/+1
previously we had "raise KccError", which of course would raise a NameError. Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2015-10-29KCC: raise KCCError, not Exception, in multiple placesDouglas Bagnall1-42/+41
"except Exception" lines will still catch them, but more fine-grained control is possible. Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2015-10-29KCC: NTDSConnection.load_connection() requires objectGUIDDouglas Bagnall1-1/+4
If there is no GUID, that is an error, so we raise an exception instead of stepping around it. Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2015-10-29KCC: keep track of IP transport for dsa.new_connection()Douglas Bagnall1-2/+2
Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2015-10-29KCC: correctly use dsa.new_connection() system_flags argumentDouglas Bagnall1-2/+3
The dsa.system_flags attribute is important and gets saved in the database, but was never getting altered because we were setting dsa.flags instead. Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2015-06-12KCC: use python 2.6 compatible dictonary comprehensionsDouglas Bagnall1-1/+1
The `{k: v for k, v in whatever}` syntax is "new" in Python 2.7. Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Autobuild-User(master): Andrew Bartlett <abartlet@samba.org> Autobuild-Date(master): Fri Jun 12 09:46:13 CEST 2015 on sn-devel-104
2015-06-12KCC: use KccError, simplify logic in NTDSConn.commit_modifiedDouglas Bagnall1-10/+7
silence a pep8 thing. Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2015-06-12KCC: shift ReplInfo, MAX_DWORD from kcc.kcc_utils to kcc.graphDouglas Bagnall1-22/+0
They are only used in graph.py. Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2015-06-12kcc: Allow RODC to be included in intersite topologyGarming Sam1-0/+5
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>
2015-06-12KCC: move functions used in kcc.graph into kcc.graphDouglas Bagnall1-62/+0
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@catalyst.net.nz> Reviewed-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2015-06-12KCC: add a warning about side-effects in RepsFromTo.__setattr__Douglas Bagnall1-0/+4
Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2015-06-12KCC: fix combine_repl_infoDouglas Bagnall1-12/+4
Previous the supposedly combined repl_info was always the default, all 0x11, repl_info. Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2015-06-12KCC: split kcc_utils into samba.kcc.{kcc_utils,graph}Douglas Bagnall1-0/+2242
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@catalyst.net.nz> Reviewed-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>