Magellan Linux

Diff of /alx-src/branches/alxconf-060/init.d/alxsetstate

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1975 by niro, Sat May 7 11:06:33 2011 UTC revision 3482 by niro, Mon Apr 16 08:38:27 2012 UTC
# Line 1  Line 1 
1  #!/bin/bash  #!/bin/bash
2  # $Id$  # $Id$
3    
4  #%rlevels: 3:s 4:s 5:s 0:k 6:k  #%rlevels: 3:s 0:k
5  #%start: 99  #%start: 99
6  #%stop: 01  #%stop: 01
7    
# Line 15  source $rc_functions Line 15  source $rc_functions
15    
16  # mysql settings  # mysql settings
17  source /etc/alxconfig-ng/config.rc  source /etc/alxconfig-ng/config.rc
18  source /usr/lib/alxconfig-ng/functions/mysqlfunctions  # helper functions
19  source /usr/lib/alxconfig-ng/functions/serial_functions  source ${ALX_FUNCTIONS}/mysqlfunctions
20    source ${ALX_FUNCTIONS}/serial_functions
21    source ${ALX_FUNCTIONS}/common
22    
23  # unset vars which may kill us  # unset vars which may kill us
24  unset ALX_SERIAL ALX_STATE ALX_IFACE  unset ALX_SERIAL ALX_STATE ALX_IFACE
# Line 40  fi Line 42  fi
42  # nice name is alx_connected_state or sth like this  # nice name is alx_connected_state or sth like this
43  set_current_network_state()  set_current_network_state()
44  {  {
45   local CUR_IP CUR_MAC ID   local cur_ip cur_mac cur_mtime id
46    
47   echo -e ${COLMAGENTA}"Register system to database"${COLDEFAULT}   rc_mecho "Register system to database"
48    
49   CUR_IP=$(/sbin/ifconfig ${ALX_IFACE} | sed -n '/addr:/s/ [^r]*..//gp')   cur_ip=$(/sbin/ifconfig ${ALX_IFACE} | sed -n '/addr:/s/ [^r]*..//gp')
50   CUR_MAC=$(/sbin/ifconfig ${ALX_IFACE} | grep HWaddr | cut -d ' ' -f11)   cur_mac=$(/sbin/ifconfig ${ALX_IFACE} | grep HWaddr | cut -d ' ' -f11)
51   CUR_MTIME=$(date +%s)   cur_mtime=$(date +%s)
52    
53   # validate current serial   # validate current serial
54   if ! validate_serial "${ALX_SERIAL}" "${ALX_REG_DATE}" "${CUR_MAC}"   if ! validate_serial "${ALX_SERIAL}" "${ALX_REG_DATE}" "${cur_mac}"
55   then   then
56   # abort on non valid serial   # abort on non valid serial
57   ALX_STATE="invalid serial"   ALX_STATE="invalid serial"
58   echo "ALX_STATE=\"${ALX_STATE}\"" > /etc/alxconfig-ng/state/state   local CONFIG="/etc/alxconfig-ng/state/state"
59     clearconfig
60     addconfig "ALX_STATE=\"${ALX_STATE}\""
61   show_invalid_serial_msg   show_invalid_serial_msg
62   exit 1   exit 1
63   fi   fi
64    
65   # first check if an entry exist with my serial   # first check if an entry exist with my serial
66   # if it exist update this entry else insert a new one   # if it exist update this entry else insert a new one
67   ID=$(mysqldo "select serial from state_connected where serial=${ALX_SERIAL};")   id=$(mysqldo "select serial from state_connected where serial=${ALX_SERIAL};")
68    
69   if [ -n "${ID}" ]   if [ -n "${id}" ]
70   then   then
71   # run an update   # run an update
72    
73   # nice status   # nice status
74   $CURS_UP   $CURS_UP
75   $SET_WCOL   $SET_WCOL
76   echo "[ U, State: ${ALX_STATE} ]"   rc_echo "[ SN: ${ALX_SERIAL}, U, ${ALX_STATE} ]"
77    
78   mysqldo "update state_connected set   mysqldo "update state_connected set
79   hostname='${HOSTNAME}',   hostname='${HOSTNAME}',
80   ip='${CUR_IP}',   ip='${cur_ip}',
81   mac='${CUR_MAC}',   mac='${cur_mac}',
82   state='${ALX_STATE}',   state='${ALX_STATE}',
83   mtime='${CUR_MTIME}'   mtime='${cur_mtime}'
84   where serial=${ALX_SERIAL};"   where serial=${ALX_SERIAL};"
85   else   else
86   # run an insert   # run an insert
# Line 84  set_current_network_state() Line 88  set_current_network_state()
88   # nice status   # nice status
89   $CURS_UP   $CURS_UP
90   $SET_WCOL   $SET_WCOL
91   echo "[ N, State: ${ALX_STATE} ]"   rc_echo "[ SN: ${ALX_SERIAL}, N, ${ALX_STATE} ]"
92    
93   mysqldo "insert into state_connected(   mysqldo "insert into state_connected(
94   serial,   serial,
# Line 97  set_current_network_state() Line 101  set_current_network_state()
101   values(   values(
102   '${ALX_SERIAL}',   '${ALX_SERIAL}',
103   '${HOSTNAME}',   '${HOSTNAME}',
104   '${CUR_IP}',   '${cur_ip}',
105   '${CUR_MAC}',   '${cur_mac}',
106   '${ALX_STATE}',   '${ALX_STATE}',
107   '${CUR_MTIME}'   '${cur_mtime}'
108   );"   );"
109   fi   fi
110  }  }
# Line 111  set_current_network_state() Line 115  set_current_network_state()
115  # nice name is alx_connected_state or sth like this  # nice name is alx_connected_state or sth like this
116  unset_alx_connected()  unset_alx_connected()
117  {  {
118   local SQL_OPTS   local cur_mac
  local CUR_MAC  
119    
120   CUR_MAC=$(/sbin/ifconfig ${ALX_IFACE} | grep HWaddr | cut -d ' ' -f11)   cur_mac=$(/sbin/ifconfig ${ALX_IFACE} | grep HWaddr | cut -d ' ' -f11)
121    
122   echo -e ${COLMAGENTA}"Unregister system from database"${COLDEFAULT}   rc_mecho "Unregister system from database"
123    
124   mysqldo "delete from state_connected where serial='${ALX_SERIAL}' and mac='${CUR_MAC}';"   # nice status
125     $CURS_UP
126     $SET_WCOL
127     rc_echo "[ SN: ${ALX_SERIAL} ]"
128    
129     mysqldo "delete from state_connected where serial='${ALX_SERIAL}' and mac='${cur_mac}';"
130   evaluate_retval   evaluate_retval
131  }  }
132    
# Line 152  case $1 in Line 160  case $1 in
160   evaluate_retval   evaluate_retval
161   ;;   ;;
162   *)   *)
163   echo "Usage: $0 {start|stop} ..."   rc_echo "Usage: $0 {start|stop} ..."
164   ;;   ;;
165  esac  esac
166    

Legend:
Removed from v.1975  
changed lines
  Added in v.3482