Commit 417d1155 authored by Maarten Litmaath's avatar Maarten Litmaath
Browse files

- Now also report the Job Agent version.

- Robustness improved in a few places.
- Some cosmetic changes.
parent 18a01c03
#!/bin/bash
# JAliEn VObox Startup Scripts - CE
# v1.1 - 2021-08-20
# v1.2 - 2021-09-18
# Authors:
# Kalana Dananjaya <kwijethu@cern.ch>
# Costin Grigoras <Costin.Grigoras@cern.ch>
......@@ -11,22 +11,24 @@ ceClassName=alien.site.ComputingElement
jalienDir=/cvmfs/alice.cern.ch/el[67]-x86_64/Packages/JAliEn # matches el6 and el7
commonConf="$confDir/version.properties"
##############################################
export JALIEN_CONF_DIR=${JALIEN_CONF_DIR:-$HOME/.j/config}
########################################################################################
# Write log to file
# Globals:
# setupLogFile: Log file for MonaLisa setup
# Arguments:
# $1: String to log
###############################################
function write_log(){
echo $1 >> $setupLogFile
########################################################################################
function write_log() {
echo "$@" >> $setupLogFile
}
#############################################################################################
########################################################################################
# Stop CE
# Globals:
# ceClassName : Computing Element classname
#############################################################################################
########################################################################################
function stop_ce() {
echo "Stopping JAliEn CE..."
pkill -TERM -f $ceClassName
......@@ -40,23 +42,23 @@ function stop_ce() {
! status_ce
}
#############################################################################################
########################################################################################
# CE PID
# Prints:
# PID if process is running, else nothing
# Returns:
# 0 if process is running, else 1
#############################################################################################
function get_ce_pid(){
########################################################################################
function get_ce_pid() {
ps uxwww | awk "/[ ]$ceClassName/ { print \$2 }" | grep .
}
#############################################################################################
########################################################################################
# CE liveness check
# Returns:
# 0 if process is running, else 1
#############################################################################################
function check_liveness_ce(){
########################################################################################
function check_liveness_ce() {
if get_ce_pid > /dev/null
then
return 0
......@@ -65,24 +67,25 @@ function check_liveness_ce(){
fi
}
###################################
########################################################################################
# Check CE status
# Arguments:
# $command: "status" or "mlstatus"
# Returns:
# 0 if process is running,else 1
###################################
# 0 if process is running, else 1
########################################################################################
function status_ce() {
command=$1
pid=`get_ce_pid`
pid=$(get_ce_pid)
exit_code=$?
[[ $exit_code == 0 ]] && not= || not=' Not'
if [[ "$command" == mlstatus ]]
then
ceConfigVersion=$(perl -ne 'print $1 if /^\s*jalien=(\S+)/i' $commonConf)
ceConfigVersion=$(perl -ne 'print $1 if /^\s*jalien\s*=\s*(\S+)/i' $commonConf)
: ${ceConfigVersion:=pro}
if [[ -n "$pid" ]]
then
......@@ -104,9 +107,26 @@ function status_ce() {
ceEnvRunningVersion=
fi
jaVersion=
jconf=$JALIEN_CONF_DIR/version.properties
if [ -e $jconf ]
then
jaVersion=$(perl -ne 'print $1 if /^\s*jobagent\.version\s*=\s*(\S+)/i' $jconf)
jardir=$(perl -ne 'print $1 if /^\s*custom\.jobagent\.jar\.dir\s*=\s*(\S+)/i' $jconf)
if [ -e "$jardir/alien-users.jar" ]
then
jaVersion=custom
fi
fi
jaVersion=${jaVersion:-${ceEnvRunningVersion:-$ceConfigVersion}}
msg="CE\tStatus\t$exit_code\tMessage\tCE$not Running"
msg="$msg\tConfigVersion\t${ceConfigVersion:-pro}"
msg="$msg\tConfigVersion\t$ceConfigVersion"
msg="$msg\tRunningVersion\t${ceEnvRunningVersion:-n/a}"
msg="$msg\tJAVersion\t$jaVersion"
echo -e "$msg"
else
......@@ -116,7 +136,7 @@ function status_ce() {
return $exit_code
}
#############################################################################################
########################################################################################
# Start MonaLisa
# Globals:
# siteConfiguration: Associative array of site configuration parameters in LDAP
......@@ -126,8 +146,8 @@ function status_ce() {
# ldapHostname: LDAP hostname
# ldapPort: LDAP port
# hostname: Site hostname
#############################################################################################
function start_ce(){
########################################################################################
function start_ce() {
confDir=$1
ldapHostname=$2
ldapPort=$3
......@@ -142,7 +162,10 @@ function start_ce(){
return 0
fi
# Obtain site related configurations from LDAP
#
# Obtain site configuration from LDAP
#
ldapBase="ou=Sites,o=alice,dc=cern,dc=ch"
ldapFilter="(&(objectClass=AliEnHostConfig)(host=$hostname))"
......@@ -152,9 +175,13 @@ function start_ce(){
)
declare -A siteConfiguration
while IFS= read -r line
do
#Ignore empty lines and create an associative array from LDAP configuration
#
# Create an associative array from the LDAP configuration
#
if [[ ! -z $line ]]
then
key=$(echo "$line" | cut -d ":" -f 1 )
......@@ -169,6 +196,7 @@ function start_ce(){
done <<< "$siteLDAPQuery"
baseLogDir=$(echo "${siteConfiguration[LOGDIR]}" | envsubst)
if [[ -z $baseLogDir ]]
then
baseLogDir="$HOME/ALICE/alien-logs"
......@@ -190,14 +218,17 @@ function start_ce(){
> $setupLogFile
# Read JAliEn config files
#
# Read JAliEn VObox config file
#
if [[ -f "$commonConf" ]]
then
declare -A commonConfiguration
while IFS= read -r line
do
if [[ ! $line = \#* ]] && [[ ! -z $line ]]
if [[ ! "$line" = \#* ]] && [[ "$line" =~ [A-Za-z].*= ]]
then
key=$(echo "$line" | cut -d "=" -f 1 )
val=$(echo "$line" | cut -d "=" -f 2- )
......@@ -223,13 +254,22 @@ function start_ce(){
envFile="$logDir/CE-env.sh"
pidFile="$logDir/CE.pid"
# Reset the environment
#
# Reset the CE environment
#
> $envFile
# Bootstrap the environment e.g. with the correct X509_USER_PROXY
#
# Bootstrap the CE environment e.g. with the correct X509_USER_PROXY
#
[[ -f "$ceEnv" ]] && cat "$ceEnv" >> $envFile
#
# Check for JAliEn version
#
jv=${commonConfiguration[JALIEN]}
[[ -n "$jv" ]] || jv=pro
......@@ -249,11 +289,19 @@ function start_ce(){
$envCommand | grep . >> $envFile || return 1
#
# All systems go...
#
logFile="$logDir/CE-jvm-$(date '+%y%m%d-%H%M%S')-$$-log.txt"
echo -e "Starting JAliEn CE...\nJVM Log Directory: $logDir"
echo -e "Starting JAliEn CE..."
(
#
# In a subshell, to get the process detached from the parent
#
source $envFile
cd $logDir
nohup jalien $ceClassName > "$logFile" 2>&1 < /dev/null &
......
#!/bin/bash
# JAliEn VObox Startup Scripts - wrapper
# v1.1 - 2021-08-20
# v1.2 - 2021-09-18
# Authors:
# Kalana Dananjaya <kwijethu@cern.ch>
# Costin Grigoras <Costin.Grigoras@cern.ch>
......@@ -46,18 +46,22 @@ done
[[ "$2" = $svc ]] || [[ "$2" = "" ]] || usage
rc=0
for svc in ${2:-$svcs}
do
if [[ $svc = "monalisa" ]]
then
run_monalisa $cmd $confDir $ldapHostname $ldapPort $hostname
(run_monalisa $cmd $confDir $ldapHostname $ldapPort $hostname) || rc=$?
elif [[ $svc = "ce" ]]
then
run_ce $cmd $confDir $ldapHostname $ldapPort $hostname
(run_ce $cmd $confDir $ldapHostname $ldapPort $hostname) || rc=$?
else
usage
fi
done
exit $rc
#!/bin/bash
# JAliEn VObox Startup Scripts - MonaLisa
# v1.1 - 2021-08-20
# v1.2 - 2021-09-18
# Authors:
# Kalana Dananjaya <kwijethu@cern.ch>
# Costin Grigoras <Costin.Grigoras@cern.ch>
......@@ -311,8 +311,8 @@ function start_ml(){
while IFS= read -r line
do
if [[ ! $line = \#* ]] && [[ ! -z $line ]]
then
if [[ ! "$line" = \#* ]] && [[ "$line" =~ [A-Za-z].*= ]]
then
key=$(echo "$line" | cut -d "=" -f 1 )
val=$(echo "$line" | cut -d "=" -f 2- )
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment