Magellan Linux

Annotation of /alx-src/branches/alx-web-060/mageupgrade.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2420 - (hide annotations) (download)
Wed Jun 15 14:51:50 2011 UTC (12 years, 11 months ago) by niro
File size: 4455 byte(s)
-fixed "calc"
1 niro 1610 <?
2    
3 niro 2197 include('include/dbconn.php');
4     include('include/basesql.php');
5     include('include/common-functions.php');
6 niro 1610
7 niro 2197 echo '<table width=100% height=100% style="border:solid black 1px; background-color:#d5e5ff"><tr><td valign=middle align=center>';
8 niro 1610
9 niro 2197 ?>
10 niro 1610
11 niro 2197 <style type="text/css">
12     div.left { margin-left:20%; }
13     </style>
14 niro 1610
15 niro 2197 <?
16 niro 1610
17 niro 2197 function update_client_settings()
18     {
19     global $client;
20 niro 1610
21 niro 2197 // set verbose off
22     ssh_editvar('VERBOSE', 'off', '/etc/mage.rc');
23 niro 1629
24 niro 2197 // update rsync server location
25     $rsync = sqlfirst('select client_locations.rsync from client_serials inner join client_locations on client_locations.location=client_serials.location and client_serials.serial='.$client, 'rsync');
26     ssh_editvar('MAGE_RSYNC', $rsync, '/etc/alxconfig-ng/config.rc');
27     ssh_editvar('RSYNC', $rsync, '/etc/mage.rc');
28 niro 1629
29 niro 2197 // update repository server location
30     $repository = sqlfirst('select client_locations.repository from client_serials inner join client_locations on client_locations.location=client_serials.location and client_serials.serial='.$client, 'repository');
31     ssh_editvar('MAGE_MIRRORS', $repository, '/etc/alxconfig-ng/config.rc');
32     ssh_editvar('MIRRORS', $repository, '/etc/mage.rc');
33 niro 1629
34 niro 2197 // update samba update host
35     $updateserver = sqlfirst('select client_locations.updateserver from client_serials inner join client_locations on client_locations.location=client_serials.location and client_serials.serial='.$client, 'updateserver');
36     ssh_editvar('SMB_UPDATE_HOST', $updateserver, '/etc/alxconfig-ng/config.rc');
37 niro 1629
38 niro 2197 // update samba update user
39     $smbusername = sqlfirst('select client_locations.username from client_serials inner join client_locations on client_locations.location=client_serials.location and client_serials.serial='.$client, 'username');
40     ssh_editvar('SMB_UPDATE_USER', $smbusername, '/etc/alxconfig-ng/config.rc');
41 niro 1610
42 niro 2197 // update samba update password
43     $smbpassword = sqlfirst('select client_locations.password from client_serials inner join client_locations on client_locations.location=client_serials.location and client_serials.serial='.$client, 'password');
44     ssh_editvar('SMB_UPDATE_PASS', $smbpassword, '/etc/alxconfig-ng/config.rc');
45     }
46 niro 1610
47 niro 2197 // always update the client settings first
48     update_client_settings();
49 niro 1610
50 niro 2197 if($op=="calc")
51     {
52     echo '<img src="pics/online.gif" align=top> '.strtoupper('Fetching list of packages to upgrade on client #'.$client.' ('.$ip.')...<br>');
53     $out = sshdo('NOCOLORS=true /sbin/mage uppretend | egrep "\[.*\]" | sed "s:\[.*\]\ \(.*\):\1:" | sed "s:/:,:" | sed "s:\(.*\)-:\1,:" | sed "s:\(.*\)-:\1,:"', $ip);
54     echo '<pre>';
55     echo '<table border="0">';
56 niro 2420 if (array_key_exists("0", $out))
57 niro 2197 {
58 niro 2420 foreach( $out as $i)
59 niro 2197 {
60 niro 2420 // element 0 is always 0
61     if ($i=="0") continue;
62    
63 niro 2197 $item=explode(",",$i);
64     $pcat=$item[0];
65     $pname=$item[1];
66     $pver=$item[2];
67     $pbuild=$item[3];
68 niro 1610
69 niro 2197 echo '<tr><td>';
70     echo '<font color=green>'.$pcat.'/'.$pname.'</font>';
71     echo '<td>';
72     echo '<font color=blue> => [ '.$pver.'-'.$pbuild.' ] </font>';
73     echo '</td>';
74     echo '</td></tr>';
75     }
76     }
77     else echo 'No updates for client '.$client.' available.';
78     echo '</table>';
79     echo '</pre>';
80     }
81     elseif($op=="update")
82     {
83     echo '<img src="pics/online.gif" align=top> '.strtoupper('Fetching new mage database for client #'.$client.' ('.$ip.')...<br>');
84     echo '<br>';
85     echo '<pre><div align=left class=left>';
86 niro 1610
87 niro 2197 sshdo('NOCOLORS=true /sbin/mage update', $ip);
88 niro 1610
89 niro 2197 echo '</div></pre>';
90     echo '<script language="JavaScript">alert(\'Database-update successfully completed on client #'.$client.' .\')</script>';
91     }
92     elseif($op=="upgrade")
93     {
94     echo '<img src="pics/online.gif" align=top> '.strtoupper('Running update-alx on client #'.$client.' ('.$ip.')...<br>');
95     echo '<br>';
96     echo '<pre><div align=left class=left>';
97 niro 1610
98 niro 2197 # check if /usr/sbin/update-alx exists, if not update mage-alx and alxconfig-alx first
99     $err = sshdo('[ -x /usr/sbin/update-alx ]', $ip);
100     if($err[0]!=0)
101     {
102     echo '"update-alx" missing on client "'.$client.'". Updating mage and alxconfig-ng first ...<br>';
103     sshdo('NOCOLORS=true mage install mage', $ip);
104     sshdo('NOCOLORS=true mage install alxconfig-ng', $ip);
105     }
106     $err = sshdo('NOCOLORS=true /usr/sbin/update-alx', $ip);
107     if ($err[0]!=0) echo '<script language="JavaScript">alert(\'Upgrade *failed* on client #'.$client.' .\')</script>';
108     else echo '<script language="JavaScript">alert(\'Upgrade successfully installed on client #'.$client.' .\')</script>';
109     echo '</div></pre>';
110     }
111     else echo 'unkown operation';
112     echo '</td></tr></table>';
113 niro 1610
114     ?>

Properties

Name Value
svn:executable *