Bugzilla – Attachment 18105 Details for
Bug 10159
koha-rebuild-zebra error handling
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 10159 - koha-rebuild-zebra error handling
Bug-10159---koha-rebuild-zebra-error-handling.patch (text/plain), 8.38 KB, created by
Robin Sheat
on 2013-05-12 22:54:30 UTC
(
hide
)
Description:
Bug 10159 - koha-rebuild-zebra error handling
Filename:
MIME Type:
Creator:
Robin Sheat
Created:
2013-05-12 22:54:30 UTC
Size:
8.38 KB
patch
obsolete
>From 19c45a9db7fa70d6501f2ed0042077b800b12928 Mon Sep 17 00:00:00 2001 >From: Tomas Cohen Arazi <tomascohen@gmail.com> >Date: Tue, 30 Apr 2013 11:58:25 -0300 >Subject: [PATCH] Bug 10159 - koha-rebuild-zebra error handling >MIME-Version: 1.0 >Content-Type: text/plain; charset=UTF-8 >Content-Transfer-Encoding: 8bit > >This patch makes koha-rebuild-zebra: >- Check for the existence of the instance >- Handle arbitrary amount of instance parameters >- Capture -a and -b (which made the script rebuild twice the chosen DB). It adds the extended version (--authorities and --biblios respectively) of the option switch. This makes the -a and -b switches work as "only do authorities" (or viceversa). They can be used concurrently, which is the default behaviour when no switch is provided. >- Handle -v (and --verbose) as koha-rebuild-zebra options, to ease the use for non-techie users. >- The rebuild_zebra.pl is wrapped inside an IF to return error values if we ever make rebuild_zebra.pl return error codes (this is pointed in the code). >- Added -h/--help switches and an 'usage' output :-D Please provide patches for any wording issues, or contact me to fix it. > >To test: >- Apply the patch and create your packages (or just use the script from your branch) >- Run it in this scenarios / options > - -h/--help to see the available option switches > - Mix them with one or more instances, of which some could be fake > - try -a/--authorities and -b/--biblios in all possible combinations > - try -v/--verbose works > >Regards >To+ > >Sponsored-by: Universidad Nacional de Córdoba >Signed-off-by: Robin Sheat <robin@catalyst.net.nz> >--- > debian/docs/koha-rebuild-zebra.xml | 26 ++++++- > debian/scripts/koha-rebuild-zebra | 143 +++++++++++++++++++++++++++++++----- > 2 files changed, 147 insertions(+), 22 deletions(-) > >diff --git a/debian/docs/koha-rebuild-zebra.xml b/debian/docs/koha-rebuild-zebra.xml >index b8ce51c..410be8a 100644 >--- a/debian/docs/koha-rebuild-zebra.xml >+++ b/debian/docs/koha-rebuild-zebra.xml >@@ -17,13 +17,13 @@ > > <refnamediv> > <refname>koha-rebuild-zebra</refname> >- <refpurpose>Rebuild the Zebra database for a Koha instance.</refpurpose> >+ <refpurpose>Rebuild the Zebra database for Koha instances.</refpurpose> > <refclass>UNIX/Linux</refclass> > </refnamediv> > > <refsynopsisdiv> > <cmdsynopsis> >- <command>koha-rebuild-zebra</command> <arg><option>-u</option>|<option>--usmarc</option></arg> <arg><option>-f</option>|<option>--full</option></arg> <arg><option>...</option></arg> <arg choice="req" rep="repeat"><replaceable>instancename</replaceable></arg> >+ <command>koha-rebuild-zebra</command> <arg><option>-u</option>|<option>--usmarc</option></arg> <arg><option>-f</option>|<option>--full</option></arg> <arg><option>-a</option>|<option>--authorities</option></arg> <arg><option>-b</option>|<option>--biblios</option></arg> <arg><option>-v</option>|<option>--verbose</option></arg> <arg><option>...</option></arg> <arg choice="req" rep="repeat"><replaceable>instancename</replaceable></arg> > </cmdsynopsis> > </refsynopsisdiv> > >@@ -42,16 +42,34 @@ > </listitem> > </varlistentry> > <varlistentry> >+ <term><option>-a, --authorities</option></term> >+ <listitem> >+ <para>Only run the indexing process for authority records.</para> >+ </listitem> >+ </varlistentry> >+ <varlistentry> >+ <term><option>-b, --biblios</option></term> >+ <listitem> >+ <para>Only run the indexing process for biblio records.</para> >+ </listitem> >+ </varlistentry> >+ <varlistentry> >+ <term><option>-v, --verbose</option></term> >+ <listitem> >+ <para>Be verbose. Useful for debugging indexing problems.</para> >+ </listitem> >+ </varlistentry> >+ <varlistentry> > <term><option>-...</option></term> > <listitem> >- <para>Anything else is passed directly to rebuild_zebra. This is useful in particular for -v.</para> >+ <para>Anything else is passed directly to rebuild_zebra.</para> > </listitem> > </varlistentry> > </variablelist> > </refsect1> > > <refsect1><title>Description</title> >- <para>Rebuild the Zebra database for a Koha instance.</para> >+ <para>Rebuild the Zebra database for Koha instances.</para> > </refsect1> > > <refsect1><title>See also</title> >diff --git a/debian/scripts/koha-rebuild-zebra b/debian/scripts/koha-rebuild-zebra >index b4478fd..f32ca8b 100755 >--- a/debian/scripts/koha-rebuild-zebra >+++ b/debian/scripts/koha-rebuild-zebra >@@ -1,6 +1,6 @@ > #!/bin/sh > # >-# koha-rebuild-zebra -- Rebuild the Zebra database for a Koha instance. >+# koha-rebuild-zebra - Rebuild the Zebra database for Koha instances. > # Copyright 2010 Catalyst IT, Ltd > # > # This program is free software: you can redistribute it and/or modify >@@ -19,18 +19,117 @@ > > set -e > >+die() >+{ >+ echo "$@" 1>&2 >+ exit 1 >+} >+ >+warn() >+{ >+ echo "$@" 1>&2 >+} >+ >+is_instance() >+{ >+ local instancename=$1 >+ >+ if find /etc/koha/sites -mindepth 1 -maxdepth 1 \ >+ -type d -printf '%f\n'\ >+ | grep -q -x $instancename ; then >+ return 0 >+ else >+ return 1 >+ fi >+} >+ >+toggle_biblios_only() >+{ >+ biblios_only="yes" >+ biblios="yes" >+ if [ "$authorities_only" != "yes" ]; then >+ authorities="no" >+ fi >+} >+ >+toggle_authorities_only() >+{ >+ authorities_only="yes" >+ authorities="yes" >+ if [ "$biblios_only" != "yes" ]; then >+ biblios="no" >+ fi >+} >+ >+run_rebuild_zebra() >+{ >+ local instancename=$1; shift >+ >+ # TODO: This comment is here to remind us that we should make >+ # rebuild_zebra.pl return error codes on failure >+ if sudo -u "$instancename-koha" -H \ >+ env PERL5LIB=/usr/share/koha/lib \ >+ KOHA_CONF="/etc/koha/sites/$instancename/koha-conf.xml" \ >+ /usr/share/koha/bin/migration_tools/rebuild_zebra.pl $@ ; then >+ return 0 >+ else >+ return 1 >+ fi >+} >+ >+usage() >+{ >+ local scriptname=$0 >+ cat <<EOF >+Rebuild the Zebra indexes for Koha instances. The default behaviour >+is to do an incremental rebuild. >+ >+Usage: $scriptname [options] instancename1 instancename2... >+Options: >+ --usmarc|-u Runs the process as USMARC rather than >+ the default of MARCXML. >+ --authorities|-a Only run process for authorities. >+ --biblios|-b Only run process for biblios. >+ --full|-f Does a reindex of the whole collection. >+ --verbose|-v Be verbose. >+ --help|-h Print this help. >+ >+ >+Note: Any other options are passed directly to rebuild_zebra.pl. >+EOF >+} >+ >+# Default parameters > opt_idx="-z" > opt_xml="-x" >+opt_verbose="" > opts_other="" >+biblios_only="no" >+authorities_only="no" >+biblios="yes" >+authorities="yes" > >+# Read parameters > while [ -n "$*" ]; do > case "$1" in >+ -h|--help) >+ usage ; exit 0 >+ ;; >+ -b|--biblios) >+ toggle_biblios_only >+ ;; >+ -a|--authorities) >+ toggle_authorities_only >+ ;; > -u|--usmarc) >- opt_xml="" >- ;; >+ opt_xml="" >+ ;; > -f|--full) >- opt_idx="-r" >- ;; >+ opt_idx="-r" >+ ;; >+ -v|--verbose) >+ opt_verbose="-v" >+ ;; > -*) > opts_other="$opts_other $1"; > ;; >@@ -42,20 +141,28 @@ while [ -n "$*" ]; do > shift > done > >+# Parse command line. >+[ $# -ge 1 ] || ( usage ; die "Missing instance name..." ) > >- >-run_zebra() >-{ >- name=$1; shift >- >- sudo -u "$name-koha" -H \ >- env PERL5LIB=/usr/share/koha/lib \ >- KOHA_CONF="/etc/koha/sites/$name/koha-conf.xml" \ >- /usr/share/koha/bin/migration_tools/rebuild_zebra.pl $@ >-} >- >+# Loop over instance names > for name in "$@" > do >- run_zebra $name -b $opt_idx $opt_xml $opts_other >- run_zebra $name -a $opt_idx $opts_other >+ if is_instance $name; then >+ if [ "$biblios" = "yes" ]; then >+ if ! run_rebuild_zebra $name \ >+ -b $opt_verbose $opt_idx $opt_xml $opts_other; then >+ warn "Something went wrong rebuilding biblio indexes for $name" >+ fi >+ fi >+ if [ "$authorities" = "yes" ]; then >+ if ! run_rebuild_zebra $name \ >+ -a $opt_verbose $opt_idx $opts_other ; then >+ warn "Something went wrong rebuilding authority indexes for $name" >+ fi >+ fi >+ else >+ warn "Unknown instance $name." >+ fi > done >+ >+exit 0 >-- >1.7.10.4
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 Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 10159
:
17846
| 18105