Contents of /alx-src/tags/alx-web-0_6_0/mageupgrade.php
Parent Directory | Revision Log
Revision 2197 -
(show annotations)
(download)
Tue Jun 7 18:27:24 2011 UTC (13 years, 3 months ago) by niro
Original Path: alx-src/branches/alx-web-060/mageupgrade.php
File size: 4406 byte(s)
Tue Jun 7 18:27:24 2011 UTC (13 years, 3 months ago) by niro
Original Path: alx-src/branches/alx-web-060/mageupgrade.php
File size: 4406 byte(s)
-fixed whitepaces -use sshdo() for all client actions
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[1])) |
57 | { |
58 | foreach( $out[1] as $i) |
59 | { |
60 | $item=explode(",",$i); |
61 | $pcat=$item[0]; |
62 | $pname=$item[1]; |
63 | $pver=$item[2]; |
64 | $pbuild=$item[3]; |
65 | |
66 | echo '<tr><td>'; |
67 | echo '<font color=green>'.$pcat.'/'.$pname.'</font>'; |
68 | echo '<td>'; |
69 | echo '<font color=blue> => [ '.$pver.'-'.$pbuild.' ] </font>'; |
70 | echo '</td>'; |
71 | echo '</td></tr>'; |
72 | } |
73 | } |
74 | else echo 'No updates for client '.$client.' available.'; |
75 | echo '</table>'; |
76 | echo '</pre>'; |
77 | } |
78 | elseif($op=="update") |
79 | { |
80 | echo '<img src="pics/online.gif" align=top> '.strtoupper('Fetching new mage database for client #'.$client.' ('.$ip.')...<br>'); |
81 | echo '<br>'; |
82 | echo '<pre><div align=left class=left>'; |
83 | |
84 | sshdo('NOCOLORS=true /sbin/mage update', $ip); |
85 | |
86 | echo '</div></pre>'; |
87 | echo '<script language="JavaScript">alert(\'Database-update successfully completed on client #'.$client.' .\')</script>'; |
88 | } |
89 | elseif($op=="upgrade") |
90 | { |
91 | echo '<img src="pics/online.gif" align=top> '.strtoupper('Running update-alx on client #'.$client.' ('.$ip.')...<br>'); |
92 | echo '<br>'; |
93 | echo '<pre><div align=left class=left>'; |
94 | |
95 | # check if /usr/sbin/update-alx exists, if not update mage-alx and alxconfig-alx first |
96 | $err = sshdo('[ -x /usr/sbin/update-alx ]', $ip); |
97 | if($err[0]!=0) |
98 | { |
99 | echo '"update-alx" missing on client "'.$client.'". Updating mage and alxconfig-ng first ...<br>'; |
100 | sshdo('NOCOLORS=true mage install mage', $ip); |
101 | sshdo('NOCOLORS=true mage install alxconfig-ng', $ip); |
102 | } |
103 | $err = sshdo('NOCOLORS=true /usr/sbin/update-alx', $ip); |
104 | if ($err[0]!=0) echo '<script language="JavaScript">alert(\'Upgrade *failed* on client #'.$client.' .\')</script>'; |
105 | else echo '<script language="JavaScript">alert(\'Upgrade successfully installed on client #'.$client.' .\')</script>'; |
106 | echo '</div></pre>'; |
107 | } |
108 | else echo 'unkown operation'; |
109 | echo '</td></tr></table>'; |
110 | |
111 | ?> |
Properties
Name | Value |
---|---|
svn:executable | * |