Removed /usr/local from CDPATH
[clearscm.git] / clearadm / vobservers.cgi
index ee82c81..a50487e 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!/usr/local/bin/perl
 
 =pod
 
@@ -51,7 +51,7 @@ use warnings;
 
 use FindBin;
 use Getopt::Long;
-use CGI qw (:standard :cgi-lib *table start_Tr end_Tr);
+use CGI qw(:standard :cgi-lib *table start_Tr end_Tr start_ol end_ol);
 use CGI::Carp 'fatalsToBrowser';
 
 use lib "$FindBin::Bin/lib", "$FindBin::Bin/../lib";
@@ -59,6 +59,8 @@ use lib "$FindBin::Bin/lib", "$FindBin::Bin/../lib";
 use ClearadmWeb;
 use Clearcase;
 use Clearcase::Server;
+use Clearcase::Vobs;
+use Clearcase::Vob;
 use Display;
 use Utils;
 
@@ -71,7 +73,69 @@ my $subtitle = 'Vob Servers';
 my $VERSION  = '$Revision: 1.9 $';
   ($VERSION) = ($VERSION =~ /\$Revision: (.*) /);
 
-sub DisplayTable (@) {
+sub DisplayVobs($) {
+  my ($server) = @_;
+
+  display h3 {
+    -class => 'center',
+  }, "Vobs on " . $server->name;
+
+  display start_table;
+
+  display start_Tr;
+    display th {
+      -class => 'labelCentered',
+      }, '#';
+    display th {
+    -class => 'labelCentered',
+      }, 'Tag';
+    display th {
+      -class => 'labelCentered',
+      }, 'Type';
+    display th {
+      -class => 'labelCentered',
+      }, 'Active';
+    display th {
+      -class => 'labelCentered',
+      }, 'Access Path';
+    display th {
+      -class => 'labelCentered',
+      }, 'Attributes';
+  display end_Tr;
+
+  my $i = 0;
+
+  my $vobs = Clearcase::Vobs->new($server->name);
+
+  for (sort $vobs->vobs) {
+    my $vob = Clearcase::Vob->new($_);
+
+    display start_Tr;
+      display td {
+        -class => 'dataCentered',
+      }, ++$i;
+      display td {
+        -class => 'data',
+      }, a {-href => "vobdetails.cgi?tag=" . $vob->tag}, $vob->tag;
+      display td {
+        -class => 'dataCentered',
+      }, $vob->access;
+      display td {
+        -class => 'dataCentered',
+      }, $vob->active;
+      display td {
+        -class => 'data',
+      }, $vob->access_path;
+      display td {
+        -class => 'data',
+      }, $vob->vob_registry_attributes;
+    display end_Tr;
+  } # for
+
+  display end_table;
+} # DisplayVob
+
+sub DisplayTable(@) {
   my (@vobServers) = @_;
 
   my $unknown = font {-class => 'unknown'}, 'Unknown';
@@ -94,44 +158,172 @@ sub DisplayTable (@) {
     display th {
       -class => 'labelCentered',
       }, 'OS Version';
+    display th {
+      -class => 'labelCentered',
+      }, 'Hardware';
+    display th {
+      -class => 'labelCentered',
+      }, 'Registry Host';
+    display th {
+      -class => 'labelCentered',
+      }, 'Region';
+    display th {
+      -class => 'labelCentered',
+      }, 'License Host';
   display end_Tr;
 
   my $i = 0;
 
-  foreach (@vobServers) {
-    my $server = Clearcase::Server->new ($_, $opts{region});
-
-    # Data fields
-    my $name  = $server->name;
-    my $ccVer = $server->ccVer;
-    my $osVer = $server->osVer;
+  my $server;
 
-    $ccVer ||= $unknown;
-    $osVer ||= $unknown;
+  for (@vobServers) {
+    $server = Clearcase::Server->new($_, $opts{region});
 
     display start_Tr;
       display td {
         -class => 'dataCentered',
       }, ++$i;
       display td {
-        -class   => 'data',
-      }, a {-href => "serverdetails.cgi?server=$name"}, $name;
+        -class   => 'dataCentered',
+      }, a {-href => "systemdetails.cgi?system=" . $server->name}, $server->name;
       display td {
-        -class => 'data',
-      }, $ccVer;
+        -class => 'dataCentered',
+      }, $server->ccVer;
       display td {
-        -class => 'data',
-      }, $osVer;
+        -class => 'dataCentered',
+      }, $server->osVer;
+      display td {
+        -class => 'dataCentered',
+      }, $server->hardware;
+      display td {
+        -class => 'dataCentered',
+      }, a {-href => "systemdetails.cgi?system=" . $server->registryHost}, $server->registryHost;
+      display td {
+        -class => 'dataCentered',
+      }, $server->registryRegion;
+      display td {
+        -class => 'dataCentered',
+      }, $server->licenseHost;
     display end_Tr;
-  } # foreach
 
-  display end_table;
+    display start_Tr;
+      display th {
+        -class => 'labelCentered',
+        }, 'MVFS';
+      display th {
+        -class => 'labelCentered',
+        }, 'Scaling';
+      display th {
+        -class => 'labelCentered',
+        }, 'Free Mnodes';
+      display th {
+        -class => 'labelCentered',
+        }, 'Free Mnodes Cleartext';
+      display th {
+        -class => 'labelCentered',
+        }, 'File names';
+      display th {
+        -class => 'labelCentered',
+        }, 'Directory names';
+      display th {
+        -class => 'labelCentered',
+        }, 'Blocks Per Directory';
+      display th {
+        -class => 'labelCentered',
+        }, 'Names not found';
+    display end_Tr;
+
+    display start_Tr;
+      display td {
+        -class => 'dataCentered',
+      }, ' ';
+      display td {
+        -class   => 'dataCentered',
+      }, $server->scalingFactor;
+      display td {
+        -class   => 'dataRight',
+      }, $server->mvfsFreeMnodes;
+      display td {
+        -class => 'dataRight',
+      }, $server->mvfsFreeMnodesCleartext;
+      display td {
+        -class => 'dataRight',
+      }, $server->mvfsFileNames;
+      display td {
+        -class => 'dataRight',
+      }, $server->mvfsDirectoryNames;
+      display td {
+        -class => 'dataRight',
+      }, $server->mvfsBlocksPerDirectory;
+      display td {
+        -class => 'dataRight',
+      }, $server->mvfsNamesNotFound;
+    display end_Tr;
+
+    display start_Tr;
+      display th {
+        -class => 'labelCentered',
+        }, 'RPC Handles';
+      display th {
+        -class => 'labelCentered',
+        }, 'Cleartext Idle Lifetime';
+      display th {
+        -class => 'labelCentered',
+        }, 'VOB HTS';
+      display th {
+        -class => 'labelCentered',
+        }, 'Cleartext HTS';
+      display th {
+        -class => 'labelCentered',
+        }, 'Thread HTS';
+      display th {
+        -class => 'labelCentered',
+        }, 'DNC HTS';
+      display th {
+        -class => 'labelCentered',
+        }, 'Process HTS';
+      display th {
+        -class => 'labelCentered',
+        }, 'Initial Mnode Table Size';
+    display end_Tr;
+
+    display start_Tr;
+      display td {
+        -class => 'dataRight',
+      }, $server->mvfsRPCHandles;
+      display td {
+        -class => 'dataRight',
+      }, $server->cleartextIdleLifetime;
+      display td {
+        -class   => 'dataRight',
+      }, $server->vobHashTableSize;
+      display td {
+        -class   => 'dataRight',
+      }, $server->cleartextHashTableSize;
+      display td {
+        -class => 'dataRight',
+      }, $server->threadHashTableSize;
+      display td {
+        -class => 'dataRight',
+      }, $server->dncHashTableSize;
+      display td {
+        -class => 'dataRight',
+      }, $server->processHashTableSize;
+      display td {
+        -class => 'dataRight',
+      }, $server->mvfsInitialMnodeTableSize;
+    display end_Tr;
+    display end_table;
+  } # for
   
+  display p;
+  DisplayVobs $server;
+
   return;
 } # DisplayTable
 
 # Main
-GetOptions (
+GetOptions(
   \%opts,
   'usage'        => sub { Usage },
   'verbose'      => sub { set_verbose },
@@ -153,18 +345,17 @@ my ($status, @output) = $Clearcase::CC->execute (
 );
 
 error "Unable to list all vobs in the region $opts{region}"
-    . join ("\n", @output), 1
-  if $status;
+    . join("\n", @output), 1 if $status;
 
 my %vobServers;
 
-foreach (@output) {
+for (@output) {
   if (/Server host: (.*)/) {
     $vobServers{$1} = undef;
   } # if
-} # foreach
+} # for
 
-DisplayTable sort (keys (%vobServers));
+DisplayTable sort(keys(%vobServers));
 
 footing;
 
@@ -205,11 +396,11 @@ L<Getopt::Long|Getopt::Long>
 =begin html
 
 <blockquote>
-<a href="http://clearscm.com/php/cvs_man.php?file=clearadm/lib/ClearadmWeb.pm">ClearadmWeb</a><br>
-<a href="http://clearscm.com/php/cvs_man.php?file=lib/Clearcase.pm">Clearcase</a><br>
-<a href="http://clearscm.com/php/cvs_man.php?file=lib/Clearcase/Server.pm">Clearcase::Server</a><br>
-<a href="http://clearscm.com/php/cvs_man.php?file=lib/Display.pm">Display</a><br>
-<a href="http://clearscm.com/php/cvs_man.php?file=lib/Utils.pm">Utils</a><br>
+<a href="http://clearscm.com/php/scm_man.php?file=clearadm/lib/ClearadmWeb.pm">ClearadmWeb</a><br>
+<a href="http://clearscm.com/php/scm_man.php?file=lib/Clearcase.pm">Clearcase</a><br>
+<a href="http://clearscm.com/php/scm_man.php?file=lib/Clearcase/Server.pm">Clearcase::Server</a><br>
+<a href="http://clearscm.com/php/scm_man.php?file=lib/Display.pm">Display</a><br>
+<a href="http://clearscm.com/php/scm_man.php?file=lib/Utils.pm">Utils</a><br>
 </blockquote>
 
 =end html
@@ -224,4 +415,4 @@ Please report problems to Andrew DeFaria <Andrew@ClearSCM.com>.
 
 Copyright (c) 2010, ClearSCM, Inc. All rights reserved.
 
-=cut
\ No newline at end of file
+=cut