#
# sfa Wraps PLCAPI into the SFA compliant API
#
-# chkconfig: 2345 5 99
+# hopefully right after plc
+# chkconfig: 2345 61 39
#
# description: Wraps PLCAPI into the SFA compliant API
#
-# $Id$
-# $URL$
-#
# Source config
-. /etc/sfa/sfa_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() {
- echo -n $"Starting SFA: "
+
+ reload
- if [ "$SFA_REGISTRY_ENABLED" ]; then
- echo "Registry"
- daemon /usr/bin/sfa-server.py -r -d $OPTIONS
- fi
+ if [ "$SFA_REGISTRY_ENABLED" -eq 1 ]; then
+ action $"SFA Registry" daemon /usr/bin/sfa-server.py -r -d $OPTIONS
+ fi
- if [ "$SFA_AGGREGATE_ENABLED" ]; then
- echo "Aggregate"
- daemon /usr/bin/sfa-server.py -a -d $OPTIONS
- fi
+ if [ "$SFA_AGGREGATE_ENABLED" -eq 1 ]; then
+ action $"SFA Aggregate" daemon /usr/bin/sfa-server.py -a -d $OPTIONS
+ fi
- if [ "$SFA_SM_ENABLED" ]; then
- echo "SliceMgr"
- daemon /usr/bin/sfa-server.py -s -d $OPTIONS
- fi
+ if [ "$SFA_SM_ENABLED" -eq 1 ]; then
+ action "SFA SliceMgr" daemon /usr/bin/sfa-server.py -s -d $OPTIONS
+ fi
+
+ if [ "$SFA_FLASHPOLICY_ENABLED" -eq 1 ]; then
+ action "Flash Policy Server" daemon /usr/bin/sfa_flashpolicy.py --file="$SFA_FLASHPOLICY_CONFIG_FILE" --port=$SFA_FLASHPOLICY_PORT -d
+ fi
- RETVAL=$?
- echo
- [ $RETVAL -eq 0 ] && touch /var/lock/subsys/sfa
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/sfa-server.py
}
stop() {
- echo -n $"Shutting down SFA: "
- killproc sfa-server.py
+ action $"Shutting down SFA" killproc sfa-server.py
RETVAL=$?
- echo
- [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sfa
+ [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sfa-server.py
}
-
case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- restart|reload)
- stop
- start
- ;;
- condrestart)
- if [ -f /var/lock/subsys/sfa ]; then
- stop
- start
- fi
- ;;
- status)
- status sfa
- RETVAL=$?
- ;;
- *)
- echo $"Usage: $0 {start|stop|restart|condrestart|status}"
- exit 1
+ start) start ;;
+ stop) stop ;;
+ reload) reload force ;;
+ restart) stop; start ;;
+ condrestart)
+ if [ -f /var/lock/subsys/sfa-server.py ]; then
+ stop
+ start
+ fi
+ ;;
+ status)
+ status sfa-server.py
+ RETVAL=$?
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|reload|restart|condrestart|status}"
+ exit 1
+ ;;
esac
exit $RETVAL