summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--packages/docker/src/main/docker/docker-install.sh1346
1 files changed, 667 insertions, 679 deletions
diff --git a/packages/docker/src/main/docker/docker-install.sh b/packages/docker/src/main/docker/docker-install.sh
index 824735ca..dfef59f3 100644
--- a/packages/docker/src/main/docker/docker-install.sh
+++ b/packages/docker/src/main/docker/docker-install.sh
@@ -4,14 +4,14 @@
# ============LICENSE_START=======================================================
# Installation Package
# ================================================================================
-# Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+# Copyright (C) 2017-2020 AT&T Intellectual Property. All rights reserved.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
-#
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -20,560 +20,552 @@
# ============LICENSE_END=========================================================
###
-
function JAVA_HOME() {
- if [[ $DEBUG == y ]]; then
- echo "-- ${FUNCNAME[0]} $@ --"
- set -x
- fi
-
- if [[ -z ${JAVA_HOME} ]]; then
- echo "error: aborting installation: JAVA_HOME variable must be present in base.conf"
- exit 1;
- fi
-
- echo "JAVA_HOME is ${JAVA_HOME}"
+ if [[ $DEBUG == y ]]; then
+ echo "-- ${FUNCNAME[0]} $@ --"
+ set -x
+ fi
+
+ if [[ -z ${JAVA_HOME} ]]; then
+ echo "error: aborting installation: JAVA_HOME variable must be present in base.conf"
+ exit 1
+ fi
+
+ echo "JAVA_HOME is ${JAVA_HOME}"
}
function POLICY_HOME() {
- if [[ $DEBUG == y ]]; then
- echo "-- ${FUNCNAME[0]} $@ --"
- set -x
- fi
-
- local POLICY_HOME_ABS
-
- if [[ -z ${POLICY_HOME} ]]; then
- echo "error: aborting installation: the installation directory POLICY_HOME must be set"
- exit 1
- fi
-
- POLICY_HOME_ABS=$(readlink -f "${POLICY_HOME}")
- if [[ -n ${POLICY_HOME_ABS} ]]; then
- export POLICY_HOME=${POLICY_HOME_ABS}
- fi
-
- echo "POLICY_HOME is ${POLICY_HOME}"
-
- # Do not allow installations from within POLICY_HOME dir or sub-dirs
- if [[ "$(pwd)/" == ${POLICY_HOME}/* ]]; then
- echo "error: aborting installation: cannot be executed from '${POLICY_HOME}' or sub-directories. "
- exit 1
- fi
+ if [[ $DEBUG == y ]]; then
+ echo "-- ${FUNCNAME[0]} $@ --"
+ set -x
+ fi
+
+ local POLICY_HOME_ABS
+
+ if [[ -z ${POLICY_HOME} ]]; then
+ echo "error: aborting installation: the installation directory POLICY_HOME must be set"
+ exit 1
+ fi
+
+ POLICY_HOME_ABS=$(readlink -f "${POLICY_HOME}")
+ if [[ -n ${POLICY_HOME_ABS} ]]; then
+ export POLICY_HOME=${POLICY_HOME_ABS}
+ fi
+
+ echo "POLICY_HOME is ${POLICY_HOME}"
+
+ # Do not allow installations from within POLICY_HOME dir or sub-dirs
+ if [[ "$(pwd)/" == ${POLICY_HOME}/* ]]; then
+ echo "error: aborting installation: cannot be executed from '${POLICY_HOME}' or sub-directories. "
+ exit 1
+ fi
}
function process_configuration() {
- if [[ $DEBUG == y ]]; then
- echo "-- ${FUNCNAME[0]} $@ --"
- set -x
- fi
-
- local CONF_FILE name value
-
- CONF_FILE=$1
- while read line || [ -n "${line}" ]; do
+ if [[ $DEBUG == y ]]; then
+ echo "-- ${FUNCNAME[0]} $@ --"
+ set -x
+ fi
+
+ local CONF_FILE name value
+
+ CONF_FILE=$1
+ while read line || [ -n "${line}" ]; do
if [[ -n ${line} ]] && [[ ${line} != *#* ]]; then
- name=$(echo "${line%%=*}")
- value=$(echo "${line#*=}")
- # escape ampersand so that sed does not replace it with the search string
+ name=$(echo "${line%%=*}")
+ value=$(echo "${line#*=}")
+ # escape ampersand so that sed does not replace it with the search string
value=${value//&/\\&}
- if [[ -z ${name} ]] || [[ -z $value ]]; then
- echo "WARNING: ${line} missing name or value"
- fi
- export ${name}="${value}"
- eval "${name}" "${value}" 2> /dev/null
+ if [[ -z ${name} ]] || [[ -z $value ]]; then
+ echo "WARNING: ${line} missing name or value"
+ fi
+ export ${name}="${value}"
+ eval "${name}" "${value}" 2>/dev/null
fi
- done < "${CONF_FILE}"
- return 0
+ done <"${CONF_FILE}"
+ return 0
}
function component_preinstall() {
- if [[ $DEBUG == y ]]; then
- echo "-- ${FUNCNAME[0]} $@ --"
- set -x
- fi
-
- /bin/sed -i -e 's!${{POLICY_HOME}}!'"${POLICY_HOME}!g" \
- -e 's!${{FQDN}}!'"${FQDN}!g" \
- *.conf > /dev/null 2>&1
+ if [[ $DEBUG == y ]]; then
+ echo "-- ${FUNCNAME[0]} $@ --"
+ set -x
+ fi
+
+ /bin/sed -i -e 's!${{POLICY_HOME}}!'"${POLICY_HOME}!g" \
+ -e 's!${{FQDN}}!'"${FQDN}!g" \
+ *.conf >/dev/null 2>&1
}
function configure_component() {
- if [[ $DEBUG == y ]]; then
- echo "-- ${FUNCNAME[0]} $@ --"
- set -x
- fi
-
- local CONF_FILE COMPONENT_ROOT_DIR SED_LINE SED_FILES name value
-
- CONF_FILE=$1
- COMPONENT_ROOT_DIR=$2
-
- SED_LINE="sed -i"
- SED_LINE+=" -e 's!\${{POLICY_HOME}}!${POLICY_HOME}!g' "
- SED_LINE+=" -e 's!\${{POLICY_USER}}!${POLICY_USER}!g' "
- SED_LINE+=" -e 's!\${{POLICY_GROUP}}!${POLICY_GROUP}!g' "
- SED_LINE+=" -e 's!\${{KEYSTORE_PASSWD}}!${KEYSTORE_PASSWD}!g' "
- SED_LINE+=" -e 's!\${{TRUSTSTORE_PASSWD}}!${TRUSTSTORE_PASSWD}!g' "
- SED_LINE+=" -e 's!\${{JAVA_HOME}}!${JAVA_HOME}!g' "
-
- while read line || [ -n "${line}" ]; do
- if [[ -n ${line} ]] && [[ ${line:0:1} != \# ]]; then
- name=$(echo "${line%%=*}")
- value=$(echo "${line#*=}")
- # escape ampersand so that sed does not replace it with the search string
- value=$(echo "${value}" | sed -e 's/[\/&]/\\&/g')
- if [[ -z ${name} ]] || [[ -z ${value} ]]; then
- echo "WARNING: ${line} missing name or value"
- fi
- SED_LINE+=" -e 's/\${{${name}}}/${value}/g' "
+ if [[ $DEBUG == y ]]; then
+ echo "-- ${FUNCNAME[0]} $@ --"
+ set -x
+ fi
+
+ local CONF_FILE COMPONENT_ROOT_DIR SED_LINE SED_FILES name value
+
+ CONF_FILE=$1
+ COMPONENT_ROOT_DIR=$2
+
+ SED_LINE="sed -i"
+ SED_LINE+=" -e 's!\${{POLICY_HOME}}!${POLICY_HOME}!g' "
+ SED_LINE+=" -e 's!\${{POLICY_USER}}!${POLICY_USER}!g' "
+ SED_LINE+=" -e 's!\${{POLICY_GROUP}}!${POLICY_GROUP}!g' "
+ SED_LINE+=" -e 's!\${{KEYSTORE_PASSWD}}!${KEYSTORE_PASSWD}!g' "
+ SED_LINE+=" -e 's!\${{TRUSTSTORE_PASSWD}}!${TRUSTSTORE_PASSWD}!g' "
+ SED_LINE+=" -e 's!\${{JAVA_HOME}}!${JAVA_HOME}!g' "
+
+ while read line || [ -n "${line}" ]; do
+ if [[ -n ${line} ]] && [[ ${line:0:1} != \# ]]; then
+ name=$(echo "${line%%=*}")
+ value=$(echo "${line#*=}")
+ # escape ampersand so that sed does not replace it with the search string
+ value=$(echo "${value}" | sed -e 's/[\/&]/\\&/g')
+ if [[ -z ${name} ]] || [[ -z ${value} ]]; then
+ echo "WARNING: ${line} missing name or value"
+ fi
+ SED_LINE+=" -e 's/\${{${name}}}/${value}/g' "
+ fi
+ done <"$CONF_FILE"
+
+ SED_FILES=""
+ for sed_file in $(find "${COMPONENT_ROOT_DIR}" -type f -exec grep -Iq . {} \; -print 2>/dev/null); do
+ if fgrep -l '${{' ${sed_file} >/dev/null 2>&1; then
+ SED_FILES+="${sed_file} "
fi
- done < "$CONF_FILE"
-
- SED_FILES=""
- for sed_file in $(find "${COMPONENT_ROOT_DIR}" -type f -exec grep -Iq . {} \; -print 2> /dev/null); do
- if fgrep -l '${{' ${sed_file} > /dev/null 2>&1; then
- SED_FILES+="${sed_file} "
- fi
- done
-
- if [[ -z ${SED_FILES} ]]; then
- echo "WARNING: no files to perform variable expansion"
- else
- SED_LINE+=${SED_FILES}
- eval "${SED_LINE}"
- fi
+ done
+
+ if [[ -z ${SED_FILES} ]]; then
+ echo "WARNING: no files to perform variable expansion"
+ else
+ SED_LINE+=${SED_FILES}
+ eval "${SED_LINE}"
+ fi
}
function configure_settings() {
- if [[ $DEBUG == y ]]; then
- echo "-- ${FUNCNAME[0]} $@ --"
- set -x
- fi
-
- # The goal is to have repositories for both 'release' and 'snapshot'
- # artifacts. These may either be remote (e.g. Nexus) repositories, or
- # a local file-based repository.
- local fileRepoID=file-repository
- local fileRepoUrl=file:$HOME_M2/file-repository
- mkdir -p "${fileRepoUrl#file:}"
-
- # The following parameters are also used outside of this function.
- # if SNAPSHOT_REPOSITORY_URL and/or RELEASE_REPOSITORY_URL is defined,
- # the corresponding ID and url will be updated below
- releaseRepoID=${fileRepoID}
- releaseRepoUrl=${fileRepoUrl}
- snapshotRepoID=${fileRepoID}
- snapshotRepoUrl=${fileRepoUrl}
-
- # if both SNAPSHOT_REPOSITORY_URL and RELEASE_REPOSITORY_URL are null,
- # use standalone-settings.xml that just defines the file-based repo.
- # if only one of them is specified, use file-based repo for the other.
-
- ${POLICY_HOME}/bin/configure-maven
-
- if [[ -n "${SNAPSHOT_REPOSITORY_URL}" ]] ; then
- snapshotRepoID=${SNAPSHOT_REPOSITORY_ID}
- snapshotRepoUrl=${SNAPSHOT_REPOSITORY_URL}
- fi
-
- if [[ -n "${RELEASE_REPOSITORY_URL}" ]] ; then
- releaseRepoID=${RELEASE_REPOSITORY_ID}
- releaseRepoUrl=${RELEASE_REPOSITORY_URL}
- fi
+ if [[ $DEBUG == y ]]; then
+ echo "-- ${FUNCNAME[0]} $@ --"
+ set -x
+ fi
+
+ # The goal is to have repositories for both 'release' and 'snapshot'
+ # artifacts. These may either be remote (e.g. Nexus) repositories, or
+ # a local file-based repository.
+ local fileRepoID=file-repository
+ local fileRepoUrl=file:$HOME_M2/file-repository
+ mkdir -p "${fileRepoUrl#file:}"
+
+ # The following parameters are also used outside of this function.
+ # if SNAPSHOT_REPOSITORY_URL and/or RELEASE_REPOSITORY_URL is defined,
+ # the corresponding ID and url will be updated below
+ releaseRepoID=${fileRepoID}
+ releaseRepoUrl=${fileRepoUrl}
+ snapshotRepoID=${fileRepoID}
+ snapshotRepoUrl=${fileRepoUrl}
+
+ # if both SNAPSHOT_REPOSITORY_URL and RELEASE_REPOSITORY_URL are null,
+ # use standalone-settings.xml that just defines the file-based repo.
+ # if only one of them is specified, use file-based repo for the other.
+
+ ${POLICY_HOME}/bin/configure-maven
+
+ if [[ -n "${SNAPSHOT_REPOSITORY_URL}" ]]; then
+ snapshotRepoID=${SNAPSHOT_REPOSITORY_ID}
+ snapshotRepoUrl=${SNAPSHOT_REPOSITORY_URL}
+ fi
+
+ if [[ -n "${RELEASE_REPOSITORY_URL}" ]]; then
+ releaseRepoID=${RELEASE_REPOSITORY_ID}
+ releaseRepoUrl=${RELEASE_REPOSITORY_URL}
+ fi
}
function configure_keystore() {
- if [[ $DEBUG == y ]]; then
- echo "-- ${FUNCNAME[0]} $@ --"
- set -x
- fi
+ if [[ $DEBUG == y ]]; then
+ echo "-- ${FUNCNAME[0]} $@ --"
+ set -x
+ fi
local DEFAULT_TRUSTSTORE_PASSWORD='Pol1cy_0nap'
local DEFAULT_KEYSTORE_PASSWORD='Pol1cy_0nap'
- if [[ -n ${TRUSTSTORE_PASSWD} ]]; then
- keytool -storepasswd -storepass "${DEFAULT_TRUSTSTORE_PASSWORD}" -keystore "${POLICY_HOME}/etc/ssl/policy-truststore" -new "${TRUSTSTORE_PASSWD}"
- fi
+ if [[ -n ${TRUSTSTORE_PASSWD} ]]; then
+ keytool -storepasswd -storepass "${DEFAULT_TRUSTSTORE_PASSWORD}" -keystore "${POLICY_HOME}/etc/ssl/policy-truststore" -new "${TRUSTSTORE_PASSWD}"
+ fi
- if [[ -n ${KEYSTORE_PASSWD} ]]; then
- keytool -storepasswd -storepass "${DEFAULT_KEYSTORE_PASSWORD}" -keystore "${POLICY_HOME}/etc/ssl/policy-keystore" -new "${KEYSTORE_PASSWD}"
- fi
+ if [[ -n ${KEYSTORE_PASSWD} ]]; then
+ keytool -storepasswd -storepass "${DEFAULT_KEYSTORE_PASSWORD}" -keystore "${POLICY_HOME}/etc/ssl/policy-keystore" -new "${KEYSTORE_PASSWD}"
+ fi
}
-
function check_r_file() {
- if [[ $DEBUG == y ]]; then
- echo "-- ${FUNCNAME[0]} $@ --"
- set -x
- fi
+ if [[ $DEBUG == y ]]; then
+ echo "-- ${FUNCNAME[0]} $@ --"
+ set -x
+ fi
- FILE=$1
- if [[ ! -f ${FILE} || ! -r ${FILE} ]]; then
+ FILE=$1
+ if [[ ! -f ${FILE} || ! -r ${FILE} ]]; then
return 1
- fi
+ fi
- return 0
+ return 0
}
-function check_x_file() {
- if [[ $DEBUG == y ]]; then
- echo "-- ${FUNCNAME[0]} $@ --"
- set -x
- fi
+function check_x_file() {
+ if [[ $DEBUG == y ]]; then
+ echo "-- ${FUNCNAME[0]} $@ --"
+ set -x
+ fi
- FILE=$1
- if [[ ! -f ${FILE} || ! -x ${FILE} ]]; then
+ FILE=$1
+ if [[ ! -f ${FILE} || ! -x ${FILE} ]]; then
return 1
- fi
+ fi
- return 0
+ return 0
}
function install_prereqs() {
- if [[ $DEBUG == y ]]; then
- echo "-- ${FUNCNAME[0]} $@ --"
- set -x
- fi
-
- local CONF_FILE HOME_OWNER
-
- CONF_FILE=$1
-
- if ! check_r_file "${CONF_FILE}"; then
- echo "error: aborting ${COMPONENT_TYPE} installation: ${CONF_FILE} is not accessible"
- exit 1
- fi
-
- if ! process_configuration "${CONF_FILE}"; then
- echo "error: aborting ${COMPONENT_TYPE} installation: cannot process configuration ${CONF_FILE}"
- exit 1
- fi
-
- if [[ -z ${POLICY_HOME} ]]; then
- echo "error: aborting ${COMPONENT_TYPE} installation: ${POLICY_HOME} is not set"
- exit 1
- fi
-
- HOME_OWNER=$(ls -ld "${POLICY_HOME}" | awk '{print $3}')
- if [[ ${HOME_OWNER} != ${POLICY_USER} ]]; then
- echo "error: aborting ${COMPONENT_TYPE} installation: ${POLICY_USER} does not own ${POLICY_HOME} directory"
- exit 1
- fi
-
- echo -n "Starting ${OPERATION} of ${COMPONENT_TYPE} under ${POLICY_USER}:${POLICY_GROUP} "
- echo "ownership with umask $(umask)."
+ if [[ $DEBUG == y ]]; then
+ echo "-- ${FUNCNAME[0]} $@ --"
+ set -x
+ fi
+
+ local CONF_FILE HOME_OWNER
+
+ CONF_FILE=$1
+
+ if ! check_r_file "${CONF_FILE}"; then
+ echo "error: aborting ${COMPONENT_TYPE} installation: ${CONF_FILE} is not accessible"
+ exit 1
+ fi
+
+ if ! process_configuration "${CONF_FILE}"; then
+ echo "error: aborting ${COMPONENT_TYPE} installation: cannot process configuration ${CONF_FILE}"
+ exit 1
+ fi
+
+ if [[ -z ${POLICY_HOME} ]]; then
+ echo "error: aborting ${COMPONENT_TYPE} installation: ${POLICY_HOME} is not set"
+ exit 1
+ fi
+
+ HOME_OWNER=$(ls -ld "${POLICY_HOME}" | awk '{print $3}')
+ if [[ ${HOME_OWNER} != ${POLICY_USER} ]]; then
+ echo "error: aborting ${COMPONENT_TYPE} installation: ${POLICY_USER} does not own ${POLICY_HOME} directory"
+ exit 1
+ fi
+
+ echo -n "Starting ${OPERATION} of ${COMPONENT_TYPE} under ${POLICY_USER}:${POLICY_GROUP} "
+ echo "ownership with umask $(umask)."
}
function configure_base() {
- if [[ $DEBUG == y ]]; then
- echo "-- ${FUNCNAME[0]} $@ --"
- set -x
- fi
-
- local BASH_PROFILE_LINE PROFILE_LINE
-
- # check if fqdn is set in base.conf and use that value if set
- if [[ -z ${INSTALL_FQDN} ]]
- then
- echo "FQDN not set in config...using the default FQDN ${FQDN}"
- else
- echo "Using FQDN ${INSTALL_FQDN} from config"
- FQDN=${INSTALL_FQDN}
- fi
-
- configure_component "${BASE_CONF}" "${POLICY_HOME}"
-
- configure_settings
- configure_keystore
-
- BASH_PROFILE_LINE=". ${POLICY_HOME}/etc/profile.d/env.sh"
- PROFILE_LINE="ps -p \$\$ | grep -q bash || . ${POLICY_HOME}/etc/profile.d/env.sh"
-
- # Note: adding to .bashrc instead of .bash_profile
- if ! fgrep -x "${BASH_PROFILE_LINE}" "${HOME}/.bashrc" >/dev/null 2>&1; then
- echo "${BASH_PROFILE_LINE}" >> "${HOME}/.bashrc"
- fi
-
- if ! fgrep -x "${PROFILE_LINE}" "${HOME}/.profile" >/dev/null 2>&1; then
- echo "${PROFILE_LINE}" >> "${HOME}/.profile"
- fi
-
- source "${POLICY_HOME}/etc/profile.d/env.sh"
-
- cat "${POLICY_HOME}"/etc/cron.d/* | crontab
+ if [[ $DEBUG == y ]]; then
+ echo "-- ${FUNCNAME[0]} $@ --"
+ set -x
+ fi
+
+ local BASH_PROFILE_LINE PROFILE_LINE
+
+ # check if fqdn is set in base.conf and use that value if set
+ if [[ -z ${INSTALL_FQDN} ]]; then
+ echo "FQDN not set in config...using the default FQDN ${FQDN}"
+ else
+ echo "Using FQDN ${INSTALL_FQDN} from config"
+ FQDN=${INSTALL_FQDN}
+ fi
+
+ configure_component "${BASE_CONF}" "${POLICY_HOME}"
+
+ configure_settings
+ configure_keystore
+
+ BASH_PROFILE_LINE=". ${POLICY_HOME}/etc/profile.d/env.sh"
+ PROFILE_LINE="ps -p \$\$ | grep -q bash || . ${POLICY_HOME}/etc/profile.d/env.sh"
+
+ # Note: adding to .bashrc instead of .bash_profile
+ if ! fgrep -x "${BASH_PROFILE_LINE}" "${HOME}/.bashrc" >/dev/null 2>&1; then
+ echo "${BASH_PROFILE_LINE}" >>"${HOME}/.bashrc"
+ fi
+
+ if ! fgrep -x "${PROFILE_LINE}" "${HOME}/.profile" >/dev/null 2>&1; then
+ echo "${PROFILE_LINE}" >>"${HOME}/.profile"
+ fi
+
+ source "${POLICY_HOME}/etc/profile.d/env.sh"
+
+ cat "${POLICY_HOME}"/etc/cron.d/* | crontab
}
function install_base() {
- if [[ $DEBUG == y ]]; then
- echo "-- ${FUNCNAME[0]} $@ --"
- set -x
- fi
-
- local POLICY_HOME_CONTENTS BASE_TGZ BASEX_TGZ BASH_PROFILE_LINE
-
- install_prereqs "${BASE_CONF}"
-
- # following properties must be set:
- # POLICY_HOME - installation directory, must exist and be writable
-
- # test that all required properties are set
- for var in POLICY_HOME JAVA_HOME
- do
- if [[ -z $(eval echo \$$var) ]]; then
- echo "ERROR: $var must be set in $BASE_CONF"
- exit 1
- fi
- done
-
- /bin/mkdir -p "${POLICY_HOME}/logs/" > /dev/null 2>&1
-
- if [[ ! ( -d "$POLICY_HOME" && -w "$POLICY_HOME" ) ]]; then
- echo "ERROR: Installation directory $POLICY_HOME does not exist or not writable"
- exit 1
- fi
-
- if [[ -z ${POLICY_DOCKER} ]]; then
- if ! /bin/rm -fr "${POLICY_HOME}"/* > /dev/null 2>&1; then
- echo "error: aborting base installation: cannot delete the underlying ${POLICY_HOME} files"
- exit 1
- fi
-
- POLICY_HOME_CONTENTS=$(ls -A "${POLICY_HOME}" 2> /dev/null)
- if [[ -n ${POLICY_HOME_CONTENTS} ]]; then
- echo "error: aborting base installation: ${POLICY_HOME} directory is not empty"
- exit 1
- fi
-
- if [[ -n ${POLICY_LOGS} ]]; then
- if ! /bin/mkdir -p "${POLICY_LOGS}" > /dev/null 2>&1; then
- echo "error: aborting base installation: cannot create ${POLICY_LOGS}"
- exit 1
- fi
- fi
- fi
-
- BASE_TGZ=$(ls base-*.tar.gz)
- if [ ! -r ${BASE_TGZ} ]; then
- echo "error: aborting: base package is not accessible"
- exit 1
- fi
-
- tar -tzf ${BASE_TGZ} > /dev/null 2>&1
- if [[ $? != 0 ]]; then
- echo >&2 "error: aborting installation: invalid base package file: ${BASE_TGZ}"
- exit 1
- fi
-
- BASEX_TGZ=$(ls basex-*.tar.gz 2> /dev/null)
- if [ -z ${BASEX_TGZ} ]; then
- echo "warning: no basex application package present"
- BASEX_TGZ=
- else
- tar -tzf ${BASEX_TGZ} > /dev/null 2>&1
- if [[ $? != 0 ]]; then
- echo >&2 "warning: invalid basex application package tar file: ${BASEX_TGZ}"
- BASEX_TGZ=
- fi
- fi
-
- # Undo any changes in the $HOME directory if any
-
- BASH_PROFILE_LINE=". ${POLICY_HOME}/etc/profile.d/env.sh"
-
- # Note: using .bashrc instead of .bash_profile
- if [[ -f ${HOME}/.bashrc ]]; then
- /bin/sed -i "\:${BASH_PROFILE_LINE}:d" "${HOME}/.bashrc"
- fi
-
- tar -C ${POLICY_HOME} -xf ${BASE_TGZ} --no-same-owner
- if [[ $? != 0 ]]; then
- # this should not happened
- echo "error: aborting base installation: base package cannot be unpacked: ${BASE_TGZ}"
- exit 1
- fi
-
- if [ ! -z ${BASEX_TGZ} ]; then
- tar -C ${POLICY_HOME} -xf ${BASEX_TGZ} --no-same-owner
- if [[ $? != 0 ]]; then
- # this should not happened
- echo "warning: basex package cannot be unpacked: ${BASEX_TGZ}"
- fi
- fi
-
- if [[ -d $HOME_M2 ]]; then
- echo "Renaming existing $HOME_M2 to $HOME/m2.$TIMESTAMP"
- mv $HOME_M2 $HOME/m2.$TIMESTAMP
- if [[ $? != 0 ]]; then
- echo "WARNING: Failed to rename $HOME_M2 directory; will use old directory"
- fi
- fi
-
- mkdir -p ${HOME_M2}
- if [[ $? != 0 ]]; then
- echo "ERROR: Cannot create ${HOME_M2} directory"
- exit 1
- fi
+ if [[ $DEBUG == y ]]; then
+ echo "-- ${FUNCNAME[0]} $@ --"
+ set -x
+ fi
+
+ local POLICY_HOME_CONTENTS BASE_TGZ BASEX_TGZ BASH_PROFILE_LINE
+
+ install_prereqs "${BASE_CONF}"
+
+ # following properties must be set:
+ # POLICY_HOME - installation directory, must exist and be writable
+
+ # test that all required properties are set
+ for var in POLICY_HOME JAVA_HOME; do
+ if [[ -z $(eval echo \$$var) ]]; then
+ echo "ERROR: $var must be set in $BASE_CONF"
+ exit 1
+ fi
+ done
+
+ /bin/mkdir -p "${POLICY_HOME}/logs/" >/dev/null 2>&1
+
+ if [[ ! (-d "$POLICY_HOME" && -w "$POLICY_HOME") ]]; then
+ echo "ERROR: Installation directory $POLICY_HOME does not exist or not writable"
+ exit 1
+ fi
+
+ if [[ -z ${POLICY_DOCKER} ]]; then
+ if ! /bin/rm -fr "${POLICY_HOME}"/* >/dev/null 2>&1; then
+ echo "error: aborting base installation: cannot delete the underlying ${POLICY_HOME} files"
+ exit 1
+ fi
+
+ POLICY_HOME_CONTENTS=$(ls -A "${POLICY_HOME}" 2>/dev/null)
+ if [[ -n ${POLICY_HOME_CONTENTS} ]]; then
+ echo "error: aborting base installation: ${POLICY_HOME} directory is not empty"
+ exit 1
+ fi
+
+ if [[ -n ${POLICY_LOGS} ]]; then
+ if ! /bin/mkdir -p "${POLICY_LOGS}" >/dev/null 2>&1; then
+ echo "error: aborting base installation: cannot create ${POLICY_LOGS}"
+ exit 1
+ fi
+ fi
+ fi
+
+ BASE_TGZ=$(ls base-*.tar.gz)
+ if [ ! -r ${BASE_TGZ} ]; then
+ echo "error: aborting: base package is not accessible"
+ exit 1
+ fi
+
+ tar -tzf ${BASE_TGZ} >/dev/null 2>&1
+ if [[ $? != 0 ]]; then
+ echo >&2 "error: aborting installation: invalid base package file: ${BASE_TGZ}"
+ exit 1
+ fi
+
+ BASEX_TGZ=$(ls basex-*.tar.gz 2>/dev/null)
+ if [ -z ${BASEX_TGZ} ]; then
+ echo "warning: no basex application package present"
+ BASEX_TGZ=
+ else
+ tar -tzf ${BASEX_TGZ} >/dev/null 2>&1
+ if [[ $? != 0 ]]; then
+ echo >&2 "warning: invalid basex application package tar file: ${BASEX_TGZ}"
+ BASEX_TGZ=
+ fi
+ fi
+
+ # Undo any changes in the $HOME directory if any
+
+ BASH_PROFILE_LINE=". ${POLICY_HOME}/etc/profile.d/env.sh"
+
+ # Note: using .bashrc instead of .bash_profile
+ if [[ -f ${HOME}/.bashrc ]]; then
+ /bin/sed -i "\:${BASH_PROFILE_LINE}:d" "${HOME}/.bashrc"
+ fi
+
+ tar -C ${POLICY_HOME} -xf ${BASE_TGZ} --no-same-owner
+ if [[ $? != 0 ]]; then
+ # this should not happened
+ echo "error: aborting base installation: base package cannot be unpacked: ${BASE_TGZ}"
+ exit 1
+ fi
+
+ if [ ! -z ${BASEX_TGZ} ]; then
+ tar -C ${POLICY_HOME} -xf ${BASEX_TGZ} --no-same-owner
+ if [[ $? != 0 ]]; then
+ # this should not happened
+ echo "warning: basex package cannot be unpacked: ${BASEX_TGZ}"
+ fi
+ fi
+
+ if [[ -d $HOME_M2 ]]; then
+ echo "Renaming existing $HOME_M2 to $HOME/m2.$TIMESTAMP"
+ mv $HOME_M2 $HOME/m2.$TIMESTAMP
+ if [[ $? != 0 ]]; then
+ echo "WARNING: Failed to rename $HOME_M2 directory; will use old directory"
+ fi
+ fi
+
+ mkdir -p ${HOME_M2}
+ if [[ $? != 0 ]]; then
+ echo "ERROR: Cannot create ${HOME_M2} directory"
+ exit 1
+ fi
# base.conf properties may have characters with special meaning to bash,
# so wrap all the values in quotes in the profile.d version so it can
# be sourced into scripts that need the values. Also remove any blanks
# that may be present around the = sign.
- # save ${BASE_CONF} in PDP-D installation
- cp "${BASE_CONF}" "${POLICY_HOME}"/etc/profile.d
+ # save ${BASE_CONF} in PDP-D installation
+ cp "${BASE_CONF}" "${POLICY_HOME}"/etc/profile.d
sed -i -e "s/ *= */=/" -e "s/=\(.*$\)/='\1'/" ${POLICY_HOME}/etc/profile.d/base.conf
- configure_base
+ configure_base
}
-function install_controller()
-{
- if [[ $DEBUG == y ]]; then
- echo "-- ${FUNCNAME[0]} $@ --"
- set -x
- fi
-
- if [[ $DEBUG == y ]]; then
- echo "-- ${FUNCNAME[0]} $@ --"
- set -x
- fi
-
- if [[ -f "${HOME}/.bashrc" ]]; then
- source "${HOME}/.bashrc"
- fi
-
- if [[ -z ${POLICY_HOME} ]]; then
- echo "error: aborting installation: POLICY_HOME environment variable is not set."
- exit 1
- fi
-
- if ! check_r_file ${POLICY_HOME}/etc/profile.d/env.sh; then
- echo "error: aborting installation: ${POLICY_HOME}/etc/profile.d/env.sh is not accessible"
- exit 1
- fi
-
- local CONTROLLER_CONF CONTROLLER_ZIP RULES_JAR SOURCE_DIR CONTROLLER_DIR AAAA BBBB PORT UTOPIC ARTIFACT_VERSION
-
- CONTROLLER_CONF=$COMPONENT_TYPE.conf
- install_prereqs "${CONTROLLER_CONF}"
-
- # following properties must be set in conf file:
- # CONTROLLER_ARTIFACT_ID - Maven artifactId for controller
- # CONTROLLER_NAME - directory name for the controller; controller will be installed to
- # $POLICY_HOME/controllers/$CONTROLLER_NAME
- # CONTROLLER_PORT - port number for the controller REST interface
- # RULES_ARTIFACT - rules artifact specifier: groupId:artifactId:version
-
- # test that all required properties are set
- for var in CONTROLLER_ARTIFACT_ID CONTROLLER_NAME CONTROLLER_PORT RULES_ARTIFACT UEB_TOPIC
- do
- if [[ -z $(eval echo \$$var) ]]; then
- echo "ERROR: $var must be set in $CONTROLLER_CONF"
- exit 1
- fi
- done
-
- CONTROLLER_ZIP=$(ls $CONTROLLER_ARTIFACT_ID*.zip 2>&-)
- if [[ -z $CONTROLLER_ZIP ]]; then
- echo "ERROR: Cannot find controller zip file ($CONTROLLER_ARTIFACT_ID*.zip)"
- exit 1
- fi
-
- if [[ ! "$CONTROLLER_NAME" =~ ^[A-Za-z0-9_-]+$ ]]; then
- echo "ERROR: CONTROLLER_NAME may only contain alphanumeric, underscore, and dash characters"
- exit 1
- fi
-
- if [[ ! "$CONTROLLER_PORT" =~ ^[0-9]+$ ]]; then
- echo "ERROR: CONTROLLER_PORT is not a valid integer"
- exit 1
- fi
-
- # split artifact string into parts
- IFS=: read RULES_GROUPID RULES_ARTIFACTID RULES_VERSION <<<$RULES_ARTIFACT
- if [[ -z $RULES_GROUPID || -z $RULES_ARTIFACTID || -z $RULES_VERSION ]]; then
- echo "ERROR: Invalid setting for RULES_ARTIFACT property"
- exit 1
- fi
-
- #RULES_JAR=$RULES_ARTIFACTID-$RULES_VERSION.jar
- RULES_JAR=$(echo ${RULES_ARTIFACTID}-*.jar)
- if ! check_r_file $RULES_JAR; then
- echo "WARNING: Rules jar file $RULES_JAR not found in installer package, must be installed manually"
- RULES_JAR=
- fi
-
-
- SOURCE_DIR=$PWD
- CONTROLLER_DIR=$POLICY_HOME
-
- cd $CONTROLLER_DIR
-
- echo "Unpacking controller zip file"
- # use jar command in case unzip not present on system
- jar xf $SOURCE_DIR/$CONTROLLER_ZIP
- if [[ $? != 0 ]]; then
- echo "ERROR: unpack of controller zip file failed, install aborted"
- exit 1
- fi
-
- chmod +x bin/*
-
- # Perform base variable replacement in controller config file
- configure_component "${SOURCE_DIR}/${BASE_CONF}" "${CONTROLLER_DIR}"
-
- # Perform variable replacements in config files.
- # config files may contain the following strings that need to be replaced with
- # real values:
- # AAAA - artifactId
- # BBBB - Substring of AAAA after first dash (stripping initial "ncomp-" or "policy-")
- # PORT - Port number for REST server
-
- echo "Performing variable replacement in config files"
- AAAA=$CONTROLLER_ARTIFACT_ID
- BBBB=${AAAA#[a-z]*-}
- PORT=$CONTROLLER_PORT
- UTOPIC=${UEB_TOPIC}
-
- for file in config/*
- do
- sed -i -e "s/AAAA/$AAAA/" -e "s/BBBB/$BBBB/" -e "s/PORT/$PORT/" -e "s!\${{UEB_TOPIC}}!${UTOPIC}!" $file
- if [[ $? != 0 ]]; then
- echo "ERROR: variable replacement failed for file $file, install aborted"
- exit 1
- fi
- done
-
- # append properties for rules artifact to server properties
- cat >>config/server.properties <<EOF
+function install_controller() {
+ if [[ $DEBUG == y ]]; then
+ echo "-- ${FUNCNAME[0]} $@ --"
+ set -x
+ fi
+
+ if [[ $DEBUG == y ]]; then
+ echo "-- ${FUNCNAME[0]} $@ --"
+ set -x
+ fi
+
+ if [[ -f "${HOME}/.bashrc" ]]; then
+ source "${HOME}/.bashrc"
+ fi
+
+ if [[ -z ${POLICY_HOME} ]]; then
+ echo "error: aborting installation: POLICY_HOME environment variable is not set."
+ exit 1
+ fi
+
+ if ! check_r_file ${POLICY_HOME}/etc/profile.d/env.sh; then
+ echo "error: aborting installation: ${POLICY_HOME}/etc/profile.d/env.sh is not accessible"
+ exit 1
+ fi
+
+ local CONTROLLER_CONF CONTROLLER_ZIP RULES_JAR SOURCE_DIR CONTROLLER_DIR AAAA BBBB PORT UTOPIC ARTIFACT_VERSION
+
+ CONTROLLER_CONF=$COMPONENT_TYPE.conf
+ install_prereqs "${CONTROLLER_CONF}"
+
+ # following properties must be set in conf file:
+ # CONTROLLER_ARTIFACT_ID - Maven artifactId for controller
+ # CONTROLLER_NAME - directory name for the controller; controller will be installed to
+ # $POLICY_HOME/controllers/$CONTROLLER_NAME
+ # CONTROLLER_PORT - port number for the controller REST interface
+ # RULES_ARTIFACT - rules artifact specifier: groupId:artifactId:version
+
+ # test that all required properties are set
+ for var in CONTROLLER_ARTIFACT_ID CONTROLLER_NAME CONTROLLER_PORT RULES_ARTIFACT UEB_TOPIC; do
+ if [[ -z $(eval echo \$$var) ]]; then
+ echo "ERROR: $var must be set in $CONTROLLER_CONF"
+ exit 1
+ fi
+ done
+
+ CONTROLLER_ZIP=$(ls $CONTROLLER_ARTIFACT_ID*.zip 2>&-)
+ if [[ -z $CONTROLLER_ZIP ]]; then
+ echo "ERROR: Cannot find controller zip file ($CONTROLLER_ARTIFACT_ID*.zip)"
+ exit 1
+ fi
+
+ if [[ ! "$CONTROLLER_NAME" =~ ^[A-Za-z0-9_-]+$ ]]; then
+ echo "ERROR: CONTROLLER_NAME may only contain alphanumeric, underscore, and dash characters"
+ exit 1
+ fi
+
+ if [[ ! "$CONTROLLER_PORT" =~ ^[0-9]+$ ]]; then
+ echo "ERROR: CONTROLLER_PORT is not a valid integer"
+ exit 1
+ fi
+
+ # split artifact string into parts
+ IFS=: read RULES_GROUPID RULES_ARTIFACTID RULES_VERSION <<<$RULES_ARTIFACT
+ if [[ -z $RULES_GROUPID || -z $RULES_ARTIFACTID || -z $RULES_VERSION ]]; then
+ echo "ERROR: Invalid setting for RULES_ARTIFACT property"
+ exit 1
+ fi
+
+ #RULES_JAR=$RULES_ARTIFACTID-$RULES_VERSION.jar
+ RULES_JAR=$(echo ${RULES_ARTIFACTID}-*.jar)
+ if ! check_r_file $RULES_JAR; then
+ echo "WARNING: Rules jar file $RULES_JAR not found in installer package, must be installed manually"
+ RULES_JAR=
+ fi
+
+ SOURCE_DIR=$PWD
+ CONTROLLER_DIR=$POLICY_HOME
+
+ cd $CONTROLLER_DIR
+
+ echo "Unpacking controller zip file"
+ # use jar command in case unzip not present on system
+ jar xf $SOURCE_DIR/$CONTROLLER_ZIP
+ if [[ $? != 0 ]]; then
+ echo "ERROR: unpack of controller zip file failed, install aborted"
+ exit 1
+ fi
+
+ chmod +x bin/*
+
+ # Perform base variable replacement in controller config file
+ configure_component "${SOURCE_DIR}/${BASE_CONF}" "${CONTROLLER_DIR}"
+
+ # Perform variable replacements in config files.
+ # config files may contain the following strings that need to be replaced with
+ # real values:
+ # AAAA - artifactId
+ # BBBB - Substring of AAAA after first dash (stripping initial "ncomp-" or "policy-")
+ # PORT - Port number for REST server
+
+ echo "Performing variable replacement in config files"
+ AAAA=$CONTROLLER_ARTIFACT_ID
+ BBBB=${AAAA#[a-z]*-}
+ PORT=$CONTROLLER_PORT
+ UTOPIC=${UEB_TOPIC}
+
+ for file in config/*; do
+ sed -i -e "s/AAAA/$AAAA/" -e "s/BBBB/$BBBB/" -e "s/PORT/$PORT/" -e "s!\${{UEB_TOPIC}}!${UTOPIC}!" $file
+ if [[ $? != 0 ]]; then
+ echo "ERROR: variable replacement failed for file $file, install aborted"
+ exit 1
+ fi
+ done
+
+ # append properties for rules artifact to server properties
+ cat >>config/server.properties <<EOF
rules.groupId=$RULES_GROUPID
rules.artifactId=$RULES_ARTIFACTID
rules.version=$RULES_VERSION
EOF
- # TODO: run pw.sh script to set passwords
-
- # return to directory where we started
- cd $SOURCE_DIR
-
- # install rules jar into repository if present
- if [[ -n $RULES_JAR ]]; then
- # can't use RULES_VERSION because may be set to "LATEST",
- # so extract version from the jar filename
- ARTIFACT_VERSION=$(sed -e "s/${RULES_ARTIFACTID}-//" -e "s/\.jar//" <<<${RULES_JAR})
- if [[ -n $repositoryUrl ]]; then
- echo "Deploying rules artifact to Policy Repository"
- mvn deploy:deploy-file -Dfile=$RULES_JAR \
- -DgroupId=$RULES_GROUPID -DartifactId=$RULES_ARTIFACTID -Dversion=$ARTIFACT_VERSION \
- -DrepositoryId=${repositoryID} -Durl=${repositoryUrl} \
- -DgeneratePom=true -DupdateReleaseInfo=true
- else
- echo "Installing rules artifact into local .m2 repository"
- mvn --offline org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file \
- -Dfile=$RULES_JAR -DgeneratePom=true -DupdateReleaseInfo=true
- fi
- fi
+ # TODO: run pw.sh script to set passwords
+
+ # return to directory where we started
+ cd $SOURCE_DIR
+
+ # install rules jar into repository if present
+ if [[ -n $RULES_JAR ]]; then
+ # can't use RULES_VERSION because may be set to "LATEST",
+ # so extract version from the jar filename
+ ARTIFACT_VERSION=$(sed -e "s/${RULES_ARTIFACTID}-//" -e "s/\.jar//" <<<${RULES_JAR})
+ if [[ -n $repositoryUrl ]]; then
+ echo "Deploying rules artifact to Policy Repository"
+ mvn deploy:deploy-file -Dfile=$RULES_JAR \
+ -DgroupId=$RULES_GROUPID -DartifactId=$RULES_ARTIFACTID -Dversion=$ARTIFACT_VERSION \
+ -DrepositoryId=${repositoryID} -Durl=${repositoryUrl} \
+ -DgeneratePom=true -DupdateReleaseInfo=true
+ else
+ echo "Installing rules artifact into local .m2 repository"
+ mvn --offline org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file \
+ -Dfile=$RULES_JAR -DgeneratePom=true -DupdateReleaseInfo=true
+ fi
+ fi
}
# Usage: getPomAttributes <pom-file> <attribute> ...
@@ -582,74 +574,71 @@ EOF
# the specified attributes (e.g. 'groupId', 'artifactId', 'version'). The
# attributes are returned as environment variables with the associated name.
-function getPomAttributes
-{
- local tab=$'\t'
- local rval=0
- local file="$1"
- local attr
- local value
- shift
- for attr in "$@" ; do
- # Try to fetch the parameter associated with the 'pom.xml' file.
- # Initially, the 'parent' element is excluded. If the desired
- # parameter is not found, the 'parent' element is included in the
- # second attempt.
- value=$(sed -n \
- -e '/<parent>/,/<\/parent>/d' \
- -e '/<dependencies>/,/<\/dependencies>/d' \
- -e '/<build>/,/<\/build>/d' \
- -e "/^[ ${tab}]*<${attr}>\([^<]*\)<\/${attr}>.*/{s//\1/p;}" \
- <"${file}")
-
- if [[ "${value}" == "" ]] ; then
- # need to check parent for parameter
- value=$(sed -n \
- -e '/<dependencies>/,/<\/dependencies>/d' \
- -e '/<build>/,/<\/build>/d' \
- -e "/^[ ${tab}]*<${attr}>\([^<]*\)<\/${attr}>.*/{s//\1/p;}" \
- <"${file}")
- if [[ "${value}" == "" ]] ; then
- echo "${file}: Can't determine ${attr}" >&2
- rval=1
- fi
- fi
- # the following sets an environment variable with the name referred
- # to by ${attr}
- read ${attr} <<<"${value}"
- done
- return ${rval}
+function getPomAttributes() {
+ local tab=$'\t'
+ local rval=0
+ local file="$1"
+ local attr
+ local value
+ shift
+ for attr in "$@"; do
+ # Try to fetch the parameter associated with the 'pom.xml' file.
+ # Initially, the 'parent' element is excluded. If the desired
+ # parameter is not found, the 'parent' element is included in the
+ # second attempt.
+ value=$(sed -n \
+ -e '/<parent>/,/<\/parent>/d' \
+ -e '/<dependencies>/,/<\/dependencies>/d' \
+ -e '/<build>/,/<\/build>/d' \
+ -e "/^[ ${tab}]*<${attr}>\([^<]*\)<\/${attr}>.*/{s//\1/p;}" \
+ <"${file}")
+
+ if [[ "${value}" == "" ]]; then
+ # need to check parent for parameter
+ value=$(sed -n \
+ -e '/<dependencies>/,/<\/dependencies>/d' \
+ -e '/<build>/,/<\/build>/d' \
+ -e "/^[ ${tab}]*<${attr}>\([^<]*\)<\/${attr}>.*/{s//\1/p;}" \
+ <"${file}")
+ if [[ "${value}" == "" ]]; then
+ echo "${file}: Can't determine ${attr}" >&2
+ rval=1
+ fi
+ fi
+ # the following sets an environment variable with the name referred
+ # to by ${attr}
+ read ${attr} <<<"${value}"
+ done
+ return ${rval}
}
-
# Usage: installPom <pom-file>
#
# This function installs a 'pom.xml' file in the local repository
-function installPom
-{
- # need to extract attributes from POM file
- if getPomAttributes "${1}" artifactId groupId version ; then
- local repoID repoUrl
- if [[ "${version}" =~ SNAPSHOT ]] ; then
- repoID=${snapshotRepoID}
- repoUrl=${snapshotRepoUrl}
- else
- repoID=${releaseRepoID}
- repoUrl=${releaseRepoUrl}
- fi
- echo "${1}: Deploying POM artifact to remote repository"
- mvn deploy:deploy-file -Dfile="$1" \
- -Dpackaging=pom -DgeneratePom=false \
- -DgroupId=${groupId} \
- -DartifactId=${artifactId} \
- -Dversion=${version} \
- -DrepositoryId=${repoID} -Durl=${repoUrl} \
- -DupdateReleaseInfo=true
- else
- echo "${1}: Can't install pom due to missing attributes" >&2
- return 1
- fi
+function installPom() {
+ # need to extract attributes from POM file
+ if getPomAttributes "${1}" artifactId groupId version; then
+ local repoID repoUrl
+ if [[ "${version}" =~ SNAPSHOT ]]; then
+ repoID=${snapshotRepoID}
+ repoUrl=${snapshotRepoUrl}
+ else
+ repoID=${releaseRepoID}
+ repoUrl=${releaseRepoUrl}
+ fi
+ echo "${1}: Deploying POM artifact to remote repository"
+ mvn deploy:deploy-file -Dfile="$1" \
+ -Dpackaging=pom -DgeneratePom=false \
+ -DgroupId=${groupId} \
+ -DartifactId=${artifactId} \
+ -Dversion=${version} \
+ -DrepositoryId=${repoID} -Durl=${repoUrl} \
+ -DupdateReleaseInfo=true
+ else
+ echo "${1}: Can't install pom due to missing attributes" >&2
+ return 1
+ fi
}
# Usage: installJar <jar-file>
@@ -657,148 +646,147 @@ function installPom
# This function installs a JAR file in the local repository, as well as
# the 'pom.xml' member it contains.
-function installJar
-{
- local dir=$(mktemp -d)
- local jar="${1##*/}"
- cp -p "${1}" "${dir}/${jar}"
-
- (
- local rval=0
- cd "${dir}"
- # determine name of 'pom' file within JAR
- local pom=$(jar tf ${jar} META-INF | grep '/pom\.xml$' | head -1)
- if [[ "${pom}" ]] ; then
- # extract pom file
- jar xf ${jar} "${pom}"
-
- # determine version from pom file
- if getPomAttributes "${pom}" version ; then
- local repoID repoUrl
- if [[ "${version}" =~ SNAPSHOT ]] ; then
- repoID=${snapshotRepoID}
- repoUrl=${snapshotRepoUrl}
- else
- repoID=${releaseRepoID}
- repoUrl=${releaseRepoUrl}
- fi
- echo "${1}: Deploying JAR artifact to remote repository"
- mvn deploy:deploy-file \
- -Dfile=${jar} \
- -Dversion=${version} \
- -Dpackaging=jar -DgeneratePom=false -DpomFile=${pom} \
- -DrepositoryId=${repoID} -Durl=${repoUrl} \
- -DupdateReleaseInfo=true
- else
- echo "${1}: Can't determine version from 'pom.xml'" >&2
- rval=1
- fi
- else
- echo "${1}: Can't find 'pom.xml'" >&2
- rval=1
- fi
- rm -rf ${dir}
- return ${rval}
- )
+function installJar() {
+ local dir=$(mktemp -d)
+ local jar="${1##*/}"
+ cp -p "${1}" "${dir}/${jar}"
+
+ (
+ local rval=0
+ cd "${dir}"
+ # determine name of 'pom' file within JAR
+ local pom=$(jar tf ${jar} META-INF | grep '/pom\.xml$' | head -1)
+ if [[ "${pom}" ]]; then
+ # extract pom file
+ jar xf ${jar} "${pom}"
+
+ # determine version from pom file
+ if getPomAttributes "${pom}" version; then
+ local repoID repoUrl
+ if [[ "${version}" =~ SNAPSHOT ]]; then
+ repoID=${snapshotRepoID}
+ repoUrl=${snapshotRepoUrl}
+ else
+ repoID=${releaseRepoID}
+ repoUrl=${releaseRepoUrl}
+ fi
+ echo "${1}: Deploying JAR artifact to remote repository"
+ mvn deploy:deploy-file \
+ -Dfile=${jar} \
+ -Dversion=${version} \
+ -Dpackaging=jar -DgeneratePom=false -DpomFile=${pom} \
+ -DrepositoryId=${repoID} -Durl=${repoUrl} \
+ -DupdateReleaseInfo=true
+ else
+ echo "${1}: Can't determine version from 'pom.xml'" >&2
+ rval=1
+ fi
+ else
+ echo "${1}: Can't find 'pom.xml'" >&2
+ rval=1
+ fi
+ rm -rf ${dir}
+ return ${rval}
+ )
}
# Unzip the 'artifacts-*.zip' file, and install all of the associated
# artifacts into the local repository.
-function installArtifacts
-{
- local file
- if [[ -f $(echo artifacts-*.zip) ]] ; then
- # use jar command in case unzip not present on system
- jar xf artifacts-*.zip
- for file in artifacts/* ; do
- case "${file}" in
- *pom.xml|*.pom) installPom "${file}";;
- *.jar) installJar "${file}";;
- *) echo "${file}: Don't know how to install artifact" >&2;;
- esac
- done
- fi
+function installArtifacts() {
+ local file
+ if [[ -f $(echo artifacts-*.zip) ]]; then
+ # use jar command in case unzip not present on system
+ jar xf artifacts-*.zip
+ for file in artifacts/*; do
+ case "${file}" in
+ *pom.xml | *.pom) installPom "${file}" ;;
+ *.jar) installJar "${file}" ;;
+ *) echo "${file}: Don't know how to install artifact" >&2 ;;
+ esac
+ done
+ fi
}
-function installFeatures
-{
- if [[ $DEBUG == y ]]; then
- echo "-- ${FUNCNAME[0]} $@ --"
- set -x
- fi
-
- local name featureConf
- export FEATURES_HOME="${POLICY_HOME}/${FEATURES_DIR}"
- echo "FEATURES_HOME is ${FEATURES_HOME}"
-
- mkdir -p "${FEATURES_HOME}" > /dev/null 2>&1
- if [[ -d "${FEATURES_HOME}" && -x "${FEATURES_HOME}" ]]; then
- SOURCE_DIR=$PWD
- for feature in feature-*.zip ; do
- name="${feature#feature-}"
- name="${name%%-[0-9]*\.zip}"
- mkdir -p "${FEATURES_HOME}/${name}" > /dev/null 2>&1
- (cd "${FEATURES_HOME}/${name}"; jar xf ${SOURCE_DIR}/${feature})
- featureConf="feature-${name}.conf"
- if [[ -r "${featureConf}" ]]; then
- configure_component "${featureConf}" "${FEATURES_HOME}"
- cp "${featureConf}" "${POLICY_HOME}"/etc/profile.d
- sed -i -e "s/ *= */=/" -e "s/=\(.*$\)/='\1'/" "${POLICY_HOME}/etc/profile.d/${featureConf}"
- echo "feature ${name} has been installed (configuration present)"
- else
- echo "feature ${name} has been installed (no configuration present)"
- fi
- done
-
- echo "applying base configuration to features"
- configure_component "${BASE_CONF}" "${FEATURES_HOME}"
- else
- echo "error: aborting ${FEATURES_HOME} is not accessible"
- exit 1
- fi
+function installFeatures() {
+ if [[ $DEBUG == y ]]; then
+ echo "-- ${FUNCNAME[0]} $@ --"
+ set -x
+ fi
+
+ local name featureConf
+ export FEATURES_HOME="${POLICY_HOME}/${FEATURES_DIR}"
+ echo "FEATURES_HOME is ${FEATURES_HOME}"
+
+ mkdir -p "${FEATURES_HOME}" >/dev/null 2>&1
+ if [[ -d "${FEATURES_HOME}" && -x "${FEATURES_HOME}" ]]; then
+ SOURCE_DIR=$PWD
+ for feature in feature-*.zip; do
+ name="${feature#feature-}"
+ name="${name%%-[0-9]*\.zip}"
+ mkdir -p "${FEATURES_HOME}/${name}" >/dev/null 2>&1
+ (
+ cd "${FEATURES_HOME}/${name}"
+ jar xf ${SOURCE_DIR}/${feature}
+ )
+ featureConf="feature-${name}.conf"
+ if [[ -r "${featureConf}" ]]; then
+ configure_component "${featureConf}" "${FEATURES_HOME}"
+ cp "${featureConf}" "${POLICY_HOME}"/etc/profile.d
+ sed -i -e "s/ *= */=/" -e "s/=\(.*$\)/='\1'/" "${POLICY_HOME}/etc/profile.d/${featureConf}"
+ echo "feature ${name} has been installed (configuration present)"
+ else
+ echo "feature ${name} has been installed (no configuration present)"
+ fi
+ done
+
+ echo "applying base configuration to features"
+ configure_component "${BASE_CONF}" "${FEATURES_HOME}"
+ else
+ echo "error: aborting ${FEATURES_HOME} is not accessible"
+ exit 1
+ fi
}
-function do_install()
-{
- if [[ $DEBUG == y ]]; then
- echo "-- ${FUNCNAME[0]} $@ --"
- set -x
- fi
-
- echo "Starting installation at $(date) at ${PWD}"
- echo
-
- COMPONENT_TYPE=base
- BASE_CONF=base.conf
- install_base
- component_preinstall
-
- COMPONENT_TYPE=policy-management
- install_controller
-
- installFeatures
- installArtifacts
-
- appInstallers=$(ls apps*installer 2> /dev/null)
+function do_install() {
+ if [[ $DEBUG == y ]]; then
+ echo "-- ${FUNCNAME[0]} $@ --"
+ set -x
+ fi
+
+ echo "Starting installation at $(date) at ${PWD}"
+ echo
+
+ COMPONENT_TYPE=base
+ BASE_CONF=base.conf
+ install_base
+ component_preinstall
+
+ COMPONENT_TYPE=policy-management
+ install_controller
+
+ installFeatures
+ installArtifacts
+
+ appInstallers=$(ls apps*installer 2>/dev/null)
for appInstaller in ${appInstallers}; do
echo "Executing application installer ${appInstaller} .."
source ${appInstaller}
done
- echo
- echo "Installation complete"
- echo "Please logoff and login again to update shell environment"
-
+ echo
+ echo "Installation complete"
+ echo "Please logoff and login again to update shell environment"
+
}
export POLICY_USER=$(/usr/bin/id -un)
export POLICY_GROUP=$POLICY_USER
-
-FQDN=$(hostname -f 2> /dev/null)
+
+FQDN=$(hostname -f 2>/dev/null)
if [[ $? != 0 || -z ${FQDN} ]]; then
- echo "error: cannot determine the FQDN for this host $(hostname)."
- exit 1
+ echo "error: cannot determine the FQDN for this host $(hostname)."
+ exit 1
fi
TIMESTAMP=$(date "+%Y%m%d-%H%M%S")