blob: 6637d52bca675bf4b72f25d2603764c8e2494fdc [file] [log] [blame]
Davanum Srinivas33a96ff2015-11-02 17:23:39 -05001#!/bin/bash
2#
3# lib/zookeeper
4# Functions to control the installation and configuration of **zookeeper**
5
6# Dependencies:
7#
8# - ``functions`` file
9
10# ``stack.sh`` calls the entry points in this order:
11#
12# - is_zookeeper_enabled
13# - install_zookeeper
14# - configure_zookeeper
15# - init_zookeeper
16# - start_zookeeper
17# - stop_zookeeper
18# - cleanup_zookeeper
19
20# Save trace setting
21XTRACE=$(set +o | grep xtrace)
22set +o xtrace
23
24
25# Defaults
26# --------
27
28# <define global variables here that belong to this project>
29
30# Set up default directories
31ZOOKEEPER_DATA_DIR=$DEST/data/zookeeper
32ZOOKEEPER_CONF_DIR=/etc/zookeeper
33
34
35# Entry Points
36# ------------
37
38# Test if any zookeeper service us enabled
39# is_zookeeper_enabled
40function is_zookeeper_enabled {
41 [[ ,${ENABLED_SERVICES}, =~ ,"zookeeper", ]] && return 0
42 return 1
43}
44
45# cleanup_zookeeper() - Remove residual data files, anything left over from previous
46# runs that a clean run would need to clean up
47function cleanup_zookeeper {
48 sudo rm -rf $ZOOKEEPER_DATA_DIR
49}
50
51# configure_zookeeper() - Set config files, create data dirs, etc
52function configure_zookeeper {
53 sudo cp $FILES/zookeeper/* $ZOOKEEPER_CONF_DIR
54 sudo sed -i -e 's|.*dataDir.*|dataDir='$ZOOKEEPER_DATA_DIR'|' $ZOOKEEPER_CONF_DIR/zoo.cfg
55}
56
57# init_zookeeper() - Initialize databases, etc.
58function init_zookeeper {
59 # clean up from previous (possibly aborted) runs
60 # create required data files
61 sudo rm -rf $ZOOKEEPER_DATA_DIR
62 sudo mkdir -p $ZOOKEEPER_DATA_DIR
63}
64
65# install_zookeeper() - Collect source and prepare
66function install_zookeeper {
67 install_package zookeeperd
68}
69
70# start_zookeeper() - Start running processes, including screen
71function start_zookeeper {
Jordan Pittier04e73e12015-11-10 18:58:11 +010072 # Starting twice Zookeeper on Ubuntu exits with error code 1. See LP#1513741
73 # Match both systemd and sysvinit output
74 local running="(active \(running\)|start/running)"
75 if ! is_ubuntu || ! sudo /usr/sbin/service zookeeper status | egrep -q "$running"; then
76 start_service zookeeper
77 fi
Davanum Srinivas33a96ff2015-11-02 17:23:39 -050078}
79
80# stop_zookeeper() - Stop running processes (non-screen)
81function stop_zookeeper {
82 stop_service zookeeper
83}
84
85# Restore xtrace
86$XTRACE
87
88# Tell emacs to use shell-script-mode
89## Local variables:
90## mode: shell-script
91## End: