The Samba-Bugzilla – Attachment 8642 Details for
Bug 9719
dbcheck patch from master needed in 4.0
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
patches cherry-picked from master
0001-s4-dbcheck-Allow-forcing-an-override-of-an-old-MODUL.patch (text/plain), 5.04 KB, created by
Andrew Bartlett
on 2013-03-14 08:48:41 UTC
(
hide
)
Description:
patches cherry-picked from master
Filename:
MIME Type:
Creator:
Andrew Bartlett
Created:
2013-03-14 08:48:41 UTC
Size:
5.04 KB
patch
obsolete
>From b4085b81ffd2c9d440d71c75f16a52969b407e8e Mon Sep 17 00:00:00 2001 >From: Andrew Bartlett <abartlet@samba.org> >Date: Thu, 23 Aug 2012 15:18:13 +1000 >Subject: [PATCH] s4-dbcheck: Allow forcing an override of an old @MODULES > record > >Reviewed-by: Stefan Metzmacher <metze@samba.org> >(cherry picked from commit 99d872ee9261a299add4718c38234dfe9f7658fc) >--- > source4/scripting/python/samba/dbchecker.py | 9 +++++++++ > source4/scripting/python/samba/netcmd/dbcheck.py | 24 ++++++++++++++++++++---- > testprogs/blackbox/dbcheck.sh | 5 +++++ > 3 files changed, 34 insertions(+), 4 deletions(-) > >diff --git a/source4/scripting/python/samba/dbchecker.py b/source4/scripting/python/samba/dbchecker.py >index 0bda0c2..06fd827 100644 >--- a/source4/scripting/python/samba/dbchecker.py >+++ b/source4/scripting/python/samba/dbchecker.py >@@ -936,3 +936,12 @@ newSuperior: %s""" % (str(from_dn), str(to_rdn), str(to_base))) > m['add'] = ldb.MessageElement('NONE', ldb.FLAG_MOD_ADD, 'force_reindex') > m['delete'] = ldb.MessageElement('NONE', ldb.FLAG_MOD_DELETE, 'force_reindex') > return self.do_modify(m, [], 're-indexed database', validate=False) >+ >+ ############################################### >+ # reset @MODULES >+ def reset_modules(self): >+ '''reset @MODULES to that needed for current sam.ldb (to read a very old database)''' >+ m = ldb.Message() >+ m.dn = ldb.Dn(self.samdb, "@MODULES") >+ m['@LIST'] = ldb.MessageElement('samba_dsdb', ldb.FLAG_MOD_REPLACE, '@LIST') >+ return self.do_modify(m, [], 'reset @MODULES on database', validate=False) >diff --git a/source4/scripting/python/samba/netcmd/dbcheck.py b/source4/scripting/python/samba/netcmd/dbcheck.py >index e4ec6b3..889b0ff 100644 >--- a/source4/scripting/python/samba/netcmd/dbcheck.py >+++ b/source4/scripting/python/samba/netcmd/dbcheck.py >@@ -55,6 +55,7 @@ class cmd_dbcheck(Command): > help="don't print details of checking"), > Option("--attrs", dest="attrs", default=None, help="list of attributes to check (space separated)"), > Option("--reindex", dest="reindex", default=False, action="store_true", help="force database re-index"), >+ Option("--force-modules", dest="force_modules", default=False, action="store_true", help="force loading of Samba modules and ignore the @MODULES record (for very old databases)"), > Option("-H", "--URL", help="LDB URL for database or target server (defaults to local SAM database)", > type=str, metavar="URL", dest="H"), > ] >@@ -62,7 +63,7 @@ class cmd_dbcheck(Command): > def run(self, DN=None, H=None, verbose=False, fix=False, yes=False, > cross_ncs=False, quiet=False, > scope="SUB", credopts=None, sambaopts=None, versionopts=None, >- attrs=None, reindex=False): >+ attrs=None, reindex=False, force_modules=False): > > lp = sambaopts.get_loadparm() > >@@ -73,8 +74,16 @@ class cmd_dbcheck(Command): > else: > creds = None > >- samdb = SamDB(session_info=system_session(), url=H, >- credentials=creds, lp=lp) >+ if force_modules: >+ samdb = SamDB(session_info=system_session(), url=H, >+ credentials=creds, lp=lp, options=["modules=samba_dsdb"]) >+ else: >+ try: >+ samdb = SamDB(session_info=system_session(), url=H, >+ credentials=creds, lp=lp) >+ except: >+ raise CommandError("Failed to connect to DB at %s. If this is a really old sam.ldb (before alpha9), then try again with --force-modules" % H) >+ > > if H is None or not over_ldap: > samdb_schema = samdb >@@ -105,13 +114,20 @@ class cmd_dbcheck(Command): > started_transaction = True > try: > chk = dbcheck(samdb, samdb_schema=samdb_schema, verbose=verbose, >- fix=fix, yes=yes, quiet=quiet, in_transaction=started_transaction) >+ fix=fix, yes=yes, quiet=quiet, in_transaction=started_transaction) > > if reindex: > self.outf.write("Re-indexing...\n") > error_count = 0 > if chk.reindex_database(): > self.outf.write("completed re-index OK\n") >+ >+ elif force_modules: >+ self.outf.write("Resetting @MODULES...\n") >+ error_count = 0 >+ if chk.reset_modules(): >+ self.outf.write("completed @MODULES reset OK\n") >+ > else: > error_count = chk.check_database(DN=DN, scope=search_scope, > controls=controls, attrs=attrs) >diff --git a/testprogs/blackbox/dbcheck.sh b/testprogs/blackbox/dbcheck.sh >index 1ea7811..faf6fab 100755 >--- a/testprogs/blackbox/dbcheck.sh >+++ b/testprogs/blackbox/dbcheck.sh >@@ -20,7 +20,12 @@ reindex() { > $BINDIR/samba-tool dbcheck --reindex > } > >+force_modules() { >+ $BINDIR/samba-tool dbcheck --force-modules >+} >+ > testit "dbcheck" dbcheck > testit "reindex" reindex >+testit "force_modules" force_modules > > exit $failed >-- >1.7.11.7 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
metze
:
review+
Actions:
View
Attachments on
bug 9719
: 8642