cosmetic
[sfa.git] / sfa / init.d / sfa
1 #!/bin/bash
2 #
3 # sfa   Wraps PLCAPI into the SFA compliant API
4 #
5 # chkconfig: 2345 5 99
6 #
7 # description:   Wraps PLCAPI into the SFA compliant API
8 #
9 # $Id$
10 # $URL$
11 #
12
13 # Source config
14 [ -f /etc/sfa/sfa_config ] && . /etc/sfa/sfa_config
15
16 # source function library
17 . /etc/init.d/functions
18
19 # Regenerate configuration files - almost verbatim from plc.init
20 reload ()
21 {
22     force=$1
23
24     # Regenerate the main configuration file from default values
25     # overlaid with site-specific and current values.
26     # Thierry -- 2007-07-05 : values in plc_config.xml are *not* taken into account here
27     files=(
28         /etc/sfa/default_config.xml 
29         /etc/sfa/configs/site.xml
30     )
31     for file in "${files[@]}" ; do
32         if [ -n "$force" -o $file -nt /etc/sfa/sfa_config.xml ] ; then
33             tmp=$(mktemp /tmp/sfa_config.xml.XXXXXX)
34             plc-config --xml "${files[@]}" >$tmp
35             if [ $? -eq 0 ] ; then
36                 mv $tmp /etc/sfa/sfa_config.xml
37                 chmod 444 /etc/sfa/sfa_config.xml
38             else
39                 echo "SFA: Warning: Invalid configuration file(s) detected"
40                 rm -f $tmp
41             fi
42             break
43         fi
44     done
45
46     # Convert configuration to various formats
47     if [ -n "$force" -o /etc/sfa/sfa_config.xml -nt /etc/sfa/sfa_config ] ; then
48         plc-config --shell /etc/sfa/sfa_config.xml >/etc/sfa/sfa_config
49     fi
50     if [ -n "$force" -o /etc/sfa/sfa_config.xml -nt /etc/sfa/sfa_config.py ] ; then
51         plc-config --python /etc/sfa/sfa_config.xml >/etc/sfa/sfa_config.py
52     fi
53 #    if [ -n "$force" -o /etc/sfa/sfa_config.xml -nt /etc/sfa/php/sfa_config.php ] ; then
54 #       mkdir -p /etc/sfa/php
55 #       plc-config --php  /etc/sfa/sfa_config.xml >/etc/sfa/php/sfa_config.php
56 #    fi
57 }
58
59 start() {
60     
61     reload
62
63     if [ "$SFA_REGISTRY_ENABLED" ]; then
64         action $"SFA Registry" daemon /usr/bin/sfa-server.py -r -d $OPTIONS
65     fi
66
67     if [ "$SFA_AGGREGATE_ENABLED" ]; then
68         action $"SFA Aggregate" daemon /usr/bin/sfa-server.py -a -d $OPTIONS
69     fi
70         
71     if [ "$SFA_SM_ENABLED" ]; then
72         action "SFA SliceMgr" daemon /usr/bin/sfa-server.py -s -d $OPTIONS
73     fi
74
75     RETVAL=$?
76     [ $RETVAL -eq 0 ] && touch /var/lock/subsys/sfa
77
78 }
79
80 stop() {
81     action $"Shutting down SFA" killproc sfa-server.py
82     RETVAL=$?
83
84     [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sfa
85 }
86
87
88 case "$1" in
89     start) start ;;
90     stop) stop ;;
91     reload) reload force ;;
92     restart) stop; start ;;
93     condrestart)
94         if [ -f /var/lock/subsys/sfa ]; then
95             stop
96             start
97         fi
98         ;;
99     status)
100         status sfa
101         RETVAL=$?
102         ;;
103     *)
104         echo $"Usage: $0 {start|stop|reload|restart|condrestart|status}"
105         exit 1
106         ;;
107 esac
108
109 exit $RETVAL
110