Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2595 - (show annotations) (download)
Tue Jul 5 16:15:52 2011 UTC (12 years, 10 months ago) by niro
File size: 4877 byte(s)
-fixed print logic to be compat with all versions and honor crlfs
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 // 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
53 update_client_settings();
54
55 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>');
58
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', $ip);
64 }
65 echo '<pre>';
66 echo '<table border="0">';
67 if (array_key_exists("0", $out))
68 {
69 foreach( $out as $i)
70 {
71 // element 0 is always 0
72 if ($i=="0") continue;
73
74 $row=explode("\n", $i);
75 foreach( $row as $x)
76 {
77 //ignore empty rows
78 //(the last one may empty)
79 if ($x=="") continue;
80
81 $item=explode(",",trim($x));
82 $pcat=$item[0];
83 $pname=$item[1];
84 $pver=$item[2];
85 $pbuild=$item[3];
86
87 echo '<tr><td>';
88 echo '<font color=green>'.$pcat.'/'.$pname.'</font>';
89 echo '<td>';
90 echo '<font color=blue> => [ '.$pver.'-'.$pbuild.' ] </font>';
91 echo '</td>';
92 echo '</td></tr>';
93 }
94 }
95 }
96 else echo 'No updates for client '.$client.' available.';
97 echo '</table>';
98 echo '</pre>';
99 }
100 elseif($op=="update")
101 {
102 echo '<img src="pics/online.gif" align=top> '.strtoupper('Fetching new mage database for client #'.$client.' ('.$ip.')...<br>');
103 echo '<br>';
104 echo '<pre><div align=left class=left>';
105
106 sshdo('NOCOLORS=true /sbin/mage update', $ip);
107
108 echo '</div></pre>';
109 echo '<script language="JavaScript">alert(\'Database-update successfully completed on client #'.$client.' .\')</script>';
110 }
111 elseif($op=="upgrade")
112 {
113 echo '<img src="pics/online.gif" align=top> '.strtoupper('Running update-alx on client #'.$client.' ('.$ip.')...<br>');
114 echo '<br>';
115 echo '<pre><div align=left class=left>';
116
117 # check if /usr/sbin/update-alx exists, if not update mage-alx and alxconfig-alx first
118 $err = sshdo('[ -x /usr/sbin/update-alx ]', $ip);
119 if($err[0]!=0)
120 {
121 echo '"update-alx" missing on client "'.$client.'". Updating mage and alxconfig-ng first ...<br>';
122 sshdo('NOCOLORS=true mage install mage', $ip);
123 sshdo('NOCOLORS=true mage install alxconfig-ng', $ip);
124 }
125 $err = sshdo('NOCOLORS=true /usr/sbin/update-alx', $ip);
126 if ($err[0]!=0) echo '<script language="JavaScript">alert(\'Upgrade *failed* on client #'.$client.' .\')</script>';
127 else echo '<script language="JavaScript">alert(\'Upgrade successfully installed on client #'.$client.' .\')</script>';
128 echo '</div></pre>';
129 }
130 else echo 'unkown operation';
131 echo '</td></tr></table>';
132
133 ?>

Properties

Name Value
svn:executable *