[PATCH] KCC intrasite topology generator advancement
Dave Craft
wimberosa at gmail.com
Sun Dec 4 14:02:35 MST 2011
Tridge, Samba Team,
The patchsets available at
https://github.com/wimberosa/samba/tree/kcc-stable
are now available for review and integration if acceptable.
The crux of these changes gets samba_kcc to properly commit
repsFrom for each NC replica that is implied by an NTDS Connection.
All attributes (e.g. DRS options, schedules, etc.) are now properly
maintained in repsFrom creations.
Additionally the samba_kcc is now invocable from the daemon and
can be configured instead of kccsrv_simple_update (e.g. can be
invoked instead of the older kcc topology generator). More detail
noted in the check in comments appended below:
Next work items:
At this point I've drained enough info from the database and built
sufficient classes such that I have a substantively complete intrasite kcc.
My plan is to now add an (--export) and (--import) option
to samba_kcc so that I can dump an ldif representation from any
dsa database and run the topology generator against it. This is
in line with prior conversations I've had with tridge for being able
to debug this against any customer configuration (as well as
add ldif databases to the samba test directory).
Here are the checkin comments:
1) samba_kcc NTDSConnection translation …
This is an advancement of samba_kcc to compute and
commit the modification of a repsFrom on an NC Replica.
The repsFrom is computed according to the MS tech spec
for implied replicas of NTDSConnections. Proper maintenance
of (DRS options, schedules, etc) from a NTDSConnection are now
all present. New classes for inter-site transports, sites,
and repsFrom) are now present in kcc_utils.py. Substantively
this gets intra-site topology generation functional by committing
the repsFrom that were computed from the DSA graph implemented in
prior drops of samba_kcc
2) Invocation of samba_kcc from KCC task …
Modification to periodic and explicit invocation
paths of the KCC topology generation code. Managed
via samba_runcmd_send() API. The samba_kcc script
is invoked if (kccsrv:samba_kcc = true) appears in smb.conf
3) Add subreq and status to kcc_service struct …
The subreq and status fields in the kcc_service struct
are added for execution management of the external samba_kcc
python script.
4) Add DRSUAPI_DRS_UPDATE_(x) flags …
DRSUAPI_DRS_UPDATE flags are used in
DRS_MSG_REPMOD_V1 message structure when repsFrom
is modified via RPC. The RPCs are currently uncoded but
samba_kcc maintains the flags (and uses them to identify
what repsFrom changes are to be executed). These are currently
helpful to samba_kcc and are intended to ultimately be used in
RPCs.
5) Add NTDSConnection schedule attr blob …
Add schedule blob to drsblobs to allow
NDR unpacking into a python class.
6) Add samba_kcc load parameter …
Configures parameter to enumerate name of python KCC
topology generator for subsequent use by samba_runcmd_send()
invocation from kcc task
--
Regards, Dave Craft
Cut the headlights and put it in neutral.
More information about the samba-technical
mailing list