Updated post-install scripts and binlogrouter

Binlogrouter: Switched hard-coded maximum path values to PATH_MAX and used cache directory instead of MAXSCALE_HOME
Scripts: Updated with new executable file paths
This commit is contained in:
Markus Makela
2015-04-27 14:30:47 +03:00
parent bbcecc0db5
commit 55249193a9
5 changed files with 28 additions and 41 deletions

View File

@ -18,12 +18,11 @@
### END INIT INFO ### END INIT INFO
############################################# #############################################
# MaxScale HOME, PIDFILE, LIB # MaxScale PIDFILE and LIB
############################################# #############################################
export MAXSCALE_HOME=@CMAKE_INSTALL_PREFIX@ export MAXSCALE_PIDFILE=/var/run/maxscale/maxscale.pid
export MAXSCALE_PIDFILE=$MAXSCALE_HOME/log/maxscale.pid export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:@CMAKE_INSTALL_PREFIX@/@MAXSCALE_LIBDIR@/maxscale
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MAXSCALE_HOME/lib
############################### ###############################
# LSB Exit codes (non-Status) # LSB Exit codes (non-Status)
@ -56,7 +55,7 @@ start() {
CHECK_RET=$? CHECK_RET=$?
[ $CHECK_RET -eq 0 ] && echo -n " found $my_check" && success && CHECK_RET=0 [ $CHECK_RET -eq 0 ] && echo -n " found $my_check" && success && CHECK_RET=0
daemon --pidfile $MAXSCALE_PIDFILE $MAXSCALE_HOME/bin/maxscale >& /dev/null daemon --pidfile $MAXSCALE_PIDFILE @CMAKE_INSTALL_PREFIX@/@MAXSCALE_BINDIR@/maxscale >& /dev/null
RETVAL=$? RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$servicename [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$servicename
@ -68,7 +67,7 @@ start() {
[ $CHECK_RET -eq 0 ] && echo -n $my_check && success || failure [ $CHECK_RET -eq 0 ] && echo -n $my_check && success || failure
fi fi
# Return rigth code # Return right code
if [ $RETVAL -ne 0 ]; then if [ $RETVAL -ne 0 ]; then
failure failure
RETVAL=$_RETVAL_NOT_RUNNING RETVAL=$_RETVAL_NOT_RUNNING
@ -100,7 +99,7 @@ stop() {
reload() { reload() {
echo -n $"Reloading MaxScale: " echo -n $"Reloading MaxScale: "
killproc -p $MAXSCALE_PIDFILE $MAXSCALE_HOME/bin/maxscale -HUP killproc -p $MAXSCALE_PIDFILE @CMAKE_INSTALL_PREFIX@/@MAXSCALE_BINDIR@/maxscale -HUP
RETVAL=$? RETVAL=$?
echo echo
} }

View File

@ -3,6 +3,7 @@
mkdir -p /var/log/maxscale mkdir -p /var/log/maxscale
mkdir -p /var/cache/maxscale mkdir -p /var/cache/maxscale
mkdir -p /var/run/maxscale mkdir -p /var/run/maxscale
mkdir -p @CMAKE_INSTALL_PREFIX@/@MAXSCALE_SHARE_DIR@/
cp @CMAKE_INSTALL_PREFIX@/@MAXSCALE_SHARE_DIR@/maxscale /etc/init.d/ cp @CMAKE_INSTALL_PREFIX@/@MAXSCALE_SHARE_DIR@/maxscale /etc/init.d/
cp @CMAKE_INSTALL_PREFIX@/@MAXSCALE_SHARE_DIR@/maxscale.conf /etc/ld.so.conf.d/ cp @CMAKE_INSTALL_PREFIX@/@MAXSCALE_SHARE_DIR@/maxscale.conf /etc/ld.so.conf.d/
/sbin/ldconfig /sbin/ldconfig

View File

@ -21,9 +21,8 @@
# MaxScale HOME, PIDFILE, LIB # MaxScale HOME, PIDFILE, LIB
############################################# #############################################
export MAXSCALE_HOME=@CMAKE_INSTALL_PREFIX@ export MAXSCALE_PIDFILE=/var/run/maxscale/maxscale.pid
export MAXSCALE_PIDFILE=$MAXSCALE_HOME/log/maxscale.pid export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:@CMAKE_INSTALL_PREFIX@/@MAXSCALE_LIBDIR@/maxscale
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MAXSCALE_HOME/lib
############################### ###############################
# LSB Exit codes (non-Status) # LSB Exit codes (non-Status)
@ -45,7 +44,7 @@ _RETVAL_STATUS_NOT_RUNNING=3
# stop/start/status related vars # stop/start/status related vars
################################# #################################
NAME=maxscale NAME=maxscale
DAEMON=$MAXSCALE_HOME/bin/maxscale DAEMON=@CMAKE_INSTALL_PREFIX@/@MAXSCALE_BINDIR@/maxscale
# Source function library. # Source function library.
. /lib/lsb/init-functions . /lib/lsb/init-functions
@ -82,7 +81,7 @@ reload() {
} }
maxscale_wait_stop() { maxscale_wait_stop() {
PIDTMP=$(pidofproc -p $MAXSCALE_PIDFILE $MAXSCALE_HOME/bin/maxscale) PIDTMP=$(pidofproc -p $MAXSCALE_PIDFILE @CMAKE_INSTALL_PREFIX@/@MAXSCALE_BINDIR@/maxscale)
kill -TERM "${PIDTMP:-}" 2> /dev/null; kill -TERM "${PIDTMP:-}" 2> /dev/null;
if [ -n "${PIDTMP:-}" ] && kill -0 "${PIDTMP:-}" 2> /dev/null; then if [ -n "${PIDTMP:-}" ] && kill -0 "${PIDTMP:-}" 2> /dev/null; then
local i=0 local i=0

View File

@ -1006,8 +1006,8 @@ static void usage(void)
" -l, --log=[file|shm] log to file or shared memory (default: shm)\n" " -l, --log=[file|shm] log to file or shared memory (default: shm)\n"
" -L, --logdir=PATH path to log file directory\n" " -L, --logdir=PATH path to log file directory\n"
" (default: /var/log/maxscale)\n" " (default: /var/log/maxscale)\n"
" -D, --datadir=PATH path to data directory\n" " -D, --datadir=PATH path to data directory, stored embedded mysql tables\n"
" (default: /usr/lib64/maxscale)\n" " (default: /var/cache/maxscale)\n"
" -C, --configdir=PATH path to configuration file directory\n" " -C, --configdir=PATH path to configuration file directory\n"
" (default: /etc/)\n" " (default: /etc/)\n"
" -B, --libdir=PATH path to module directory\n" " -B, --libdir=PATH path to module directory\n"

View File

@ -71,7 +71,7 @@ static void blr_log_header(logfile_id_t file, char *msg, uint8_t *ptr);
int int
blr_file_init(ROUTER_INSTANCE *router) blr_file_init(ROUTER_INSTANCE *router)
{ {
char *ptr, path[PATH_MAX], filename[PATH_MAX]; char *ptr, path[PATH_MAX+1], filename[PATH_MAX+1];
int file_found, n = 1; int file_found, n = 1;
int root_len, i; int root_len, i;
DIR *dirp; DIR *dirp;
@ -79,12 +79,8 @@ struct dirent *dp;
if (router->binlogdir == NULL) if (router->binlogdir == NULL)
{ {
strcpy(path, "/usr/local/mariadb-maxscale"); strcpy(path, get_cachedir());
if ((ptr = getenv("MAXSCALE_HOME")) != NULL) strncat(path,"/",PATH_MAX);
{
strncpy(path, ptr,PATH_MAX);
}
strncat(path, "/",PATH_MAX);
strncat(path, router->service->name,PATH_MAX); strncat(path, router->service->name,PATH_MAX);
if (access(path, R_OK) == -1) if (access(path, R_OK) == -1)
@ -659,24 +655,20 @@ struct stat statb;
void void
blr_cache_response(ROUTER_INSTANCE *router, char *response, GWBUF *buf) blr_cache_response(ROUTER_INSTANCE *router, char *response, GWBUF *buf)
{ {
char path[4097], *ptr; char path[PATH_MAX+1], *ptr;
int fd; int fd;
strcpy(path, "/usr/local/mariadb-maxscale"); strcpy(path,get_cachedir());
if ((ptr = getenv("MAXSCALE_HOME")) != NULL) strncat(path,"/",PATH_MAX);
{ strncat(path, router->service->name, PATH_MAX);
strncpy(path, ptr, 4096);
}
strncat(path, "/", 4096);
strncat(path, router->service->name, 4096);
if (access(path, R_OK) == -1) if (access(path, R_OK) == -1)
mkdir(path, 0777); mkdir(path, 0777);
strncat(path, "/.cache", 4096); strncat(path, "/.cache", PATH_MAX);
if (access(path, R_OK) == -1) if (access(path, R_OK) == -1)
mkdir(path, 0777); mkdir(path, 0777);
strncat(path, "/", 4096); strncat(path, "/", 4096);
strncat(path, response, 4096); strncat(path, response, PATH_MAX);
if ((fd = open(path, O_WRONLY|O_CREAT|O_TRUNC, 0666)) == -1) if ((fd = open(path, O_WRONLY|O_CREAT|O_TRUNC, 0666)) == -1)
return; return;
@ -697,19 +689,15 @@ GWBUF *
blr_cache_read_response(ROUTER_INSTANCE *router, char *response) blr_cache_read_response(ROUTER_INSTANCE *router, char *response)
{ {
struct stat statb; struct stat statb;
char path[4097], *ptr; char path[PATH_MAX+1], *ptr;
int fd; int fd;
GWBUF *buf; GWBUF *buf;
strcpy(path, "/usr/local/mariadb-maxscale"); strcpy(path, get_cachedir());
if ((ptr = getenv("MAXSCALE_HOME")) != NULL) strncat(path, "/", PATH_MAX);
{ strncat(path, router->service->name, PATH_MAX);
strncpy(path, ptr, 4096); strncat(path, "/.cache/", PATH_MAX);
} strncat(path, response, PATH_MAX);
strncat(path, "/", 4096);
strncat(path, router->service->name, 4096);
strncat(path, "/.cache/", 4096);
strncat(path, response, 4096);
if ((fd = open(path, O_RDONLY)) == -1) if ((fd = open(path, O_RDONLY)) == -1)
return NULL; return NULL;