File:
[LON-CAPA] /
loncom /
interface /
domainstatus.pm
Revision
1.7:
download - view:
text,
annotated -
select for diffs
Mon Mar 17 02:36:56 2014 UTC (10 years, 5 months ago) by
raeburn
Branches:
MAIN
CVS tags:
version_2_11_X,
version_2_11_5_msu,
version_2_11_5,
version_2_11_4_uiuc,
version_2_11_4_msu,
version_2_11_4,
version_2_11_3_uiuc,
version_2_11_3_msu,
version_2_11_3,
version_2_11_2_uiuc,
version_2_11_2_msu,
version_2_11_2_educog,
version_2_11_2,
version_2_11_1,
version_2_11_0_RC3,
version_2_11_0,
HEAD
- Add quotacheck.pl
- CGI script for use on a library server to display disk usage and quota
for course content uploaded directly to course/communities in the domain.
1: # The LearningOnline Network
2: # Generate a menu page containing links to server status pages accessible
3: # to user.
4: #
5: # $Id: domainstatus.pm,v 1.7 2014/03/17 02:36:56 raeburn Exp $
6: #
7: # Copyright Michigan State University Board of Trustees
8: #
9: # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
10: #
11: # LON-CAPA is free software; you can redistribute it and/or modify
12: # it under the terms of the GNU General Public License as published by
13: # the Free Software Foundation; either version 2 of the License, or
14: # (at your option) any later version.
15: #
16: # LON-CAPA is distributed in the hope that it will be useful,
17: # but WITHOUT ANY WARRANTY; without even the implied warranty of
18: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19: # GNU General Public License for more details.
20: #
21: # You should have received a copy of the GNU General Public License
22: # along with LON-CAPA; if not, write to the Free Software
23: # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24: #
25: # /home/httpd/html/adm/gpl.txt
26: #
27: # http://www.lon-capa.org/
28: #
29: #
30: package Apache::domainstatus;
31:
32: use strict;
33: use Apache::Constants qw(:common);
34: use Apache::lonnet;
35: use Apache::loncommon;
36: use Apache::lonhtmlcommon;
37: use Apache::lonlocal;
38: use LONCAPA::lonauthcgi;
39:
40: sub handler {
41: my $r = shift;
42: &Apache::loncommon::content_type($r,'text/html');
43: $r->send_http_header;
44: if ($r->header_only) {
45: return OK;
46: }
47:
48: &Apache::lonlocal::get_language_handle();
49: my $dom = &Apache::lonnet::default_login_domain();
50:
51: if (($env{'user.domain'} ne '') && ($env{'user.domain'} ne 'public')) {
52: $dom = $env{'user.domain'};
53: if ($env{'request.role.domain'} ne '') {
54: $dom = $env{'request.role.domain'};
55: }
56: }
57: my $domdesc = &Apache::lonnet::domain($dom,'description');
58:
59: my %candisplay;
60: my $titles = &LONCAPA::lonauthcgi::serverstatus_titles();
61: if (ref($titles) eq 'HASH') {
62: foreach my $page (keys(%{$titles})) {
63: if (&LONCAPA::lonauthcgi::can_view($page)) {
64: $candisplay{$page} = 'F';
65: } elsif (&LONCAPA::lonauthcgi::check_ipbased_access($page)) {
66: $candisplay{$page} = 'F';
67: }
68: }
69: }
70:
71: &Apache::lonhtmlcommon::clear_breadcrumbs();
72: &Apache::lonhtmlcommon::add_breadcrumb
73: ({href=>"/adm/domainstatus",
74: text=>"Server Status Information"});
75:
76: $r->print(&Apache::loncommon::start_page('Server Status').
77: &Apache::lonhtmlcommon::breadcrumbs('Server Status Information'));
78:
79: if (keys(%candisplay) > 0) {
80: $r->print('<h2>'.&mt('Server Utilities for Domain: [_1]','<i>'.$domdesc.'</i>').
81: '</h2>'.&print_status_menu(\%candisplay,$dom));
82: } else {
83: $r->print(
84: '<h2>'.&mt('No information available').'</h2>'
85: .'<p class="LC_warning">'
86: .&mt('Your current role and/or IP address does not have permission to display information about server status for servers in the domain: [_1].',
87: '<b>'.$domdesc.'</b> ('.$dom.')')
88: .'</p>'
89: );
90: }
91: $r->print(&Apache::loncommon::end_page());
92: return OK;
93: }
94:
95: sub print_status_menu {
96: my ($candisplay,$dom) = @_;
97: return '' if (ref($candisplay) ne 'HASH');
98: return &Apache::lonhtmlcommon::generate_menu(
99: &servermenu_items($candisplay,$dom));
100: }
101:
102: sub servermenu_items {
103: my ($candisplay,$dom) = @_;
104: my $titles = &LONCAPA::lonauthcgi::serverstatus_titles();
105: my $linknames = &serverstatus_links();
106: my @menu;
107: if ((ref($candisplay) eq 'HASH') && (ref($titles) eq 'HASH') &&
108: (ref($linknames) eq 'HASH')) {
109: @menu = ( {categorytitle => 'Status information',
110: items =>
111: [{
112: linktext => $linknames->{'userstatus'},
113: icon => '',
114: alttext => '',
115: #help => 'Domain_Coordination_Userstatus',
116: url => '/cgi-bin/userstatus.pl',
117: permission => $candisplay->{'userstatus'},
118: linktitle => $titles->{'userstatus'},
119: },
120: {
121: linktext => $linknames->{'lonstatus'},
122: icon => '',
123: alttext => '',
124: #help => 'Domain_Coordination_Connection_Status',
125: url => '/lon-status/',
126: permission => $candisplay->{'lonstatus'},
127: linktitle => $titles->{'lonstatus'},
128: },
129: {
130: linktext => $linknames->{'server-status'},
131: icon => '',
132: alttext => '',
133: #help => 'Domain_Coordination_Apache_Status',
134: url => '/server-status',
135: permission => $candisplay->{'server-status'},
136: linktitle => $titles->{'server-status'},
137: },
138: {
139: linktext => $linknames->{'clusterstatus'},
140: icon => '',
141: alttext => '',
142: #help => 'Domain_Coordination_Apache_Status',
143: url => '/cgi-bin/clusterstatus.pl',
144: permission => $candisplay->{'clusterstatus'},
145: linktitle => $titles->{'clusterstatus'},
146: },
147: {
148: linktext => $linknames->{'codeversions'},
149: icon => '',
150: alttext => '',
151: #help => 'Domain_Coordination_Code_Versions',
152: url => '/cgi-bin/lonversions.pl',
153: permission => $candisplay->{'codeversions'},
154: linktitle => $titles->{'codeversions'},
155: },
156: {
157: linktext => $linknames->{'checksums'},
158: icon => '',
159: alttext => '',
160: #help => 'Domain_Coordination_Code_Checksums',
161: url => '/cgi-bin/lonmodulecheck.pl',
162: permission => $candisplay->{'checksums'},
163: linktitle => $titles->{'checksums'},
164: },
165: {
166: linktext => $linknames->{'diskusage'},
167: icon => '',
168: alttext => '',
169: #help => 'Domain_Coordination_Disk_Usage',
170: url => '/cgi-bin/quotacheck.pl?domain='.$dom,
171: permission => $candisplay->{'diskusage'},
172: linktitle => $titles->{'diskusage'},
173: },
174: {
175: linktext => $linknames->{'uniquecodes'},
176: icon => '',
177: alttext => '',
178: #help => 'Domain_Coordination_Uniquecodes',
179: url => '/cgi-bin/listcodes.pl?domain='.$dom.'&format=html',
180: permission => $candisplay->{'uniquecodes'},
181: linktitle => $titles->{'uniquecodes'},
182: },
183: {
184: linktext => $linknames->{'showenv'},
185: icon => '',
186: alttext => '',
187: #help => 'Domain_Coordination_User_Environment',
188: url => '/adm/test',
189: permission => $candisplay->{'showenv'},
190: linktitle => $titles->{'showenv'},
191: }]},
192: {categorytitle => 'Server Actions',
193: items =>
194: [{
195: linktext => $linknames->{'loncron'},
196: icon => '',
197: alttext => '',
198: #help => 'Domain_Coordination_Connection_Reload',
199: url => '/cgi-bin/loncron.pl',
200: permission => $candisplay->{'loncron'},
201: linktitle => $titles->{'loncron'},
202: },
203: {
204: linktext => $linknames->{'takeoffline'},
205: icon => '',
206: alttext => '',
207: #help => 'Domain_Coordination_Server_Offline',
208: url => '/cgi-bin/takeoffline.pl',
209: permission => $candisplay->{'takeoffline'},
210: linktitle => $titles->{'takeoffline'},
211: },
212: {
213: linktext => $linknames->{'takeonline'},
214: icon => '',
215: alttext => '',
216: #help => 'Domain_Coordination_Server_Online',
217: url => '/cgi-bin/takeonline.pl',
218: permission => $candisplay->{'takeonline'},
219: linktitle => $titles->{'takeonline'},
220: }]},
221: {categorytitle => 'Metadata Information',
222: items =>
223: [{
224: linktext => $linknames->{'metadata_keywords'},
225: icon => '',
226: alttext => '',
227: #help => 'Domain_Coordination_Metadata_Keywords',
228: url => '/cgi-bin/metadata_keywords.pl',
229: permission => $candisplay->{'metadata_keywords'},
230: linktitle => $titles->{'metadata_keywords'},
231: },
232: {
233: linktext => $linknames->{'metadata_harvest'},
234: icon => '',
235: alttext => '',
236: #help => 'Domain_Coordination_Metadata_Harvest',
237: url => '/cgi-bin/metadata_harvest.pl',
238: permission => $candisplay->{'metadata_harvest'},
239: linktitle => $titles->{'metadata_harvest'},
240: }]},
241: );
242: }
243: return @menu;
244: }
245:
246: sub serverstatus_links {
247: my $linkname = {
248: 'userstatus' => 'User Sessions',
249: 'lonstatus' => 'Connection Status',
250: 'server-status' => 'Apache Server Status',
251: 'clusterstatus' => 'Domain Status',
252: 'codeversions' => 'LON-CAPA Modules',
253: 'checksums' => 'Check for LON-CAPA Module changes',
254: 'diskusage' => 'Display quotas and usage for Course/Community Content',
255: 'showenv' => 'User Environment for current log-in',
256: 'loncron' => 'Update Connections and Refresh Status Information',
257: 'uniquecodes' => "List Domain's Courses with Assigned Six Character codes",
258: 'takeoffline' => 'Replace log-in page with offline notice',
259: 'takeonline' => 'Replace offline notice with log-in page',
260: 'metadata_keywords' => 'Display Metadata Keywords',
261: 'metadata_harvest' => 'Harvest Metadata Keywords',
262: };
263: return $linkname;
264: }
265:
266: 1;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>