--- alx-src/trunk/alx-web/index.php 2008/09/17 06:10:34 535 +++ alx-src/trunk/alx-web/index.php 2008/09/17 06:17:56 536 @@ -1,160 +1,159 @@ false); - foreach($locations as $l) $_SESSION['alx_sort_loc'][$l]=true; - } - if(isset($_GET['s_krit'])) - { - $_SESSION['alx_sort_krit']=$_GET['s_krit']; - $_SESSION['alx_sort_onfirst']=0+$_GET['s_on']; - $_SESSION['alx_sort_loc']['DEAD']=$_GET['s_dead']; - foreach($locations as $l) $_SESSION['alx_sort_loc'][$l]=$_GET['s_'.$l]; - } - - function check_online($dat, $bla) - { - global $comps; - global $pingcmd; - - if(!isset($comps[$dat['serial']])) return false; - - passthru($pingcmd." ".$dat['ip']." &> /dev/null && exit 0 || exit 1",$retval); - if($retval==0) - { - $comps[$dat['serial']]['online'] = true; - $comps[$dat['serial']]['ip'] = $dat['ip']; - } - else $comps[$dat['serial']]['ip'] = ''.$dat['ip'].' (no ping)'; + include('include/basesql.php'); + session_start(); + session_register('alx_sort_krit'); session_register('alx_sort_onfirst'); session_register('alx_sort_loc'); - $comps[$dat['serial']]['hostname'] = $dat['hostname']; - $comps[$dat['serial']]['mac'] = $dat['mac']; - } - - function sortcomp($a,$b) - { - if($a['serial']<0 && $b['serial']>0) return -1; - if($a['serial']>0 && $b['serial']<0) return 1; - - if($_SESSION['alx_sort_onfirst']) - { - if($a['online'] && !$b['online']) return -1; - if($b['online'] && !$a['online']) return 1; - } - if($_SESSION['alx_sort_krit']=='hostname') - { - if(strtoupper($a['hostname'])strtoupper($b['hostname'])) return 1; - } - return $a['serial']-$b['serial']; - } - - function checkif($b) - { if($b) return ' checked'; else return ''; } - - $comps = sqlarr('SELECT s.serial, s.location, s.mac, n.hostname FROM cfg_network n,client_serials s WHERE n.serial=s.serial', 'serial'); - sqlforeach('SELECT serial, ip, hostname, mac FROM state_connected', 'check_online', null); - usort($comps, 'sortcomp'); - - echo ''; - echo 'ALX Config - Index'; - echo ''; - echo ''; - echo ''; - - /* - echo ''; - echo '[REFRESH]
'; - - echo '
SORT BY serial hostname'; - echo 'online clients on top

'; - */ - - echo '
'; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo '
[REFRESH]
SORT BY serial hostname
'; - echo 'online clients on top
'; - - foreach($locations as $l) - echo ''.($l=='' ? '?' : $l).''; - - echo '
'; - echo 'DEACTIVATED'; - echo '

'; - echo '
'; - - - echo ''; - echo ''; - if($showversion=='on') echo ''; - echo ''; - - foreach($comps as $c) - { - if(!$_SESSION['alx_sort_loc'][$c['location']]) Continue; - if($c['serial']<0 && !$_SESSION['alx_sort_loc']['DEAD']) Continue; - - if($c['online']) $pic='online'; else $pic='offline'; - - if($c['serial']<0) { echo ''; $pic = 'deact'; } - else echo ''; - - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; + $locations = sqlarr('SELECT location FROM client_locations', '', 'location'); + $locations[] = ''; - echo ''; + if($_SESSION['alx_sort_krit']==null) + { + $_SESSION['alx_sort_krit'] = 'serial'; + $_SESSION['alx_sort_onfirst'] = 1; + $_SESSION['alx_sort_loc'] = array('DEAD'=>false); + foreach($locations as $l) $_SESSION['alx_sort_loc'][$l]=true; + } + if(isset($_GET['s_krit'])) + { + $_SESSION['alx_sort_krit']=$_GET['s_krit']; + $_SESSION['alx_sort_onfirst']=0+$_GET['s_on']; + $_SESSION['alx_sort_loc']['DEAD']=$_GET['s_dead']; + foreach($locations as $l) $_SESSION['alx_sort_loc'][$l]=$_GET['s_'.$l]; + } - if($c['online']) + function check_online($dat, $bla) { - if($showversion=='on') + global $comps; + global $pingcmd; + + if(!isset($comps[$dat['serial']])) return false; + + passthru($pingcmd." ".$dat['ip']." &> /dev/null && exit 0 || exit 1",$retval); + if($retval==0) { - $pubkey = mysql_query('select public_key from ssh_auth_clients where serial='.$c['serial'].''); - while ($row = mysql_fetch_row ($pubkey)) { - # schreiben der .ssh/known_hosts file mit dem public rsa key des client, - # um die "yes" abfrage zu vermeiden - $hostfile = fopen ($home."/.ssh/known_hosts","w"); - fwrite($hostfile,$c['ip']." ".$row[0],strlen($row[0])+strlen($c['ip'])+1); - fclose($hostfile); + $comps[$dat['serial']]['online'] = true; + $comps[$dat['serial']]['ip'] = $dat['ip']; + } + else $comps[$dat['serial']]['ip'] = ''.$dat['ip'].' (no ping)'; - $osver = exec($sshcmd.' -l root '.$c['ip'].' \'os_ver=$(<'.$mageversion.');cfg_ver=$(/sbin/magequery -n '.$alxconfig.'|cut -d" " -f5);pname=${cfg_ver%-*-*};cfg_ver=${cfg_ver/${pname}-};echo "${os_ver}:${cfg_ver}"\''); - $osver = explode(':',$osver); - } - if($osver[0] == '') $osver[0]='unkown'; - if($osver[1] == '') $osver[1]='unkown'; - echo ''; - echo ''; - } + $comps[$dat['serial']]['hostname'] = $dat['hostname']; + $comps[$dat['serial']]['mac'] = $dat['mac']; } - echo ''; + + if($c['online']) + { + if($showversion=='on') + { + $pubkey = mysql_query('select public_key from ssh_auth_clients where serial='.$c['serial'].''); + while ($row = mysql_fetch_row ($pubkey)) { + # schreiben der .ssh/known_hosts file mit dem public rsa key des client, + # um die "yes" abfrage zu vermeiden + $hostfile = fopen ($home."/.ssh/known_hosts","w"); + fwrite($hostfile,$c['ip']." ".$row[0],strlen($row[0])+strlen($c['ip'])+1); + fclose($hostfile); + + $osver = exec($sshcmd.' -l root '.$c['ip'].' \'os_ver=$(<'.$mageversion.');cfg_ver=$(/sbin/magequery -n '.$alxconfig.'|cut -d" " -f5);pname=${cfg_ver%-*-*};cfg_ver=${cfg_ver/${pname}-};echo "${os_ver}:${cfg_ver}"\''); + $osver = explode(':',$osver); + } + if($osver[0] == '') $osver[0]='unkown'; + if($osver[1] == '') $osver[1]='unkown'; + echo ''; + echo ''; + } + } + + echo ''; + + echo ''; + } + echo '
editserialhostnameipversionup/down
'.substr($c['location'],0,1).''.strtoupper($pic).'#'.$c['serial'].''.$c['hostname'].''.$c['ip'].''.$osver[0].''.$osver[1].''; - if($c['online']) - { - echo ''; - echo ''; + function sortcomp($a,$b) + { + if($a['serial']<0 && $b['serial']>0) return -1; + if($a['serial']>0 && $b['serial']<0) return 1; + + if($_SESSION['alx_sort_onfirst']) + { + if($a['online'] && !$b['online']) return -1; + if($b['online'] && !$a['online']) return 1; + } + if($_SESSION['alx_sort_krit']=='hostname') + { + if(strtoupper($a['hostname'])strtoupper($b['hostname'])) return 1; + } + return $a['serial']-$b['serial']; } - else echo ''; + + function checkif($b) + { if($b) return ' checked'; else return ''; } + + $comps = sqlarr('SELECT s.serial, s.location, s.mac, n.hostname FROM cfg_network n,client_serials s WHERE n.serial=s.serial', 'serial'); + sqlforeach('SELECT serial, ip, hostname, mac FROM state_connected', 'check_online', null); + usort($comps, 'sortcomp'); + + echo ''; + echo 'ALX Config - Index'; + echo ''; + echo ''; + echo ''; + + /* + echo ''; + echo '[REFRESH]
'; + + echo '
SORT BY serial hostname'; + echo 'online clients on top

'; + */ + + echo '
'; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo '
[REFRESH]
SORT BY serial hostname
'; + echo 'online clients on top
'; + + foreach($locations as $l) + echo ''.($l=='' ? '?' : $l).''; + + echo '
'; + echo 'DEACTIVATED'; echo '

'; + echo '
'; + + echo ''; + echo ''; + if($showversion=='on') echo ''; + echo ''; + + foreach($comps as $c) + { + if(!$_SESSION['alx_sort_loc'][$c['location']]) Continue; + if($c['serial']<0 && !$_SESSION['alx_sort_loc']['DEAD']) Continue; + + if($c['online']) $pic='online'; else $pic='offline'; + + if($c['serial']<0) { echo ''; $pic = 'deact'; } + else echo ''; + + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; - echo ''; - } - echo '
editserialhostnameipversionup/down
'.substr($c['location'],0,1).''.strtoupper($pic).'#'.$c['serial'].''.$c['hostname'].'

'; -?> \ No newline at end of file + echo '
'.$c['ip'].''.$osver[0].''.$osver[1].''; + if($c['online']) + { + echo ''; + echo ''; + } + else echo ''; + echo '

'; +?>