1
0
mirror of https://github.com/samba-team/samba.git synced 2025-06-19 23:17:05 +03:00

39 Commits

Author SHA1 Message Date
Andrew Bartlett
17275561a0 s4-dsdb: Remove ldb_sequence_type argument from partition_primary_sequence_number
We always want LDB_SEQ_HIGHEST_SEQ here.

Andrew Bartlett
2012-08-09 04:32:18 +02:00
Andrew Bartlett
6a648b727f s4-dsdb: Reduce calls to the ldb layer by reloading less often
We do not need to reload the partition list to get the global sequence
number, as that number is stored in the metadata.tdb, not the ldb files.

Andrew Bartlett
2012-08-09 04:32:18 +02:00
Amitay Isaacs
49926a2ac6 s4-dsdb: Added metadata to partition module for global sequence number
This adds support for global sequence number which is independent of
partition information.

Signed-off-by: Andrew Tridgell <tridge@samba.org>
2011-11-29 16:00:35 +11:00
Amitay Isaacs
349c54528b s4-dsdb: use dsdb_module_extended instead of duplicate code
Signed-off-by: Andrew Tridgell <tridge@samba.org>
2011-11-29 16:00:35 +11:00
Andrew Tridgell
60cbc98051 s4-dsdb: added new control DSDB_MODIFY_PARTIAL_REPLICA
this control tells the partition module that the DN being created is a
partial replica, so it should modify the @PARTITION object to add the
partialReplica attribute

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-10-04 15:08:57 +11:00
Andrew Tridgell
aba856c666 s4-dsdb: load the partialReplica attribute in the @PARTITION object
this modifies the partition module to honor a partialReplica attribute
on the @PARTITION module, marking partiations as partial replicas so
the NO_GLOBAL_CATALOG control can be honoured
2011-09-22 10:00:49 +10:00
Matthias Dieter Wallnöfer
d2acd72994 s4:partition_init LDB module - fix a typo 2011-03-10 11:12:04 +01:00
Andrew Tridgell
87f3151047 s4-dsdb: pass parent request to dsdb_module_*() functions
this preserves the request hierarchy for dsdb_module_*() calls inside
dsdb ldb modules

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-01-17 05:23:04 +01:00
Andrew Tridgell
4a08b2d172 s4-dsdb: removed the use of ldb_private.h from s4
this will allow s4 to use a system version of ldb
2010-11-03 07:43:57 +11:00
Matthias Dieter Wallnöfer
45ee4e9a6b s4:partition_init LDB module - fix counter type 2010-10-30 15:00:04 +00:00
Jelmer Vernooij
e2f3e10b1a ldb-samba: Rename samdb_relative_path to ldb_relative_path, as it's not samdb-specific. 2010-10-10 23:45:23 +02:00
Andrew Tridgell
85ba79063f ldb: mark the location of a lot more ldb requests 2010-09-25 10:38:45 -07:00
Kamen Mazdrashki
7694b1964f s4-source4/dsdb/samdb/ldb_modules/partition_init.c Use DSDB_FLAG_NEXT_MODULE flag 2010-07-08 02:38:34 +03:00
Andrew Tridgell
87df785a68 s4-dsdb: use ldb_operr() in the dsdb code
this replaces "return LDB_ERR_OPERATIONS_ERROR" with "return ldb_operr(ldb)"
in places in the dsdb code where we don't already explicitly set an
error string. This should make is much easier to track down dsdb
module bugs that result in an operations error.
2010-07-07 20:14:55 +10:00
Matthias Dieter Wallnöfer
d1dd0a560c s4:partition LDB module - change counter variables to "unsigned" where appropriate 2010-03-07 19:10:00 +01:00
Andrew Tridgell
5549190b37 s4-dsdb: use TYPESAFE_QSORT() in dsdb code 2010-02-13 22:36:12 +11:00
Andrew Bartlett
401ba9c9cf s4:dsdb Move module configuration from each ldb into samba_dsdb.c
This makes getting the module order correct, the obligation of Samba4
developers, and not system administrators.  In particular, once an ldb
is updated to use only the 'samba_dsdb' module, no further changes to the
ldb should be required when upgrading to later Samba4 versions.

(thanks to metze for the suggestion of samba_dsdb as a long-term
stable name for the module)

Andrew Bartlett
2009-11-23 14:15:07 +01:00
Andrew Bartlett
41ce3dc0c3 s4:dsdb Add 'dsdb_flags' to dsdb_module_search() to enable often-used features
These flags, also on dsdb_module_search_dn() allow us to add commonly
set controls to this pre-packaged blocking search, without rebuilding
the whole function in each caller.

Andrew Bartlett
2009-11-17 10:38:01 +11:00
Endi S. Dewata
c9571f7277 s4:provisioning - Fixed minor bugs in provisioning tool and partition module. 2009-11-04 14:58:25 +11:00
Andrew Bartlett
1ac8ef155f s4:dsdb Revert back to using DN:filename in the partitions record
This allows us to change the escaping function without breaking
existing installs.  The new escaping function (used for new databases)
is RFC1738 URI encoding, except for the trivial cases without special
characters.

The new databases are also placed in a subdirectory, sam.ldb.d per an
earlier suggestion by metze.

Andrew Bartlett
2009-11-02 16:36:53 +11:00
Andrew Bartlett
5e920f2a23 s4:dsdb Rework partitions module for better tracing
This means we need to create a fake 'module' which only has a 'next'
pointer, so that we can now ldb_next_request() (which incorporates
tracing).  The remainaing stub of partition_request() is retained so
that we can indicate which partition an operation is destined for.

Similar tracing is added to the transaction handlers.

Andrew Bartlett
2009-10-27 11:32:18 +11:00
Andrew Tridgell
c34e45a8e2 s4-dsdb: ensure that new partitions inherit any transaction 2009-10-25 13:15:18 +11:00
Stefan Metzmacher
69e96f08f1 s4:dsdb/partition_init: don't leak a talloc_new() in case we have no data yet
metze
2009-10-24 11:59:15 +02:00
Andrew Bartlett
b6200e3047 s4:dsdb Fix samba3sam test again.
We again need to be careful not to call 'ldb_next_request' based functions in the partitions module.

Or, we need to instead go back to having that work, and ditch the
partition_request stuff...

Andrew Bartlett
2009-10-23 15:42:54 +11:00
Andrew Bartlett
b0eb8a1bbb s4:dsdb Do less allocation when searching for partitions modules
(it didn't help that the previous allocation was on the wrong long-term context)

Andrew Bartlett
2009-10-23 15:42:14 +11:00
Andrew Bartlett
bd9aa4d561 s4:dsdb Set partitions metadata as soon as it is set up. 2009-10-23 15:40:49 +11:00
Andrew Bartlett
925a94b67c s4:dsdb Use the 'correct' case for the namingContext values in rootDSE
This makes the namingContext attributes in the rootDSE a little more pretty, by
using the exact same values as used in the database DNs.

Andrew Bartlett
2009-10-22 09:45:14 +11:00
Andrew Bartlett
d7cf71d9b6 s4:dsdb Allow loading of old-style partition records
This should make upgrades easier
2009-10-21 22:43:57 +11:00
Andrew Bartlett
4209cf9860 s4:dsdb Make the 'relative path' code in partitions handle tdb://
The previous code would fail if the caller used tdb:// in the URL for the
top-level database.

Andrew Bartlett
2009-10-21 22:43:57 +11:00
Andrew Bartlett
96ec45309a s4:dsdb talloc_steal the backend module to under the partition 2009-10-21 22:43:57 +11:00
Andrew Bartlett
154747759e s4:dsdb Allow creation of new partitions
This is a collection of fixes to allow the creation of new partitions,
as well as adding debugging that may be useful in chasing down future
failures.

Andrew Bartlett
2009-10-21 22:43:55 +11:00
Andrew Bartlett
be5f0818ea s4:dsdb Load new partitions in a running LDB if metadata changes
This allows one instance of LDB to add a partition, and another to use
it without first closing the database.

Andrew Bartlett
2009-10-21 22:43:53 +11:00
Andrew Bartlett
6a77165c8a s4:dsdb Only reload partition metadata on search and transaction start
I see no reason to reload it when in a transaction - it can't change
on us anyway (we possibly need to watch for our own changes to
@PARTITION however)

Andrew Bartlett
2009-10-21 22:43:53 +11:00
Andrew Bartlett
e62200e253 s4:dsdb Reload partition metadata if the main db updates
This uses the fact that the primary DB does not change often.  Before
each operation, we see if the sequence number has changed.

Andrew Bartlett
2009-10-21 22:43:52 +11:00
Andrew Bartlett
fa5ebaa686 s4:dsdb Split 'set per-partition metadata' into it's own function
This helps us ensure we always set the metadata, even when we are
'adding' a partition that is already in our list.  (We *really* don't
want these getting out of sync, and the extra writes are harmless)

Andrew Bartlett
2009-10-21 22:43:52 +11:00
Andrew Bartlett
ff3b60d154 s4:dsdb Don't try and casefold DNs during startup for partition load
The issue here is that before we load the schema partition, we may not
have the correct casefolding rules.  As such, keep things simple and
use the DN exactly as found in the @PARTITIONS record to find the
database.

Andrew Bartlett
2009-10-21 22:43:51 +11:00
Andrew Bartlett
129bda51f1 s4:dsdb Fix partition_create not to return early 2009-10-21 22:43:51 +11:00
Andrew Bartlett
b04bdee800 s4:dsdb Be strict in selecting on-disk names for partitions
I really don't want a cn=foo/../bar in my ldb file name.

Andrew Bartlett
2009-10-21 22:43:50 +11:00
Andrew Bartlett
c59f00805c s4:dsdb Rework modules create new partitions at runtime
This is done by passing an extended operation to the partitions module
to extend the @PARTITION record and to extend the in-memory list of
partitions.

This also splits things up into module parts that belong above and below
repl_meta_data

Also slit the partitions module into two files due to the complexity
of the code

Andrew Barltett
2009-10-21 22:43:50 +11:00