]> git.ipfire.org Git - thirdparty/AWStats.git/commitdiff
Added clusterinfo plugin.
authoreldy <>
Fri, 11 Jun 2004 21:34:32 +0000 (21:34 +0000)
committereldy <>
Fri, 11 Jun 2004 21:34:32 +0000 (21:34 +0000)
docs/awstats_changelog.txt
wwwroot/cgi-bin/awstats.model.conf
wwwroot/cgi-bin/awstats.pl
wwwroot/cgi-bin/plugins/clusterinfo.pm [new file with mode: 0644]
wwwroot/cgi-bin/plugins/userinfo.pm

index 7973f7f42bc88f5ba91a29eddc477a4ad9f045c2..ad89ae8666c6d935a276682bdd449edce527f2a1 100644 (file)
@@ -5,19 +5,29 @@ $Revision$ - $Author$ - $Date$
 6.2\r
 \r
 New features/improvements:\r
-- New: awstats_updateall.pl: Added -excludeconf option\r
+- awstats_updateall.pl: Added -excludeconf option\r
+- Allow plugins to add entry in menu.\r
+- Allow plugins to add charts with its own way to compile data inside\r
+the update process.\r
+- maillogconvert.pl: Support postfix 2.1 that change its log\r
+format using NOQUEUE string instead of a number for mails rejected\r
+before being queued.\r
+- Added support for plugin geoip_region_maxmind (plugin not included\r
+in default distrib. You can download it from AWStats web site).\r
+- Little speed improvments.\r
 \r
 Fixes:\r
-- Fix not recognized %time3 tag in LogFormat\r
+- Fix not recognized %time3 tag in LogFormat. This tag allows to process\r
+all FTP xferlog file format.\r
 - Fix bad html generated with buildpdf option.\r
 - maillogconvert.pl: Added patch to work correctly with sendmail\r
 when recipient is redirected through a pipe.\r
 \r
 Other/Documentation:\r
-- Some changes to allow plugins to add new charts.\r
-- Better log message in plugins.\r
+- Better log messages in plugins.\r
 - Updated documentation.\r
 - Renamed configure.pl into awstats_configure.pl.\r
+- Reduce code size.\r
 \r
 \r
 6.1\r
index dde8bc3d1bce51f1c1e76c1b91cd284fd52ef276..6bc7653e52af195ffc5f2cb18bb3a24473498219 100644 (file)
@@ -1229,12 +1229,24 @@ color_x="C1B2E2"                                # Background color for number of exit pages (Default = "C1B2
 #
 #LoadPlugin="hostinfo"
 
+# Plugin: ClusterInfo
+# Perl modules required: None
+# Add a text (for example a full hostname) in cluster reports for each cluster
+# number.
+# A text file called clusterinfo.myconfig.txt, with two fields (first is
+# cluster number, second is text to show) separated by a tab char. must be
+# created into DirData directory.
+# Note this plugin is useless if ShowClusterStats is set to 0 or if you don't
+# use a personalized log format that contains %cluster tag.
+#
+#LoadPlugin="clusterinfo"
+
 # Plugin: UrlAliases
 # Perl modules required: None
 # Add a text (Page title, description...) in URL reports before URL value.
 # A text file called urlalias.myconfig.txt, with two fields (first is URL,
-# second is text to show, separated by a tab char) must be created in DirData
-# directory.
+# second is text to show, separated by a tab char) must be created into
+# DirData directory.
 #
 #LoadPlugin="urlalias"
 
index d58746c4eb20db62dc68d258a322ef4957775a6e..8edd780c2d3a8ba687c17f6a42219cc7f53c5ce6 100644 (file)
@@ -4711,6 +4711,22 @@ sub ShowUserInfo {
        }
 }
 
+#------------------------------------------------------------------------------
+# Function:     Write other cluster info (with help of plugin)
+# Parameters:   $clusternb
+# Input:        $SiteConfig
+# Output:       Cluster info
+# Return:       None
+#------------------------------------------------------------------------------
+sub ShowClusterInfo {
+       my $user=shift;
+       # Call to plugins' function ShowInfoCluster
+       foreach my $pluginname (keys %{$PluginsLoaded{'ShowInfoCluster'}})  {
+               my $function="ShowInfoCluster_$pluginname('$user')";
+               eval("$function");
+       }
+}
+
 #------------------------------------------------------------------------------
 # Function:     Write other host info (with help of plugin)
 # Parameters:   $host
@@ -10103,7 +10119,8 @@ if (scalar keys %HTMLOutput) {
                        print "$Center<a name=\"clusters\">&nbsp;</a><br />\n";
                        my $title="$Message[155]";
                        &tab_head("$title",19,0,'clusters');
-                       print "<tr bgcolor=\"#$color_TableBGRowTitle\"><th colspan=\"2\">$Message[155]</th>";
+                       print "<tr bgcolor=\"#$color_TableBGRowTitle\"><th>$Message[155]</th>";
+                       &ShowClusterInfo('__title__');
                        if ($ShowClusterStats =~ /P/i) { print "<th bgcolor=\"#$color_p\" width=\"80\">$Message[56]</th><th bgcolor=\"#$color_p\" width=\"80\">$Message[15]</th>"; }
                        if ($ShowClusterStats =~ /H/i) { print "<th bgcolor=\"#$color_h\" width=\"80\">$Message[57]</th><th bgcolor=\"#$color_h\" width=\"80\">$Message[15]</th>"; }
                        if ($ShowClusterStats =~ /B/i) { print "<th bgcolor=\"#$color_k\" width=\"80\">$Message[75]</th><th bgcolor=\"#$color_k\" width=\"80\">$Message[15]</th>"; }
@@ -10122,7 +10139,8 @@ if (scalar keys %HTMLOutput) {
                                my $p_h=int($_cluster_h{$key}/$total_h*1000)/10;
                                my $p_k=int($_cluster_k{$key}/$total_k*1000)/10;
                                print "<tr>";
-                               print "<td class=\"aws\" colspan=\"2\">Computer $key</td>";
+                               print "<td class=\"aws\">Computer $key</td>";
+                               &ShowClusterInfo($key);
                                if ($ShowClusterStats =~ /P/i) { print "<td>".($_cluster_p{$key}?$_cluster_p{$key}:"&nbsp;")."</td><td>$p_p %</td>"; }
                                if ($ShowClusterStats =~ /H/i) { print "<td>$_cluster_h{$key}</td><td>$p_h %</td>"; }
                                if ($ShowClusterStats =~ /B/i) { print "<td>".Format_Bytes($_cluster_k{$key})."</td><td>$p_k %</td>"; }
diff --git a/wwwroot/cgi-bin/plugins/clusterinfo.pm b/wwwroot/cgi-bin/plugins/clusterinfo.pm
new file mode 100644 (file)
index 0000000..aa5e2df
--- /dev/null
@@ -0,0 +1,103 @@
+#!/usr/bin/perl
+#-----------------------------------------------------------------------------
+# ClusterInfo AWStats plugin
+# This plugin allow you to add information on cluster chart from
+# a text file. Like full cluster hostname.
+# You must create a file called clusterinfo.configvalue.txt wich contains 2
+# columns separated by a tab char, and store it in DirData directory.
+# First column is cluster number and second column is text you want to add.
+#-----------------------------------------------------------------------------
+# Perl Required Modules: None
+#-----------------------------------------------------------------------------
+# $Revision$ - $Author$ - $Date$
+
+
+# <-----
+# ENTER HERE THE USE COMMAND FOR ALL REQUIRED PERL MODULES
+#if (!eval ('require "TheModule.pm";')) { return $@?"Error: $@":"Error: Need Perl module TheModule"; }
+# ----->
+use strict;no strict "refs";
+
+
+
+#-----------------------------------------------------------------------------
+# PLUGIN VARIABLES
+#-----------------------------------------------------------------------------
+# <-----
+# ENTER HERE THE MINIMUM AWSTATS VERSION REQUIRED BY YOUR PLUGIN
+# AND THE NAME OF ALL FUNCTIONS THE PLUGIN MANAGE.
+my $PluginNeedAWStatsVersion="6.2";
+my $PluginHooksFunctions="ShowInfoCluster";
+# ----->
+
+# <-----
+# IF YOUR PLUGIN NEED GLOBAL VARIABLES, THEY MUST BE DECLARED HERE.
+use vars qw/
+$clusterinfoloaded
+%ClusterInfo
+/;
+# ----->
+
+
+
+#-----------------------------------------------------------------------------
+# PLUGIN FUNCTION: Init_pluginname
+#-----------------------------------------------------------------------------
+sub Init_clusterinfo {
+       my $InitParams=shift;
+       my $checkversion=&Check_Plugin_Version($PluginNeedAWStatsVersion);
+
+       # <-----
+       # ENTER HERE CODE TO DO INIT PLUGIN ACTIONS
+       debug(" Plugin clusterinfo: InitParams=$InitParams",1);
+       $clusterinfoloaded=0;
+       %ClusterInfo=();
+       # ----->
+
+       return ($checkversion?$checkversion:"$PluginHooksFunctions");
+}
+
+
+
+#-----------------------------------------------------------------------------
+# PLUGIN FUNCTION: ShowInfoCluster_pluginname
+# UNIQUE: NO (Several plugins using this function can be loaded)
+# Function called to add additionnal columns to Cluster report.
+# This function is called when building rows of the report (One call for each
+# row). So it allows you to add a column in report, for example with code :
+#   print "<TD>This is a new cell</TD>";
+# Parameters: Cluster number
+#-----------------------------------------------------------------------------
+sub ShowInfoCluster_clusterinfo {
+       my $param="$_[0]";
+       # <-----
+       my $filetoload='';
+       if ($param && $param ne '__title__' && ! $clusterinfoloaded) {
+               # Load clusterinfo file
+               if ($SiteConfig && open(CLUSTERINFOFILE,"$DirData/clusterinfo.$SiteConfig.txt"))        { $filetoload="$DirData/clusterinfo.$SiteConfig.txt"; }
+               elsif (open(CLUSTERINFOFILE,"$DirData/clusterinfo.txt"))                                            { $filetoload="$DirData/clusterinfo.txt"; }
+               else { error("Couldn't open ClusterInfo file \"$DirData/clusterinfo.txt\": $!"); }
+               # This is the fastest way to load with regexp that I know
+               %ClusterInfo = map(/^([^\s]+)\s+(.+)/o,<CLUSTERINFOFILE>);
+               close CLUSTERINFOFILE;
+               debug(" Plugin clusterinfo: ClusterInfo file loaded: ".(scalar keys %ClusterInfo)." entries found.");
+               $clusterinfoloaded=1;
+       }
+       if ($param eq '__title__') {
+               print "<th>$Message[114]</th>";
+       }
+       elsif ($param) {
+               print "<td class=\"aws\">";
+               if ($ClusterInfo{$param}) { print "$ClusterInfo{$param}"; }
+               else { print "&nbsp;"; }        # Undefined cluster info
+               print "</td>";
+       }
+       else {
+               print "<td>&nbsp;</td>";
+       }
+       return 1;
+       # ----->
+}
+
+
+1;     # Do not remove this line
index 208f0b818df5067fd84c36a167f7c404a219cac4..7b848ab5aa4ecb024145b6b3ff633b8c9788a00f 100644 (file)
@@ -3,10 +3,10 @@
 # UserInfo AWStats plugin
 # This plugin allow you to add information on authenticated users chart from
 # a text file. Like full user name and lastname.
-# You must create a file called userinfo.configvalue.txt and store it in
-# plugin directory that contains 2 columns separated by a tab char.
-# First column is authenticated user login and second column is text
-# you want add.
+# You must create a file called userinfo.configvalue.txt wich contains 2
+# columns separated by a tab char, and store it in DirData directory.
+# First column is authenticated user login and second column is text you want
+# to add.
 #-----------------------------------------------------------------------------
 # Perl Required Modules: None
 #-----------------------------------------------------------------------------