summaryrefslogtreecommitdiffstats
path: root/opendaylight/neon/neon-alpine/src/main/odlscripts/set_persistence.sh
diff options
context:
space:
mode:
Diffstat (limited to 'opendaylight/neon/neon-alpine/src/main/odlscripts/set_persistence.sh')
-rwxr-xr-xopendaylight/neon/neon-alpine/src/main/odlscripts/set_persistence.sh111
1 files changed, 111 insertions, 0 deletions
diff --git a/opendaylight/neon/neon-alpine/src/main/odlscripts/set_persistence.sh b/opendaylight/neon/neon-alpine/src/main/odlscripts/set_persistence.sh
new file mode 100755
index 00000000..15c22717
--- /dev/null
+++ b/opendaylight/neon/neon-alpine/src/main/odlscripts/set_persistence.sh
@@ -0,0 +1,111 @@
+#!/bin/bash
+#
+# Copyright (c) 2015 Brocade Communications Systems, Inc. and others. All rights reserved.
+#
+# This program and the accompanying materials are made available under the
+# terms of the Eclipse Public License v1.0 which accompanies this distribution,
+# and is available at http://www.eclipse.org/legal/epl-v10.html
+#
+
+
+function usage()
+{
+ # Print any error messages
+ test "$1" != "" && echo " ERROR: $1"
+
+ # Print standard usage help
+ cat << EOF
+ This script is used to enable or disable the config datastore
+ persistence. The default state is enabled. The user should
+ restart controller to apply changes. The script can be used
+ before starting controller for the first time.
+
+ Usage: $0 <on/off>
+
+EOF
+
+ exit 1
+}
+
+
+function end_banner
+{
+cat <<EOF
+################################################
+## NOTE: Manually restart controller to ##
+## apply configuration. ##
+################################################
+EOF
+}
+
+
+function get_cli_params
+{
+ # Check if params have been supplied
+ test $# -eq 0 && usage
+
+ # First param is on/off
+ SWITCH="$1"
+
+ # Verify we only have 1 param
+ test $# -ne 1 && usage "Too many parameters"
+}
+
+
+function modify_conf_file
+{
+ if [ "${SWITCH}" == "off" ]; then
+ echo "disabling config datastore persistence"
+ sed -i -e "s/^#persistent=true/persistent=false/" ${CLUSTERCONF}
+ elif [ "${SWITCH}" == "on" ]; then
+ echo "enabling config datastore persistence"
+ sed -i -e "s/^persistent=false/#persistent=true/" ${CLUSTERCONF}
+ else
+ usage "Allowed values are on/off"
+ fi
+}
+
+
+function verify_configuration_file
+{
+ # Constants
+ BIN_DIR=`dirname $0`
+ test ${BIN_DIR} == '.' && BIN_DIR=${PWD}
+ CONTROLLER_DIR=`dirname ${BIN_DIR}`
+ CONF_DIR=${CONTROLLER_DIR}/etc
+ CLUSTERCONF=${CONF_DIR}/org.opendaylight.controller.cluster.datastore.cfg
+
+ # Verify configuration files are present in expected location.
+ if [ ! -f ${CLUSTERCONF} ]; then
+ # Check if the configuration files exist in the system
+ # directory, then copy them over.
+ ORIG_CONF_DIR=${CONTROLLER_DIR}/system/org/opendaylight/controller/sal-clustering-config
+ version=$(sed -n -e 's/.*<version>\(.*\)<\/version>/\1/p' ${ORIG_CONF_DIR}/maven-metadata-local.xml)
+ ORIG_CONF_DIR=${ORIG_CONF_DIR}/${version}
+ ORIG_CLUSTER_CONF=sal-clustering-config-${version}-datastore.cfg
+
+ if [ -f ${ORIG_CONF_DIR}/${ORIG_CLUSTER_CONF} ]; then
+ cat <<EOF
+ NOTE: Cluster configuration file not found. Copying from
+ ${ORIG_CONF_DIR}
+EOF
+ cp ${ORIG_CONF_DIR}/${ORIG_CLUSTER_CONF} ${CLUSTERCONF}
+
+ else
+ usage "Cluster configuration file not found"
+ fi
+ fi
+}
+
+function main
+{
+ get_cli_params "$@"
+ verify_configuration_file
+ modify_conf_file
+ end_banner
+}
+
+main "$@"
+
+# vim: ts=4 sw=4 sts=4 et ft=sh :
+