#!/usr/bin/perl
-#$Id: machines.cgi,v 1.2 1999/09/30 05:38:29 tausq Exp $
+# $Id: machines.cgi,v 1.10 2001/12/03 05:02:13 rmurray Exp $
+
# (c) 1999 Randolph Chung. Licensed under the GPL. <tausq@debian.org>
use lib '.';
'distribution' => 'Distribution',
'access' => 'Access',
'sponsor' => 'Sponsor',
- 'sponsorurl' => 'Sponsor URL',
'sponsor-admin' => 'Sponsor admin',
'location' => 'Location',
'machine' => 'Processor',
'memory' => 'Memory',
'disk' => 'Disk space',
'bandwidth' => 'Bandwidth',
+ 'status' => 'Status',
'notes' => 'Notes',
+ 'sshrsahostkey' => 'SSH host key',
+ 'description' => 'Description',
'createtimestamp' => 'Entry created',
'modifytimestamp' => 'Entry modified'
);
# This defines what fields are displayed, and in what order
-@attrorder = ('hostname', 'admin', 'architecture', 'distribution', 'access',
- 'sponsor', 'sponsor-admin', 'location', 'machine', 'memory',
- 'disk', 'bandwidth', 'notes', 'createtimestamp', 'modifytimestamp');
+@attrorder = qw(hostname admin architecture distribution access
+ sponsor sponsor-admin location machine memory
+ disk bandwidth status notes sshrsahostkey
+ description createtimestamp modifytimestamp);
# ditto for summary
%summaryattrs = ('hostname' => 'Host name',
'host' => 'just for a link',
'architecture' => 'Architecture',
+ 'distribution' => 'Distribution',
+ 'status' => 'Status',
'access' => 'Access');
-@summaryorder = ('hostname', 'architecture', 'access');
+@summaryorder = ('hostname', 'architecture', 'distribution', 'status', 'access');
# Global settings...
my %config = &Util::ReadConfigFile;
$mesg->code && &Util::HTMLError($mesg->error);
$entries = $mesg->as_struct;
-foreach $dn (sort {$entries->{$a}->{host}->[0] <=> $entries->{$b}->{host}->[0]} keys(%$entries)) {
+foreach $dn (sort {$entries->{$a}->{host}->[0] cmp $entries->{$b}->{host}->[0]} keys(%$entries)) {
$data = $entries->{$dn};
my $thishost = $data->{host}->[0];
foreach $key (keys(%attrs)) {
$output{$key} = $data->{$key}->[0];
}
+
+ $output{hostname} = undef;
+ foreach my $hostname (@{$data->{hostname}}) {
+ $output{hostname} .= sprintf("%s%s", ($output{hostname} ? ', ' : ''), $hostname);
+ }
# Modified/created time. TODO: maybe add is the name of the creator/modifier
$output{modifytimestamp} = &Util::FormatTimestamp($output{modifytimestamp});
# Format email addresses
$output{admin} = sprintf("<a href=\"mailto:%s\">%s</a>", $output{admin}, $output{admin});
$output{'sponsor-admin'} = sprintf("<a href=\"mailto:%s\">%s</a>", $output{'sponsor-admin'}, $output{'sponsor-admin'});
+
+ $output{sshrsahostkey} = undef;
+ foreach $key (@{$data->{sshrsahostkey}}) {
+ $output{sshrsahostkey} .= $key . "<br>";
+ }
# URL
- $output{sponsor} = sprintf("<a href=\"%s\">%s</a>", $output{sponsorurl}, $output{sponsor});
+ my ($sponsor, $url) = undef;
+ $output{sponsor} = undef;
+ foreach $sponsor (@{$data->{sponsor}}) {
+ $sponsor =~ m#((http|ftp)://\S+)#i;
+ $url = $1;
+ $sponsor =~ s/$url//;
+ $output{sponsor} .= "<br>" if ($output{sponsor});
+ if ($url) {
+ $output{sponsor} .= sprintf("<a href=\"%s\">%s</a>", $url, $sponsor);
+ } else {
+ $output{sponsor} .= $sponsor;
+ }
+ }
$selected = " selected ";
}
$summary{$thishost}{$key} = $data->{$key}->[0];
}
- $summary{$thishost}{hostname} = sprintf("<a href=\"machines.cgi?host=%s\">%s</a>",
- $summary{$thishost}{host}, $summary{$thishost}{hostname});
+ $summary{$thishost}{hostname} = undef;
+ foreach my $hostname (@{$data->{hostname}}) {
+ $summary{$thishost}{hostname} .= sprintf("%s<a href=\"machines.cgi?host=%s\">%s</a>", ($summary{$thishost}{hostname} ? '<br>' : ''), $summary{$thishost}{host}, $hostname);
+ }
}
$ldap->unbind;
$hostdetails .= "<ul>\n";
foreach $key (@attrorder) {
if ($output{$key}) {
- $hostdetails .= "<li><b>$key:</b> $output{$key}\n";
+ $hostdetails .= "<li><b>$attrs{$key}:</b> $output{$key}\n";
}
}
$hostdetails .= "</ul>\n";
} else {
# display summary info
$hostdetails = "<h1>Summary</h1>\n";
- $hostdetails .= "<table border=1 width=90%>\n<th>";
+ $hostdetails .= "<table border=1 width=90%>\n<tr>";
foreach $key (@summaryorder) {
- $hostdetails .= "<td>$summaryattrs{$key}</td>";
+ $hostdetails .= "<th>$summaryattrs{$key}</th>";
}
- $hostdetails .= "</th>\n";
+ $hostdetails .= "</tr>\n";
foreach $host (sort(keys(%summary))) {
$hostdetails .= "<tr>";