Bugzilla – Attachment 21055 Details for
Bug 10733
Memcached on package installs
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 10733: Memcached on package installs
Bug-10733-Memcached-on-package-installs.patch (text/plain), 13.11 KB, created by
Tomás Cohen Arazi (tcohen)
on 2013-09-12 18:16:16 UTC
(
hide
)
Description:
Bug 10733: Memcached on package installs
Filename:
MIME Type:
Creator:
Tomás Cohen Arazi (tcohen)
Created:
2013-09-12 18:16:16 UTC
Size:
13.11 KB
patch
obsolete
>From fb08f54256a96d40272f504480f32719d7f91e26 Mon Sep 17 00:00:00 2001 >From: Tomas Cohen Arazi <tomascohen@gmail.com> >Date: Fri, 31 May 2013 15:56:59 -0300 >Subject: [PATCH] Bug 10733: Memcached on package installs > >This patch makes the koha-create script adjust the koha-conf.xml file >with the proper string substitutions to enable the use of memcached >for the created Koha instance. > >It adds three option switches that control this: > > --use-memcached (defaults to "no") > --memcached-servers "host1:port1,..." (defaults to '127.0.0.1:11211') > --memcached-prefix "desired_namespace prefix" (defaults to 'koha_') > >It respects the current schema configuration schema, where configuration values are >pondered like this: > >hardcoded < koha-sites.conf < koha-create option switches > >koha-sites.conf is read for USE_MEMCACHED, MEMCACHED_SERVERS and MEMCACHED_PREFIX. > >Note: the docs discourage setting user's own namespace prefix. > >Using memcached is off as the default. The relevant configuration variables will remain empty >if the user doesn't pass --use-memcached to the command. It matches the current behaviour. > >To test: >- Apply the patch >- Build your own packages and install them on a test server >a) Create a new instance without using the new switches like: > $ koha-create --create-db memctest > - Check that /etc/koha/sites/memctest/koha-conf.xml contains: > * Empty <memcached_servers> tag. > * Empty <memcached_namespace> tag. > >b) Play with the possible combination of option switches >(Note that the code defaults to empty and will remain like that if --use-memcached is not >used, so less tests...) > > $ koha-create --create-db --use-memcached memctest > $ koha-create --create-db --use-memcached --memcached-servers "anything:xxx" memctest > $ koha-create --create-db --use-memcached --memcached-servers "anything:xxx" --memcached-prefix "something" memctest > $ koha-create --create-db --use-memcached --memcached-prefix "something" memctest > > - Check the koha-conf.xml and /etc/apache2/sites-enabled/memctest file reflect the chosen options. > >c) Run > $ koha-create --help > - It should advertise this addition accordingly. > >d) Run > $ man koha-create > - Man page for koha-create should provide good information on the new switches behaviour > >Enjoy >To+ > >Sponsored-by: Universidad Nacional de Cordoba >--- > debian/docs/koha-create.xml | 46 +++++++++++++ > debian/scripts/koha-create | 114 +++++++++++++++++++++++++++------ > debian/templates/apache-site.conf.in | 4 ++ > debian/templates/koha-conf-site.xml.in | 4 +- > 4 files changed, 148 insertions(+), 20 deletions(-) > >diff --git a/debian/docs/koha-create.xml b/debian/docs/koha-create.xml >index 6ac2171..99ce191 100644 >--- a/debian/docs/koha-create.xml >+++ b/debian/docs/koha-create.xml >@@ -29,6 +29,9 @@ > <arg><option>--zebralang</option> en|es|fr|nb|ru|uk</arg> > <arg><option>--auth-idx</option> dom|grs1</arg> > <arg><option>--biblio-idx</option> dom|grs1</arg> >+ <arg><option>--use-memcached</option></arg> >+ <arg><option>--memcached-servers</option> server:port</arg> >+ <arg><option>--memcached-prefix</option> namespace_prefix</arg> > <arg><option>--defaultsql</option> /path/to/some.sql</arg> > <arg><option>--configfile</option> /path/to/config</arg> > <arg><option>--passwdfile</option> /path/to/passwd</arg> >@@ -125,6 +128,27 @@ > </listitem> > </varlistentry> > >+ <varlistentry> >+ <term><option>--use-memcached</option></term> >+ <listitem> >+ <para>Make the Koha instance use memcached. <option>Disabled by default</option>.</para> >+ </listitem> >+ </varlistentry> >+ >+ <varlistentry> >+ <term><option>--memcached-servers</option></term> >+ <listitem> >+ <para>Specify a comma-separated list of host:port memcached servers for using with the created Koha instance. Defaults to <option>127.0.0.1:11211</option>, the needed configuration for a locally installed memcached server.</para> >+ </listitem> >+ </varlistentry> >+ >+ <varlistentry> >+ <term><option>--memcached-prefix</option></term> >+ <listitem> >+ <para>Specifiy a <option>namespace prefix</option> for memcached. You usually leave this option alone to avoid namespace collisions. It defaults to <option>koha_</option>.</para> >+ </listitem> >+ </varlistentry> >+ > </variablelist> > </refsect1> > >@@ -195,6 +219,28 @@ > </varlistentry> > > <varlistentry> >+ <term><option>USE_MEMCACHED</option></term> >+ <listitem> >+ <para>Valid values are <option>yes</option> and <option>no</option>. If not present koha-create will default to <option>no</option>. Also, this will be overriden by the <option>--use-memcached</option> switch.</para> >+ </listitem> >+ </varlistentry> >+ >+ <varlistentry> >+ <term><option>MEMCACHED_SERVERS</option></term> >+ <listitem> >+ <para>A comma-separated list of valid memcached servers. Usually in the form of <option>host:port</option>. If not present koha-create will default to <option>127.0.0.1:11211</option>. Also, this will be overriden by the arguments of the <option>--memcached-servers</option> switch.</para> >+ </listitem> >+ </varlistentry> >+ >+ <varlistentry> >+ <term><option>MEMCACHED_PREFIX</option></term> >+ <listitem> >+ <para>A prefix for all new Koha instances to use in memcached. If not present koha-create will default to <option>koha_</option>. Also, this will be overriden by the arguments of the <option>--memcached-prefix</option> switch.</para> >+ </listitem> >+ </varlistentry> >+ >+ >+ <varlistentry> > <term><option>ZEBRA_MARC_FORMAT</option></term> > <listitem> > <para>Specifies format of MARC records to be indexed by Zebra. Possible values are 'marc21', 'normarc' and 'unimarc'.</para> >diff --git a/debian/scripts/koha-create b/debian/scripts/koha-create >index e8b2578..491a218 100755 >--- a/debian/scripts/koha-create >+++ b/debian/scripts/koha-create >@@ -23,6 +23,8 @@ usage="Usage: $0 [--create-db|--request-db|--populate-db|--use-db] \ > [--marcflavor marc21|normarc|unimarc] \ > [--zebralang en|es|fr|nb|ru|uk] \ > [--auth-idx dom|grs1] [--biblio-idx dom|grs1] \ >+ [--use-memcached] \ >+ [--memcached-servers server:port] [--memcached-prefix prefix] \ > [--defaultsql /path/to/some.sql] \ > [--configfile /path/to/config] [--passwdfile /path/to/passwd] \ > [--database database] [--adminuser n] instancename" >@@ -61,6 +63,8 @@ generate_config_file() { > -e "s/__UNIXUSER__/$username/g" \ > -e "s/__UNIXGROUP__/$username/g" \ > -e "s/__PLUGINS_DIR__/\/var\/lib\/koha\/$name\/plugins/g" \ >+ -e "s/__MEMCACHED_NAMESPACE__/$MEMCACHED_NAMESPACE/g" \ >+ -e "s/__MEMCACHED_SERVERS__/$MEMCACHED_SERVERS/g" \ > "/etc/koha/$1" > "$2" > > } >@@ -154,6 +158,32 @@ EOF` > esac > } > >+ >+set_memcached() >+{ >+ local instance="$1" >+ >+ if [ "$CLO_MEMCACHED_SERVERS" != "" ]; then >+ MEMCACHED_SERVERS=$CLO_MEMCACHED_SERVERS >+ else >+ if [ "$MEMCACHED_SERVERS" = "" ]; then >+ MEMCACHED_SERVERS=$DEFAULT_MEMCACHED_SERVERS >+ # else: was set by the koha-sites.conf file >+ fi >+ fi >+ >+ if [ "$CLO_MEMCACHED_PREFIX" != "" ]; then >+ MEMCACHED_NAMESPACE="$CLO_MEMCACHED_PREFIX$instance" >+ else >+ if [ "$MEMCACHED_PREFIX" != "" ]; then >+ MEMCACHED_NAMESPACE="$MEMCACHED_PREFIX$instance" >+ else >+ MEMCACHED_NAMESPACE="$DEFAULT_MEMCACHED_PREFIX$instance" >+ fi >+ fi >+ >+} >+ > # Set defaults and read config file, if it exists. > DOMAIN="" > OPACPORT="80" >@@ -168,6 +198,14 @@ ZEBRA_LANGUAGE="en" > ADMINUSER="1" > PASSWDFILE="/etc/koha/passwd" > >+# memcached variables >+USE_MEMCACHED="no" >+MEMCACHED_SERVERS="" >+MEMCACHED_PREFIX="" >+# hardcoded memcached defaults >+DEFAULT_MEMCACHED_SERVERS="127.0.0.1:11211" >+DEFAULT_MEMCACHED_PREFIX="koha_" >+ > # Indexing mode variables (default is DOM) > BIBLIOS_INDEXING_MODE="dom" > AUTHORITIES_INDEXING_MODE="dom" >@@ -184,7 +222,7 @@ fi > > [ $# -ge 2 ] && [ $# -le 16 ] || die $usage > >-TEMP=`getopt -o crpm:l:d:f:b:a: -l create-db,request-db,populate-db,use-db,marcflavor:,auth-idx:,biblio-idx:,zebralang:,defaultsql:,configfile:,passwdfile:,database:,adminuser: \ >+TEMP=`getopt -o crpm:l:d:f:b:a: -l create-db,request-db,populate-db,use-db,use-memcached,marcflavor:,auth-idx:,biblio-idx:,zebralang:,defaultsql:,configfile:,passwdfile:,database:,adminuser:,memcached-servers:,memcached-prefix:, \ > -n "$0" -- "$@"` > > # Note the quotes around `$TEMP': they are essential! >@@ -197,26 +235,49 @@ CLO_DEFAULTSQL="" > CLO_ADMINUSER="" > CLO_BIBLIOS_INDEXING_MODE="" > CLO_AUTHORITIES_INDEXING_MODE="" >+CLO_MEMCACHED_SERVERS="" >+CLO_MEMCACHED_PREFIX="" > > > while true ; do >- case "$1" in >- -c|--create-db) op=create ; shift ;; >- -r|--request-db) op=request ; shift ;; >- -p|--populate-db) op=populate ; shift ;; >- -u|--use-db) op=use ; shift ;; >- -m|--marcflavor) CLO_ZEBRA_MARC_FORMAT="$2" ; shift 2 ;; >- -l|--zebralang) CLO_ZEBRA_LANGUAGE="$2" ; shift 2 ;; >- --auth-idx) CLO_AUTHORITIES_INDEXING_MODE="$2" ; shift 2 ;; >- --biblio-idx) CLO_BIBLIOS_INDEXING_MODE="$2" ; shift 2 ;; >- -d|--defaultsql) CLO_DEFAULTSQL="$2" ; shift 2 ;; >- -f|--configfile) configfile="$2" ; shift 2 ;; >- -s|--passwdfile) CLO_PASSWDFILE="$2" ; shift 2 ;; >- -b|--database) CLO_DATABASE="$2" ; shift 2 ;; >- -a|--adminuser) CLO_ADMINUSER="$2" ; shift 2 ;; >- --) shift ; break ;; >- *) die "Internal error processing command line arguments" ;; >- esac >+ case "$1" in >+ -c|--create-db) >+ op=create ; shift ;; >+ -r|--request-db) >+ op=request ; shift ;; >+ -p|--populate-db) >+ op=populate ; shift ;; >+ -u|--use-db) >+ op=use ; shift ;; >+ --use-memcached) >+ USE_MEMCACHED="yes" ; shift ;; >+ --memcached-servers) >+ CLO_MEMCACHED_SERVERS="$2" ; shift 2 ;; >+ --memcached-prefix) >+ CLO_MEMCACHED_PREFIX="$2" ; shift 2;; >+ -m|--marcflavor) >+ CLO_ZEBRA_MARC_FORMAT="$2" ; shift 2 ;; >+ -l|--zebralang) >+ CLO_ZEBRA_LANGUAGE="$2" ; shift 2 ;; >+ --auth-idx) >+ CLO_AUTHORITIES_INDEXING_MODE="$2" ; shift 2 ;; >+ --biblio-idx) >+ CLO_BIBLIOS_INDEXING_MODE="$2" ; shift 2 ;; >+ -d|--defaultsql) >+ CLO_DEFAULTSQL="$2" ; shift 2 ;; >+ -f|--configfile) >+ configfile="$2" ; shift 2 ;; >+ -s|--passwdfile) >+ CLO_PASSWDFILE="$2" ; shift 2 ;; >+ -b|--database) >+ CLO_DATABASE="$2" ; shift 2 ;; >+ -a|--adminuser) >+ CLO_ADMINUSER="$2" ; shift 2 ;; >+ --) >+ shift ; break ;; >+ *) >+ die "Internal error processing command line arguments" ;; >+ esac > done > > # Load the configfile given on the command line >@@ -267,6 +328,23 @@ set_authorities_indexing_mode $AUTHORITIES_INDEXING_MODE $ZEBRA_MARC_FORMAT > > name="$1" > >+if [ "$USE_MEMCACHED" = "yes" ]; then >+ set_memcached $name >+elif [ "$CLO_MEMCACHED_SERVERS" != "" ] || \ >+ [ "$CLO_MEMCACHED_PREFIX" != "" ]; then >+ >+ MSG=`cat <<EOF >+ >+Error: you provided memcached configuration switches but memcached is not enabled. >+Please set USE_MEMCACHED="yes" on /etc/koha/koha-sites.conf or use the >+--use-memcached optio switch to enable it. >+ >+EOF` >+ >+ echo $usage >+ die $MSG >+fi >+ > opacdomain="$OPACPREFIX$name$OPACSUFFIX$DOMAIN" > intradomain="$INTRAPREFIX$name$INTRASUFFIX$DOMAIN" > >diff --git a/debian/templates/apache-site.conf.in b/debian/templates/apache-site.conf.in >index 42bdbcd..dd30bc6 100644 >--- a/debian/templates/apache-site.conf.in >+++ b/debian/templates/apache-site.conf.in >@@ -8,6 +8,8 @@ > > ServerName __OPACSERVER__ > SetEnv KOHA_CONF "/etc/koha/sites/__KOHASITE__/koha-conf.xml" >+ SetEnv MEMCACHED_SERVERS "__MEMCACHED_SERVERS__" >+ SetEnv MEMCACHED_NAMESPACE "__MEMCACHED_NAMESPACE__" > AssignUserID __UNIXUSER__ __UNIXGROUP__ > > ErrorLog /var/log/koha/__KOHASITE__/opac-error.log >@@ -23,6 +25,8 @@ > > ServerName __INTRASERVER__ > SetEnv KOHA_CONF "/etc/koha/sites/__KOHASITE__/koha-conf.xml" >+ SetEnv MEMCACHED_SERVERS "__MEMCACHED_SERVERS__" >+ SetEnv MEMCACHED_NAMESPACE "__MEMCACHED_NAMESPACE__" > AssignUserID __UNIXUSER__ __UNIXGROUP__ > > ErrorLog /var/log/koha/__KOHASITE__/intranet-error.log >diff --git a/debian/templates/koha-conf-site.xml.in b/debian/templates/koha-conf-site.xml.in >index 71de9fb..9bf090b 100644 >--- a/debian/templates/koha-conf-site.xml.in >+++ b/debian/templates/koha-conf-site.xml.in >@@ -276,8 +276,8 @@ > <!-- <pazpar2url>http://__PAZPAR2_HOST__:__PAZPAR2_PORT__/search.pz2</pazpar2url> --> > <install_log>/usr/share/koha/misc/koha-install-log</install_log> > <useldapserver>0</useldapserver><!-- see C4::Auth_with_ldap for extra configs you must add if you want to turn this on --> >- <memcached_servers></memcached_servers> >- <memcached_namespace></memcached_namespace> >+ <memcached_servers>__MEMCACHED_SERVERS__</memcached_servers> >+ <memcached_namespace>__MEMCACHED_NAMESPACE__</memcached_namespace> > <zebra_bib_index_mode>__BIBLIOS_INDEXING_MODE__</zebra_bib_index_mode> > <zebra_auth_index_mode>__AUTHORITIES_INDEXING_MODE__</zebra_auth_index_mode> > <queryparser_config>/etc/koha/searchengine/queryparser.yaml</queryparser_config> >-- >1.8.3.2
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 10733
:
20354
|
20356
|
20357
|
20358
|
20365
|
20544
|
20996
|
21055
|
21085
|
21103
|
21104
|
21105
|
21617
|
21618
|
21619