Bug 5228 - make rebuild_zebra handle fixing the zebra dirs
If the zebra server directories don't exist, zebra will spit the dummy. This makes rebuild_zebra.pl smart enough to create them if they're not there. If that fails, it'll scream loudly so you know zebra isn't reindexing. Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
This commit is contained in:
parent
4f4c4eceb3
commit
8de1ef7e94
1 changed files with 27 additions and 3 deletions
|
@ -130,13 +130,13 @@ if ($do_munge) {
|
|||
}
|
||||
|
||||
if ($authorities) {
|
||||
index_records('authority', $directory, $skip_export, $process_zebraqueue, $as_xml, $noxml, $nosanitize, $do_not_clear_zebraqueue, $verbose_logging, $zebraidx_log_opt);
|
||||
index_records('authority', $directory, $skip_export, $process_zebraqueue, $as_xml, $noxml, $nosanitize, $do_not_clear_zebraqueue, $verbose_logging, $zebraidx_log_opt, $authorityserverdir);
|
||||
} else {
|
||||
print "skipping authorities\n" if ( $verbose_logging );
|
||||
}
|
||||
|
||||
if ($biblios) {
|
||||
index_records('biblio', $directory, $skip_export, $process_zebraqueue, $as_xml, $noxml, $nosanitize, $do_not_clear_zebraqueue, $verbose_logging, $zebraidx_log_opt);
|
||||
index_records('biblio', $directory, $skip_export, $process_zebraqueue, $as_xml, $noxml, $nosanitize, $do_not_clear_zebraqueue, $verbose_logging, $zebraidx_log_opt, $biblioserverdir);
|
||||
} else {
|
||||
print "skipping biblios\n" if ( $verbose_logging );
|
||||
}
|
||||
|
@ -168,11 +168,34 @@ if ($keep_export) {
|
|||
}
|
||||
}
|
||||
|
||||
# This checks to see if the zebra directories exist under the provided path.
|
||||
# If they don't, then zebra is likely to spit the dummy. This returns true
|
||||
# if the directories had to be created, false otherwise.
|
||||
sub check_zebra_dirs {
|
||||
my ($base) = shift() . '/';
|
||||
my $needed_repairing = 0;
|
||||
my @dirs = ( '', 'key', 'register', 'shadow' );
|
||||
foreach my $dir (@dirs) {
|
||||
my $bdir = $base . $dir;
|
||||
if (! -d $bdir) {
|
||||
$needed_repairing = 1;
|
||||
mkdir $bdir || die "Unable to create '$bdir': $!\n";
|
||||
print "$0: needed to create '$bdir'\n";
|
||||
}
|
||||
}
|
||||
return $needed_repairing;
|
||||
} # ---------- end of subroutine check_zebra_dirs ----------
|
||||
|
||||
sub index_records {
|
||||
my ($record_type, $directory, $skip_export, $process_zebraqueue, $as_xml, $noxml, $nosanitize, $do_not_clear_zebraqueue, $verbose_logging, $zebraidx_log_opt) = @_;
|
||||
my ($record_type, $directory, $skip_export, $process_zebraqueue, $as_xml, $noxml, $nosanitize, $do_not_clear_zebraqueue, $verbose_logging, $zebraidx_log_opt, $server_dir) = @_;
|
||||
|
||||
my $num_records_exported = 0;
|
||||
my $num_records_deleted = 0;
|
||||
my $need_reset = check_zebra_dirs($server_dir);
|
||||
if ($need_reset) {
|
||||
print "$0: found broken zebra server directories: forcing a rebuild\n";
|
||||
$reset = 1;
|
||||
}
|
||||
if ($skip_export && $verbose_logging) {
|
||||
print "====================\n";
|
||||
print "SKIPPING $record_type export\n";
|
||||
|
@ -224,6 +247,7 @@ sub index_records {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
sub select_zebraqueue_records {
|
||||
my ($record_type, $update_type) = @_;
|
||||
|
||||
|
|
Loading…
Reference in a new issue