merging with geni-api branch
[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                 if [ "$SFA_GENI_AGGREGATE_ENABLED" ]; then
79                                 action $"SFA GENI Aggregate" daemon /usr/bin/sfa-server.py -g -d $OPTIONS
80                 fi
81
82     RETVAL=$?
83     [ $RETVAL -eq 0 ] && touch /var/lock/subsys/sfa
84
85 }
86
87 stop() {
88     action $"Shutting down SFA" killproc sfa-server.py
89     RETVAL=$?
90
91     [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sfa
92 }
93
94
95 case "$1" in
96     start) start ;;
97     stop) stop ;;
98     reload) reload force ;;
99     restart) stop; start ;;
100     condrestart)
101         if [ -f /var/lock/subsys/sfa ]; then
102             stop
103             start
104         fi
105         ;;
106     status)
107         status sfa
108         RETVAL=$?
109         ;;
110     *)
111         echo $"Usage: $0 {start|stop|reload|restart|condrestart|status}"
112         exit 1
113         ;;
114 esac
115
116 exit $RETVAL
117