[PATCH] kcc topology generator written as python

Dave Craft wimberosa at gmail.com
Thu Nov 3 12:28:27 MDT 2011


I believe this is now ready for integration as its a good base
for me to build off of and complete the KCC in python.    The changes
that I re-integrated based on comments by others and more review by me are:

       renamed to samba_kcc
       fixed the msg[options] indexing
       RODCs don't have invocationId in their nTDSDSA and code failed on RODC

The three patches are available at:

The checkin comments are:
commit b7ac219b386c2a051a56591ba98c1d4bdf80c4db
Author: Dave Craft <wimberosa at gmail.com>
Date:   Thu Nov 3 12:39:53 2011 -0500

    samba_kcc addtion

    Scaffolding and initial implementations of
    portions of the KCC in python.  This code currently
    properly computes the graph nodes for the intrasite
    topology as well as enumerating all steps for a full
    run of the KCC.

commit 7190221f6fd81899882b341c615a2a1e390ae661
Author: Dave Craft <wimberosa at gmail.com>
Date:   Thu Nov 3 12:37:24 2011 -0500

    add python KCC utility classes and methods

    New file source4/scripting/python/samba/kcc_utils.py
    contains classes and methods for:
    These are consumed by a new samba_kcc python script
    for KCC topology computation

commit 9efcb59da5817049390ba2cf1069271608dff2ce
Author: Dave Craft <wimberosa at gmail.com>
Date:   Thu Nov 3 12:33:38 2011 -0500

    python dsdb flag addtions (NTDSSETTINGS, NTDSCONN)

    Add missing flags present in C code base to python
    code base dsdb/pydsdb.c
    These are consumed by the python KCC scripts

On Wed, Nov 2, 2011 at 2:39 AM, Michael Wood <esiotrot at gmail.com> wrote:
> On 2 November 2011 07:23, Andrew Tridgell <tridge at samba.org> wrote:
>> Hi Dave,
>>> As per your suggestions I have rewritten the major portion of the
>>> KCC in python.   The patchsets are available at:
>>> https://github.com/wimberosa/samba/tree/kcc-stable
> [...]
>>  - the method of walking over the keys() in functions like
>>   load_connection() is unusual. It will work fine, but I think it may
>>   be clearer to ask for that attribute directly. The pattern we usually
>>   use is:
>>  if 'options' in msg:
>>    self.options = int(msg['options'][0])
>>  if you want to make that neater, we could add a helper function a bit
>>  like getattr() that takes a default value. For example:
>>    self.options = ldb_msg_value(msg, 'options', 0)
> It's built-in! :)  Well, sort of anyway:
> self.options = int(msg.get('options', [0])[0])
> --
> Michael Wood <esiotrot at gmail.com>

Regards, Dave Craft
Cut the headlights and put it in neutral.

More information about the samba-technical mailing list