#!/bin/bash # # sfa Wraps PLCAPI into the SFA compliant API # # chkconfig: 2345 5 99 # # description: Wraps PLCAPI into the SFA compliant API # # $Id: sfa 18662 2010-08-24 16:53:40Z tmack $ # $URL: http://svn.planet-lab.org/svn/sfa/trunk/sfa/init.d/sfa $ # # Source config [ -f /etc/sfa/sfa_config ] && . /etc/sfa/sfa_config # source function library . /etc/init.d/functions # Regenerate configuration files - almost verbatim from plc.init reload () { force=$1 # Regenerate the main configuration file from default values # overlaid with site-specific and current values. # Thierry -- 2007-07-05 : values in plc_config.xml are *not* taken into account here files=( /etc/sfa/default_config.xml /etc/sfa/configs/site.xml ) for file in "${files[@]}" ; do if [ -n "$force" -o $file -nt /etc/sfa/sfa_config.xml ] ; then tmp=$(mktemp /tmp/sfa_config.xml.XXXXXX) plc-config --xml "${files[@]}" >$tmp if [ $? -eq 0 ] ; then mv $tmp /etc/sfa/sfa_config.xml chmod 444 /etc/sfa/sfa_config.xml else echo "SFA: Warning: Invalid configuration file(s) detected" rm -f $tmp fi break fi done # Convert configuration to various formats if [ -n "$force" -o /etc/sfa/sfa_config.xml -nt /etc/sfa/sfa_config ] ; then plc-config --shell /etc/sfa/sfa_config.xml >/etc/sfa/sfa_config fi if [ -n "$force" -o /etc/sfa/sfa_config.xml -nt /etc/sfa/sfa_config.py ] ; then plc-config --python /etc/sfa/sfa_config.xml >/etc/sfa/sfa_config.py fi # if [ -n "$force" -o /etc/sfa/sfa_config.xml -nt /etc/sfa/php/sfa_config.php ] ; then # mkdir -p /etc/sfa/php # plc-config --php /etc/sfa/sfa_config.xml >/etc/sfa/php/sfa_config.php # fi # [re]generate the sfa_component_config gen-sfa-cm-config.py } start() { reload if [ "$SFA_REGISTRY_ENABLED" ]; then action $"SFA Registry" daemon /usr/bin/sfa-server.py -r -d $OPTIONS fi if [ "$SFA_AGGREGATE_ENABLED" ]; then action $"SFA Aggregate" daemon /usr/bin/sfa-server.py -a -d $OPTIONS fi if [ "$SFA_SM_ENABLED" ]; then action "SFA SliceMgr" daemon /usr/bin/sfa-server.py -s -d $OPTIONS fi RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/sfa } stop() { action $"Shutting down SFA" killproc sfa-server.py RETVAL=$? [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sfa } case "$1" in start) start ;; stop) stop ;; reload) reload force ;; restart) stop; start ;; condrestart) if [ -f /var/lock/subsys/sfa ]; then stop start fi ;; status) status sfa RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|reload|restart|condrestart|status}" exit 1 ;; esac exit $RETVAL