b3b041ca80e45a823e519581dae71aa01a705ca1
[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     # [re]generate the sfa_component_config
59     gen-sfa-cm-config.py        
60 }
61
62 start() {
63     
64     reload
65
66     if [ "$SFA_REGISTRY_ENABLED" ]; then
67         action $"SFA Registry" daemon /usr/bin/sfa-server.py -r -d $OPTIONS
68     fi
69
70     if [ "$SFA_AGGREGATE_ENABLED" ]; then
71         action $"SFA Aggregate" daemon /usr/bin/sfa-server.py -a -d $OPTIONS
72     fi
73         
74     if [ "$SFA_SM_ENABLED" ]; then
75         action "SFA SliceMgr" daemon /usr/bin/sfa-server.py -s -d $OPTIONS
76     fi
77
78     RETVAL=$?
79     [ $RETVAL -eq 0 ] && touch /var/lock/subsys/sfa
80
81 }
82
83 stop() {
84     action $"Shutting down SFA" killproc sfa-server.py
85     RETVAL=$?
86
87     [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sfa
88 }
89
90
91 case "$1" in
92     start) start ;;
93     stop) stop ;;
94     reload) reload force ;;
95     restart) stop; start ;;
96     condrestart)
97         if [ -f /var/lock/subsys/sfa ]; then
98             stop
99             start
100         fi
101         ;;
102     status)
103         status sfa
104         RETVAL=$?
105         ;;
106     *)
107         echo $"Usage: $0 {start|stop|reload|restart|condrestart|status}"
108         exit 1
109         ;;
110 esac
111
112 exit $RETVAL
113