Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2420 - (show 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 <?
2
3 include('include/dbconn.php');
4 include('include/basesql.php');
5 include('include/common-functions.php');
6
7 echo '<table width=100% height=100% style="border:solid black 1px; background-color:#d5e5ff"><tr><td valign=middle align=center>';
8
9 ?>
10
11 <style type="text/css">
12 div.left { margin-left:20%; }
13 </style>
14
15 <?
16
17 function update_client_settings()
18 {
19 global $client;
20
21 // set verbose off
22 ssh_editvar('VERBOSE', 'off', '/etc/mage.rc');
23
24 // 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
29 // 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
34 // 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
38 // 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
42 // 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
47 // always update the client settings first
48 update_client_settings();
49
50 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 if (array_key_exists("0", $out))
57 {
58 foreach( $out as $i)
59 {
60 // element 0 is always 0
61 if ($i=="0") continue;
62
63 $item=explode(",",$i);
64 $pcat=$item[0];
65 $pname=$item[1];
66 $pver=$item[2];
67 $pbuild=$item[3];
68
69 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
87 sshdo('NOCOLORS=true /sbin/mage update', $ip);
88
89 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
98 # 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
114 ?>

Properties

Name Value
svn:executable *