# -----------------------------------------------------------------------
# © Copyright 2003-2006 by Alex Peeters [alex.peeters@citap.be]
# -----------------------------------------------------------------------

# General - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Author       : Alex Peeters [alex.peeters@citap.be]
Latest update: xx xxx 2006
Version      : 3.000.012


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# general - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Version 3.000.012, 2006/xx/xx, Central and Distributed support
                               - added common variable TYPEMONITORING to Asnmtap.cnf
                               fixRights.sh
                               - updated: script om rechten (chmod en chown) te zetten
                               Makefile.PL
                               - version update CPAN 1.8802 & CPANPLUS 0.076
                               - version update ExtUtils::MakeMaker 6.31
                               - version update Module::AutoInstall 1.03
                               - version update Bundle::DBI 1.53
                               - version update CGI 3.25
                               - version update Compress::Zlib 2.001
                               - version update Config::General 2.31
                               - version update Config::General::Interpolated 2.07
                               - version update Crypt::OpenSSL::RSA 0.24
                               - version update Cwd 3.23
                               - version update Data::Dumper 2.121
                               - version update DateTime 0.35
                               - version update DateTime::Format::W3CDTF 0.04
                               - version update Device::Modem 1.47
                               - version update Digest::MD5 2.36
                               - version update Email::Simple 1.995
                               - version update Getopt::Long 2.35
                               - version update IO 1.23
                               - NEW IO::Socket::SSL 1.01
                               - version update MIME::Tools 5.420
                               - version update NetAddr::IP 4.004
                               - version update Net::FTP 2.75
                               - version update Net::Ifconfig::Wrapper 0.09
                               - NEW Net::SSLeay 1.30
                               - version update Proc::ProcessTable 0.41
                               - version update Sys::Hostname::Long 1.4
                               - NEW Test::Pod::Coverage 1.08
                               - version update Test::Simple 0.47
                               - version update Time::HiRes 1.94
                               - version update Time::Local 1.13
                               - version update XML::LibXML 1.61
                               - version update XML::Simple 2.16
                               - install 'ASNMTAP' with make install
                                 PM - This hash will contain a list of all ASNMTAP files
                               MANIFEST.SKIP
                               - A file full of regular expressions to exclude when using 'make manifest' to generate the MANIFEST.
                               - used by 'make manifest' to build the file MANIFEST
                               - also used by 'make skipcheck' & 'make distcheck'
                               Shared PERL & SSL support
                               - added environment variable PERL5LIB, MANPATH & LD_LIBRARY_PATH to Asnmtap.cnf
                               Windows Internet Explorer 7.0
                               - tested and did look OK
                               ASNMTAP::Asnmtap
                               - replace `::VERSION = 3.000.xxx` with `::VERSION = do { my @r = (q$Revision: 3.000.012$ =~ /\d+/g); sprintf "%d."."%03d" x $#r, @r };`
                               - replace `my $version = '3.000.xxx'` with `my $version = do { my @r = (q$Revision: 3.000.012$ =~ /\d+/g); sprintf "%d."."%03d" x $#r, @r };`
                               ASNMTAP::Asnmtap::Applications
                               - NEW purge_table.pl
                               - add Environment after the Plugin Titles
                               - add our %ENVIRONMENT = ('P'=>'Production', 'S'=>'Simulation', 'A'=>'Acceptation', 'T'=>'Test', 'D'=>'Development', 'L'=>'Local');
                               - used into display.pl, comments.pl, contact.pl, getHelpPlugin.pl, info.pl, perfparse.pl, runCmdOnDemand.pl & users.pl
                               - Applications.pod updated regarding 'perl Makefile.PL INSTALL_BASE=/opt/asnmtap/cpan-shared'
                               ASNMTAP::Asnmtap::Plugins
                               - Bugfix: replace: _programGetOptions  => [..., 'password|passwd|p=s', ...],
                                         with   : _programGetOptions  => [..., 'password|p|passwd=s', ...],
                               - Bugfix: replace: push ( @{ $_[0]->{_programGetOptions} }, 'status|S:s', 'asnmtapEnv|A:s', 'onDemand|O:s', 'logging|L:s', 'debugfile|dumphttp|httpdump|D:s', 'debug|d:s' );
                                         with   : push ( @{ $_[0]->{_programGetOptions} }, 'status|S:s', 'asnmtapEnv|A:s', 'onDemand|O:s', 'logging|L:s', 'debugfile|D|dumphttp|httpdump:s', 'debug|d:s' );
                               - check_memory-top.pl, now also Solaris 10 compatible
                               - Bugfix: '<environment>PROD</environment>' into check_template-mail-xml.pl & check_template-mail-xml-fingerprint-xml.pl
                               - replaced 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; ASNMTAP; U;' with 'Mozilla/4.7 (compatible; ASNMTAP; U;'
                               - NEW $ENV{HTTPS_VERSION} for v2, v3 and v23
                               ASNMTAP::Asnmtap::Plugins::Nagios
                               - NEW check_nagios-comments-cleanup.pl
                               - NEW EPN (Embedded Perl Nagios) compatible
                               ASNMTAP::Asnmtap::Plugins::NPTest
                               - upgrade van version NPTest v1.11 to v1.13
                               - replace NPTest->testCmd with ASNMTAP::Asnmtap::Plugins::NPTest->testCmd
                               ASNMTAP::Asnmtap::Plugins::SOAP
                               - add $SOAP::Constants::PATCH_HTTP_KEEPALIVE
                               - add ws-security through WSRF::Lite
                               ASNMTAP::Asnmtap::Plugins::WebTransact
                               - based on 'Nagios::WebTransact' v0.14.1 & v0.16 from Stanley Hopcroft [Stanley.Hopcroft@IPAustralia.Gov.AU]
             ATTENTION   -->   asnmtap-3.000.012.sql
                               - NEW table `environment`
                               - add `userPassword` varchar(15) NOT NULL default '' at table reports
                               - remove `reportTitle` varchar(100) NOT NULL default '' from table reports
                               - add `downtimeScheduling` tinyint(1) NOT NULL default '1' and `generatedReports` tinyint(1) NOT NULL default '0' at table users
                               Bugfix Popup Calendar
                               - replace document.forms[0].endDate with document.forms[1].endDate
                               collector.pl
                               - add automatically the environment at the end off the title
                               collector.pl & display.pl
                               - update atime and mtime from the PID file every timeslot
                               - email message for started, stopped & reloaded
                               collectorCrontabSchedulingReports.pl & collectorDaemonSchedulingReports.pl
                               - show only the Plugins regarding correspondending server
                               comments.pl & holidayBundleSetDowntimes.pl
                               - Sending email for: Downtime Scheduling
                               detailedStatisticsReportGenerationAndCompareResponsetimeTrends.pl
                               - Problem details: link to the correspondending 'Debug Report' when 'Format Output' equals 'HTML'
                               detailedStatisticsReportGenerationAndCompareResponsetimeTrends.pl, generateChart.pl & trendlineCorrectionReports.pl
                               - replace round(avg(duration), 2) with round(avg(time_to_sec(duration)), 2) because of wrong averages
                               display.pl
                               - possibility for sound on/off
                               - onderdrukking ledige groepen in full view
                               - vermelden op welke probe een test wordt uitgevoerd
                               - onderdrukken niet persistent downtimes in condenced view
                               - mask password for '--dnPass=', used by check_template-ldap.pl
                               - environment icons, exclaim popup window for plugins and comments
                               - 'In Progress'-animated icon replaced with 'In Progress'-static icon for faster display!
                               - de debugrapporten onderaan de view enkel aanklikbaar maken als de file via rsync al aanwezig is op het moment van de display generatie, ter voorkoming van 404 errors.
                               - add console messages: 'No Monitored Applications', 'All Monitored Applications are OK', '..., probably collector/config problems!' & , '..., probably database problems!'
                               displayDaemons.pl
                               - add 'ServerID' into general view
                               detailedStatisticsReportGenerationAndCompareResponsetimeTrends.pl
                               - add a checkbox, to choose output destination: HTML/PDF 
                               getArchivedReport.pl & getArchivedResults.pl
                               - YYYY/MM/DD notatie met voorloopnullen voor maand en dag
                               generateConfig.pl
                               - check for 'help plugin filenames' without plugin reference
                               - check for plugins without or with missing 'help plugin filename'
                               - looking after existing plugins that are not defined into the database plugins
                               - verify that the defined plugins into the table plugins, exists and are executable
                               - generate automatic the Rsync Mirror Distributed & Failover Scripts / Collector Daemon
                               generateReports.pl
             ATTENTION   -->   - tested with HTMLDOC v1.8.27 and added --user-password password support
                               - een plugin die disabled is waarvoor een rapport gevraagd wordt niet uitvoeren
                               - specify F for --daysAfter means that the specified date will be used as the reportdate
                               generateReports.pl & generateCollectorDaemonSchedulingReports.pl
                               - ... already generated / will be generated
                               - ... generated / generation failed
                               generatedReports.pl, plugins & reports.pl
                               - remove 'reportTitle'
                               get_ArchivedReport.pl & get_ArchivedResults.pl
                               - replace 'Week #' with 'Week # from monday off week until sunday off week'
                               plugins.pl
                               - upload for Help Plugin Filename (PDF)
                               - controle op '{}' bij ingeven van de value voor het veld 'Title:'
                               pluginCrontabSchedulingReports.pl
                               - show only the Plugins regarding correspondending server
                               removeModulePerl.pl
                               - NEW
                               rsync-mirror-*.sh
                               - replace: rsync -e "ssh -i $KeyRsync" -a $Delete $AdditionalParams $Source $Target
                                 with: ssh=<sshpath>; $Rsync -e "$ssh -i $KeyRsync" -a $Delete $AdditionalParams $Source $Target
                               runCmdOnDemand.pl
                               - mask password for '--dnPass=', used by check_template-ldap.pl
                               runStatusOnDemand.pl
                               - bugfix: 'Command: not found.' must be 'No Display|Collector daemons defined'
                               trendlineCorrectionReports.pl
                               - show only the Plugins regarding correspondending server and order by Title
                               user.pl
                               - Sending email for: Downtime Scheduling & Generated Reports


Version 3.000.011, 2006/09/16, ASNMTAP::Asnmtap::Applications
                               - add `environment` char(1) NOT NULL default 'L' to TABLE `plugins`
                               display.pl, plugins.pl & generateConfig.pl
                               - add environment
                               collector.pl
                               - add $perfParseMethode
                               - NEW perfparse_asnmtap_pulp_command.pl
                               - NEW perfparse_crontab.sh
                               generateConfig.pl
                               - bugfix: added activated = 1 to all sql queries
                               Makefile.pl
                               - update SOAP::Lite to version 0.69
                               - update MIME::Base64 to version 3.07
                               ASNMTAP::Asnmtap::Plugins::SOAP
                               - bugfix: replaced 'defined $som->fault' with 'defined $som and defined $som->fault'
                               ASNMTAP::Asnmtap::Plugins::Nagios
                               - NEW check_iowait.pl
                               - NEW check_snmptt_traps.pl


Version 3.000.010, 2006/07/15, Trendline Correction Reports (for the Collector)
                               - add /cgi-bin/moderator/trendlineCorrectionReports.pl
                               Application.pod
                               - using CPAN with a non-root account for ASNMTAP
                               - install procedure updated for Linux and Solaris
                               - perl cpan module version and install procedure updates
                               archiver.pl
                               - bugfix regarding debug mode and wrong use of EMAILREPORT
                               comments.pl
                               - add $givenNameLoggedOn & $familyNameLoggedOn to email message
                               display.pl
                               - make openPngImage firefox size compatible
                               fixRights.sh
                               - add ASNMTAPUSER=asnmtap
                               generateCollectorCrontabSchedulingReport.pl & generateCollectorDaemonSchedulingReport.pl
                               - bugfix when ! defined $numberOfLabels
                               generateConfig.pl
                               - bugfix removed '/etc' from 'servername:/asnmtap-3.000.xxx/applications/master/etc/CollectorCT-...sh reload'
                               holidayBundleSetDowntimes.pl
                               - add Administrator to email message
                               Makefile.PL
                               - add Proc::ProcessTable to CGI perl prerequisites list
                               plugins.pl
                               - add fields percentage and tolerance

							   ASNMTAP::Asnmtap::Plugins
                               - replaced 'Mozilla/5.0 (compatible; MSIE 6.0;' with 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1;'

                                 De XP-versie als                     'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)'
                                 De plusversie kan worden herkend als 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)'

                               asnmtap-3.000.010.sql
                                 CREATE TABLE `plugins` (
                                   ...
                                   `trendline` smallint(6) NOT NULL default '0',
                                 + `percentage` tinyint(1) NOT NULL default '25',
                                 + `tolerance` tinyint(1) NOT NULL default '5',
                                   `step` smallint(6) NOT NULL default '0',
                                   ...


Version 3.000.009, 2006/06/01, ASNMTAP::Asnmtap::Plugins::WebTransact
                               - RFC 1738 optimalisations
                               - add '500 SSL negotiation failed'
                               - add Perfdata_Label => 'IMAGE URL' to _download_images()
                               ASNMTAP::Asnmtap::Applications
                               - email SUBJECT changed to Display/Collector for the 'Application Monitoring'@HOSTNAME: ...
                               NPTest, v1.11
                               - Will die if signal received from a testCmd
                               archiver.pl
                               - bugfix: First day current week epoch date
                               command.pl
                               - bugfix regarding date.utc() - The month (0=Jan - 11=Dec)
                                 - replaced 'suspentionDate.substring(5, 7);' with 'suspentionDate.substring(5, 7) - 1;'
                               generateCollectorDaemonSchedulingReports.pl
                               - NEW, generating automatically Collector Daemon Scheduling PDF Reports
                               - http://asnmtap.citap.be/results/_ASNMTAP/reports/yyyymmdd-collectorDaemonSchedulingReports.pl-_ASNMTAP-FQDN-Daily.pdf
                               database asnmtap, table plugins and crontab
                               - `arguments` from varchar(100) to varchar(254)
                               - `argumentsOndemand` from varchar(100) to varchar(254)


Version 3.000.008, 2006/05/01, ASNMTAP::Asnmtap::Plugins::Mail
                               - add 7bit mime decoding
                               ASNMTAP::Asnmtap::Plugins::WebTransact
                               - making W3C XHTML compatible
                               - add gzip decompression
                               - add Keep-Alive support for HTTP/1.1
                               - add protocol
                               - indent_level depricated
                               generateChart.pl
                               - bugfix missing title chart
                               - bugfix missing mkdir etc for distributed systems
                               runCmdOnDemand.pl
                               - making W3C XHTML compatible


Version 3.000.007, 2006/04/09, bugfix for Applications.cnf
                               ASNMTAP::Asnmtap::Plugins::WebTransact
                               - bugfix for _download_images
                               ASNMTAP::Asnmtap::Plugins::WebTransact
                               - add IMAP4 support                             

							   
Version 3.000.006, 2006/03/18, ASNMTAP CPAN module ASNMTAP::Asnmtap::Plugins::IO
                               ASNMTAP CPAN module ASNMTAP::Asnmtap::Applications
                               ASNMTAP CPAN module ASNMTAP::Asnmtap::Applications::CGI
                               ASNMTAP CPAN module ASNMTAP::Asnmtap::Applications::Display
                               ASNMTAP CPAN module ASNMTAP::Asnmtap::Applications::Collector

ASNMTAP::Asnmtap::Plugins::Mail
- Mail::POP3Client instead of Net::POP3
  replace $pop3->delete with $pop3->Delete in your mail scripts!!!
- MIME::Tools

Asnmtap plugins added:
- check_file-counter.pl
- check_template-mail.pl
- check_template-mail-fingerprint-xml.pl
- check_template-mail-xml-fingerprint-xml.pl
- check_template-mail-xml-fingerprint-xml-monitoring.pl
- check_template-mail-xml.pl
- check_sendAndReceiveMail.pl

Nagios plugins added:
- check_iowait.pl
- check_memory-free.pl
- check_memory-top.pl
- check_nagios-comments-cleanup.pl
- check_snmptt_traps.pl
- check_swap.pl
- check_swap-allocated.pl

Getopt::Long::Configure ('bundling', 'pass_through')
- 'pass_through' added

Tested on:
- Cygwin
- Solaris 2.8-2.9
- Freebsd 6.1
- Linux 2.4.21-37.EL (Centos 3.x)
- Linux 2.6.9-22.0.2.EL (Centos 4.x)


Version 3.000.005, 2006/02/26

- check_MySQL-database-replication.pl (MySQL database replication)
  - Bit::Vector 6.3
  - Date::Calc 5.4
  - Bundle::DBI
  - Bundle::DBD::mysql

- ASNMTAP::Time
  - Date::Calc instead of unix data command

- Making ASNMTAP CPAN module perl 5.8.0, 5.8.5 and 5.8.6 compatible

  For perl versions before 5.8.5, then you must change into Asnmtap.cnf from 'CAPTUREOUTPUT 1' to 'CAPTUREOUTPUT 0' !!!

- ASNMTAP::Asnmtap::getOptionsType() added

- ASNMTAP CPAN module ASNMTAP::Asnmtap::Plugins::Modem added

  All    : IO::Handle 1.20
           Device::Modem 1.43

  Linux or some kind of unix machine:
           Device::SerialPort 1.002
           Net::Ifconfig::Wrapper 0.05

  Windows: Win32::SerialPort 0.19
           Win32::API 0.41
           Win32::RASE 1.01


Version 3.000.004, 2006/02/12, ASNMTAP CPAN module ASNMTAP::Asnmtap::Plugins::Mail added

Making ASNMTAP CPAN module perl 5.8.5 and 5.8.6 compatible

Tested on:
- Cygwin
- Solaris 5.9
- Linux 2.4.21-37.EL (Centos 3.x)
- Linux 2.6.9-22.0.2.EL (Centos 4.x)

Makefile.PL
- many dependencies checks added


Version 3.000.003, 2006/02/03, ASNMTAP CPAN module

This ASNMTAP CPAN library and Plugin templates are free software; you can 
redistribute it and/or modify it under the same terms as Perl itself.

The other parts of ASNMTAP may be used and modified free of charge by anyone
so long as this copyright notice and the comments above remain intact. By 
using this code you agree to indemnify Alex Peeters from any liability that 
might arise from it's use.

Selling the code for this program without prior written consent is expressly 
forbidden. In other words, please ask first before you try and make money off 
of my program.

Obtain permission before redistributing this software over the Internet or
in any other medium. In all cases copyright and header must remain intact.


Version 3.000.002, 2006/01/08, we actually started a total rewrite into Object Oriented Perl: ASNMTAP Package Object Oriented Perl

package ASNMTAP::Asnmtap
package ASNMTAP::Asnmtap::Time

package ASNMTAP::Asnmtap::Plugins
package ASNMTAP::Asnmtap::Plugins::Mail
package ASNMTAP::Asnmtap::Plugins::Modem
package ASNMTAP::Asnmtap::Plugins::Nagios
package ASNMTAP::Asnmtap::Plugins::SOAP
package ASNMTAP::Asnmtap::Plugins::WebTransact
package ASNMTAP::Asnmtap::Plugins::XML

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Version 3.000.001, 2006/01/01, we actually started a total rewrite of v2.002.000: ASNMTAP Package

package ASNMTAP::Asnmtap
package ASNMTAP::Asnmtap::Time

package ASNMTAP::Asnmtap::Applications
package ASNMTAP::Asnmtap::Applications::CGI
package ASNMTAP::Asnmtap::Applications::Display
package ASNMTAP::Asnmtap::Applications::Collector

package ASNMTAP::Asnmtap::Plugins
package ASNMTAP::Asnmtap::Plugins::Nagios
package ASNMTAP::Asnmtap::Plugins::WebTransact

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Version 2.000.000 - 2.002.000, 2004/12/29 - 2005/12/31

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Version 1.xxx.xxx, 2003/08/16 - 2004/12/10

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -