Magellan Linux

Diff of /alx-src/branches/alx-web-070/mageupgrade.php

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

revision 2197 by niro, Tue Jun 7 18:27:24 2011 UTC revision 3349 by niro, Wed Feb 8 13:05:29 2012 UTC
# Line 44  function update_client_settings() Line 44  function update_client_settings()
44   ssh_editvar('SMB_UPDATE_PASS', $smbpassword, '/etc/alxconfig-ng/config.rc');   ssh_editvar('SMB_UPDATE_PASS', $smbpassword, '/etc/alxconfig-ng/config.rc');
45  }  }
46    
47    // get alx version info
48    $alxinfo = sqlfirst('SELECT * FROM client_version WHERE serial='.$client);
49    $alxos = $alxinfo[os];
50    $alxutils = $alxinfo[utils];
51    
52  // always update the client settings first  // always update the client settings first
53  update_client_settings();  update_client_settings();
54    
55  if($op=="calc")  if($op=="calc")
56  {  {
57   echo '<img src="pics/online.gif" align=top> '.strtoupper('Fetching list of packages to upgrade on client #'.$client.' ('.$ip.')...<br>');   echo '<img src="pics/online.gif" align=top> '.strtoupper('Fetching list of packages to upgrade on client #'.$client.' ('.$ip.')...<br>');
58   $out = sshdo('NOCOLORS=true /sbin/mage uppretend | egrep "\[.*\]" | sed "s:\[.*\]\ \(.*\):\1:" | sed "s:/:,:" | sed "s:\(.*\)-:\1,:" | sed "s:\(.*\)-:\1,:"', $ip);  
59     if($alxos >= '0.6.0') {
60     $out = @sshdo('NOCOLORS=true /sbin/mage uppretend | egrep "\[.*\]" | sed "s:\[.*\]\ \(.*\):\1:" | sed "s:/:,:" | sed "s:\(.*\)-:\1,:" | sed "s:\(.*\)-:\1,:"', $ip);
61     }
62     else {
63     $out = @sshdo('NOCOLORS=true /sbin/mageupgrade --calc-bash | cut -d, -f1-2,4 | sed "s/\(.*\)-r\(.*\)/\1,r\2/"', $ip);
64     }
65   echo '<pre>';   echo '<pre>';
66   echo '<table border="0">';   echo '<table border="0">';
67   if (array_key_exists("0", $out[1]))   if (array_key_exists("0", $out))
68   {   {
69   foreach( $out[1] as $i)   // tell that there are no updates if $out/$i is empty
70     if ( $out[1] == "")
71   {   {
72   $item=explode(",",$i);   echo "No updates available. The system is fully upgraded.";
73   $pcat=$item[0];   } else {
74   $pname=$item[1];   foreach( $out as $i)
75   $pver=$item[2];   {
76   $pbuild=$item[3];   // element 0 is always 0
77     if ($i=="0") continue;
78   echo '<tr><td>';  
79   echo '<font color=green>'.$pcat.'/'.$pname.'</font>';   $row=explode("\n", $i);
80   echo '<td>';   foreach( $row as $x)
81   echo '<font color=blue> => [ '.$pver.'-'.$pbuild.' ] </font>';   {
82   echo '</td>';   //ignore empty rows
83   echo '</td></tr>';   //(the last one may empty)
84     if ($x=="") continue;
85    
86     $item=explode(",",trim($x));
87     $pcat=$item[0];
88     $pname=$item[1];
89     $pver=$item[2];
90     $pbuild=$item[3];
91    
92     echo '<tr><td>';
93     echo '<font color=green>'.$pcat.'/'.$pname.'</font>';
94     echo '<td>';
95     echo '<font color=blue> => [ '.$pver.'-'.$pbuild.' ] </font>';
96     echo '</td>';
97     echo '</td></tr>';
98     }
99     }
100   }   }
101   }   }
102   else echo 'No updates for client '.$client.' available.';   else echo 'No updates for client '.$client.' available.';
# Line 81  elseif($op=="update") Line 109  elseif($op=="update")
109   echo '<br>';   echo '<br>';
110   echo '<pre><div align=left class=left>';   echo '<pre><div align=left class=left>';
111    
112   sshdo('NOCOLORS=true /sbin/mage update', $ip);   @sshdo('NOCOLORS=true /sbin/mage update', $ip);
113    
114   echo '</div></pre>';   echo '</div></pre>';
115   echo '<script language="JavaScript">alert(\'Database-update successfully completed on client #'.$client.' .\')</script>';   echo '<script language="JavaScript">alert(\'Database-update successfully completed on client #'.$client.' .\')</script>';
# Line 93  elseif($op=="upgrade") Line 121  elseif($op=="upgrade")
121   echo '<pre><div align=left class=left>';   echo '<pre><div align=left class=left>';
122    
123   # check if /usr/sbin/update-alx exists, if not update mage-alx and alxconfig-alx first   # check if /usr/sbin/update-alx exists, if not update mage-alx and alxconfig-alx first
124   $err = sshdo('[ -x /usr/sbin/update-alx ]', $ip);   $err = @sshdo('[ -x /usr/sbin/update-alx ]', $ip);
125   if($err[0]!=0)   if($err[0]!=0)
126   {   {
127   echo '"update-alx" missing on client "'.$client.'". Updating mage and alxconfig-ng first ...<br>';   echo '"update-alx" missing on client "'.$client.'". Updating mage and alxconfig-ng first ...<br>';
128   sshdo('NOCOLORS=true mage install mage', $ip);   @sshdo('NOCOLORS=true mage install mage', $ip);
129   sshdo('NOCOLORS=true mage install alxconfig-ng', $ip);   @sshdo('NOCOLORS=true mage install alxconfig-ng', $ip);
130   }   }
131   $err = sshdo('NOCOLORS=true /usr/sbin/update-alx', $ip);   $err = @sshdo('NOCOLORS=true /usr/sbin/update-alx', $ip);
132   if ($err[0]!=0) echo '<script language="JavaScript">alert(\'Upgrade *failed* on client #'.$client.' .\')</script>';   if ($err[0]!=0) echo '<script language="JavaScript">alert(\'Upgrade *failed* on client #'.$client.' .\')</script>';
133   else echo '<script language="JavaScript">alert(\'Upgrade successfully installed on client #'.$client.' .\')</script>';   else echo '<script language="JavaScript">alert(\'Upgrade successfully installed on client #'.$client.' .\')</script>';
134   echo '</div></pre>';   echo '</div></pre>';
135  }  }
136  else echo 'unkown operation';  else echo 'unknown operation';
137  echo '</td></tr></table>';  echo '</td></tr></table>';
138    
139  ?>  ?>

Legend:
Removed from v.2197  
changed lines
  Added in v.3349