torrus-2.07/0000755000175000017510000000000012137523671010011 500000000000000torrus-2.07/INSTALL0000644000175000017510000002243211545711242010760 00000000000000Installation Instructions ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. (Caching is disabled by default to prevent problems with accidental use of stale cache files.) If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You only need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not support the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Here is a another example: /bin/bash ./configure CONFIG_SHELL=/bin/bash Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent configuration-related scripts to be executed by `/bin/bash'. `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of the options to `configure', and exit. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. torrus-2.07/xmlconfig/0000755000175000017510000000000012137523671011777 500000000000000torrus-2.07/xmlconfig/site-global.xml0000644000175000017510000000117711545711242014644 00000000000000 torrus-2.07/xmlconfig/Makefile.am0000644000175000017510000000626612036531634013761 00000000000000 # Copyright (C) 2002-2010 Stanislav Sinyagin # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # Stanislav Sinyagin # EXTRA_DIST = \ site-global.xml xmldir = $(distxmldir) dist_xml_DATA = defaults.xml snmp-defs.xml cdef-collector-defs.xml vendordir = $(distxmldir)/vendor dist_vendor_DATA = \ vendor/alteon.xml \ vendor/alu-timetra.xml \ vendor/apc.powernet.xml \ vendor/apc.ups.xml \ vendor/apple.ae.xml \ vendor/arbor_e.xml \ vendor/ascend.max.xml \ vendor/atmel.xml \ vendor/betternetworks.xml \ vendor/casa-cmts.xml \ vendor/cisco.firewall.xml \ vendor/cisco.generic.xml \ vendor/cisco.ios.xml \ vendor/cisco.ios.docsis.xml \ vendor/cisco.ios.mac-accounting.xml \ vendor/cisco.sce.xml \ vendor/cisco.vdsl-line.xml \ vendor/cisco.wlc.xml \ vendor/compaq.cim.xml \ vendor/comtechefdata.xml \ vendor/empire.systemedge.xml \ vendor/empire.systemedge.ntregperf.xml \ vendor/f5.bigip.xml \ vendor/foundry.xml \ vendor/ftos.xml \ vendor/jacarta.xml \ vendor/junos.xml \ vendor/hp.hpux.xml \ vendor/hp.procurve.xml \ vendor/liebert.xml \ vendor/microsoft.windows.xml \ vendor/motorola.bsr.xml \ vendor/netapp.filer.xml \ vendor/netbotz.xml \ vendor/netscreen.xml \ vendor/paradyne.xdsl.xml \ vendor/symmetricom.xml \ vendor/ucd.ucd-snmp.xml genericdir = $(distxmldir)/generic dist_generic_DATA = \ generic/collector-periods.xml \ generic/monitors.xml \ generic/rfc1628.ups.xml \ generic/rfc1697.rdbms.xml \ generic/rfc2662.adsl-line.xml \ generic/rfc2670.docsis-if.xml \ generic/rfc2790.host-resources.xml \ generic/rfc2863.if-mib.xml \ generic/rfc4319_hdsl2_shdsl_line.xml examplesdir = $(distxmldir)/examples dist_examples_DATA = \ examples/apc-ups.xml \ examples/ascend.max.xml \ examples/docsis-monitors.xml \ examples/generic-netsnmp.xml \ examples/hpux.xml \ examples/monitors.xml \ examples/multigraph.xml \ examples/rainbow-schema.xml \ examples/servers.data \ examples/servers.tmpl olddir = $(distxmldir)/old dist_old_DATA = \ old/cisco.generic.old-0.1.4.xml \ old/cisco.ios.mac-accounting-0.1.8.xml \ old/cisco-mac-accounting-example.xml \ old/rfc1213.xml \ old/rfc2670.docsis-if.old.0.1.5d-20040224.xml \ old/rfc2670.docsis-if.old.1.0.4.xml \ old/rfc2863.if-mib.old-0.1.4.xml \ old/rfc2863.if-mib.old-0.1.7.xml \ old/snmp-defs.old-0.1.2.xml install-data-local: $(mkinstalldirs) $(DESTDIR)$(sitexmldir) if test ! -r $(DESTDIR)$(sitexmldir)/site-global.xml; then \ $(INSTALL_DATA) site-global.xml \ $(DESTDIR)$(sitexmldir)/site-global.xml; \ fi torrus-2.07/xmlconfig/cdef-collector-defs.xml0000644000175000017510000000535511545711242016250 00000000000000 torrus-2.07/xmlconfig/examples/0000755000175000017510000000000012137523671013615 500000000000000torrus-2.07/xmlconfig/examples/multigraph.xml0000644000175000017510000000377311545711242016440 00000000000000 torrus-2.07/xmlconfig/examples/servers.data0000644000175000017510000000431611545711242016060 00000000000000[%# Example of using tpage for Torrus config generation. This is an example only. See User Guide for more details. Author: Christian Schnidrig Generate the XML configuration with tpage --define data=servers.data servers.tmpl >servers.xml %] [% servers = [ { name => 'torrus' type => 'Linux', location => 'Binz' description => 'Torrus (Front-end)' community => 'blabla', ram => 3000000000 numCpu => 2, disks => [ {name => '/', nickName => 'Root'} {name => '/var/snmpcollector/0', nickName => 'Collector_0'} {name => '/var/snmpcollector/1', nickName => 'Collector_1'} {name => '/var/snmpcollector/2', nickName => 'Collector_2'} {name => '/var/snmpcollector/3', nickName => 'Collector_3'} {name => '/var/snmpcollector/4', nickName => 'Collector_4'} ], nics => [ {name => 'eth0', nickName => 'nic', speed => 100000000} {name => 'eth1', nickName => 'local', speed => 1000000000} ] } { name => 'torrus2' type => 'Linux', location => 'Binz' description => 'Torrus (Collector)' community => 'blabla', ram => 3000000000 numCpu => 2, disks => [ {name => '/', nickName => 'Root'} {name => '/var/snmpcollector/5', nickName => 'Collector_5'} {name => '/var/snmpcollector/6', nickName => 'Collector_6'} {name => '/var/snmpcollector/7', nickName => 'Collector_7'} {name => '/var/snmpcollector/8', nickName => 'Collector_8'} {name => '/var/snmpcollector/9', nickName => 'Collector_9'} ], nics => [ {name => 'eth0', nickName => 'nic', speed => 100000000} {name => 'eth1', nickName => 'local', speed => 1000000000} ] } { name => 'someSolarisMachine', type => 'Solaris', location => 'Binz', description => 'Tacacs Server', community => 'blabla', ram => 224000000, numCpu => 1, disks => [ {name => '/', nickName => 'Root'} {name => '/log', nickName => 'Log'} ], nics => [ {name => 'le0', nickName => 'nic', speed => 100000000} ] } ] %] torrus-2.07/xmlconfig/examples/generic-netsnmp.xml0000644000175000017510000001326311545711242017355 00000000000000 /usr/local/torrus-data/generic/snmp/%system-id% Location: System Localtion ; Contact: System Contact torrus-2.07/xmlconfig/examples/hpux.xml0000644000175000017510000000635011545711242015242 00000000000000 Location: Rack 01; Contact: John Doe torrus-2.07/xmlconfig/examples/docsis-monitors.xml0000644000175000017510000003226412107464645017424 00000000000000 Signal/Noise-Ratio lower than 24dB Signal/Noise-Ratio lower than 22dB Signal/Noise-Ratio lower than 18dB DUP, {Error-Free},{Uncorrectable},+,+, /,100,*,DUP, 10,GT,EXC,20,LE,AND FEC correctable error rate more than 10% DUP, {Error-Free},{Uncorrectable},+,+, /,100,*,DUP, 20,GT,EXC,100,LE,AND FEC correctable error rate more than 20% DUP, {Error-Free},{Correctable},+,+, /,100,*,DUP, 0.5,GT,EXC,1,LE,AND FEC uncorrectable error rate more than 0.5% DUP, {Error-Free},{Correctable},+,+, /,100,*,DUP, 1,GT,2,EXC,LE,AND FEC uncorrectable error rate more than 1% DUP, {Error-Free},{Correctable},+,+, /,100,*,DUP, 2,GT,100,EXC,LE,AND FEC uncorrectable error rate more than 2% {TotalBytes},/,100,*, DUP, 75,GT,EXC,80,LE,AND DOCSIS downstream utilization more than 75% {TotalBytes},/,100,*, DUP, 80,GT,EXC,85,LE,AND DOCSIS downstream utilization more than 80% {TotalBytes},/,100,*, 85,GT DOCSIS downstream utilization more than 85% DUP, 75,GT,EXC,80,LE,AND DOCSIS upstream utilization more than 75% DUP, 80,GT,EXC,85,LE,AND DOCSIS upstream utilization more than 80% 85,GT DOCSIS upstream utilization more than 85% DUP, 17,LT,EXC,12,GE,AND free DOCSIS upstream minislots less than 17% DUP, 12,LT,EXC,7,GE,AND free DOCSIS upstream minislots less than 12% 7,LT free DOCSIS upstream minislots less than 7% {Modems_Total},/,100,*,10,LT, {Modems_Total},100,LT,AND Less than 10% of DOCSIS modems online on a low-loaded interface {Modems_Total},/,100,*, DUP, 50,LT,EXC,10,GE,AND, {Modems_Total},100,GE,AND Less than 50% of DOCSIS modems online {Modems_Total},/,100,*,10,LT, {Modems_Total},100,GE,AND Less than 10% of DOCSIS modems online {Packets_In},/,100,*,DUP, 10,GT,EXC,50,LE,AND Input packet errors more than 10% {Packets_In},/,100,*,DUP, 50,GT,EXC,100,LE,AND Input packet errors more than 50% {Packets_Out},/,100,*,DUP, 10,GT,EXC,50,LE,AND Output packet errors more than 10% {Packets_Out},/,100,*,DUP, 50,GT,EXC,100,LE,AND Output packet errors more than 50% torrus-2.07/xmlconfig/examples/rainbow-schema.xml0000644000175000017510000001551211545711242017155 00000000000000 torrus-2.07/xmlconfig/examples/apc-ups.xml0000644000175000017510000000356111545711242015627 00000000000000 Location: Chen's take-away, Duebendorf; Contact: Chen; Power consumer: Microwave oven torrus-2.07/xmlconfig/examples/monitors.xml0000644000175000017510000001070711545711242016131 00000000000000 echo `date '+%d-%b-%Y %H:%M:%S'` \ $TORRUS_MONITOR $TORRUS_EVENT $TORRUS_NODEPATH \ >> /tmp/torrus-events $TORRUS_HOME/bin/action_printemail | mail ssinyagin@yahoo.com #max,GT #min,LT {(LAST-300)},10,*,GT, {(LAST)},{(LAST-300)},10,/,LT, OR, {T@(LAST)},3600,+,NOW,GE, AND {(LAST-600)},-,ABS,10485760,GT, {T@(LAST)},3600,+,NOW,GE, AND graph-devel, report-file, snmptrap torrus-2.07/xmlconfig/examples/ascend.max.xml0000644000175000017510000000354611545711242016303 00000000000000 Location: Hardstrasse 235; Contact: GPS Technik AG, Zuercherstrasse 139, CH-8952 Schlieren torrus-2.07/xmlconfig/examples/servers.tmpl0000644000175000017510000000566311545711242016131 00000000000000 [% PROCESS $data %] [% FOREACH server = servers %] /ByName/[% server.name %]/ Description: [% server.description %] Location: [% server.location %] [% IF server.type == 'Linux'%] [% ELSE %] [% END %] [% SET precedence = 200 %] [% FOREACH disk = server.disks %] %system-id%_[%disk.nickName%].rrd [% SET precedence = precedence + 10 %] [% END %] [% FOREACH nic = server.nics %] [% SET precedence = precedence + 10 %] [% END %] [% END %] torrus-2.07/xmlconfig/Makefile.in0000644000175000017510000004507612137523664014002 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002-2010 Stanislav Sinyagin # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # Stanislav Sinyagin # VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = xmlconfig DIST_COMMON = $(dist_examples_DATA) $(dist_generic_DATA) \ $(dist_old_DATA) $(dist_vendor_DATA) $(dist_xml_DATA) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(genericdir)" \ "$(DESTDIR)$(olddir)" "$(DESTDIR)$(vendordir)" \ "$(DESTDIR)$(xmldir)" DATA = $(dist_examples_DATA) $(dist_generic_DATA) $(dist_old_DATA) \ $(dist_vendor_DATA) $(dist_xml_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ FIND = @FIND@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ KILL = @KILL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PERLCRITIC = @PERLCRITIC@ PERLINC = @PERLINC@ POD2MAN = @POD2MAN@ POD2TEXT = @POD2TEXT@ RM = @RM@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SLEEP = @SLEEP@ STRIP = @STRIP@ SU = @SU@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cachedir = @cachedir@ cfgdefdir = @cfgdefdir@ datadir = @datadir@ datarootdir = @datarootdir@ dbhome = @dbhome@ defrrddir = @defrrddir@ distxmldir = @distxmldir@ docdir = @docdir@ dvidir = @dvidir@ enable_pkgonly = @enable_pkgonly@ enable_varperm = @enable_varperm@ exec_prefix = @exec_prefix@ exmpdir = @exmpdir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ logdir = @logdir@ mandir = @mandir@ mansec_misc = @mansec_misc@ mansec_usercmd = @mansec_usercmd@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ perlithreads = @perlithreads@ perllibdir = @perllibdir@ perllibdirs = @perllibdirs@ piddir = @piddir@ pkgbindir = @pkgbindir@ pkgdocdir = @pkgdocdir@ pkghome = @pkghome@ plugdevdisccfgdir = @plugdevdisccfgdir@ pluginsdir = @pluginsdir@ plugtorruscfgdir = @plugtorruscfgdir@ plugwrapperdir = @plugwrapperdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ reportsdir = @reportsdir@ sbindir = @sbindir@ scriptsdir = @scriptsdir@ seslockdir = @seslockdir@ sesstordir = @sesstordir@ sharedstatedir = @sharedstatedir@ siteconfdir = @siteconfdir@ sitedir = @sitedir@ sitexmldir = @sitexmldir@ srcdir = @srcdir@ supdir = @supdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tmpldir = @tmpldir@ tmpluserdir = @tmpluserdir@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ torrus_user = @torrus_user@ var_group = @var_group@ var_mode = @var_mode@ var_user = @var_user@ varprefix = @varprefix@ webplaindir = @webplaindir@ webscriptsdir = @webscriptsdir@ wrapperdir = @wrapperdir@ EXTRA_DIST = \ site-global.xml xmldir = $(distxmldir) dist_xml_DATA = defaults.xml snmp-defs.xml cdef-collector-defs.xml vendordir = $(distxmldir)/vendor dist_vendor_DATA = \ vendor/alteon.xml \ vendor/alu-timetra.xml \ vendor/apc.powernet.xml \ vendor/apc.ups.xml \ vendor/apple.ae.xml \ vendor/arbor_e.xml \ vendor/ascend.max.xml \ vendor/atmel.xml \ vendor/betternetworks.xml \ vendor/casa-cmts.xml \ vendor/cisco.firewall.xml \ vendor/cisco.generic.xml \ vendor/cisco.ios.xml \ vendor/cisco.ios.docsis.xml \ vendor/cisco.ios.mac-accounting.xml \ vendor/cisco.sce.xml \ vendor/cisco.vdsl-line.xml \ vendor/cisco.wlc.xml \ vendor/compaq.cim.xml \ vendor/comtechefdata.xml \ vendor/empire.systemedge.xml \ vendor/empire.systemedge.ntregperf.xml \ vendor/f5.bigip.xml \ vendor/foundry.xml \ vendor/ftos.xml \ vendor/jacarta.xml \ vendor/junos.xml \ vendor/hp.hpux.xml \ vendor/hp.procurve.xml \ vendor/liebert.xml \ vendor/microsoft.windows.xml \ vendor/motorola.bsr.xml \ vendor/netapp.filer.xml \ vendor/netbotz.xml \ vendor/netscreen.xml \ vendor/paradyne.xdsl.xml \ vendor/symmetricom.xml \ vendor/ucd.ucd-snmp.xml genericdir = $(distxmldir)/generic dist_generic_DATA = \ generic/collector-periods.xml \ generic/monitors.xml \ generic/rfc1628.ups.xml \ generic/rfc1697.rdbms.xml \ generic/rfc2662.adsl-line.xml \ generic/rfc2670.docsis-if.xml \ generic/rfc2790.host-resources.xml \ generic/rfc2863.if-mib.xml \ generic/rfc4319_hdsl2_shdsl_line.xml examplesdir = $(distxmldir)/examples dist_examples_DATA = \ examples/apc-ups.xml \ examples/ascend.max.xml \ examples/docsis-monitors.xml \ examples/generic-netsnmp.xml \ examples/hpux.xml \ examples/monitors.xml \ examples/multigraph.xml \ examples/rainbow-schema.xml \ examples/servers.data \ examples/servers.tmpl olddir = $(distxmldir)/old dist_old_DATA = \ old/cisco.generic.old-0.1.4.xml \ old/cisco.ios.mac-accounting-0.1.8.xml \ old/cisco-mac-accounting-example.xml \ old/rfc1213.xml \ old/rfc2670.docsis-if.old.0.1.5d-20040224.xml \ old/rfc2670.docsis-if.old.1.0.4.xml \ old/rfc2863.if-mib.old-0.1.4.xml \ old/rfc2863.if-mib.old-0.1.7.xml \ old/snmp-defs.old-0.1.2.xml all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu xmlconfig/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu xmlconfig/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-dist_examplesDATA: $(dist_examples_DATA) @$(NORMAL_INSTALL) test -z "$(examplesdir)" || $(MKDIR_P) "$(DESTDIR)$(examplesdir)" @list='$(dist_examples_DATA)'; test -n "$(examplesdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(examplesdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(examplesdir)" || exit $$?; \ done uninstall-dist_examplesDATA: @$(NORMAL_UNINSTALL) @list='$(dist_examples_DATA)'; test -n "$(examplesdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(examplesdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(examplesdir)" && rm -f $$files install-dist_genericDATA: $(dist_generic_DATA) @$(NORMAL_INSTALL) test -z "$(genericdir)" || $(MKDIR_P) "$(DESTDIR)$(genericdir)" @list='$(dist_generic_DATA)'; test -n "$(genericdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(genericdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(genericdir)" || exit $$?; \ done uninstall-dist_genericDATA: @$(NORMAL_UNINSTALL) @list='$(dist_generic_DATA)'; test -n "$(genericdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(genericdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(genericdir)" && rm -f $$files install-dist_oldDATA: $(dist_old_DATA) @$(NORMAL_INSTALL) test -z "$(olddir)" || $(MKDIR_P) "$(DESTDIR)$(olddir)" @list='$(dist_old_DATA)'; test -n "$(olddir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(olddir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(olddir)" || exit $$?; \ done uninstall-dist_oldDATA: @$(NORMAL_UNINSTALL) @list='$(dist_old_DATA)'; test -n "$(olddir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(olddir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(olddir)" && rm -f $$files install-dist_vendorDATA: $(dist_vendor_DATA) @$(NORMAL_INSTALL) test -z "$(vendordir)" || $(MKDIR_P) "$(DESTDIR)$(vendordir)" @list='$(dist_vendor_DATA)'; test -n "$(vendordir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(vendordir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(vendordir)" || exit $$?; \ done uninstall-dist_vendorDATA: @$(NORMAL_UNINSTALL) @list='$(dist_vendor_DATA)'; test -n "$(vendordir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(vendordir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(vendordir)" && rm -f $$files install-dist_xmlDATA: $(dist_xml_DATA) @$(NORMAL_INSTALL) test -z "$(xmldir)" || $(MKDIR_P) "$(DESTDIR)$(xmldir)" @list='$(dist_xml_DATA)'; test -n "$(xmldir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(xmldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(xmldir)" || exit $$?; \ done uninstall-dist_xmlDATA: @$(NORMAL_UNINSTALL) @list='$(dist_xml_DATA)'; test -n "$(xmldir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(xmldir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(xmldir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(genericdir)" "$(DESTDIR)$(olddir)" "$(DESTDIR)$(vendordir)" "$(DESTDIR)$(xmldir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dist_examplesDATA \ install-dist_genericDATA install-dist_oldDATA \ install-dist_vendorDATA install-dist_xmlDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_examplesDATA uninstall-dist_genericDATA \ uninstall-dist_oldDATA uninstall-dist_vendorDATA \ uninstall-dist_xmlDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-data-local install-dist_examplesDATA \ install-dist_genericDATA install-dist_oldDATA \ install-dist_vendorDATA install-dist_xmlDATA install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-dist_examplesDATA uninstall-dist_genericDATA \ uninstall-dist_oldDATA uninstall-dist_vendorDATA \ uninstall-dist_xmlDATA install-data-local: $(mkinstalldirs) $(DESTDIR)$(sitexmldir) if test ! -r $(DESTDIR)$(sitexmldir)/site-global.xml; then \ $(INSTALL_DATA) site-global.xml \ $(DESTDIR)$(sitexmldir)/site-global.xml; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: torrus-2.07/xmlconfig/vendor/0000755000175000017510000000000012137523671013274 500000000000000torrus-2.07/xmlconfig/vendor/cisco.wlc.xml0000644000175000017510000000363711545711243015627 00000000000000 torrus-2.07/xmlconfig/vendor/netbotz.xml0000644000175000017510000001134511545711242015422 00000000000000 torrus-2.07/xmlconfig/vendor/ftos.xml0000644000175000017510000001502111545711243014704 00000000000000 torrus-2.07/xmlconfig/vendor/microsoft.windows.xml0000644000175000017510000006506312004057517017440 00000000000000 torrus-2.07/xmlconfig/vendor/arbor_e.xml0000644000175000017510000041571111545711243015354 00000000000000 torrus-2.07/xmlconfig/vendor/alu-timetra.xml0000644000175000017510000004423511545711243016166 00000000000000 torrus-2.07/xmlconfig/vendor/hp.hpux.xml0000644000175000017510000002603711545711242015333 00000000000000 torrus-2.07/xmlconfig/vendor/cisco.ios.docsis.xml0000644000175000017510000002566011545711243017117 00000000000000 torrus-2.07/xmlconfig/vendor/apc.ups.xml0000644000175000017510000001215211545711243015304 00000000000000 torrus-2.07/xmlconfig/vendor/jacarta.xml0000644000175000017510000000600211545711243015335 00000000000000 torrus-2.07/xmlconfig/vendor/ucd.ucd-snmp.xml0000644000175000017510000005375711545711243016253 00000000000000 torrus-2.07/xmlconfig/vendor/liebert.xml0000644000175000017510000004532111545711243015365 00000000000000 torrus-2.07/xmlconfig/vendor/atmel.xml0000644000175000017510000007507311545711242015047 00000000000000 torrus-2.07/xmlconfig/vendor/symmetricom.xml0000644000175000017510000000564411545711243016313 00000000000000 torrus-2.07/xmlconfig/vendor/netscreen.xml0000644000175000017510000001233511545711243015724 00000000000000 torrus-2.07/xmlconfig/vendor/paradyne.xdsl.xml0000644000175000017510000001413511545711243016512 00000000000000 torrus-2.07/xmlconfig/vendor/junos.xml0000644000175000017510000010721111545711243015072 00000000000000 torrus-2.07/xmlconfig/vendor/alteon.xml0000644000175000017510000007566311545711243015235 00000000000000 torrus-2.07/xmlconfig/vendor/f5.bigip.xml0000644000175000017510000002360612036531634015344 00000000000000 torrus-2.07/xmlconfig/vendor/cisco.generic.xml0000644000175000017510000003515011545711243016451 00000000000000 torrus-2.07/xmlconfig/vendor/casa-cmts.xml0000644000175000017510000001771411545711243015617 00000000000000 torrus-2.07/xmlconfig/vendor/cisco.ios.xml0000644000175000017510000013321011545711243015623 00000000000000 torrus-2.07/xmlconfig/vendor/betternetworks.xml0000644000175000017510000000402011545711243017010 00000000000000 torrus-2.07/xmlconfig/vendor/compaq.cim.xml0000644000175000017510000000541511545711243015766 00000000000000 torrus-2.07/xmlconfig/vendor/empire.systemedge.xml0000644000175000017510000027672412013222704017373 00000000000000 torrus-2.07/xmlconfig/vendor/cisco.vdsl-line.xml0000644000175000017510000001503511545711243016732 00000000000000 torrus-2.07/xmlconfig/vendor/foundry.xml0000644000175000017510000002611511545711243015425 00000000000000 torrus-2.07/xmlconfig/vendor/comtechefdata.xml0000644000175000017510000002461612000630635016522 00000000000000 torrus-2.07/xmlconfig/vendor/apc.powernet.xml0000644000175000017510000002762312024422473016346 00000000000000 torrus-2.07/xmlconfig/vendor/cisco.ios.mac-accounting.xml0000644000175000017510000001071211545711243020513 00000000000000 torrus-2.07/xmlconfig/vendor/hp.procurve.xml0000644000175000017510000001142411663705141016210 00000000000000 torrus-2.07/xmlconfig/vendor/empire.systemedge.ntregperf.xml0000644000175000017510000014511111545711243021361 00000000000000 torrus-2.07/xmlconfig/vendor/motorola.bsr.xml0000644000175000017510000001311011545711242016346 00000000000000 torrus-2.07/xmlconfig/vendor/apple.ae.xml0000644000175000017510000001730511545711243015425 00000000000000 torrus-2.07/xmlconfig/vendor/cisco.sce.xml0000644000175000017510000007225311545711242015613 00000000000000 torrus-2.07/xmlconfig/vendor/netapp.filer.xml0000644000175000017510000034570011545711243016332 00000000000000 torrus-2.07/xmlconfig/vendor/cisco.firewall.xml0000644000175000017510000000623211545711243016641 00000000000000 torrus-2.07/xmlconfig/vendor/ascend.max.xml0000644000175000017510000001021611545711243015753 00000000000000 torrus-2.07/xmlconfig/snmp-defs.xml0000644000175000017510000001560612024422473014336 00000000000000 torrus-2.07/xmlconfig/defaults.xml0000644000175000017510000003220212003052155014231 00000000000000 short,last24h,lastweek,lastmonth,lastyear # Business day: 8:00 to 17:00 LTIME,86400,%,DUP,28800,GE,EXC,61200,LE,*,INF,UNKN,IF # Evening: 17:00 to 22:00 LTIME,86400,%,DUP,61200,GE,EXC,79200,LE,*,INF,UNKN,IF # Night: 22:00 to 6:00 LTIME,86400,%,DUP,79200,GE,EXC,21600,LE,+,INF,UNKN,IF # GPRINT stuff torrus-2.07/xmlconfig/old/0000755000175000017510000000000012137523671012555 500000000000000torrus-2.07/xmlconfig/old/rfc2670.docsis-if.old.1.0.4.xml0000644000175000017510000003071211545711242017401 00000000000000 Signal/Noise-Ratio was lower than 20dB torrus-2.07/xmlconfig/old/cisco-mac-accounting-example.xml0000644000175000017510000000562211545711242020636 00000000000000 torrus-2.07/xmlconfig/old/rfc1213.xml0000644000175000017510000002253111545711242014276 00000000000000 torrus-2.07/xmlconfig/old/snmp-defs.old-0.1.2.xml0000644000175000017510000002657311545711242016334 00000000000000 RRA:AVERAGE:0.5:1:4032 RRA:AVERAGE:0.5:6:2016 RRA:MAX:0.5:6:2016 RRA:AVERAGE:0.5:288:732 RRA:MAX:0.5:288:732 torrus-2.07/xmlconfig/old/cisco.generic.old-0.1.4.xml0000644000175000017510000001013611545711242017141 00000000000000 torrus-2.07/xmlconfig/old/rfc2863.if-mib.old-0.1.4.xml0000644000175000017510000004206711545711242016675 00000000000000 torrus-2.07/xmlconfig/old/cisco.ios.mac-accounting-0.1.8.xml0000644000175000017510000000740211545711242020437 00000000000000 torrus-2.07/xmlconfig/old/rfc2670.docsis-if.old.0.1.5d-20040224.xml0000644000175000017510000000562311545711242020444 00000000000000 Signal/Noise-Ratio was lower than 20dB torrus-2.07/xmlconfig/old/rfc2863.if-mib.old-0.1.7.xml0000644000175000017510000004260711545711242016700 00000000000000 torrus-2.07/xmlconfig/generic/0000755000175000017510000000000012137523671013413 500000000000000torrus-2.07/xmlconfig/generic/rfc1697.rdbms.xml0000644000175000017510000002432611545711242016266 00000000000000 torrus-2.07/xmlconfig/generic/rfc2670.docsis-if.xml0000644000175000017510000003444311545711242017030 00000000000000 Signal/Noise-Ratio was lower than 20dB torrus-2.07/xmlconfig/generic/rfc2863.if-mib.xml0000644000175000017510000006743111667513102016322 00000000000000 torrus-2.07/xmlconfig/generic/collector-periods.xml0000644000175000017510000000645611545711242017514 00000000000000 torrus-2.07/xmlconfig/generic/rfc4319_hdsl2_shdsl_line.xml0000644000175000017510000003154411666706264020466 00000000000000 torrus-2.07/xmlconfig/generic/rfc2790.host-resources.xml0000644000175000017510000001734212004057517020136 00000000000000 torrus-2.07/xmlconfig/generic/rfc2662.adsl-line.xml0000644000175000017510000002302211545711242017010 00000000000000 torrus-2.07/xmlconfig/generic/rfc1628.ups.xml0000644000175000017510000003771311545711242015764 00000000000000 torrus-2.07/xmlconfig/generic/monitors.xml0000644000175000017510000000604411545711242015726 00000000000000 torrus-2.07/Makefile.am0000644000175000017510000000650411661302716011766 00000000000000# Copyright (C) 2002 Stanislav Sinyagin # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # Stanislav Sinyagin # SUBDIRS = . bin configs doc examples perllib sup xmlconfig EXTRA_DIST = \ setup_tools/Bundle/Torrus.pm \ setup_tools/replace_rrfw.sh \ setup_tools/configure_fhs \ setup_tools/check_perlthreading.pl noinst_SCRIPTS = \ setup_tools/substvars.sh \ setup_tools/mkvardir.sh \ init.d/torrus tmpldir = @tmpldir@ dist_tmpl_DATA = \ templates/aclexport.xml \ templates/adminfo.html \ templates/default-chooser.html \ templates/default-dir.html \ templates/default-helptext.html \ templates/default-login.html \ templates/default-recursivedir.html \ templates/default-rrd.html \ templates/default-tset.html \ templates/expanded-dir.html \ templates/globalsearch.html \ templates/overview-subleaves.html \ templates/report-index.html \ templates/report-monthly.html \ templates/report-serviceid.html \ templates/report-yearly.html \ templates/search.html \ templates/html-incblocks.txt \ templates/iframe-rrd.html \ templates/tset-list.html \ templates/email-alarm.txt scriptsdir = @scriptsdir@ dist_scripts_DATA = scripts/rrdup_notify.sh xmlscriptsdir = @scriptsdir@/xml dist_xmlscripts_DATA = scripts/xml/extract-skeleton.xsl discoverydir = @sitedir@/discovery dist_discovery_DATA = discovery/README mkvardir=@abs_top_builddir@/setup_tools/mkvardir.sh install-data-local: @echo Testing if prefix has changed during make test "$(prefix)" = "@prefix@" $(mkvardir) $(DESTDIR)$(dbhome) $(mkvardir) $(DESTDIR)$(cachedir) $(mkvardir) $(DESTDIR)$(piddir) $(mkvardir) $(DESTDIR)$(reportsdir) $(mkvardir) $(DESTDIR)$(logdir) $(mkvardir) $(DESTDIR)$(sesstordir) $(mkvardir) $(DESTDIR)$(seslockdir) $(mkinstalldirs) $(DESTDIR)$(tmpluserdir) $(mkinstalldirs) $(DESTDIR)$(plugtorruscfgdir) $(mkinstalldirs) $(DESTDIR)$(plugdevdisccfgdir) $(mkinstalldirs) $(DESTDIR)$(plugwrapperdir) HTMLDIR = @abs_top_builddir@/../htdocs htdocs: cd doc; make htdocs @for f in $(dist_mibs_DATA); do \ f2=$(HTMLDIR)/`basename $$f`; \ if test ! -f $$f2 -o $$f -nt $$f2; then \ echo "cp $$f $$f2"; \ cp $$f $$f2; \ fi; \ done UPLOADPATH = \ ssinyagin,torrus@web.sourceforge.net:/home/groups/t/to/torrus/htdocs/devel upload: dist scp $(distdir).tar.gz TODO $(UPLOADPATH) todoup: scp TODO $(UPLOADPATH) dist-hook: date >DIST_REVISION git branch -vv >>DIST_REVISION cp DIST_REVISION $(distdir)/ PERLCRITIC_CMD = ${PERLCRITIC} --profile=critic.profile critic: @if test ${PERLCRITIC} != no; then \ ${PERLCRITIC_CMD} `egrep -l '^\#..PERL' bin/*.in`; \ ${PERLCRITIC_CMD} perllib/Torrus/; \ else \ echo 'perlcritic command not found'; \ fi torrus-2.07/ChangeLog0000644000175000017510000025223712137504231011505 000000000000002013-04-29 Stanislav Sinyagin * NEWS: Release 2.07 2013-02-15 Stanislav Sinyagin * NEWS: Release 2.06 * perllib/Torrus/Collector/SNMP.pm (isMapReady): new function: isMapReady(), removed function: activeMappingSessions() 2012-10-28 Stanislav Sinyagin * bin/action_snmpv1trap.in, bin/action_snmptrap.in: $ENV{'TORRUS_SEVERITY'} is now treated properly 2012-10-14 Stanislav Sinyagin * perllib/Torrus/DevDiscover/F5BigIp.pm: New implementation for F5 BigIP support 2012-10-07 Stanislav Sinyagin * NEWS: Release 2.05 * Removed support for F5 BigIP version 4.x because it's end of life and outdated. Support for Version 11 is in development. 2012-09-11 Stanislav Sinyagin * perllib/Torrus/DevDiscover/APC_PowerNet.pm: added support for Modular Environmental Manager (MEM) 2012-08-16 Stanislav Sinyagin * NEWS: Release 2.04 2012-08-16 Stanislav Sinyagin * perllib/Torrus/DevDiscover/EmpireSystemedge.pm: CA eHealth SystemEDGE support is significantly refactored by Roman Hochuli 2012-07-17 Stanislav Sinyagin * configs/torrus-config.pl: default value for $Torrus::Collector::SNMP::unreachableTimeout is set to 0 instead of 6 hours (never give up on unreachable hosts) 2012-07-08 Stanislav Sinyagin * perllib/Torrus/DevDiscover/ComtechEFData.pm: new discovery module for Comtech EF Data satellite modems 2012-07-04 Stanislav Sinyagin * xmlconfig/defaults.xml: new graph view: embedded-small * perllib/Torrus/Renderer/RRDtool.pm (rrd_make_graph_opts): new view parameter 'graph-colors' and URL variable Gcolors 2012-07-03 Stanislav Sinyagin * perllib/Torrus/Renderer/RRDtool.pm: new RRD graph parameter: border 2012-04-22 Stanislav Sinyagin * NEWS: Release 2.03 (bugfix release) 2012-03-20 Stanislav Sinyagin * NEWS: Release 2.02 2012-03-13 Stanislav Sinyagin * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm: new parameter RFC2863_IF_MIB::sort-by-name 2012-03-07 Stanislav Sinyagin * Monitor*.pm, Collector*.pm: undef $hash{$key} is deprecated, replaced with delete 2012-02-16 Stanislav Sinyagin * perllib/Torrus/DevDiscover.pm: rrd-create-rra is added to the list of copied parameters. 2011-12-27 Stanislav Sinyagin * perllib/Torrus/ConfigTree.pm (getRelative): now leaves can be referred to as [[nodeid]] in RPN. * perllib/Torrus/DevDiscover/RFC2670_DOCS_IF.pm (discover): new discovery parameter: RFC2670_DOCS_IF::suppress-all-cable-stats 2011-12-06 Stanislav Sinyagin * sup/styling/torrus-schema.pl: BpsIn now uses a slightly darker green, so that maxline can have a better contrast. * perllib/Torrus/Renderer/RRDtool.pm: MAX lines can now be displayed in graphs. New URL variables: Gmaxline, Gmaxlinestep. New multigraphs parameters: maxline-style-XX, maxline-color-XX. * perllib/Torrus/DevDiscover/APC_PowerNet.pm: new discovery module 2011-11-24 Stanislav Sinyagin * perllib/Torrus/Collector/SNMP.pm, perllib/Torrus/DevDiscover.pm: new SNMP parameter: "snmp-maxrepetitions". The default value is 10. Previously Net::SNMP was setting it to 25. 2011-11-18 Stanislav Sinyagin * perllib/Torrus/DevDiscover/NetBotz.pm: added selector actions: Monitor, TokensetMember 2011-11-15 Stanislav Sinyagin * perllib/Torrus/Log.pm (enableSyslog): new config variable: $Torrus::Log::syslogSockOpt 2011-11-14 Stanislav Sinyagin * perllib/Torrus/DevDiscover/DevDetails.pm: The following methods are deprecated and will be phased out: storeSnmpVars(), hasOID(), snmpVar(), getSnmpIndices(). $dd->walkSnmpTable() should be used instead. 2011-11-12 Stanislav Sinyagin * configs/torrus-config.pl: New config variables for Syslog: $Torrus::Log::syslogFacility = 'local0'; $Torrus::Collector::useSyslog = 1; $Torrus::Monitor::useSyslog = 1; * bin/monitor.in: disabled log rotation on SIGHUP. Syslog logging enabled by default. * bin/collector.in: disabled log rotation on SIGHUP. Syslog logging enabled by default. * perllib/Torrus/Log.pm: Syslog logging for daemons. 2011-10-14 Stanislav Sinyagin * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm: ifSpeed monitoring is triggered by $interface->{'ifSpeedMonitoring'}. The bandwidth usage templates are updated accordingly. 2011-10-12 Stanislav Sinyagin * perllib/Torrus/DevDiscover/RFC4319_HDSL2_SHDSL_LINE_MIB.pm: new discovery module for HDSL2-SHDSL-LINE-MIB * xmlconfig/generic/rfc2863.if-mib.xml: added templates for ifSpeed and ifHighSpeed 2011-10-03 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoFirewall.pm: interface filter that removes TunnelN interfaces. 2011-09-04 Stanislav Sinyagin * NEWS: Torrus release 2.01 2011-06-26 Stanislav Sinyagin * xmlconfig/snmp-defs.xml: RRA for SNMP reachability is separately defined. New discovery parameter: snmp-reachability-rra. 2011-06-07 Stanislav Sinyagin * perllib/Torrus/Collector.pm (beforeRun): Collector initialization exclusive lock is enabled by $Torrus::Collector::exclusiveStartupLock in torrus-siteconfig.pl * perllib/Torrus/Renderer/RPC.pm: new RPC method: SEARCH_NODEID 2011-06-03 Stanislav Sinyagin * perllib/Torrus/Renderer/RPC.pm: New RPC method: AGGREGATE_DS 2011-06-02 Stanislav Sinyagin * perllib/Torrus/Scheduler.pm, perllib/Torrus/Collector.pm: repeat immediately 3 collector cycles at start 2011-06-01 Stanislav Sinyagin * perllib/Torrus/Collector/RRDStorage.pm (updateRRD): suppress inserting NaN when no data is available for the whole RRD file * xmlconfig/snmp-defs.xml: default rrd-create-heartbeat changed from 500 to 720 2011-05-30 Stanislav Sinyagin * perllib/Torrus/Renderer/RRDtool.pm: "imgformat" is now a configurable view parameter * xmlconfig/defaults.xml: new view: "embedded" for external GUI systems 2011-05-26 Stanislav Sinyagin * perllib/Torrus/Collector.pm (beforeRun): Collector initialization is done with an exclusive lock on collector_lock.db. This avoids the concurrent config slurping at collector startup and minimizes the I/O delays. 2011-05-24 Stanislav Sinyagin * perllib/Torrus/Renderer/HTML.pm (makeURL): All navigation is now done with persistent URLs. Tokens are removed from GUI wnenever possible. 2011-05-23 Stanislav Sinyagin * perllib/Torrus/DevDiscover/Patton.pm: new discovery module for Patton devices * perllib/Torrus/DevDiscover/NexComm.pm: new discovery module for NexComm xDSL gateways * perllib/Torrus/DevDiscover/Actelis.pm: new discovery module for Actelis xDSL gateways * perllib/Torrus/DevDiscover/Thomson_xDSL.pm: new discovery module for Technicolor/Thomson xDSL gateways 2011-05-20 Stanislav Sinyagin * perllib/Torrus/DevDiscover.pm: removed uptime from the legend, as it was always confusing * templates/iframe-rrd.html: new RRD leaf view: "iframe-rrd" for portal integration * perllib/Torrus/DevDiscover/CCOM.pm: new discovery module for C-COM CAPSPAN devices 2011-05-15 Stanislav Sinyagin * Makefile.am (dist-hook): DIST_REVISION now displays Git branch information * bin/torrus.fcgi.in: Let FCGI handler re-spawn every 5000 requests or 48 hours for better DB stability 2011-05-10 Stanislav Sinyagin * BDB cursor destructors are explicitly controlled for better stability 2011-05-01 Stanislav Sinyagin * perllib/Torrus/DevDiscover.pm: SNMP reachability stats are disabled when "only-devtypes" is in use, and can be forced by "enable-reachability-stats" 2011-04-11 Stanislav Sinyagin * xmlconfig/snmp-defs.xml: new host-level template: snmp-reachability * perllib/Torrus/Collector/SNMP.pm: new collector type: 'snmp-reachable' 2011-04-09 Stanislav Sinyagin * perllib/Torrus/SNMP_Failures.pm (mib_error): bugfix - now all MIB errors are registered, not just one * perllib/Torrus/Collector/SNMP.pm: API change: replaced getHostname() with getHostHash() 2011-03-22 Stanislav Sinyagin * perllib/Torrus/DevDiscover/RFC2790_HOST_RESOURCES.pm: added CPU Load graphs. Still some problems with persistent indexing and naming. * perllib/Torrus/DevDiscover/MicrosoftWindows.pm: added to interface filter: PPP, Tunnel, WAN Miniport, and QoS Packet Scheduler virtual interfaces interface-level nodeid is now dependent on MAC address 2011-01-27 Stanislav Sinyagin * perllib/Torrus/Renderer/HTML.pm (makeURL): Now nodeid is used in HTML whenever available 2010-12-24 Stanislav Sinyagin * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm (discover): new discovery parameter: RFC2863_IF_MIB::ifnick-from-ifname provides backwards compatibility with devices which have non-unique ifName values * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm (discover): ifDescr and ifName are checked for uniqueness before being used for default interface indexing 2010-12-21 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoIOS.pm: added Port QoS stats (ME3400) 2010-12-19 Stanislav Sinyagin * perllib/Torrus/DevDiscover/RFC2662_ADSL_LINE.pm: re-organized the templates for Cisco 837 compatibility 2010-12-04 Stanislav Sinyagin * sup/webplain/torrus.css: slightly darker top and bottom shortcuts * perllib/Torrus/DevDiscover.pm (discover): New discovery parameter: X-tokenset-rrgraph-view * templates/default-tset.html: New view parameter: rrgraph-view 2010-11-24 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoIOS.pm: New discovery parameter: CiscoIOS::enable-dialer-interfaces 2010-11-25 Stanislav Sinyagin * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm: bugfix: RFC2863_IF_MIB::nodeid-hint=ifIndex did not really work 2010-11-23 Stanislav Sinyagin * perllib/Torrus/CGI.pm (do_process): added extra DB cleaninup 2010-11-18 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoIOS.pm: Added CISCO-WAN-3G-MIB support 2010-11-17 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoWLC.pm: new discovery parameter: CiscoWLC::only-ssid 2010-11-05 Stanislav Sinyagin * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm (buildConfig): New selector action: AddTemplates 2010-10-24 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoWLC.pm: new discovery module * NEWS: Release 1.0.9 2010-10-12 Stanislav Sinyagin * perllib/Torrus/CGI.pm: New URL parameter: 'v' is a synonym for 'view' 2010-10-06 Stanislav Sinyagin * templates/html-incblocks.txt: 'cssoverlay' now must point to an absolute URL 2010-09-23 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoIOS.pm (checkdevtype): New discovery parameter: CiscoIOS::enable-unrouted-vlan-interfaces 2010-09-20 Stanislav Sinyagin * perllib/Torrus/DevDiscover/Jacarta.pm: New discovery module for Jacarta iMeter (thanks to Roman Hochuli) 2010-09-17 Stanislav Sinyagin * perllib/Torrus/Collector/SNMP.pm (initCollectorGlobals): Refresh the SNMP maps after a configuration re-compile 2010-08-31 Stanislav Sinyagin * performance optimizations: XML compiler runs 15-20% faster 2010-08-16 Stanislav Sinyagin * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm: Selector actions split: discards moved from NoErrorCounters to NoDiscardCounters; and from InErrorsMonitor/OutErrorsMonitor to InDiscardsMonitor/OutDiscardsMonitor * perllib/Torrus/Collector.pm: collector_tokens database now depends on DS configuration instance 2010-08-13 Stanislav Sinyagin * perllib/Torrus/CGI.pm: Added host-based authentication 2010-08-09 Stanislav Sinyagin * Updated discovery modules for Net::SNMP 6.0.0 compatibility 2010-08-03 Stanislav Sinyagin * init.d/torrus.in: bugfix in RHEL compatibility. Do "chkconfig --del torrus", install the new version into /etc/init.d, then "chkconfig --add torrus", then "service torrus restart" 2010-07-21 Stanislav Sinyagin * bin/snmpfailures.in: new utility for SNMP failures reporting * perllib/Torrus/Collector/SNMP.pm: SNMP failures stored in a database 2010-06-12 Stanislav Sinyagin * bin/genlist.in: Added a list of all SNMP hosts 2010-05-14 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CasaCMTS.pm: new discovery module 2010-05-09 Stanislav Sinyagin * bin/nodeid.in: new command-line utility * configure.ac: new Perl module dependency: JSON 2010-04-11 Stanislav Sinyagin * configs/torrus-config.pl: replaced $Torrus::ApacheHandler::authorizeUsers with $Torrus::CGI::authorizeUsers. 2010-04-08 Jon Nistor * perllib/Torrus/DevDiscover/Arbor_E.pm: New parameter: Arbor_E::disable-e100-policymgmt, disable-e100-submgmt Added policy management and subscriber information 2010-04-07 Jon Nistor * perllib/Torrus/DevDiscover/Arbor_E.pm: New parameter: Arbor_E::disable-e100-mem Added memory usage per CPU for the e100 series devices 2010-04-04 Stanislav Sinyagin * perllib/Torrus/ConfigTree.pm, perllib/Torrus/ConfigTree/Writer.pm, perllib/Torrus/CGI.pm: New parameter: nodeid. It defines a new way of referring to subtrees and leaves. Also IF-MIB and Foundry discovery is updated. 2010-03-30 Stanislav Sinyagin * perllib/Torrus/DevDiscover.pm: Default snmp-max-msg-size is set back to 1470 * perllib/Torrus/DevDiscover/Foundry.pm: new discovery module 2010-03-23 Stanislav Sinyagin * xmlconfig/generic/rfc2790.host-resources.xml: [Bernhard Schmidt] Simplify the Uptime graph to display only Days * xmlconfig/vendor/ucd.ucd-snmp.xml: [Bernhard Schmidt] make Block I/O datasources a COUNTER correct display units for Memory * perllib/Torrus/DevDiscover/UcdSnmp.pm: [Bernhard Schmidt] added ssCpuRawSoftIRQ 2010-03-07 Stanislav Sinyagin * bin/torrus.fcgi.in: FastCGI support * templates/default-login.html: Added "remember me" * perllib/Torrus/ApacheHandler.pm: Changed to Torrus::CGI * perllib/Torrus/Apache2Handler.pm: Changed to Torrus::CGI. Now incompatible with "SetHandler modperl" * perllib/Torrus/CGI.pm: New HTTP handler instead of two different Apache handlers. 2010-03-05 Stanislav Sinyagin * bin/flushmonitors.in: new utility * bin/compilexml.in: Dynamic tokenset members are preserved between compilations * perllib/Torrus/ConfigTree.pm (tsetAddMember): Tokenset members have now an indicated origin (monitor/static) * perllib/Torrus/Monitor.pm: Alarms are now persistent between config re-compilations 2010-02-21 Stanislav Sinyagin * perllib/Torrus/Renderer/HTML.pm: New parameter: node-display-name. Now interface names are not underscored 2010-02-18 Stanislav Sinyagin * perllib/Torrus/Renderer/RRDtool.pm (rrd_make_multigraph): new multigraph parameters: line-stack-X, line-alpha-X 2010-02-10 Stanislav Sinyagin * perllib/Torrus/DevDiscover.pm (discover): Default snmp-max-msg-size is set to 65535 for SNMP v1 and v2 2010-02-07 Stanislav Sinyagin * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm (buildConfig): new selector action: NotifyPolicy 2010-02-02 Stanislav Sinyagin * perllib/Torrus/DevDiscover/ALU_Timetra.pm: new discovery parameter: ALU_Timetra::full-ifdescr 2010-01-27 Stanislav Sinyagin * perllib/Torrus/DevDiscover/ALU_Timetra.pm: new discovery module 2010-01-24 Stanislav Sinyagin * perllib/Torrus/DevDiscover.pm (discover): snmp-max-msg-size is used now in discivery, not only in collector 2009-10-28 Jon Nistor * perllib/Torrus/DevDiscover/Arista.pm (discover): New discovery module: Arista Networks 2009-05-31 Stanislav Sinyagin * perllib/Torrus/Renderer/RRDtool.pm: new view parameters: disable-legend, disable-title, disable-vertical-label 2009-05-26 Jon Nistor * perllib/Torrus/DevDiscover/Arbor_E.pm (discover): New discovery parameter: Arbor_E::disable-e30-hdd-logs, Arbor_E::enable-e30-mempool 2009-05-11 Stanislav Sinyagin * perllib/Torrus/DevDiscover/NetBotz.pm (discover): Discovery parameters: NetBotz::temp-max, NetBotz::humi-max, NetBotz::dew-max 2009-05-10 Stanislav Sinyagin * perllib/Torrus/DevDiscover/NetBotz.pm: new discovery module for NetBotz modular sensors 2009-05-07 Jon Nistor * perllib/Torrus/DevDiscover/FTOS.pm New discovery module for Force10 Networks devices 2009-04-05 Stanislav Sinyagin * NEWS: Release 1.0.8 2008-11-29 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoIOS.pm (discover): New discovery parameter: CiscoIOS::short-device-comment 2008-11-06 Stanislav Sinyagin * perllib/Torrus/Collector/SNMP.pm (runCollector): Number of SNMP sessions per snmp_dispatcher is limited to 100 because of some strange bugs (found on SPARC/Solaris platform) 2008-10-28 Jon Nistor * perllib/Torrus/DevDiscover/Liebert.pm: New discovery module for Liebert HVAC systems 2008-10-26 Stanislav Sinyagin * bin/srvderive.in: new utility that combines several services and combines them as MAX or SUM (sponsored by nexellent ag, www.nexellent.ch) 2008-09-25 Stanislav Sinyagin * Added safe signal handlers to all components. Also Apache handlers close the BDB environment at the end of each execution. BDB should now be much more stable. 2008-09-16 Jon Nistor * perllib/Torrus/DevDiscover/Arbor_E.pm: New discovery module for Arbor E series devices 2008-09-15 Stanislav Sinyagin * perllib/Torrus/Collector.pm: Now the collector cache is filled by the compiler. This optimizes the collector startup. Need to re-compile after upgrade. 2008-09-13 Stanislav Sinyagin * bin/configsnapshot.in: Bugfix in root subtree parameters * bin/configsnapshot.in: added parameter filtering option 2008-09-10 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoIOS.pm: Filtered out EOBC and FIFO virtual interfaces * xmlconfig/vendor/cisco.ios.mac-accounting.xml: Bugfix in the RRD filename 2008-08-07 Stanislav Sinyagin * perllib/Torrus/Renderer/RRDtool.pm (rrd_make_opts): View parameters can be overridden with URL variables "Gstart", "Gend" and so on. 2008-08-05 Stanislav Sinyagin * NEWS: Release 1.0.7 2008-08-04 Jon Nistor * perllib/Torrus/DevDiscover/CiscoIOS.pm (discover): new discovery parameter: CiscoIOS::disable-vpdn-stats 2008-07-23 Stanislav Sinyagin * perllib/Torrus/DevDiscover/RFC2670_DOCS_IF.pm (discover): new discovery parameter: RFC2670_DOCS_IF::upstreams-only 2008-06-20 Stanislav Sinyagin * Tree names can be specified in the External Storage (Billing reports) 2008-06-07 Stanislav Sinyagin * perllib/Torrus/Collector/SNMP.pm: New parameter: snmp-ignore-mib-errors * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm (buildConfig): New parameter generated by IF-MIB: interface-comment 2008-06-01 Stanislav Sinyagin * IPv6 support in devdiscover and in SNMP collector 2008-05-22 Stanislav Sinyagin * bin/bdbinfo.in: BerkeleyDB version info utility 2008-03-29 Stanislav Sinyagin * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm (buildConfig): RFC2863_IF_MIB::external-serviceid now accepts host/interface notation 2008-03-28 Stanislav Sinyagin * perllib/Torrus/SQL/Reports.pm (finalize): added SQL commit 2008-03-16 Stanislav Sinyagin * bin/collector.in: Threads are now always initialized, not only in daemon mode * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm: New selectors: InBytesParameters, OutBytesParameters * perllib/Torrus/DevDiscover.pm (buildConfig): New discovery parameter: include-files 2008-01-12 Stanislav Sinyagin * perllib/Torrus/DevDiscover/JunOS.pm: Added interface filter to exclude service interfaces * perllib/Torrus/DevDiscover.pm, perllib/Torrus/Collector/SNMP.pm: snmp-max-msg-size, new parameter for SNMP session 2007-12-09 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoSCE.pm: New discovery parameters: CiscoSCE::disable-*** (Jon Nistor) 2007-11-30 Stanislav Sinyagin * xmlconfig/defaults.xml: Default collector-timeoffset-step increased from 30 to 60 seconds. 30 seconds is too short for too many installations. 2007-11-08 Stanislav Sinyagin * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm (buildConfig): New selector action: RemoveInterface 2007-09-30 Stanislav Sinyagin * perllib/Torrus/DevDiscover/JunOS.pm: Dramatic update by Jon Nistor 2007-08-23 Stanislav Sinyagin * perllib/Torrus/DevDiscover/Symmetricom.pm: New discovery module for Symmetricom NTP clock (Jon Nistor) 2007-08-10 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoIOS.pm: Removed BGP Advertized prefixes Added the prefix limits to Accepted prefixes 2007-08-03 Stanislav Sinyagin * NEWS: Torrus release 1.0.6 2007-07-27 Stanislav Sinyagin * perllib/Torrus/Collector/SNMP.pm: removed "reptoken" and optimized the snmp arguments 2007-06-16 Stanislav Sinyagin * bin/collector.in: Now multiple collector instances can run in a single tree. Need to recompile all trees and re-start the daemons. A new copy of init.d/torrus should be copied in startup scripts directory. Also execute for every tree: torrus si --tree=TREE --clear 2007-06-15 Stanislav Sinyagin * configure.ac: Perl 5.8.8 is required for threads 2007-06-14 Stanislav Sinyagin * bin/genreport.in: New option: --all2tree * perllib/Torrus/DevDiscover/Alteon.pm: New discovery module 2007-06-04 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoIOS.pm: Cisco CAR statistics 2007-05-05 Stanislav Sinyagin * perllib/Torrus/Collector/SNMP.pm: fixed the bug for unreachable timeout the target that receives noSuchObject is deleted from polling 2007-05-04 Stanislav Sinyagin * perllib/Torrus/Collector/CDef.pm: Imported the CDEF collector from Chrstian Schnidrig and adapted to multithreading. * perllib/Torrus/DevDiscover.pm: Adapted for global configuration. * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm: New discovery parameter: RFC2863_IF_MIB::traffic-summaries Currently summaries work only within single output file. 2007-04-12 Stanislav Sinyagin * perllib/Torrus/Renderer/HTML.pm: Search engine GUI 2007-04-11 Stanislav Sinyagin * bin/buildsearchdb.in: The search DB builder (GUI is not ready yet) * perllib/Torrus/DevDiscover.pm: New discovery param: show-recursive * templates/default-dir.html: Limit recursive view to subtrees having show-recursive=yes 2007-04-10 Stanislav Sinyagin * perllib/Torrus/ConfigTree.pm: Moved the param properties to the XML config. All trees need recompilation after this change. 2007-04-05 Stanislav Sinyagin * perllib/Torrus/ConfigTree/XMLCompiler.pm (compile_subtrees): Removed support for 2007-03-23 Stanislav Sinyagin * perllib/Torrus/Renderer/RRDtool.pm (rrd_make_graphline): line-style line-color from the node params override thse in the view params 2007-03-18 Stanislav Sinyagin * perllib/Torrus/DevDiscover/JunOS.pm: Added per-CoS traffic statistics 2007-03-16 Stanislav Sinyagin * perllib/Torrus/Apache2Handler.pm, perllib/Torrus/ApacheHandler.pm: User login event in the apache error log * perllib/Torrus/DevDiscover/CiscoIOS_MacAccounting.pm: MAC accounting on subinterfaces 2007-02-14 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoIOS.pm (discover): Replaced CiscoIOS::disable-membuf-stats with CiscoIOS::enable-membuf-stats. Now cisco buffer stats are disabled by default 2007-02-13 Stanislav Sinyagin * perllib/Torrus/Collector/SNMP.pm: SNMP maps automatic refreshing * bin/devdiscover.in: Devdiscover now accepts multiple input files 2007-02-09 Stanislav Sinyagin * perllib/Torrus/DevDiscover.pm: New discovery param: template-registry-overlays 2007-02-02 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoSCE.pm: Added service counters and queue utilization 2007-01-25 Stanislav Sinyagin * NEWS: Release 1.0.5 2007-01-23 Stanislav Sinyagin * configure.ac: Synchronized with Autoconf 2.60. Now 2.60 is the minimum required version. Changed docdir to pkgdocdir 2007-01-10 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoIOS.pm (checkdevtype): IOS XR support 2007-01-05 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoIOS.pm (checkdevtype): New discovery parameter: CiscoIOS::enable-vlan-interfaces (discover): added Cisco BGP statistics 2006-12-22 Stanislav Sinyagin * perllib/Torrus/DevDiscover/JunOS.pm: New discovery module for Juniper 2006-12-21 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoIOS_MacAccounting.pm (discover): New discovery parameter: CiscoIOS_MacAccounting::tokenset-members 2006-12-05 Stanislav Sinyagin * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm (discover): New discovery parameter: RFC2863_IF_MIB::exclude-down-interfaces * bin/configinfo.in: Added the tree compilation timestamp 2006-12-03 Stanislav Sinyagin * perllib/Torrus/Collector/SNMP.pm: SNMP mapping lookups are now asynchronous. PDUs are rescheduled with delays Not compatible with old cbQos plugin, needs tp-cisco-cbqos-1.4d 2006-11-26 Stanislav Sinyagin * perllib/Torrus/Collector/SNMP.pm: new SNMP parameters: snmp-localaddr and snmp-localport 2006-11-23 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoIOS_MacAccounting.pm: New discovery parameter: CiscoIOS_MacAccounting::external-serviceid 2006-10-14 Stanislav Sinyagin * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm: new discovery parameters: RFC2863_IF_MIB::bandwidth-usage RFC2863_IF_MIB::bandwidth-limits 2006-10-08 Stanislav Sinyagin * perllib/Torrus/ConfigTree.pm (new): exclusivity lock: only one compiler can run for a tree 2006-09-29 Stanislav Sinyagin * xmlconfig/generic/rfc2863.if-mib.xml: added an overvew shortcut for interface errors * perllib/Torrus/RPN.pm: IF accepts UNKN values 2006-09-28 Stanislav Sinyagin * configure.ac: theads module version must be 1.41 or higher, and threads::shared 1.03 or higher. 2006-09-27 Stanislav Sinyagin * bin/rrddir2xml.in: New option: --filter * xmlconfig/generic/rfc2670.docsis-if.xml: Added Frequency to upstream statictics monitoring. Old upstream stats will be lost!! The old templates file is in xmlconfig/old/rfc2670.docsis-if.old.1.0.4.xml 2006-09-26 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoSCE.pm: New discovery module * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm: Improvements for persistent interface indexes * perllib/Torrus/DevDiscover/MotorolaBSR.pm: New discovery module for Motorola CMTS (Riverdelta) 2006-09-10 Stanislav Sinyagin * perllib/Torrus/Collector/RRDStorage.pm (storeData): RRDQueue statistics are now set in the beginning of the cycle 2006-08-10 Stanislav Sinyagin * perllib/Torrus/ConfigBuilder.pm (new): encoding changed from UTF8 to UTF-8 2006-07-31 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoFirewall.pm (discover): Interface names taken from ifName 2006-07-24 Stanislav Sinyagin * setup_tools/check_perlthreading.pl: Quick test of multithreading support 2006-07-21 Stanislav Sinyagin * perllib/Torrus/Collector/RRDStorage.pm (updateRRD): Added threading support: a background thread for RRD updates 2006-07-20 Stanislav Sinyagin * bin/devdiscover.in: Added multithreading support * configure.ac: Multithreading checkup * NEWS: Torrus release 1.0.4 2006-05-17 Stanislav Sinyagin * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm (buildConfig): RFC2863_IF_MIB::tokenset-members now accepts host names and can be defined at the global level. 2006-05-11 Stanislav Sinyagin * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm (buildConfig): new discovery parameter: RFC2863_IF_MIB::noout 2006-03-09 Stanislav Sinyagin * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm (buildConfig): New discovery parameter: RFC2863_IF_MIB::subtree-comment * perllib/Torrus/Renderer/Frontpage.pm (renderUserLogin): New config option: $Torrus::Renderer::lostPasswordURL 2006-03-01 Stanislav Sinyagin * perllib/Torrus/Renderer/HTML.pm: New config variable: $Torrus::Renderer::companyLogo to display a logo instead of text 2006-02-22 Stanislav Sinyagin * perllib/Torrus/DevDiscover.pm: 'comment' parameter is copied from DDX to the host level. 2006-02-21 Stanislav Sinyagin * perllib/Torrus/Monitor.pm: New monitor parameters: display-rpn-expr display-format (run_event_exec): New environment variable: TORRUS_DISPLAY_VALUE 2006-02-15 Stanislav Sinyagin * perllib/Torrus/DevDiscover.pm (discover): New discovery parameter: suppress-legend 2006-02-13 Stanislav Sinyagin * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm: Complex matching expressions for subtree name selector * perllib/Torrus/DevDiscover/CiscoGeneric.pm (discover): Cisco power supply monitoring 2006-02-10 Stanislav Sinyagin * bin/action_notify.in: New monitor action * perllib/Torrus/Monitor.pm: New monitor parameter: "severity" * perllib/Torrus/DevDiscover/CiscoIOS.pm: Cisco Docsis bundle interfaces excluded from discovery 2006-01-06 Stanislav Sinyagin * perllib/Torrus/RPN.pm: New RPM functions: INF, NEGINF 2005-12-12 Stanislav Sinyagin * perllib/Torrus/RPN.pm: DUP and EXC accept undefined arguments now 2005-12-07 Stanislav Sinyagin * perllib/Torrus/RPN.pm: New RPN function: NUM 2005-11-28 Stanislav Sinyagin * bin/ttproclist.in: Two new functions: lc, uc 2005-11-22 Stanislav Sinyagin * perllib/Torrus/Collector/SNMP.pm: Added SNMPv3 support 2005-10-19 Stanislav Sinyagin * bin/genreport.in: Report generator utility 2005-10-17 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoVDSL.pm: New discovery module for Cisco Catalyst LRE 2005-10-14 Stanislav Sinyagin * templates/default-dir.html, templates/expanded-dir.html: Alex Ustyancev's patches for aliased leaf nodes * perllib/Torrus/SQL.pm: New module dependency: DBIx::Sequence 2005-10-06 Stanislav Sinyagin * perllib/Torrus/SQL.pm: new module dependencies: DBIx::Abstract, DBI. 2005-10-05 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoGeneric.pm: added support for dual-CPU cisco routers (7301) 2005-09-28 Stanislav Sinyagin * perllib/Torrus/DevDiscover/AlliedTelesyn_PBC18.pm: new discovery module 2005-09-02 Stanislav Sinyagin * perllib/Torrus/DevDiscover.pm: New discovery parameter: define-tokensets 2005-08-12 Stanislav Sinyagin * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm (discover): Replaced $Torrus::DevDiscover::listAdminDownInterfaces with parameter RFC2863_IF_MIB::list-admindown-interfaces and $Torrus::DevDiscover::listNotPresentInterfaces with RFC2863_IF_MIB::list-notpresent-interfaces 2005-08-10 Stanislav Sinyagin * doc/extstorage.pod.in: Started documenting the External storage * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm: New discovery parameter: RFC2863_IF_MIB::external-serviceid * xmlconfig/generic/rfc2863.if-mib.xml: Byte counters adapted for External storage * perllib/Torrus/Collector.pm: Multiple storage types per token * perllib/Torrus/ConfigTree/Validator.pm (validateInstanceParams): Enabled validation of list values * perllib/Torrus/Collector/ExtDBI.pm: Pluggable backend module for External storage * perllib/Torrus/Collector/ExternalStorage.pm: New collector storage type 2005-08-02 Stanislav Sinyagin * NEWS: Release 1.0.3 2005-07-29 Stanislav Sinyagin * configure.ac: Patch Level 1: PERLINC configuration variable 2005-07-27 Stanislav Sinyagin * NEWS: Release 1.0.2 2005-07-22 Stanislav Sinyagin * perllib/Torrus/DevDiscover.pm (applySelectors): Selectors format slightly changed: the type is passed into the methods 2005-07-15 Stanislav Sinyagin * perllib/Torrus/DevDiscover.pm (buildConfig): New discovery parameter: disable-snmpcollector * bin/devdiscover.in: Preventing the bundle file update when --limit is specified. * perllib/Torrus/Collector/SNMP.pm (callback): mapping reset after host unreachable * configs/torrus-config.pl: $Torrus::Collector::SNMP::unreachableTimeout set to 6 hours * perllib/Torrus/Renderer/HTML.pm: entered Date/time verification New CPAN module required: perl -MCPAN -e 'install Date::Parse' 2005-07-14 Stanislav Sinyagin * templates/html-incblocks.txt: Added date setting dialog. TODO: date format validation. 2005-07-11 Stanislav Sinyagin * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm: New discovery parameter: RFC2863_IF_MIB::only-interfaces * configure.ac: Now checking if user torrus exists * perllib/Torrus/DevDiscover/AxxessIT.pm: support for WANX/LANX modules 2005-07-06 Stanislav Sinyagin * bin/rrddir2xml.in: New utility for generating XML from a directory with RRD files 2005-06-24 Stanislav Sinyagin * perllib/Torrus/Collector/SNMP.pm: [1.0.1pl2] - fixed bug with deleting unreachable targets 2005-06-21 Stanislav Sinyagin * configure.ac: 1.0.1 Patchlevel 1 * bin/action_snmpv1trap.in, bin/action_snmptrap.in: added torrusMonitorDesc * sup/mibs/TORRUS-MIB.txt: new OID: torrusMonitorDesc * NEWS: release 1.0.1 * perllib/Torrus/SiteConfig.pm (verify): $Torrus::Renderer::stylingProfileOverlay is now an absolute file name * xmlconfig/vendor/cisco.ios.docsis.xml: Added Registered modems graph. WARNING: RRD structure changed * bin/devdiscover.in: New option: --fallback * perllib/Torrus/Collector/SNMP.pm (initTargetAttributes): Target is deleted when SNMP map expansion fails 2005-06-16 Stanislav Sinyagin * perllib/Torrus/Monitor.pm: sleep --delay minutes also after recompiling * configs/torrus-config.pl: $Torrus::Collector::SNMP::unreachableTimeout increased to 1900 $Torrus::Collector::SNMP::unreachableRetryDelay increased to 600 * perllib/Torrus/Collector/SNMP.pm: Better handling of SNMP errors. Delete all tokens for a host if it is unreachable. 2005-06-09 Stanislav Sinyagin * NEWS: Torrus release 1.0.0 * bin/monitor.in: New option: --delay * init.d/torrus.in: The init script reads its options from initscript.conf and initscript.siteconf 2005-06-08 Stanislav Sinyagin * bin/devdiscover.in: new CLI option: --forcebundle * perllib/Torrus/DevDiscover.pm: monitor-period and monitor-timeoffset are now copied from DDX * bin/action_snmpv1trap.in, bin/action_snmptrap.in, sup/mibs/TORRUS-MIB.txt: Added new SNMP variable: severity 2005-06-02 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoIOS_MacAccounting.pm: New discovery module for Cisco MAC accounting 2005-05-30 Stanislav Sinyagin * perllib/Torrus/DevDiscover/BetterNetworks.pm: new discovery module * bin/collector.in: new command line option: --runalways 2005-05-27 Stanislav Sinyagin * perllib/Torrus/DevDiscover/MicrosoftWindows.pm: per-interface RRD files named by MAC addresses, not interface name 2005-05-25 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoGeneric.pm: enchanced memory pools stats (line cards and VIP memory) 2005-05-23 Stanislav Sinyagin * templates/html-incblocks.txt: has-overview-subleaves replaced with has-overview-shortcuts, with multiple overviews per subtree 2005-05-20 Stanislav Sinyagin * templates/tset-list.html: Tokensets list now displays their sizes 2005-05-18 Stanislav Sinyagin * bin/ttproclist.in: New utility for generating DDX files 2005-05-17 Stanislav Sinyagin * perllib/Torrus/DataAccess.pm: improved performance by caching 2005-05-13 Stanislav Sinyagin * xmlconfig/examples/docsis-monitors.xml: DOCSIS monitoring examples * perllib/Torrus/DevDiscover/RFC2670_DOCS_IF.pm: Added DOCSIS-specific selector actions 2005-05-12 Stanislav Sinyagin * perllib/Torrus/Collector/RRDStorage.pm (updateRRD): $Torrus::Collector::RRDStorage::moveConflictRRD -- moving RRD files with conflicting structure 2005-05-11 Stanislav Sinyagin * perllib/Torrus/DevDiscover/RFC2670_DOCS_IF.pm: Downstream utilization added, and the subtrees rearranged. 2005-05-10 Stanislav Sinyagin * templates/default-rrd.html: Monitor names and comments displayed on the leaf HTML 2005-05-04 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoGeneric.pm: replaced CiscoGeneric::sensor-monitor and CiscoGeneric::sensor-monitor-regexp with CiscoSensor selector * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm: RFC2863_IF_MIB::errors-monitor is no longer supported. Replaced with appropriate selector action * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm: Implemented IF-MIB selector actions - InBytesMonitor, OutBytesMonitor, ErrorsMonitor, HoltWinters, NoPacketCounters, NoErrorCounters, Parameters 2005-05-02 Stanislav Sinyagin * perllib/Torrus/DevDiscover.pm (applySelectors): The infrastructure for object selectors 2005-04-29 Stanislav Sinyagin * perllib/Torrus/DevDiscover/CiscoGeneric.pm: New discovery parameters: CiscoGeneric::sensor-monitor, CiscoGeneric::sensor-monitor-regexp 2005-04-28 Stanislav Sinyagin * perllib/Torrus/Collector/SNMP.pm (runCollector): SO_RCVBUF is set explicitly 2005-04-09 Stanislav Sinyagin * perllib/Torrus/Renderer/RRDtool.pm (rrd_make_hrules): hrule-legend-X is now a leaf parameter, not view * templates/default-recursivedir.html: Recursive directory view 2005-04-08 Stanislav Sinyagin * bin/schedulerinfo.in: Timeline reports separate for monitors and collectors 2005-03-30 Stanislav Sinyagin * perllib/Torrus/DevDiscover/Paradyne.pm: New discovery parameter: "Paradyne::slot-name" 2005-03-22 Stanislav Sinyagin * configure.ac: New variables: plugwrapperdir, defrrddir 2005-03-09 Stanislav Sinyagin * perllib/Torrus/DevDiscover.pm (discover): Screening coli and semicoli in legend text 2005-03-08 Stanislav Sinyagin * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm (discover): New device capability: 'interfaceIndexingManaged'. New DDX parameters: 'RFC2863_IF_MIB::ifindex-map-hint' and 'RFC2863_IF_MIB::subtree-name-hint'. * xmlconfig/generic/rfc2863.if-mib.xml: Moved "ifindex-table" definition from snmp-defs to IF-MIB host template * perllib/Torrus/DevDiscover.pm (discover): In the legend, replace ':' with '=' and ';' with ',' 2005-03-05 Stanislav Sinyagin * perllib/Torrus/DevDiscover.pm (oidBaseMatch): better OID comparison 2005-02-28 Stanislav Sinyagin * perllib/Torrus/Renderer.pm (newCacheFileName): MD5 to generate unique file names 2005-02-18 Stanislav Sinyagin * configure.ac (also in all plugins): AM_INIT_AUTOMAKE(1.9) instead of 1.6. The old version conflicted with plugins. 2005-01-30 Stanislav Sinyagin * doc/Makefile.am: Variable substitution in doc files * doc/manpages/Makefile.am: Man sections configurable * perllib/Torrus/DevDiscover/CiscoIOS_Docsis.pm: New discovery module for Cisco-specific DOCSIS statistics 2005-01-21 Stanislav Sinyagin * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm (discover): Moved the IF-MIB discovery from checkdevtype() to discover() 2005-01-06 Stanislav Sinyagin * perllib/Torrus/DevDiscover/AxxessIT.pm: new discovery module 2005-01-04 Stanislav Sinyagin * perllib/Torrus/DevDiscover/RFC2863_IF_MIB.pm (checkdevtype): Interface excluded when ifOperStatus=6 [notPresent] 2004-12-27 Stanislav Sinyagin * bin/devdiscover.in (absXmlFilename): output file is placed in siteXmlDir if the path is not absolute. $XMLCONFIG is still supported for the sake of compatibility. 2004-12-03 Stanislav Sinyagin * configure.ac: replaced --disable-modcheck with --enable-pkgonly 2004-11-22 Stanislav Sinyagin * NEWS: Release 0.1.8 * Started Torrus development 2004-11-02 Stanislav Sinyagin * lib/Torrus/ConfigTree/Validator.pm: New parameters: 'monitor-period', 'monitor-timeoffset' * lib/Torrus/Monitor.pm: Now monitor runs under standard Scheduler 2004-10-25 Stanislav Sinyagin * lib/Torrus/Collector.pm: Moved collector specific code from bin/collector.in. 2004-10-24 Stanislav Sinyagin * bin/acledit.in: New privilege added: DisplayAdmInfo * lib/Torrus/Renderer/AdmInfo.pm, templates/adminfo.html: First step to display administratove information. 2004-10-13 Stanislav Sinyagin * bin/collector.in, bin/monitor.in: Process name reflecting the commandline and status 2004-10-04 Stanislav Sinyagin * lib/Torrus/Renderer/RRDtool.pm (rrd_make_multigraph): New multigraph parameter: disable-gprint-X 2004-09-30 Stanislav Sinyagin * xmlconfig/generic/collector-periods.xml: Changed rrd-create-rra 2004-09-29 Stanislav Sinyagin * lib/Torrus/DevDiscover/NetScreen.pm: Changed the interface mapping from ifDescr to MAC address 2004-09-22 Stanislav Sinyagin * examples/rrdup_notify.sh: collector failure notification script 2004-09-20 Stanislav Sinyagin * lib/Torrus/Apache2Handler.pm: mod_perl 1.99_15 compatibility. Replaced Apache::ParseFormData with libapreq2. * templates/html-incblocks.txt: Added "Up" navigation tab 2004-09-02 Stanislav Sinyagin * lib/Torrus/Renderer/RRDtool.pm: New parameter: graph-disable-gprint 2004-08-27 Stanislav Sinyagin * templates/default-rrd.html: Added link to web/plain/explain-rrdgraph.html * templates/html-incblocks.txt: Moved Top and Help menu to the top of the page 2004-08-20 Stanislav Sinyagin * lib/Torrus/DevDiscover/CiscoIOS.pm (discover): New discovery parameter: CiscoIOS::disable-ipsec-stats 2004-08-16 Stanislav Sinyagin * templates/default-helptext.html: First draft of help window * bin/devdiscover.in: --snmpdebug option is no more hidden 2004-08-13 Stanislav Sinyagin * xmlconfig/vendor/cisco.ios.xml: reorganized leaves * xmlconfig/generic/rfc2863.if-mib.xml: Replaced the leaf names with user friendly ones. The old template is in old/rfc2863.if-mib.old-0.1.7.xml 2004-08-04 Stanislav Sinyagin * NEWS: Release 0.1.7 * lib/Torrus/DevDiscover/RFC2863_IF_MIB.pm: New discovery parameter: RFC2863_IF_MIB::copy-params * lib/Torrus/DevDiscover.pm: new discovery parameter: host-copy-params 2004-07-29 Stanislav Sinyagin * lib/Torrus/DevDiscover/ATMEL.pm: New discocery module from Scott Brooks 2004-07-28 Stanislav Sinyagin * lib/Torrus/Renderer/RRDtool.pm (rrd_make_holtwinters): New global variable: $Torrus::Renderer::hwGraphLegend * Disabled Holt-Winters in system performance and interface errors 2004-07-27 Stanislav Sinyagin * Torrus Demo server opened: http://torrusdemo.tbw.ch 2004-07-26 Stanislav Sinyagin * lib/Torrus/Collector.pm (setValue): DOLLAR and MOD in transform-value 2004-07-20 Stanislav Sinyagin * bin/acledit.in: Added --force option * bin/monitor.in, bin/collector.in: umask changed to 0017 2004-07-19 Stanislav Sinyagin * doc/scalability.pod: Document finished * doc/vendorsupport.pod: Vendor and MIBs support document 2004-07-13 Stanislav Sinyagin * xmlconfig/site-global.xml: New place for global parameters. In existing installations, you need to change the line in torrus-siteconfig.pl: @Torrus::Global::xmlAlwaysIncludeFirst = ( 'defaults.xml', 'site-global.xml' ); 2004-07-12 Stanislav Sinyagin * lib/Torrus/DevDiscover/NetApp.pm: new discovery module (Shawn) 2004-07-09 Stanislav Sinyagin * lib/Torrus/DevDiscover/CiscoIOS.pm: Added CISCO-IPSEC-FLOW-MONITOR-MIB 2004-07-07 Stanislav Sinyagin * lib/Torrus/Monitor.pm (run_event_exec): New environment variable: Torrus_VALUE * xmlconfig/defaults.xml: New view parameter: description 2004-07-06 Stanislav Sinyagin * templates/default-login.html, lib/Torrus/Renderer/Frontpage.pm (renderUserLogin), lib/Torrus/Apache2Handler.pm (handler), lib/Torrus/ApacheHandler.pm (handler): URL parameters (token, path, and view) are remembered during login 2004-06-30 Stanislav Sinyagin * lib/Torrus/ACL.pm (hasPrivilege): Wildcard ACL object (*) implemented 2004-06-28 Stanislav Sinyagin * Log levels updated. Now info is always printed, and verbose means verbose. 2004-06-25 Stanislav Sinyagin * xmlconfig/defaults.xml: New view name: last24h-small 2004-06-23 Stanislav Sinyagin * lib/Torrus/DevDiscover/RFC2863_IF_MIB.pm (buildConfig): New discovery parameter: RFC2863_IF_MIB::errors-monitor 2004-06-22 Stanislav Sinyagin * lib/Torrus/DevDiscover/RFC2863_IF_MIB.pm (buildConfig): New discovery parameter: RFC2863_IF_MIB::exclude-interfaces New discovery parameter: RFC2863_IF_MIB::tokenset-members 2004-06-21 Stanislav Sinyagin * lib/Torrus/DevDiscover/CiscoCatOS.pm (discover): New discovery parameter: CiscoCatOS::suppress-noname-ports 2004-06-16 Stanislav Sinyagin * configure.ac: For backward compatibility with autoconf 2.57, AS_HELP_STRING is replaced with obsoleted AC_HELP_STRING. Don't forget to change it back when 2.59 or later becomes mainstream. 2004-06-15 Stanislav Sinyagin * lib/Torrus/Renderer/RRDtool.pm (rrd_make_gprint): GPRINT implemented * bin/prepviews.in, bin/rrd_getdim.in: removed because no longer needed * doc/manpages/Makefile.am: commandref.pod to be replaced by manpages (contrib from Jurij Smakov) 2004-05-26 Stanislav Sinyagin * lib/Torrus/Collector.pm (setValue): transform-value parameter is now expandable * doc/devdoc/wd.distributed.pod: New working draft document 2004-05-24 Stanislav Sinyagin * webmux2.pl: Added support for mod_perl 1.99_12 (before it was 1.99_13 only) 2004-05-19 Stanislav Sinyagin * lib/Torrus/DevDiscover.pm: New parameter: custom-host-templates 2004-05-16 Stanislav Sinyagin * lib/Torrus/Collector/SNMP.pm: New parameter: 'snmp-check-sysuptime' * bin/Makefile.am: rrd_hwreapply is moved to a separate package (RRDman) 2004-05-12 Stanislav Sinyagin * Makefile.am, bin/Makefile.am: removed mkroutercfg * templates/html-incblocks.txt: Removed image width hinting 2004-05-05 Stanislav Sinyagin * lib/Torrus/SiteConfig.pm (verify): Minus sign allowed in tree names 2004-05-03 Stanislav Sinyagin * NEWS: Release 0.1.6 * ../plugins/cbqos: first release of Cisco QoS monitoring plugin * bin/rrd_getdim.in: RRDtool 1.1.x compatibility improved 2004-04-22 Stanislav Sinyagin * examples/onmsInterfaces.sh: Gustavo Torres' contribution for OpenNMS integration 2004-04-19 Stanislav Sinyagin * lib/Torrus/ConfigTree/XMLCompiler.pm: New XML statements: setvar, iftrue, iffalse 2004-04-15 Stanislav Sinyagin * lib/Torrus/RPN.pm (translate): New RPN function: MOD * xmlconfig/generic/rfc2790.host-resources.xml: More sophysticated Uptime graph (Shawn) 2004-04-14 Stanislav Sinyagin * templates/html-incblocks.txt: New items in HTML page top: siteInfo and treeInfo. * lib/Torrus/Apache2Handler.pm: First alpha release of mod_perl 2.0 handler. * doc/webintf.pod: It is recommended to Alias /torrus/plain instead of just /torrus. 2004-04-07 Stanislav Sinyagin * bin/schedulerinfo.in: New option: --clear * lib/Torrus/SchedulerInfo.pm, lib/Torrus/Scheduler.pm: reorganized statistics collection * bin/schedulerinfo.in: Only nonzero statistics are shown in runtime report * lib/Torrus/Scheduler.pm: reorganized statistics: late start increments only when that happens. Runtime longer than period is also recorded (sferry). * bin/collector.in: more verbosity in non-verbose mode (sferry) * init.torrus.in: gracefully waits for daemons to shut down (sferry) 2004-04-06 Stanislav Sinyagin * lib/Torrus/DevDiscover/RFC1697_RDBMS.pm, lib/Torrus/DevDiscover/OracleDatabase.pm: New discovery modules (sferry) * NEWS: Bugfix release 0.1.5bf2 2004-03-31 Stanislav Sinyagin * lib/Torrus/DB.pm (cursor): Bugfix for write access cursors 2004-03-26 Stanislav Sinyagin * lib/Torrus/Renderer/RRDtool.pm (rrd_make_cdef): New @-functions in RPN references: AVERAGE MIN MAX LAST (rrd_make_multigraph): New multigraph parameter: ignore-views-X * lib/Torrus/DevDiscover/CiscoGeneric.pm (buildConfig): New discovery parameter: CiscoGeneric::file-per-sensor 2004-03-25 Stanislav Sinyagin * bin/compilexml.in: New commandline option: --noval * NEWS: Bugfix release 0.1.5bf1 2004-03-24 Stanislav Sinyagin * lib/Torrus/RPN.pm: now Math::BigFloat is always used for numbers Perl 5.8.0 or higher is required: BigFloat implementation in 5.6.1 is untested and hardly compatible * lib/Torrus/Collector.pm (run): $Torrus::Collector::needsConfigTree: a new registry for those collectors needing access to configuration. 2004-03-22 Stanislav Sinyagin * Implemented Cisco class-based QoS monitoring plugin 2004-03-20 Stanislav Sinyagin * lib/Torrus/ConfigTree.pm: More parameters to be expanded: lower-limit normal-level upper-limit 2004-03-19 Stanislav Sinyagin * bin/devdiscover.in: New option: --limit=regexp 2004-03-17 Stanislav Sinyagin * NEWS: Release 0.1.5 * lib/Torrus/DB.pm (new): Unique DB environment log file per PID. 2004-03-16 Stanislav Sinyagin * bin/devdiscover.in: new parameter: output-bundle 2004-03-12 Stanislav Sinyagin * templates/overview-subleaves.html: New parameters: overview-direct-link, overview-direct-link-view 2004-03-09 Stanislav Sinyagin * lib/Torrus/DevDiscover/UcdSnmp.pm, lib/Torrus/DevDiscover/RFC2790_HOST_RESOURCES.pm, xmlconfig/vendor/ucd.ucd-snmp.xml, xmlconfig/generic/rfc2790.host-resources.xml: Rearranged the host performance templates. Fixed bug in Interrupts RRD. You need to rm /var/snmpcollector/*ucd-context_interrupts.rrd 2004-03-04 Stanislav Sinyagin * lib/Torrus/Renderer/RRDtool.pm (render_rrgraph): New configuration option: $Torrus::Renderer::ignoreDecorations 2004-03-01 Stanislav Sinyagin * xmlconfig/generic/rfc2670.docsis-if.xml: Modified DOCSIS template to include codewords statistics (data-file changed). * bin/monitor.in, bin/collector.in: Log rotation on SIGHUP 2004-02-26 Stanislav Sinyagin * xmlconfig/generic/monitors.xml: New standard monitors and actions * xmlconfig/vendor/smokeping.xml: (Shawn) Smokeping RRD files access templates * lib/Torrus/DevDiscover/NetScreen.pm: (Shawn) new discovery module * lib/Torrus/DevDiscover/CompaqCIM.pm: (Shawn) new discovery module * lib/Torrus/DevDiscover/MicrosoftWindows.pm: (Shawn) added support for IIS HTTP and FTP stats 2004-02-24 Stanislav Sinyagin * lib/Torrus/ConfigTree/Writer.pm (postProcessNodes): Dispersed collector offset 2004-02-23 Stanislav Sinyagin * lib/Torrus/ConfigTree.pm (new), lib/Torrus/ConfigTree/Writer.pm (finalize): Dual configuration database implemented * lib/Torrus/ConfigTree.pm (setReady): ConfigurationReady flag moved to other_config.db. 2004-02-18 Stanislav Sinyagin * lib/Torrus/Renderer/RRDtool.pm: view parameter "title" removed. New node parameter: "graph-title" 2004-02-16 Stanislav Sinyagin * lib/Torrus/Renderer/RRDtool.pm (rrd_make_decorations): Implemented back- and foreground decorations (Christian's Change 7, modified) 2004-02-14 Stanislav Sinyagin * lib/Torrus/ConfigTree.pm (getNodeParam): Optimized nodepcache structure * lib/Torrus/ConfigTree/Writer.pm (newToken): Next free token is no longer stored in database 2004-02-13 Stanislav Sinyagin * lib/Torrus/DevDiscover.pm (buildConfig): New parameter: host-aliases * lib/Torrus/Collector.pm (setValue): New parameter: transform-value 2004-02-12 Stanislav Sinyagin * xmlconfig/snmp-defs.xml, xmlconfig/*/*.xml: data-file refers now to system-id, instead of snmp-host. * lib/Torrus/DevDiscover.pm (buildConfig): symbolic-name is no longer mandatory. New parameter: system-id. 2004-02-11 Stanislav Sinyagin * lib/Torrus/DB.pm (new): DB internal errors are stored in var/log/dbenv_errlog 2004-02-05 Stanislav Sinyagin * lib/Torrus/ConfigTree.pm (expandNodeParam): $Torrus::ConfigTree::nodeParamHook: hook for custom parameter processing 2004-02-03 Stanislav Sinyagin * lib/Torrus/Renderer/RRDtool.pm: Restructured the whole grapher. 2004-02-02 Stanislav Sinyagin * lib/Torrus/Renderer.pm: Split one big module into 4 smaller ones: Torrus::Renderer, Torrus::Renderer::HTML, Torrus::Renderer::RRDtool, Torrus::Renderer::Frontpage * lib/Torrus/DevDiscover.pm (discover): New discovery parameter: only-devtypes 2004-01-30 Stanislav Sinyagin * lib/Torrus/DevDiscover.pm (discover): New discovery parameter: disable-devtypes * lib/Torrus/DevDiscover.pm (discover): Better treatment for agents without "system" OIDs. 2004-01-21 Stanislav Sinyagin * lib/Torrus/DevDiscover.pm (discover): Now snmp-oids-per-pdu may be defined from discovery parameters. * bin/schedulerinfo.in: Scheduler runtime statistics report 2004-01-20 Stanislav Sinyagin * lib/Torrus/Scheduler.pm: runtime statistics stored in a database 2004-01-15 Stanislav Sinyagin * lib/Torrus/DevDiscover.pm (discover): 'collector-period' and 'collector-timeoffset' can be specified in devdiscover input * Makefile.am: Now DIST_REVISION file in the distribution package tells the distribution revision date * lib/Torrus/Collector.pm: listTargets() is replaced with listCollectorTargets() with collector type as argument 2004-01-14 Stanislav Sinyagin * lib/Torrus/DevDiscover/RFC2863_IF_MIB.pm (buildConfig): Split iftable-errors template into input and output (some Cisco ATM aal5 interfaces dont have both in and out error counters) * doc/devdoc/wd.gprint-and-cf-plot.pod: New design draft from Christian Schnidrig * lib/Torrus/RPN.pm: Slight reorganisation and better fault control * doc/userguide.pod: New in Tips: Several Torrus instances on one server 2004-01-13 Stanislav Sinyagin * lib/Torrus/ConfigTree.pm (token), lib/Torrus/ConfigTree/Writer.pm (setAlias), lib/Torrus/DB.pm (getBestMatch): Recursive alias expansion. New database: aliases.db. configsnapshot is no more compatible with previous releases' database. 2004-01-12 Stanislav Sinyagin * lib/Torrus/ConfigTree.pm (getAliases): Improved logics for aliases. Needs database recompilation. 2004-01-09 Stanislav Sinyagin * bin/schedulerinfo.in: New utility for scheduler analysis 2004-01-08 Stanislav Sinyagin * xmlconfig/old/rfc1213.xml: Moved from xmlconfig/generic/rfc1213.xml * templates/html-incblocks.txt: cssoverlay property * bin/configsnapshot.in: Ready for tests * lib/Torrus/DevDiscover/RFC2737_ENTITY_MIB.pm (discover): Chassis desription is put into host-level comment 2004-01-07 Stanislav Sinyagin * bin/configsnapshot.in: first step towards a snapshot utility * xmlconfig/vendor/cisco.generic.xml: New template: cisco-temperature-sensor-fahrenheit * xmlconfig/generic/collector-periods.xml: Changed XFF the same way as in snmp-defs.xml. Added Holt-Winters parameters to 1-minute interval. * xmlconfig/snmp-defs.xml: Changed XFF in default RRAs: 1 missing sample is allowed in half-hour average, and 1 missing hour is allowed in daily average. * lib/Torrus/Collector/SNMP.pm (initTargetAttributes): New parameter: snmp-object-type 2004-01-06 Stanislav Sinyagin * xmlconfig/generic/rfc2662.adsl-line.xml: Reduced number of RRD files * xmlconfig/vendor/cisco.generic.xml: Moved buffer statistics into a single RRD file * xmlconfig/generic/rfc2863.if-mib.xml: Reorganized RRD data structure. Significantly reduced number of files. 2004-01-05 Stanislav Sinyagin * bin/genlist.in: New utility for data listing 2003-12-31 Stanislav Sinyagin * lib/Torrus/DevDiscover/RFC2737_ENTITY_MIB.pm: New discovery module * lib/Torrus/DevDiscover/CiscoGeneric.pm: CPU enties mapped against ENTITY-MIB names 2003-12-30 Stanislav Sinyagin * bin/devdiscover.in: $XMLCONFIG substitution 2003-12-29 Stanislav Sinyagin * xmlconfig/generic/rfc2863.if-mib.xml: Moved ifindex-map to host level 2003-12-28 Stanislav Sinyagin * lib/Torrus/DevDiscover/CiscoGeneric.pm, xmlconfig/vendor/cisco.generic.xml: Reorganized CPU and Memory pool statistics. * lib/Torrus/DevDiscover/CiscoFirewall.pm: New discovery module * lib/Torrus/DevDiscover/F5BigIp.pm: New discovery module for F5 BigIp Load Balancer 2003-12-24 Stanislav Sinyagin * xmlconfig/old/snmp-defs.old-0.1.2.xml: Moved from generic/ to old/ * xmlconfig/old/rfc2863.if-mib.old-0.1.4.xml: Saved the file from previous version. 2003-12-22 Stanislav Sinyagin * lib/Torrus/DevDiscover/Xylan.pm: New discovery module for Alcatel (Xylan) OmniSwitch * lib/Torrus/DevDiscover/AscendMax.pm: New discovery module for Ascend (Lucent) MAX 2003-12-21 Stanislav Sinyagin * lib/Torrus/DevDiscover/CiscoIOS.pm (checkdevtype): Use CISCO-IMAGE-MIB::ciscoImageTable for more strict IOS-based product detection 2003-12-18 Stanislav Sinyagin * lib/Torrus/DevDiscover/RFC2863_IF_MIB.pm (buildConfig): Vendor templates for interface counters taken from @{$interface->{'vendor_templates'}} * lib/Torrus/DB.pm (new): Berkeley db-4.2 compatibility 2003-12-17 Stanislav Sinyagin * xmlconfig/vendor/empire.systemedge.xml: Data structure and templates changed for better flexibility and system support * bin/devdiscover.in, bin/genddx.in: Output file is now controlled from DDX parameter 'output-file'. 2003-12-15 Stanislav Sinyagin * lib/Torrus/DevDiscover/MicrosoftWindows.pm: Moved MicrosoftWindowsServer.pm to MicrosoftWindows 2003-12-14 Stanislav Sinyagin * lib/Torrus/DevDiscover/MicrosoftWindowsServer.pm: New discovery module for Windows2000/XP SNMP agent 2003-12-13 Stanislav Sinyagin * xmlconfig/generic/rfc2863.if-mib.xml: Replaced $IFIDX with %ifindex-map% Split template iftable-discards into iftable-discards-in and iftable-discards-out. For some devices, /var/snmpcollector/*_discards.rrd need to be deleted, and devdiscover re-launched 2003-12-11 Stanislav Sinyagin * templates/default-tset.html, xmlconfig/generic/rfc2863.if-mib.xml: New parameter: descriptive-nickname 2003-12-10 Stanislav Sinyagin * NEWS: Release 0.1.4 * devdiscover-config.pl: Commented out "RFC2662_ADSL_LINE" and "Paradyne" (need more testing) 2003-12-08 Stanislav Sinyagin * templates/*, web/plain/*.css: more flexible CSS layout 2003-12-04 Stanislav Sinyagin * lib/Torrus/Renderer.pm (do_render_rrdgraph): New parameter: graph-rigid-boundaries 2003-12-01 Stanislav Sinyagin * lib/Torrus/DevDiscover/RFC2863_IF_MIB.pm (discover): New discovery option: RFC2863_IF_MIB::suppress-hc-counters 2003-11-28 Stanislav Sinyagin * bin/devdiscover.in: now it accepts XML input only * bin/genddx.in: New utility for next-generation devdiscover * lib/Torrus/DevDiscover/RFC2863_IF_MIB.pm (buildConfig): interface counters moved to a separate subtree 2003-11-25 Stanislav Sinyagin * lib/Torrus/Renderer.pm (do_render_rrdgraph): New parameter: graph-logarithmic 2003-11-23 Stanislav Sinyagin * lib/Torrus/DevDiscover/EmpireSystemedge.pm: new discovery module 2003-11-22 Stanislav Sinyagin * lib/Torrus/DevDiscover.pm (clearCap): capability clearing needed for Empire Sysedge 2003-11-18 Stanislav Sinyagin * xmlconfig/generic/rfc2863.if-mib.xml: templates interface-counters and hc-interface-counters removed New templates: read-iftable-octets, read-ifxtable-hcoctets 2003-11-11 Stanislav Sinyagin * web/plain/torrus.css: Increased maximum node name length to 25 symbols * lib/Torrus/DevDiscover/CiscoGeneric.pm: moved memory, cpu, and temperature statistics to a common module, shared by IOS and CatOS * lib/Torrus/DevDiscover/CiscoCatOS.pm (discover): interface comments are now derived from CISCO-STACK-MIB::portName 2003-11-10 Stanislav Sinyagin * xmlsup/extract-skeleton.xsl: XSLT template for tree structure extraction * bin/configinfo.in: New utility * bin/devdiscover.in: New options: --retries and --timeout * lib/Torrus/DevDiscover/CiscoCatOS.pm: Interface filters for CatOS 2003-11-09 Stanislav Sinyagin * lib/Torrus/ConfigBuilder.pm (addStatistics): congfiguration statistics * lib/Torrus/DevDiscover/CiscoIOS.pm: Interface filters for IOS devices * lib/Torrus/DevDiscover/RFC2863_IF_MIB.pm (discover): Implemented generic interface filtering 2003-11-07 Stanislav Sinyagin * xmlconfig/generic/rfc2863.if-mib.xml: rrd-create-max=1e15 for HC packet and octets counters * lib/Torrus/DevDiscover/RFC2863_IF_MIB.pm (buildConfig): New interface counters: iftable-discards 2003-11-05 Stanislav Sinyagin * New devdiscover modules: "RFC2662_ADSL_LINE" and "Paradyne" 2003-11-04 Stanislav Sinyagin * lib/Torrus/Collector/SNMP.pm (initTarget): New parameter: snmp-oids-per-pdu 2003-11-03 Stanislav Sinyagin * NEWS: Release 0.1.3 * doc/, doc/devdoc/: Documentation is reorganized. Developer documentation is separated from User docs. 2003-10-31 Stanislav Sinyagin * templates/overview-subleaves.html: Replacement for InOutBps. New parameters: has-overview-subleaves, overview-subleave-name, overview-shortcut-text, overview-shortcut-title, overview-page-title 2003-10-30 Stanislav Sinyagin * lib/Torrus/DevDiscover/CiscoIOS_SAA.pm: New discovery module 2003-10-29 Stanislav Sinyagin * lib/Torrus/Renderer.pm (do_render_rrdgraph): New parameter: rrd-scaling-base (new): cache initialization optimized 2003-10-28 Stanislav Sinyagin * doc/devdiscover_devguide.pod: new Device Discovery Developer's Guide 2003-10-27 Stanislav Sinyagin * lib/Torrus/DevDiscover/RFC2790_HOST_RESOURCES.pm: New Host resources MIB discovery module 2003-10-26 Stanislav Sinyagin * examples/setmonitor.xupdate.xml: XUpdate technique to update autogenerated files. Described in userguide.pod. 2003-10-24 Stanislav Sinyagin * xmlconfig/generic/rfc2863.if-mib.xml: New names for interace counter RRD files: host_intf_octets.rrd, host_intf_packets.rrd, etc. * xmlconfig/snmp-defs.xml: data-file and data-dir are no longer defined in snmp-defaults. * xmlconfig/generic/rfc2863.if-mib.xml: Broke interface counter templates into smaller parts. New counters template: "iftable-errors". * xmlconfig/snmp-defs.xml: Moved interface counters to generic/rfc2863.if-mib.xml 2003-10-21 Stanislav Sinyagin * New ACL user and group attribute: "modified" 2003-10-20 Stanislav Sinyagin * lib/Torrus/DevDiscover.pm (genDataDir): data-dir hash implemented * bin/devdiscover.in: Default subtree is now /Routers. Alternative device names may be given as host:devname * xmlconfig/: Vendor and generic templates from Shawn Ferry 2003-10-19 Stanislav Sinyagin * Shawn Ferry's contribution on styling profiles, with recursive color references 2003-10-18 Stanislav Sinyagin * lib/Torrus/ConfigTree/XMLCompiler.pm (compile): directives are now processed recursively, before any other processing. 2003-10-17 Stanislav Sinyagin * xmlconfig/snmp-defs.xml: Replaced subtree /SNMP with template Moved old version to generic/snmp-defs.old-0.1.2.xml 2003-10-15 Stanislav Sinyagin * bin/devdiscover.in: First proof of concept version of a new modular device discovery tool 2003-10-14 Stanislav Sinyagin * NEWS: Release 0.1.2 * lib/Torrus/ConfigTree/Writer.pm (addChild): Nodes longer than 20 characters are reported with warning. 2003-10-13 Stanislav Sinyagin * xmlconfig: New vendor files: vendor/ascend.max.xml, examples/ascend.max.xml, generic/rfc2670.docsis-if.xml * doc/userguide.pod, xmlconfig/examples/servers.data, xmlconfig/examples/servers.tmpl: New approach in automatic config generation. 2003-10-12 Stanislav Sinyagin * bin/mkroutercfg.in (retrieveSnmpData): VLAN interfaces are excluded from the list of discovered interfaces. 2003-10-09 Stanislav Sinyagin * lib/Torrus/ConfigTree/Writer.pm (propagateViewParams): Moved view parameter inheritance from XML compiler to Writer post-processing 2003-10-07 Stanislav Sinyagin * lib/Torrus/Renderer.pm (do_render_rrdgraph): New view parameters: ignore-limits, ignore-lower-limit, ignore-upper-limit * bin/cleanup.in: Cronjob for cleaning up diskspace. * lib/Torrus/Renderer.pm (do_render_rrdgraph): New parameters: graph-lower-limit, graph-upper-limit 2003-10-06 Stanislav Sinyagin * styling/torrus-original.pl: Styling profiles implemented 2003-10-04 Stanislav Sinyagin * lib/Torrus/Renderer.pm: New parameter: vertical-label 2003-09-30 Stanislav Sinyagin * lib/Torrus/Renderer.pm (do_render_rrdgraph): Added HRULE handling 2003-09-29 Stanislav Sinyagin * lib/Torrus/Renderer.pm (render_html): Added current time in HTML output 2003-09-18 Stanislav Sinyagin * lib/Torrus/Scheduler.pm: VmWare clock support 2003-09-17 Stanislav Sinyagin * lib/Torrus/Monitor.pm (setAlarm): New parameter: monitor-action-target 2003-09-14 Stanislav Sinyagin * NEWS: Release 0.1.1 2003-09-13 Stanislav Sinyagin * lib/Torrus/ConfigTree.pm: %Torrus::ConfigTree::expand_params now contains parameters for expansion * lib/Torrus/ConfigTree/Writer.pm: %Torrus::ConfigTree::Writer::remove_space now contains parameters for space removal * lib/Torrus/Collector.pm (addTarget): New parameter: value-map * configure.ac: New configure variable: torrus_user. torrus_var default value changed from root to torrus 2003-09-09 Stanislav Sinyagin * init.torrus.in: New launcher for multi-tree support. FreeBSD 5.1 gives weird error without "&" in launching command. Needs testing on other systems. 2003-09-07 Stanislav Sinyagin * Monitor event "throw" changed to "set" 2003-09-05 Stanislav Sinyagin * lib/Torrus/ACL/Import.pm, lib/Torrus/ACL/Export.pm: ACL import/export utilities * bin/aclfixup.in: Temporary utility to convert ACL database to the new format. * lib/Torrus/ACL/Edit.pm: ACL Database structure changed: added "uA:" lists 2003-09-03 Stanislav Sinyagin * lib/Torrus/RPN.pm: Got use of use Math::BigFloat, as suggested by Christian. * xmlconfig/snmp-defs.xml: Changed xff to 0.5, as recommended by rodrigo.cunha at corp.vodafone.pt * lib/Torrus/DB.pm: Database handles are held in a pool and reused 2003-09-02 Stanislav Sinyagin * Added user authentication: lib/Torrus/ACL*, bin/acledit, Apache handler * Multiple trees support as described in Requirements 0.1 2003-08-26 Stanislav Sinyagin * lib/Torrus/Collector/SNMP.pm: Moved the validator parameters to a separate module 2003-08-07 Stanislav Sinyagin * xmlconfig/defaults.xml: Tokenset views expiry time changed from 300 to 60 * lib/Torrus/Renderer.pm (checkAndClearCache): Renderer cache is cleared at least once a day * webmux.pl: New Apache init script. DB environment is now correctly destroyed 2003-08-06 Stanislav Sinyagin * mibs/Torrus-MIB.txt: Added DS tree name to Monitor action exec and helper programs * web/plain/torrus.css: Replaced
with display:block in current path * height-hint parameter is removed. * templates/routercfg.xml: Fixed the subtree deepness bug for temperature sensors. * First steps towards version 0.1: Multiple trees and database split are implemented. 2003-08-04 Stanislav Sinyagin * NEWS: Release 0.0.20 2003-07-31 Stanislav Sinyagin * lib/Torrus/Renderer.pm: added $Torrus::Renderer::rendererURL and $Torrus::Renderer::plainURL 2003-07-29 Stanislav Sinyagin * templates/html-incblocks.txt: Absolute URL for CSS stylesheet * lib/Torrus/Collector/SNMP.pm: multiple ports and SNMP communities per IP address. 2003-07-23 Stanislav Sinyagin * templates/routercfg.xml: moved snmp-community and other parameters to a host-level subtree 2003-07-17 Stanislav Sinyagin * SNMP Agent reload and unavailable handling 2003-07-15 Stanislav Sinyagin * bin/mkroutercfg.in, templates/*, lib/Torrus/Renderer.pm: Bugs item #747893 resolved. 2003-07-02 Stanislav Sinyagin * bin/mkroutercfg.in (reportResults), templates/routercfg.xml: Legend is now XML-escaped 2003-07-01 Stanislav Sinyagin * NEWS: Release 0.0.19 2003-06-26 Stanislav Sinyagin * xmlconfig/snmp-defs.xml, lib/Torrus/Collector/RRDStorage.pm, lib/Torrus/ConfigTree/Validator.pm: typo fixed: rrd-create-heartbit changed to rrd-create-heartbeat * xmlconfig/snmp-defs.xml: as proposed by Christian Schnidrig, rrd-create-heartbeat changed from 1800 to 500 2003-06-10 Stanislav Sinyagin * bin/mkroutercfg.in (reportResults), templates/routercfg.xml: SNMP version bugfix * configure.ac: Now most of the directory names are configurable 2003-05-18 Stanislav Sinyagin * lib/Torrus/Renderer.pm (render): Bug #735753 (Christian Schnidrig) fixed * bin/mkroutercfg.in, templates/routercfg.xml: Marc Haber's patch for deeper subtrees * torrus-config.pl: added @Torrus::ConfigTree::XMLCompiler::listparams 2003-05-01 Stanislav Sinyagin * lib/Torrus/Collector/SNMP.pm: SNMP-specific config validator is now within the module. * lib/Torrus/ConfigTree/Validator.pm: Additional validation parameters are read from @Torrus::Validator::loadLeafValidators * lib/Torrus/Collector.pm: Collector modules are loaded from @Torrus::Collector::loadModules 2003-04-02 Stanislav Sinyagin * NEWS: Release 0.0.18 2003-03-31 Stanislav Sinyagin * xmlconfig/defaults.xml: New parameter: rrgraph-views 2003-03-30 * xmlconfig/Makefile.am: Added Cisco MAC accounting 2003-03-27 Stanislav Sinyagin * lib/Torrus/Renderer.pm and temlates: reorganized Holt-Winters views 2003-03-25 Stanislav Sinyagin * torrus-config.pl: Moved monitor parameters from siteconfig to default config. 2003-03-21 Stanislav Sinyagin * NEWS: Release 0.0.17 * web/plain/torrus-printer.css: Finalized the printer-friendly layout 2003-03-17 Stanislav Sinyagin * init.torrus.in: now running under user "torrus" 2003-03-15 Stanislav Sinyagin * configure.ac: Changed the group to "torrus"; init.torrus is more universal 2003-03-15 Stanislav Sinyagin * lib/Torrus/Renderer.pm, lib/Torrus/ApacheHandler.pm: optimized Renderer to reuse Template processor in mod_perl 2003-03-15 Stanislav Sinyagin * web/plain/torrus.css: New HTML layout 2003-03-11 Stanislav Sinyagin * xmlconfig/Makefile.am (dist_examples_DATA): Moved apcups-example.xml to apc-ups.xml. Added hpux.xml * bin/rrd_getdim.in, bin/prepviews.in, xmlconfig/Makefile.am: "make install prefix=/some/path" now works correctly. * lib/Bundle/Torrus.pm: Perl bundle for easy installation 2003-03-04 Stanislav Sinyagin * NEWS: Release 0.0.16 * lib/Torrus/Renderer.pm (do_render_rrdgraph): Fixed TICK bug * xmlconfig/vendor/hp.hpux.xml: New definitions file from Aaron Bush * xmlconfig/vendor/apc.ups.xml: * xmlconfig/examples/apcups-example.xml: Merged the several templates into one. 2003-03-03 Stanislav Sinyagin * Makefile.am: added torrus-config.dtd to distribution * xmlsup/torrus-config.dtd: The configuration DTD first cut 2003-03-02 * Makefile.am (dist_mibs_DATA): Moved mibs from lib to share 2003-03-01 Stanislav Sinyagin * bin/mkroutercfg.in (reportResults): Added vendor/cisco.ios.xml chekup * xmlconfig/examples/apcups-defs.xml: moved to xmlconfig/vendor/apc.ups.xml * xmlconfig/examples/snmp-view.xml: moved contents into xmlconfig/vendor/cisco.ios.xml * xmlconfig/snmp-defs.xml: Moved Cisco specifics to xmlconfig/vendor/cisco.ios.xml * xmlconfig/Makefile.am: snmp-defs.xml is not any more preserved * configure.ac, Makefile.am: added plugin functionality 2003-02-27 Stanislav Sinyagin * lib/Torrus/Renderer.pm (render_html), lib/Torrus/ApacheHandler.pm (handler), web/grapher.cgi.in: Fixed the non-ASCII display problem. Also XML-LibXML-1.54_3 is required. 2003-02-26 Stanislav Sinyagin * NEWS: Release 0.0.15 * xmlconfig/examples/apcups-defs.xml: * xmlconfig/examples/apcups-example.xml: Added APC UPS example configurations * lib/Torrus/Collector/RRDStorage.pm (updateRRD): Reverted to a more promiscious code, because the memory problem persists with perl 5.8. 2003-02-20 Stanislav Sinyagin * NEWS: Release 0.0.14 2003-02-10 Stanislav Sinyagin * lib/Torrus/ConfigTree/Writer.pm: fixed bug with parameter cache 2003-01-29 Stanislav Sinyagin * bin/mkroutercfg.in: fixed the exit code bug 2003-01-24 Stanislav Sinyagin * xmlconfig/Makefile.am: added xmlconfig/examples/snmp-view.xml * lib/Torrus/ConfigTree/XMLCompiler.pm, bin/compilexml.in: added XML statement 2003-01-20 Stanislav Sinyagin * NEWS: Release 0.0.13 * bin/compilexml.in, bin/collector.in, bin/monitor.in: Added signal handlers for more graceful database closing. 2003-01-13 Stanislav Sinyagin * lib/Torrus/ConfigTree.pm: Now compiler waits for readers to finish. 2003-01-08 Stanislav Sinyagin * lib/Torrus/ConfigTree.pm: implemented ConfigurationReady checkup * lib/Torrus/ApacheHandler.pm, web/grapher.cgi.in: more user friendly error reporting 2003-01-05 Stanislav Sinyagin * xmlconfig/snmp-defs.xml: Added InOutBps leaf to the templates. Affected files: xmlconfig/defaults.xml, templates/routercfg.xml, templates/default-dir.html, templates/inout-leaves.html 2003-01-03 Stanislav Sinyagin * xmlconfig/snmp-defs.xml: Added graph-legend parameters 2003-01-02 Stanislav Sinyagin * xmlconfig/Makefile.am: moved XML examples to a separate directory * implemented 'rrd-multigraph' * changed ds-type RRDfile to rrd-file 2002-09-10 Stanislav Sinyagin * Release 0.0.5 published. Everything except SNMP data collector is ready to run. 2002-08-12 Stanislav Sinyagin * Reorganized a lot of things. First cut of monitor is runnable. 2002-07-19 Stanislav Sinyagin * Implemented Holt-Winters support 2002-07-18 Stanislav Sinyagin * Reorganized ConfigTree and implemented tokens torrus-2.07/setup_tools/0000755000175000017510000000000012137523667012376 500000000000000torrus-2.07/setup_tools/replace_rrfw.sh0000755000175000017510000000023411545711243015316 00000000000000#!/bin/sh # replace all ocurrences of RRFW and rrfw to Torrus and torrus IN=$1 sed -e 's/RRFW/Torrus/g' -e 's/rrfw/torrus/g' $IN >/tmp/$$ mv /tmp/$$ $IN torrus-2.07/setup_tools/configure_fhs0000755000175000017510000000062311661302716015055 00000000000000#!/bin/sh # Configure script for FHC compliant setup (http://www.pathname.com/fhs/) # Stanislav Sinyagin if test ! -x ./configure; then echo "$0: cannot find ./configure" 2>&1 echo "Usage: ./setup_tools/configure_fhs [configure options]..." 2>&1 exit 1 fi ./configure \ --prefix=/opt \ --mandir=/opt/share/man \ pkghome=/opt/torrus \ sitedir=/etc/opt/torrus \ "$@" torrus-2.07/setup_tools/substvars.sh.in0000644000175000017510000000707711661302716015315 00000000000000#!@SHELL@ # Copyright (C) 2002 Stanislav Sinyagin # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # Stanislav Sinyagin # PACKAGE=@PACKAGE@ prefix=@prefix@ datarootdir=@datarootdir@ pkghome=@pkghome@ exec_prefix=@exec_prefix@ perllibdir=@perllibdir@ pluginsdir=@pluginsdir@ sysconfdir=@sysconfdir@ varprefix=@varprefix@ sitedir=@sitedir@ supdir=@supdir@ styldir=@supdir@/styling devdiscover_config_pl=@cfgdefdir@/devdiscover-config.pl torrus_config_pl=@cfgdefdir@/torrus-config.pl torrus_siteconfig_pl=@siteconfdir@/torrus-siteconfig.pl snmptrap_siteconfig_pl=@siteconfdir@/snmptrap-siteconfig.pl email_siteconfig_pl=@siteconfdir@/email-siteconfig.pl devdiscover_siteconfig_pl=@siteconfdir@/devdiscover-siteconfig.pl notify_siteconfig_pl=@siteconfdir@/notify-siteconfig.pl @SED@ \ -e "s,\@FIND\@,@FIND@,g" \ -e "s,\@PERL\@,@PERL@,g" \ -e "s,\@RM\@,@RM@,g" \ -e "s,\@SHELL\@,@SHELL@,g" \ -e "s,\@VERSION\@,@VERSION@,g" \ -e "s,\@bindir\@,@bindir@,g" \ -e "s,\@cachedir\@,@cachedir@,g" \ -e "s,\@cfgdefdir\@,@cfgdefdir@,g" \ -e "s,\@dbhome\@,@dbhome@,g" \ -e "s,\@defrrddir\@,@defrrddir@,g" \ -e "s,\@devdiscover_config_pl\@,$devdiscover_config_pl,g" \ -e "s,\@devdiscover_siteconfig_pl\@,$devdiscover_siteconfig_pl,g" \ -e "s,\@distxmldir\@,@distxmldir@,g" \ -e "s,\@pkgdocdir\@,@pkgdocdir@,g" \ -e "s,\@email_siteconfig_pl\@,$email_siteconfig_pl,g" \ -e "s,\@exmpdir\@,@exmpdir@,g" \ -e "s,\@logdir\@,@logdir@,g" \ -e "s,\@mandir\@,@mandir@,g" \ -e "s,\@mansec_misc\@,@mansec_misc@,g" \ -e "s,\@mansec_usercmd\@,@mansec_usercmd@,g" \ -e "s,\@notify_siteconfig_pl\@,$notify_siteconfig_pl,g" \ -e "s,\@perlithreads\@,@perlithreads@,g" \ -e "s,\@perllibdir\@,@perllibdir@,g" \ -e "s,\@perllibdirs\@,@perllibdirs@,g" \ -e "s,\@piddir\@,@piddir@,g" \ -e "s,\@pkgbindir\@,@pkgbindir@,g" \ -e "s,\@pkghome\@,@pkghome@,g" \ -e "s,\@plugdevdisccfgdir\@,@plugdevdisccfgdir@,g" \ -e "s,\@pluginsdir\@,@pluginsdir@,g" \ -e "s,\@plugtorruscfgdir\@,@plugtorruscfgdir@,g" \ -e "s,\@plugwrapperdir\@,@plugwrapperdir@,g" \ -e "s,\@reportsdir\@,@reportsdir@,g" \ -e "s,\@scriptsdir\@,@scriptsdir@,g" \ -e "s,\@seslockdir\@,@seslockdir@,g" \ -e "s,\@sesstordir\@,@sesstordir@,g" \ -e "s,\@siteconfdir\@,@siteconfdir@,g" \ -e "s,\@sitedir\@,@sitedir@,g" \ -e "s,\@sitexmldir\@,@sitexmldir@,g" \ -e "s,\@snmptrap_siteconfig_pl\@,$snmptrap_siteconfig_pl,g" \ -e "s,\@styldir\@,$styldir,g" \ -e "s,\@supdir\@,@supdir@,g" \ -e "s,\@tmpldir\@,@tmpldir@,g" \ -e "s,\@tmpluserdir\@,@tmpluserdir@,g" \ -e "s,\@torrus_config_pl\@,$torrus_config_pl,g" \ -e "s,\@torrus_siteconfig_pl\@,$torrus_siteconfig_pl,g" \ -e "s,\@torrus_user\@,@torrus_user@,g" \ -e "s,\@webplaindir\@,@webplaindir@,g" \ $1 # Local Variables: # mode: shell-script # indent-tabs-mode: nil # perl-indent-level: 4 # End: torrus-2.07/setup_tools/Bundle/0000755000175000017510000000000012137523667013607 500000000000000torrus-2.07/setup_tools/Bundle/Torrus.pm0000644000175000017510000000373111661302716015356 00000000000000# Torrus Perl bundle # Copyright (C) 2002 Stanislav Sinyagin # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # Stanislav Sinyagin # # package Bundle::Torrus; $VERSION = '1.00'; __END__ =head1 NAME Bundle::Torrus - A bundle to install Torrus prerequisite modules =head1 SYNOPSIS C =head1 CONTENTS File::Temp - required by XML::SAX XML::NamespaceSupport 1.07 - required by XML::LibXML XML::SAX 0.11 - required by XML::LibXML XML::LibXML::Common - required by XML::LibXML AppConfig - required by Template File::Spec - required by Template Crypt::DES 2.03 - required by Net::SNMP Digest::MD5 2.11 - required by Net::SNMP Digest::SHA1 1.02 - required by Net::SNMP Digest::HMAC 1.00 - required by Net::SNMP MIME::Base64 - required by URI::Escape XML::LibXML 1.54 - older versions do not handle charsets properly BerkeleyDB 0.19 - older versions do not have trunc() Template - this is template-toolkit Proc::Daemon Net::SNMP 5.2.0 - older versions may not work URI::Escape Apache::Session Date::Parse JSON =head1 AUTHOR Stanislav Sinyagin EFE =cut torrus-2.07/setup_tools/check_perlthreading.pl0000644000175000017510000000114111545711243016624 00000000000000 use threads; $| = 1; print "The child thread must keep ticking while the main thread sleeps\n"; print "If it's not so, then we have a compatibility problem\n"; my $thrChild = threads->create( \&child ); $thrChild->detach(); print "P> Launched the child thread. Now I sleep 20 seconds\n"; sleep(20); print "P> Parent woke up. Was there ticking inbetween?\n"; exit 0; sub child { print "C> Child thread started. I will print 10 lines, one per second\n"; foreach my $i (1..10) { print("C> Child tick " . $i . "\n"); sleep(1); } } torrus-2.07/setup_tools/mkvardir.sh.in0000644000175000017510000000301611661302716015065 00000000000000#!@SHELL@ # Copyright (C) 2002 Stanislav Sinyagin # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # Stanislav Sinyagin # dir=$1 user=@var_user@ group=@var_group@ mode=@var_mode@ SHELL=@SHELL@ if test ! -d $dir; then @install_sh@ -d $dir || exit 1 if test "@enable_varperm@" = "yes"; then if test "x@host_os@" != "xcygwin"; then test -z "$user" && user=@torrus_user@ test -z "$group" && group=torrus test -z "$mode" && mode=775 fi test -z "$mode" || chmod $mode $dir || (rmdir $dir; exit 1) test -z "$user" || chown $user $dir || (rmdir $dir; exit 1) test -z "$group" || (chgrp $group $dir && chmod g+s $dir) || \ (rmdir $dir; exit 1) fi fi exit 0 # Local Variables: # mode: shell-script # indent-tabs-mode: nil # perl-indent-level: 4 # End: torrus-2.07/templates/0000755000175000017510000000000012137523667012014 500000000000000torrus-2.07/templates/default-tset.html0000644000175000017510000000436311545711243015220 00000000000000[% PROCESS 'html-incblocks.txt' %] [% INCLUDE setdate %] [% comment = xmlnorm(param(token, 'comment')) %] [% INCLUDE htmlstart title=comment contentClass="SingleColumnContent" %]

[% comment %]

[% INCLUDE treename %] [% INCLUDE variables %] [% SET pos = 1; SET global.hwpredict = 0 %] [% FOREACH node = sortTokens(tsetMembers(token)) %] [% IF pos == 1 %]
[% ELSE %]
[% END %] [% nodename=nodeParam(node,'descriptive-nickname'); IF nodename==''; nodename=path(node); END; comment=nodeParam(parent(node),'comment',1); %]
[%IF comment%]
[%xmlnorm(comment)%]
[%END%] [% nodeView = param(token,'rrgraph-view'); IF nodeView==''; nodeView = nodeParam(node,'rrgraph-views').split(',').0; END; nodevars = []; IF nodeParam(node, 'rrd-hwpredict') == 'enabled' and param(nodeView, 'rrd-hwpredict') != 'disabled'; global.hwpredict = 1; IF variables.NOHW; nodevars = ['NOHW', 1]; ELSE; nodevars = ['NOHW', '']; END; END %]
[% IF pos == 1 %] [% SET pos = 2 %] [% ELSE %] [% SET pos = 1 %] [% END %] [% END %]
[% IF global.hwpredict; IF variables.NOHW; INCLUDE shortcut url=url(token, view, 'NOHW', '') text="Enable Holt-Winters" title="Switch Holt-Winters prediction boundaries"; ELSE; INCLUDE shortcut url=url(token, view, 'NOHW', 1) text="Disable Holt-Winters" title="Switch Holt-Winters prediction boundaries"; END; END %] [% INCLUDE shortcut url=url('SS') text="Back to tokensets list" title="List of non-empty tokensets"%]
[% INCLUDE tsetbottomline %] [% INCLUDE htmlend %] torrus-2.07/templates/default-helptext.html0000644000175000017510000000167111545711243016075 00000000000000[%# #### We don't need the standard header and footer ####### %] [% PROCESS 'html-incblocks.txt' %] [% thepath=path(token) %] Help: [%thepath%]
Torrus Help
[% thepath %]
[% helptext=nodeParam(token, 'help-text', 1); %]
[% markup( helptext ) %]
torrus-2.07/templates/report-yearly.html0000644000175000017510000000134111545711243015426 00000000000000[% PROCESS 'html-incblocks.txt' %] [% INCLUDE htmlstart title="Torrus Reports: " _ year contentClass="SingleColumnContent" noTopMenu=1 %]

Torrus reports: [% year %]

[% INCLUDE treename %] [% rowCount = 0; FOREACH mth = data.months; rowCount = rowCount + 1; IF rowCount % 2 %] [% ELSE %] [% END %] [% END %]
Monthly reports
Month
[% monthName(mth) _ ' ' _ year %]
[% INCLUDE htmlend %] torrus-2.07/templates/overview-subleaves.html0000644000175000017510000000241211545711243016445 00000000000000[% PROCESS 'html-incblocks.txt' %] [% INCLUDE setdate %] [% ovs=variables.OVS; clearVar('OVS'); global.bookmarkVars=['OVS',ovs]; thepath=path(token) %] [% INCLUDE htmlstart title=thepath printpath=1 %]

[% p = 'overview-page-title-' _ ovs; nodeParam(token, p, 1) %]

[% INCLUDE variables %] [% INCLUDE legend %] [% FOREACH child = sortTokens(children(token)); childpath = path(child); p = 'overview-subleave-name-' _ ovs; FOREACH childname = nodeParam(token, p,1).split('\s*,\s*'); ovwpath = childpath _ childname; IF nodeExists(ovwpath); ovwtoken = pathToken(ovwpath); urltoken = ovwtoken; p = 'overview-direct-link-' _ ovs; IF nodeParam(token, p, 1) == 'yes'; urltoken = child; p = 'overview-direct-link-view-' _ ovs; urlview = nodeParam(token, p, 1); END; INCLUDE shortgraph token=ovwtoken urltoken=urltoken urlview=urlview nodename=nodeName(child) comment=nodeParam(child,'comment',1); END; END; END %]
[% INCLUDE shortcut url=url(token) text="Default view" title="Restore default subtree view" %]
[% INCLUDE bottomline %] [% INCLUDE htmlend %] torrus-2.07/templates/html-incblocks.txt0000644000175000017510000002336111567655764015425 00000000000000[%# $Id$ All BLOCK statements are defined here %] [%# ########### Initialize globals ################ %] [% global.setDateDialog = 0; %] [%# ########### Print the starting HTML blahblah ################ %] [% BLOCK htmlstart; IF ! contentClass; contentClass="Content"; END %] [% title %] [% IF expires %][% END %]
[% IF companyLogo %][%companyName%][% ELSE; companyName; END %] [% IF siteInfo %] [% siteInfo %] [% END %] [% IF treeName and treeInfo %] [% treeInfo %] [% END %] [% IF userAuth and uid; commonname = userAttr('cn'); IF commonname == ''; commonname = uid; END; %]
[% commonname %] Logout
[% END %]
[% timestamp %]
[% IF printpath %]
[% INCLUDE treename %]
Current path: [% splitUrls(token) %]
[% END %] [% IF not noTopMenu %]
[% INCLUDE shortcut url=topURL text="Top" title="Choose from the list of trees"%] [% theParent=parent(token); IF theParent and theParent != token; INCLUDE shortcut url=url(theParent) text="Up" title="Climb up the tree"; END %] [% INCLUDE helpshortcut %] [% IF mayDisplayAdmInfo(token); INCLUDE shortcut url=url(token,'adminfo') text="AdmInfo" title="Administrative details" newwindow=1; END %]
[% END %]
[% global.contentFinished = 0 %] [% IF global.printError %]
[% global.printError %]
[% global.printError = '' %] [% END %] [% END %] [%# ########### Print the legend ################ %] [% BLOCK legend %] [% legend = nodeParam(token, 'legend') %] [% IF legend.length > 0 %]
[% FOREACH legpairstring = legend.split(';') %] [% SET legpair = legpairstring.split(':') %]
[% xmlnorm(legpair.0) %]: [% xmlnorm(legpair.1) %]
[% END %]
[% END %] [% END %] [%# ########### Print the TZ and NOW variables ################ %] [% BLOCK variables %] [% IF variables.TZ or variables.NOW %]

[% IF variables.TZ %] Timezone: [% variables.TZ %]. [% END %] [% IF variables.NOW %] Report date: [% variables.NOW %]. [% END %]

[% END %] [% END %] [%# ########### Print the current tree name ################ %] [% BLOCK treename %]
Tree: [% treeName %]
[% END %] [%# ########### Print the shortcut ################ %] [% BLOCK shortcut %] [%text%] ] [% END %] [%# ########### Print the Help shortcut ################ %] [% BLOCK helpshortcut; IF nodeParam(token, 'help-text', 1); INCLUDE shortcut url="javascript:helpwindow()" text="Help" title="Open a help window for this page"; END; END %] [%# ########### Print the common bottomline ################ %] [% BLOCK bottomline %]
[% global.contentFinished = 1 %]
[% INCLUDE shortcut url=url('SS') text="Tokensets" title="List of non-empty tokensets"%] [% INCLUDE shortcut url=url(token,view,'MEDIA','printer','OVS',ovs) text="Printable view" title="Prepare this page for printing" newwindow=1%] [% IF mayDisplayReports(); INCLUDE shortcut url=reportsUrl text="Reports" title="Show reports page" newwindow=1; END %] [% IF global.setDateDialog; INCLUDE enterdate; END %] [% INCLUDE searchdialog %]
[% END %] [%# ########### Print the Tokensets bottomline ################ %] [% BLOCK tsetbottomline %]
[% global.contentFinished = 1 %]
[% INCLUDE shortcut url=url(pathToken('/')) text="Datasources tree" title="Back to the datasources tree" %] [% INCLUDE shortcut url=url(token,view,'MEDIA','printer') text="Printable view" title="Prepare this page for printing" newwindow=1%] [% INCLUDE helpshortcut %] [% INCLUDE searchdialog %]
[% END %] [%# ########### Print the ending HTML blahblah ################ %] [% BLOCK htmlend %] [% IF ! global.contentFinished %][% END %] [% END %] [%# ######## Print the RRD graph image ####### %] [% BLOCK rrgraph %]
[% param(view, 'description') %]
[% END %] [%# ######## Print the short-term RRD graph image ####### %] [% BLOCK shortgraph %] [% hidden = 0; IF nodeParam(token,'hidden') == 'yes'; hidden = 1; END; IF not hidden or variables.SHOWHIDDEN %]
[% IF not urltoken; urltoken = token; END %] [% hidden ? '':'' %] [%IF comment%]
[%xmlnorm(comment)%]
[%END%] [% hidden ? '
':'' %] [% shortView = nodeParam(token,'rrgraph-views').split(',').0; shortvars = []; IF nodeParam(token, 'rrd-hwpredict') == 'enabled' and param(view, 'rrd-hwpredict') != 'disabled'; global.hwpredict = 1; IF variables.NOHW; shortvars = ['NOHW', 1]; ELSE; shortvars = ['NOHW', '']; END; END %]
[% END %] [% END %] [%# ######## Print the overview shortcuts ####### %] [% BLOCK overviewShortcuts %] [% IF nodeParam(token, 'has-overview-shortcuts', 1) == 'yes'; FOREACH ovs = nodeParam(token,'overview-shortcuts').split('\s*,\s*'); p1 = 'overview-shortcut-text-' _ ovs; p2 = 'overview-shortcut-title-' _ ovs; INCLUDE shortcut url=url(token, 'overview-subleaves-html', 'OVS', ovs) text=nodeParam(token, p1, 1) title=nodeParam(token, p2, 1); END; END %] [% END %] [%# ######## Set the date variable ####### %] [% BLOCK setdate %] [% IF variables.SETDATE == 1; thedate = verifyDate( variables.SETDATEV ); IF thedate.length == 0; global.printError = 'Incorrect date format'; clearVar('SETDATE'); ELSE; variables.NOW = thedate; END; ELSE; clearVar('NOW'); clearVar('SETDATE'); clearVar('SETDATEV'); END; global.setDateDialog = 1; %] [% END %] [%# ######## Print the date selection elements ####### %] [% BLOCK enterdate %]
[% IF ovs %][% END %]
[% END %] [%# ######## Print the searchform HTML ####### %] [% BLOCK searchdialog %] [% IF searchEnabled %]
[% END %] [% END %] [%# ######## Print the Global searchform HTML ####### %] [% BLOCK globalsearchdialog %] [% IF mayGlobalSearch() %]
[% END %] [% END %] torrus-2.07/templates/email-alarm.txt0000644000175000017510000000125511545711243014650 00000000000000Subject: Monitor event: [%event%], [% nickname %] This is automatic Torrus event notification. Event timestamp: [% timestamp %] Tree name: [% tree %] Node path: [% path %] Node description: [% npcomment %] Monitor name: [% monitor %] Monitor description: [% mcomment %] Event type: [% event %] You can browse the node up-to-date graphs at this URL: [% url %] Event types description: set Alarm condition is met first time repeat Alarm condition repeats clear Alarm condition is no longer met forget Information about this alarm has expired Torrus home page and documentation: http://torrus.sourceforge.nettorrus-2.07/templates/report-index.html0000644000175000017510000000120511545711243015227 00000000000000[% PROCESS 'html-incblocks.txt' %] [% INCLUDE htmlstart title="Torrus Reports" contentClass="SingleColumnContent" noTopMenu=1 %]

Torrus reports

[% INCLUDE treename %] [% rowCount = 0; FOREACH yr = data.keys.sort; rowCount = rowCount + 1; IF rowCount % 2 %] [% ELSE %] [% END %] [% END %]
Year
[% yr %]
[% INCLUDE htmlend %] torrus-2.07/templates/aclexport.xml0000644000175000017510000000201311545711243014442 00000000000000 1.1 [% FOREACH group = groups() %] [% privhash = privileges(group); FOREACH object = privhash.keys.sort; FOREACH priv = privhash.$object.keys.sort %] [% END; END; FOREACH attr = gattrlist(group); %] [% END; %] [% END %] [% FOREACH uid = users() %] [% FOREACH group = memberof(uid) %] [% END; FOREACH attr = uattrlist(uid); IF attr != 'uid' %] [% END; END %] [% END %] torrus-2.07/templates/default-login.html0000644000175000017510000000341011545711243015341 00000000000000[% PROCESS 'html-incblocks.txt' %] [% INCLUDE htmlstart title="Torrus Login: " _ companyName contentClass="SingleColumnContent" noTopMenu=1 %] [% IF authFailed %]

Incorrect username or password.

[% END %]

Please authenticate yourself

[% IF urlPassParams.token.defined AND urlPassParams.token.length > 0 %] [% ELSE; IF urlPassParams.path.defined AND urlPassParams.path.length > 0 %] [% ELSE; IF urlPassParams.nodeid.defined AND urlPassParams.nodeid.length > 0 %] [% END; END; END %] [% IF urlPassParams.view.defined AND urlPassParams.view.length > 0 %] [% END %]
Username:
Password:
  remember me
[% IF lostPasswordURL %] [% END %] [% INCLUDE htmlend %] torrus-2.07/templates/default-recursivedir.html0000644000175000017510000000257511545711243016752 00000000000000[% PROCESS 'html-incblocks.txt' %] [% thepath=path(token) %] [% INCLUDE htmlstart title=thepath printpath=1 %]

[% xmlnorm(nodeParam(token,'comment')) %]

[% INCLUDE legend %] [%# ########### Recursively print the children ################ %] [% BLOCK recursiveChildren; FOREACH child = sortTokens(children(token)); hidden = 0; IF nodeParam(child,'hidden') == 'yes'; hidden = 1; END; IF isAlias(child); thisIsAlias = 1; urlTitle = 'Symbolic link to ' _ path(isAlias(child)); ELSE; urlTitle = nodeParam(child,'comment',1); END; IF not hidden or variables.SHOWHIDDEN; %]
[% thisIsAlias ? '':''; hidden ? '':'' %] [% nodeName(child) %] [% hidden ? '':''; thisIsAlias ? '':''; %] [% INCLUDE recursiveChildren token=child %]
[% END; END; END %]

Directories you can jump to:

[% INCLUDE recursiveChildren token=token %]
[% INCLUDE shortcut url=url(token) text="Default view" title="Restore default subtree view"; INCLUDE overviewShortcuts %]
[% INCLUDE bottomline %] [% INCLUDE htmlend %] torrus-2.07/templates/adminfo.html0000644000175000017510000000142411545711243014227 00000000000000[% PROCESS 'html-incblocks.txt' %] [% INCLUDE htmlstart title='Administrative information: ' _ path(token) contentClass="SingleColumnContent" noTopMenu=1 %]

Administrative information

[% INCLUDE treename %]

Path: [% path(token) %]

[% FOREACH category = adminfo.keys.sort; %]

[% category %]

[% counter = 0; evenRow = 0; FOREACH pname = adminfo.$category.keys.sort; counter = counter + 1; IF counter % 2 == 0; evenRow = 1; ELSE; evenRow = 0; END; %]
[% pname %] [% adminfo.$category.$pname %]
[% END %]
[% END %] [% INCLUDE htmlend %] torrus-2.07/templates/default-rrd.html0000644000175000017510000000675111567655764015056 00000000000000[% PROCESS 'html-incblocks.txt' %] [% INCLUDE setdate %] [% INCLUDE htmlstart title='Graphs for ' _ path(token) printpath=1 %] [% parentComment = nodeParam(parent(token),'comment') %] [% IF parentComment %]

Graphs for [% xmlnorm(parentComment) %]

[% END %] [% INCLUDE variables %]

[% xmlnorm(nodeParam(token,'comment')) %]

[% INCLUDE legend %] [% monitors = nodeParam(token,'monitor'); IF monitors != ''; moncount = monitors.split(',').size %]
Monitor[% (moncount > 1) ? 's' : '' %]: [% (moncount > 1) ? moncount : '' %] [% FOREACH monitor = monitors.split(','); mondesc = param(monitor, 'comment') %]
[% monitor %] [% IF mondesc; %]([% mondesc %])[% END %]
[% END %]
[% END %] [% IF nodeParam(token, 'ds-type') != 'rrd-multigraph' %] [% dayValues = rrprint(token, 'rrd-print-daily') %] [% lastValue = rrprint(token, 'rrd-print-last') %]

24-hour minimum: [% scale('%.1f', dayValues.0) %],   average: [% scale('%.1f', dayValues.1) %],   maximum: [% scale('%.1f', dayValues.2) %].   Last: [% scale('%.1f', lastValue) %]

[% END %] [% graphvars = []; graphviews = nodeParam(token,'rrgraph-views').split(','); dayView = graphviews.1; weekView = graphviews.2; monthView = graphviews.3; yearView = graphviews.4; IF nodeParam(token, 'rrd-hwpredict') == 'enabled' and ( param(view, 'rrd-hwpredict') == 'disabled' or variables.NOHW ); graphvars = ['NOHW', 1]; END; %]

Last day graph

[% INCLUDE rrgraph view=dayView vars=graphvars %]

Last week graph

[% INCLUDE rrgraph view=weekView vars=graphvars %]
[% longterm = param(view, 'longterm') %] [% IF longterm %]

Last month graph

[% INCLUDE rrgraph view=monthView %]

Last year graph

[% INCLUDE rrgraph view=yearView %]
[% END %]
[% IF longterm; hwview='longterm-rrd-html'; termview='default-rrd-html'; ELSE; hwview='default-rrd-html'; termview='longterm-rrd-html'; END; hwvars = []; termvars = []; IF nodeParam(token, 'rrd-hwpredict') == 'enabled' and param(view, 'rrd-hwpredict') != 'disabled'; IF not variables.NOHW; hwaction = 'Disable'; hwvars = ['NOHW', 1]; termvars = ['NOHW', '']; ELSE; hwaction = 'Enable'; hwvars = ['NOHW', '']; termvars = ['NOHW', 1]; END; INCLUDE shortcut url=url(token, hwview, hwvars) text=hwaction _ " Holt-Winters" title="Switch Holt-Winters prediction boundaries"; ELSE; IF longterm; termview='default-rrd-html'; ELSE; termview='longterm-rrd-html'; END; END; IF longterm; termstr='Short'; sctitle="View last day and last week graphs"; ELSE; termstr='Long'; sctitle="View last day, week, month, and year graphs"; END; INCLUDE shortcut url=url(token, termview, termvars) text=termstr _ "term view" title=sctitle; INCLUDE shortcut url=plainURL _ 'explain-rrdgraph.html' text='Explain graph' title='Describe graph elements and values' newwindow=1; %]
[% INCLUDE bottomline %] [% INCLUDE htmlend %] torrus-2.07/templates/expanded-dir.html0000644000175000017510000000244511545711243015162 00000000000000[% PROCESS 'html-incblocks.txt' %] [% INCLUDE setdate %] [% thepath=path(token) %] [% INCLUDE htmlstart title=thepath printpath=1 %]

[% xmlnorm(nodeParam(token,'comment')) %]

[% INCLUDE variables %] [% INCLUDE legend %]

Leaf nodes:

[% FOREACH child = sortTokens(children(token)); IF isLeaf(child); INCLUDE shortgraph token=child nodename=nodeName(child) comment=nodeParam(child,'comment',1); ELSIF isAlias(child); atoken=isAlias(child); IF isLeaf(atoken); INCLUDE shortgraph token=atoken nodename=nodeName(atoken) comment=path(atoken); END; END; END; %]
[% IF global.hwpredict; IF variables.NOHW; INCLUDE shortcut url=url(token, view, 'NOHW', '') text="Enable Holt-Winters" title="Switch Holt-Winters prediction boundaries"; ELSE; INCLUDE shortcut url=url(token, view, 'NOHW', 1) text="Disable Holt-Winters" title="Switch Holt-Winters prediction boundaries"; END; END %] [% INCLUDE shortcut url=url(token) text="Default view" title="Restore default subtree view" %]
[% INCLUDE bottomline %] [% INCLUDE htmlend %] torrus-2.07/templates/iframe-rrd.html0000644000175000017510000000646211567655764014674 00000000000000[%# Minimalistic HTML to include into an iframe %] [% PROCESS 'html-incblocks.txt' %]
[% graphdescr=nodeParam(token,'descriptive-nickname'); IF graphdescr.length > 0 %]

Graphs for [% graphdescr %]

[% END %] [% INCLUDE variables %] [% INCLUDE legend %] [% IF nodeParam(token, 'ds-type') != 'rrd-multigraph' %] [% dayValues = rrprint(token, 'rrd-print-daily') %] [% lastValue = rrprint(token, 'rrd-print-last') %]

24-hour minimum: [% scale('%.1f', dayValues.0) %],   average: [% scale('%.1f', dayValues.1) %],   maximum: [% scale('%.1f', dayValues.2) %].   Last: [% scale('%.1f', lastValue) %]

[% END %] [% graphvars = []; graphviews = nodeParam(token,'rrgraph-views').split(','); dayView = graphviews.1; weekView = graphviews.2; monthView = graphviews.3; yearView = graphviews.4; IF nodeParam(token, 'rrd-hwpredict') == 'enabled' and ( param(view, 'rrd-hwpredict') == 'disabled' or variables.NOHW ); graphvars = ['NOHW', 1]; END; %]

Last day graph

[% INCLUDE rrgraph view=dayView vars=graphvars %]

Last week graph

[% INCLUDE rrgraph view=weekView vars=graphvars %]

Last month graph

[% INCLUDE rrgraph view=monthView %]

Last year graph

[% INCLUDE rrgraph view=yearView %]
torrus-2.07/templates/tset-list.html0000644000175000017510000000143711545711243014546 00000000000000[% PROCESS 'html-incblocks.txt' %] [% INCLUDE htmlstart title="Non-empty tokensets" contentClass="SingleColumnContent" %]

Non-empty tokensets

[% INCLUDE treename %]
[% counter = 0; evenRow = 0; FOREACH tset = tsetList().sort; sz = tsetMembers(tset).size; IF sz.length > 0 AND sz > 0; counter = counter + 1; IF counter % 2 == 0; evenRow = 1; ELSE; evenRow = 0; END; %] [% END %] [% END %]
[% INCLUDE tsetbottomline %] [% INCLUDE htmlend %] torrus-2.07/templates/search.html0000644000175000017510000000216111567655764014101 00000000000000[% PROCESS 'html-incblocks.txt' %] [% global.SearchString = variables.SEARCH; clearVar('SEARCH') %] [% INCLUDE htmlstart title='Search results: ' _ global.SearchString contentClass="SingleColumnContent" %]

Search results: [% global.SearchString %]

[% INCLUDE treename %]
[% results = searchResults(global.SearchString); counter = 0; FOREACH entry = results; counter = counter + 1; IF counter % 2 == 0; evenRow = 1; ELSE; evenRow = 0; END; etoken = pathToken(entry.0); NEXT UNLESS etoken; %]
[% entry.0 %] [% IF entry.1; entry.1 _ ': ' _ xmlnorm(nodeParam(etoken, entry.1)); END %]
[% END %]
[% global.contentFinished = 1 %]
[% INCLUDE shortcut url=url(pathToken('/')) text="Datasources tree" title="Back to the datasources tree" %] [% INCLUDE searchdialog %]
[% INCLUDE htmlend %] torrus-2.07/templates/report-serviceid.html0000644000175000017510000000700511545711243016101 00000000000000[% PROCESS 'html-incblocks.txt' %] [% INCLUDE htmlstart title="Torrus Reports: " _ year contentClass="SingleColumnContent" noTopMenu=1 %]

Torrus report: [% year %], [% serviceid %]

[% INCLUDE treename %] [% FOREACH reportname = data.keys.sort; fieldshash = data.$reportname; IF reportname == 'MonthlyUsage' %] [% rowCount = 0; FOREACH mth = fieldshash.keys.sort; rowCount = rowCount + 1; IF rowCount % 2 %] [% ELSE %] [% END %] [% FOREACH varname = ['AVG', '95TH_PERCENTILE', 'MAX', 'UNAVAIL', 'VOLUME'] %] [% END %] [% END %]
Monthly usage
Month Average 95th
Percentile
Maximum Unavailable
samples
Volume Extrapolated
volume
[% monthName(mth) %] [% formatValue( fieldshash.$mth.$varname ) %] [% extr.value = fieldshash.$mth.VOLUME.value * 100 / ( 100 - fieldshash.$mth.UNAVAIL.value ); extr.units = fieldshash.$mth.VOLUME.units; formatValue( extr ) %]
[% ELSE %] [% rowCount = 0; FOREACH mth = fieldshash.keys.sort; FOREACH varname = fieldshash.$mth.keys.sort; rowCount = rowCount + 1; IF rowCount % 2 %] [% ELSE %] [% END %] [% END; END %]
[% reportname %]
Month Field Value
[% monthName(mth) %] [% varname %] [% formatValue( fieldshash.$mth.$varname ) %]
[% END; END %]
Average: the monthly average of 5-minute samples.
95th percentile: 95% of the time, the usage is at or below this amount.
Maximum: the maximum value among 5-minute samples.
Unavailable samples: how many 5-minute samples were missed from the measurements.
Volume: for traffic usage, this is the absolut volume of data in avaiable 5-minute samples.
Extrapolated volume: for traffic usage, this is the volume of data extrapolated to the whole time range.
[% INCLUDE htmlend %] torrus-2.07/templates/report-monthly.html0000644000175000017510000000610711545711243015620 00000000000000[% PROCESS 'html-incblocks.txt' %] [% INCLUDE htmlstart title="Torrus Reports: " _ year contentClass="SingleColumnContent" noTopMenu=1 %]

Torrus report: [% monthName(month) %] [% year %]

[% INCLUDE treename %] [% FOREACH reportname = data.keys.sort; fieldshash = data.$reportname; IF reportname == 'MonthlyUsage' %] [% rowCount = 0; FOREACH serviceid = fieldshash.keys.sort; rowCount = rowCount + 1; IF rowCount % 2 %] [% ELSE %] [% END %] [% FOREACH varname = ['AVG', '95TH_PERCENTILE', 'MAX', 'UNAVAIL', 'VOLUME'] %] [% END %] [% END %]
Monthly usage
Service ID Average 95th
Percentile
Maximum Unavailable
samples
Volume
[% serviceid %] [% formatValue( fieldshash.$serviceid.$varname ) %]
[% ELSE %] [% rowCount = 0; FOREACH serviceid = fieldshash.keys.sort; FOREACH varname = fieldshash.$serviceid.keys.sort; rowCount = rowCount + 1; IF rowCount % 2 %] [% ELSE %] [% END %] [% END; END %]
[% reportname %]
Service ID Field Value
[% serviceid %] [% varname %] [% formatValue( fieldshash.$serviceid.$varname ) %]
[% END; END %]
Average: the monthly average of 5-minute samples.
95th percentile: 95% of the time, the usage is at or below this amount.
Maximum: the maximum value among 5-minute samples.
Unavailable samples: how many 5-minute samples were missed from the measurements.
Volume: for traffic usage, this is the absolut volume of data in avaiable 5-minute samples.
[% INCLUDE htmlend %] torrus-2.07/templates/default-dir.html0000644000175000017510000000423311545711243015013 00000000000000[% PROCESS 'html-incblocks.txt' %] [% thepath=path(token) %] [% INCLUDE htmlstart title=thepath printpath=1 %]

[% xmlnorm(nodeParam(token,'comment')) %]

[% INCLUDE legend %]

Directories you can jump to:

[% hasLeaves = 0; hasSubtrees = 0; childCounter = 0; evenRow = 0; FOREACH child = sortTokens(children(token)); hidden = 0; IF nodeParam(child,'hidden') == 'yes'; hidden = 1; END; comment = nodeParam(child,'comment',1); IF not hidden or variables.SHOWHIDDEN; childCounter = childCounter + 1; evenRow = childCounter % 2 == 0; IF isLeaf(child); hasLeaves = hasLeaves + 1; ELSE; IF isAlias(child); thisIsAlias = 1; urlTitle=' TITLE="Symbolic link to ' _ path(isAlias(child)) _'"'; IF isLeaf(isAlias(child)); hasLeaves = hasLeaves + 1; END; ELSE; hasSubtrees = 1; urlTitle = ''; END; END; %]
[% thisIsAlias ? '':''; hidden ? '':'' %] [% nodeName(child) %] [% hidden ? '':''; thisIsAlias ? '':''; %] [% IF comment %] [% hidden ? '':'' %] [% xmlnorm(comment) %] [% hidden ? '':'' %] [% END %]
[% END %] [% END %]
[% IF hasLeaves > 1; INCLUDE shortcut url=url(token, 'expanded-dir-html') text="Expand leaves" title="Show all leaf graphs in one page"; END; IF hasSubtrees and nodeParam(token,'show-recursive',1) == 'yes'; INCLUDE shortcut url=url(token, 'recursive-dir-html') text="Recursive view" title="Show all subtrees and leaves in one page"; END; INCLUDE overviewShortcuts %]
[% INCLUDE bottomline %] [% INCLUDE htmlend %] torrus-2.07/templates/globalsearch.html0000644000175000017510000000201011656602724015236 00000000000000[% PROCESS 'html-incblocks.txt' %] [% global.SearchString = variables.SEARCH; clearVar('SEARCH') %] [% INCLUDE htmlstart title='Global Search results: ' _ global.SearchString contentClass="SingleColumnContent" noTopMenu=1 %]
[% INCLUDE shortcut url=url('') text="Top" title="Choose from the list of trees"%]

Global Search results: [% global.SearchString %]

[% results = searchResults( global.SearchString ); counter = 0; FOREACH entry = results; counter = counter + 1; IF counter % 2 == 0; evenRow = 1; ELSE; evenRow = 0; END; %]
[%entry.0%]: [% entry.1 %]
[% END %]
[% global.contentFinished = 1 %]
[% INCLUDE globalsearchdialog %]
[% INCLUDE htmlend %] torrus-2.07/templates/default-chooser.html0000644000175000017510000000152511545711243015700 00000000000000[% PROCESS 'html-incblocks.txt' %] [% INCLUDE htmlstart title="Torrus Top: " _ companyName contentClass="SingleColumnContent" noTopMenu=1 %]

Choose the datasource tree

[% counter = 0; evenRow = 0; FOREACH tree = treeNames(); IF not userAuth or mayDisplayTree(tree); counter = counter + 1; IF counter % 2 == 0; evenRow = 1; ELSE; evenRow = 0; END; %]
[% tree %] [% xmlnorm(treeDescr(tree)) %]
[% END %] [% END %]
[% global.contentFinished = 1 %]
[% INCLUDE globalsearchdialog %]
[% INCLUDE htmlend %] torrus-2.07/examples/0000755000175000017510000000000012137523670011626 500000000000000torrus-2.07/examples/Makefile.am0000644000175000017510000000167511661302716013610 00000000000000 # Copyright (C) 2002 Stanislav Sinyagin # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # Stanislav Sinyagin # examplesdir = $(exmpdir) dist_examples_DATA = \ README \ onms.tmpl \ onmsInterfaces.sh \ torrus-siteconfig.powerbook.pl \ setmonitor.xupdate.xml torrus-2.07/examples/torrus-siteconfig.powerbook.pl0000644000175000017510000000262111661302716017575 00000000000000# Torrus Site config. Put all your site specifics here. # You need to stop and start Apache server every time you change this file. # # An example using the rainbow-schema overlay. # Shawn Ferry # # (ssinyagin) You can use statements like these from inside your # XML configurations: # # Besides, "devdiscover" discovery tool will soon support most # of these vendor definitions. # @(#) 10/18/03 torrus-siteconfig.pl 1.3 (10/18/03 18:44:31) sferry @Torrus::Global::xmlAlwaysIncludeFirst = qw( defaults.xml snmp-defs.xml collector-periods.xml vendor/cisco.ios.xml generic/rfc2790.host-resources.xml generic/rfc1213.xml vendor/ucd-snmp.xml ); %Torrus::Global::treeConfig = ( 'powerbook' => { 'description' => 'Powerbook Laptop Tree', 'xmlfiles' => [qw( powerbook/powerbook-defaults.xml powerbook/powerbook-ti.xml )], 'run' => { 'collector' => 1, } }, ); # CLOSE %Torrus::Global::treeConfig # Override values in the current schema with those in # rainbow schema, schema changes require an apache restart $Torrus::Renderer::stylingProfileOverlay = "rainbow-schema"; 1; torrus-2.07/examples/Makefile.in0000644000175000017510000003077112137523664013626 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002 Stanislav Sinyagin # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # Stanislav Sinyagin # VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = examples DIST_COMMON = README $(dist_examples_DATA) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(examplesdir)" DATA = $(dist_examples_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ FIND = @FIND@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ KILL = @KILL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PERLCRITIC = @PERLCRITIC@ PERLINC = @PERLINC@ POD2MAN = @POD2MAN@ POD2TEXT = @POD2TEXT@ RM = @RM@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SLEEP = @SLEEP@ STRIP = @STRIP@ SU = @SU@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cachedir = @cachedir@ cfgdefdir = @cfgdefdir@ datadir = @datadir@ datarootdir = @datarootdir@ dbhome = @dbhome@ defrrddir = @defrrddir@ distxmldir = @distxmldir@ docdir = @docdir@ dvidir = @dvidir@ enable_pkgonly = @enable_pkgonly@ enable_varperm = @enable_varperm@ exec_prefix = @exec_prefix@ exmpdir = @exmpdir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ logdir = @logdir@ mandir = @mandir@ mansec_misc = @mansec_misc@ mansec_usercmd = @mansec_usercmd@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ perlithreads = @perlithreads@ perllibdir = @perllibdir@ perllibdirs = @perllibdirs@ piddir = @piddir@ pkgbindir = @pkgbindir@ pkgdocdir = @pkgdocdir@ pkghome = @pkghome@ plugdevdisccfgdir = @plugdevdisccfgdir@ pluginsdir = @pluginsdir@ plugtorruscfgdir = @plugtorruscfgdir@ plugwrapperdir = @plugwrapperdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ reportsdir = @reportsdir@ sbindir = @sbindir@ scriptsdir = @scriptsdir@ seslockdir = @seslockdir@ sesstordir = @sesstordir@ sharedstatedir = @sharedstatedir@ siteconfdir = @siteconfdir@ sitedir = @sitedir@ sitexmldir = @sitexmldir@ srcdir = @srcdir@ supdir = @supdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tmpldir = @tmpldir@ tmpluserdir = @tmpluserdir@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ torrus_user = @torrus_user@ var_group = @var_group@ var_mode = @var_mode@ var_user = @var_user@ varprefix = @varprefix@ webplaindir = @webplaindir@ webscriptsdir = @webscriptsdir@ wrapperdir = @wrapperdir@ examplesdir = $(exmpdir) dist_examples_DATA = \ README \ onms.tmpl \ onmsInterfaces.sh \ torrus-siteconfig.powerbook.pl \ setmonitor.xupdate.xml all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-dist_examplesDATA: $(dist_examples_DATA) @$(NORMAL_INSTALL) test -z "$(examplesdir)" || $(MKDIR_P) "$(DESTDIR)$(examplesdir)" @list='$(dist_examples_DATA)'; test -n "$(examplesdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(examplesdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(examplesdir)" || exit $$?; \ done uninstall-dist_examplesDATA: @$(NORMAL_UNINSTALL) @list='$(dist_examples_DATA)'; test -n "$(examplesdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(examplesdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(examplesdir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(examplesdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_examplesDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_examplesDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-dist_examplesDATA install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am \ uninstall-dist_examplesDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: torrus-2.07/examples/onms.tmpl0000644000175000017510000000341611545711243013421 00000000000000[%# Template-Toolkit template for OpenNMS Torrus config generation. Author: Gustavo Torres $Id$ %] [% PROCESS $data %] [% FOREACH interface = ifs %] [% FOREACH svc = interface.services; IF svc.name == 'icmp' %] [% ELSE %] [% END; END %] [% END %] torrus-2.07/examples/README0000644000175000017510000000066111545711243012426 00000000000000Some useful exmples of Torrus configuration and usage. XML configuration examples reside in xmlconfig/examples. *.xupdate.xml files are examples of XUpdate usage to modify the XML files generated by devdiscover. See also: Torrus User Guide XUpdate specification: http://www.xmldb.org/xupdate/ XUpdate implementation in Perl by Petr Pajas: XML::XUpdate::LibXML XML Editing shell by Petr Pajas: http://xsh.sourceforge.net/ torrus-2.07/examples/onmsInterfaces.sh0000644000175000017510000000360711661302716015065 00000000000000#!/bin/sh # Copyright (C) 2004 Gustavo Torres # Copyright (C) 2004 Stanislav Sinyagin # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # Gustavo Torres # Stanislav Sinyagin # # This shell script extracts OpenNMS information about interfaces # and builds the data file which you can use with onms.tmpl to generate # Torrus XML configuration. # Usage (RESPONCEDIR setting may be skipped if it's in the default path) # # RESPONCEDIR=/var/opennms/rrd/response # export RESPONCEDIR # cd /usr/local/torrus-0.1/share/torrus/ # ./examples/onmsInterfaces.sh > onms.data # tpage --define data=onms.data examples/onms.tmpl > xmlconfig/onms.xml if test x"$RESPONCEDIR" = x""; then RESPONCEDIR=/var/opennms/rrd/response fi echo '[% responcedir = "'$RESPONCEDIR'" %]' echo '[% ifs = [' for ipaddr in `ls ${RESPONCEDIR}`; do echo " { addr => '$i',"; echo " services => ["; for service in `ls ${RESPONCEDIR}/$i | awk -F. '{print $1}'`; do echo -n " {name => '${service}', " legend=`echo $j | awk '{print toupper($1)}'` echo "legend => '${legend}'}" done echo ' ]'; echo ' }'; done echo '] %]' # Local Variables: # mode: shell-script # indent-tabs-mode: nil # perl-indent-level: 4 # End: torrus-2.07/examples/setmonitor.xupdate.xml0000644000175000017510000000316311545711243016144 00000000000000 This file was modified with XUpdate script setmonitor.xupdate.xml ifErrors torrus-2.07/Makefile.in0000644000175000017510000007526112137523664012013 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002 Stanislav Sinyagin # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # Stanislav Sinyagin # VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . DIST_COMMON = README $(am__configure_deps) $(dist_discovery_DATA) \ $(dist_scripts_DATA) $(dist_tmpl_DATA) $(dist_xmlscripts_DATA) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/configure $(top_srcdir)/init.d/torrus.in \ $(top_srcdir)/setup_tools/mkvardir.sh.in \ $(top_srcdir)/setup_tools/substvars.sh.in AUTHORS COPYING \ ChangeLog INSTALL NEWS TODO conftools/config.guess \ conftools/config.sub conftools/install-sh conftools/missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = setup_tools/substvars.sh setup_tools/mkvardir.sh \ init.d/torrus CONFIG_CLEAN_VPATH_FILES = SCRIPTS = $(noinst_SCRIPTS) SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(discoverydir)" \ "$(DESTDIR)$(scriptsdir)" "$(DESTDIR)$(tmpldir)" \ "$(DESTDIR)$(xmlscriptsdir)" DATA = $(dist_discovery_DATA) $(dist_scripts_DATA) $(dist_tmpl_DATA) \ $(dist_xmlscripts_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d "$(distdir)" \ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr "$(distdir)"; }; } am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ FIND = @FIND@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ KILL = @KILL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PERLCRITIC = @PERLCRITIC@ PERLINC = @PERLINC@ POD2MAN = @POD2MAN@ POD2TEXT = @POD2TEXT@ RM = @RM@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SLEEP = @SLEEP@ STRIP = @STRIP@ SU = @SU@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cachedir = @cachedir@ cfgdefdir = @cfgdefdir@ datadir = @datadir@ datarootdir = @datarootdir@ dbhome = @dbhome@ defrrddir = @defrrddir@ distxmldir = @distxmldir@ docdir = @docdir@ dvidir = @dvidir@ enable_pkgonly = @enable_pkgonly@ enable_varperm = @enable_varperm@ exec_prefix = @exec_prefix@ exmpdir = @exmpdir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ logdir = @logdir@ mandir = @mandir@ mansec_misc = @mansec_misc@ mansec_usercmd = @mansec_usercmd@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ perlithreads = @perlithreads@ perllibdir = @perllibdir@ perllibdirs = @perllibdirs@ piddir = @piddir@ pkgbindir = @pkgbindir@ pkgdocdir = @pkgdocdir@ pkghome = @pkghome@ plugdevdisccfgdir = @plugdevdisccfgdir@ pluginsdir = @pluginsdir@ plugtorruscfgdir = @plugtorruscfgdir@ plugwrapperdir = @plugwrapperdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ reportsdir = @reportsdir@ sbindir = @sbindir@ scriptsdir = @scriptsdir@ seslockdir = @seslockdir@ sesstordir = @sesstordir@ sharedstatedir = @sharedstatedir@ siteconfdir = @siteconfdir@ sitedir = @sitedir@ sitexmldir = @sitexmldir@ srcdir = @srcdir@ supdir = @supdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tmpldir = @tmpldir@ tmpluserdir = @tmpluserdir@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ torrus_user = @torrus_user@ var_group = @var_group@ var_mode = @var_mode@ var_user = @var_user@ varprefix = @varprefix@ webplaindir = @webplaindir@ webscriptsdir = @webscriptsdir@ wrapperdir = @wrapperdir@ SUBDIRS = . bin configs doc examples perllib sup xmlconfig EXTRA_DIST = \ setup_tools/Bundle/Torrus.pm \ setup_tools/replace_rrfw.sh \ setup_tools/configure_fhs \ setup_tools/check_perlthreading.pl noinst_SCRIPTS = \ setup_tools/substvars.sh \ setup_tools/mkvardir.sh \ init.d/torrus dist_tmpl_DATA = \ templates/aclexport.xml \ templates/adminfo.html \ templates/default-chooser.html \ templates/default-dir.html \ templates/default-helptext.html \ templates/default-login.html \ templates/default-recursivedir.html \ templates/default-rrd.html \ templates/default-tset.html \ templates/expanded-dir.html \ templates/globalsearch.html \ templates/overview-subleaves.html \ templates/report-index.html \ templates/report-monthly.html \ templates/report-serviceid.html \ templates/report-yearly.html \ templates/search.html \ templates/html-incblocks.txt \ templates/iframe-rrd.html \ templates/tset-list.html \ templates/email-alarm.txt dist_scripts_DATA = scripts/rrdup_notify.sh xmlscriptsdir = @scriptsdir@/xml dist_xmlscripts_DATA = scripts/xml/extract-skeleton.xsl discoverydir = @sitedir@/discovery dist_discovery_DATA = discovery/README mkvardir = @abs_top_builddir@/setup_tools/mkvardir.sh HTMLDIR = @abs_top_builddir@/../htdocs UPLOADPATH = \ ssinyagin,torrus@web.sourceforge.net:/home/groups/t/to/torrus/htdocs/devel PERLCRITIC_CMD = ${PERLCRITIC} --profile=critic.profile all: all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): setup_tools/substvars.sh: $(top_builddir)/config.status $(top_srcdir)/setup_tools/substvars.sh.in cd $(top_builddir) && $(SHELL) ./config.status $@ setup_tools/mkvardir.sh: $(top_builddir)/config.status $(top_srcdir)/setup_tools/mkvardir.sh.in cd $(top_builddir) && $(SHELL) ./config.status $@ init.d/torrus: $(top_builddir)/config.status $(top_srcdir)/init.d/torrus.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-dist_discoveryDATA: $(dist_discovery_DATA) @$(NORMAL_INSTALL) test -z "$(discoverydir)" || $(MKDIR_P) "$(DESTDIR)$(discoverydir)" @list='$(dist_discovery_DATA)'; test -n "$(discoverydir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(discoverydir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(discoverydir)" || exit $$?; \ done uninstall-dist_discoveryDATA: @$(NORMAL_UNINSTALL) @list='$(dist_discovery_DATA)'; test -n "$(discoverydir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(discoverydir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(discoverydir)" && rm -f $$files install-dist_scriptsDATA: $(dist_scripts_DATA) @$(NORMAL_INSTALL) test -z "$(scriptsdir)" || $(MKDIR_P) "$(DESTDIR)$(scriptsdir)" @list='$(dist_scripts_DATA)'; test -n "$(scriptsdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(scriptsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(scriptsdir)" || exit $$?; \ done uninstall-dist_scriptsDATA: @$(NORMAL_UNINSTALL) @list='$(dist_scripts_DATA)'; test -n "$(scriptsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(scriptsdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(scriptsdir)" && rm -f $$files install-dist_tmplDATA: $(dist_tmpl_DATA) @$(NORMAL_INSTALL) test -z "$(tmpldir)" || $(MKDIR_P) "$(DESTDIR)$(tmpldir)" @list='$(dist_tmpl_DATA)'; test -n "$(tmpldir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(tmpldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(tmpldir)" || exit $$?; \ done uninstall-dist_tmplDATA: @$(NORMAL_UNINSTALL) @list='$(dist_tmpl_DATA)'; test -n "$(tmpldir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(tmpldir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(tmpldir)" && rm -f $$files install-dist_xmlscriptsDATA: $(dist_xmlscripts_DATA) @$(NORMAL_INSTALL) test -z "$(xmlscriptsdir)" || $(MKDIR_P) "$(DESTDIR)$(xmlscriptsdir)" @list='$(dist_xmlscripts_DATA)'; test -n "$(xmlscriptsdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(xmlscriptsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(xmlscriptsdir)" || exit $$?; \ done uninstall-dist_xmlscriptsDATA: @$(NORMAL_UNINSTALL) @list='$(dist_xmlscripts_DATA)'; test -n "$(xmlscriptsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(xmlscriptsdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(xmlscriptsdir)" && rm -f $$files # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(SCRIPTS) $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(discoverydir)" "$(DESTDIR)$(scriptsdir)" "$(DESTDIR)$(tmpldir)" "$(DESTDIR)$(xmlscriptsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-data-local install-dist_discoveryDATA \ install-dist_scriptsDATA install-dist_tmplDATA \ install-dist_xmlscriptsDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-dist_discoveryDATA uninstall-dist_scriptsDATA \ uninstall-dist_tmplDATA uninstall-dist_xmlscriptsDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ dist-hook dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ distcheck distclean distclean-generic distclean-tags \ distcleancheck distdir distuninstallcheck dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-data-local install-dist_discoveryDATA \ install-dist_scriptsDATA install-dist_tmplDATA \ install-dist_xmlscriptsDATA install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-dist_discoveryDATA \ uninstall-dist_scriptsDATA uninstall-dist_tmplDATA \ uninstall-dist_xmlscriptsDATA install-data-local: @echo Testing if prefix has changed during make test "$(prefix)" = "@prefix@" $(mkvardir) $(DESTDIR)$(dbhome) $(mkvardir) $(DESTDIR)$(cachedir) $(mkvardir) $(DESTDIR)$(piddir) $(mkvardir) $(DESTDIR)$(reportsdir) $(mkvardir) $(DESTDIR)$(logdir) $(mkvardir) $(DESTDIR)$(sesstordir) $(mkvardir) $(DESTDIR)$(seslockdir) $(mkinstalldirs) $(DESTDIR)$(tmpluserdir) $(mkinstalldirs) $(DESTDIR)$(plugtorruscfgdir) $(mkinstalldirs) $(DESTDIR)$(plugdevdisccfgdir) $(mkinstalldirs) $(DESTDIR)$(plugwrapperdir) htdocs: cd doc; make htdocs @for f in $(dist_mibs_DATA); do \ f2=$(HTMLDIR)/`basename $$f`; \ if test ! -f $$f2 -o $$f -nt $$f2; then \ echo "cp $$f $$f2"; \ cp $$f $$f2; \ fi; \ done upload: dist scp $(distdir).tar.gz TODO $(UPLOADPATH) todoup: scp TODO $(UPLOADPATH) dist-hook: date >DIST_REVISION git branch -vv >>DIST_REVISION cp DIST_REVISION $(distdir)/ critic: @if test ${PERLCRITIC} != no; then \ ${PERLCRITIC_CMD} `egrep -l '^\#..PERL' bin/*.in`; \ ${PERLCRITIC_CMD} perllib/Torrus/; \ else \ echo 'perlcritic command not found'; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: torrus-2.07/sup/0000755000175000017510000000000012137523671010620 500000000000000torrus-2.07/sup/Makefile.am0000644000175000017510000000250211661302716012567 00000000000000 # Copyright (C) 2002 Stanislav Sinyagin # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # Stanislav Sinyagin # dtddir = $(supdir)/dtd dist_dtd_DATA = dtd/snmp-discovery.dtd dtd/torrus-config.dtd mibsdir = $(supdir)/mibs dist_mibs_DATA = mibs/RRDTOOL-SMI.txt \ mibs/TORRUS-MIB.txt styldir = $(supdir)/styling dist_styl_DATA = \ styling/colornames.pl \ styling/rainbow-schema.pl \ styling/torrus-schema.pl webplaindir = @webplaindir@ dist_webplain_DATA = \ webplain/explain-rrdgraph.html \ webplain/torrus.css \ webplain/torrus-printer.css \ webplain/torrus-report.css install-data-local: $(mkinstalldirs) $(DESTDIR)$(webscriptsdir) torrus-2.07/sup/webplain/0000755000175000017510000000000012137523671012421 500000000000000torrus-2.07/sup/webplain/explain-rrdgraph.html0000644000175000017510000000454611545711242016502 00000000000000 RRD Graph Description

RRD Graph Description

The graphs in Torrus are drawn by RRDtool, a powerful instrument for data aggregation and graphing.

The horizontal axis displays the time at which the data has been collected. The rightmost point corresponds to the most recent moment.

The date and time of the graph can be easily changed by using the Set date checkbox at the bottom of the page. When the checkbox is checked, the date/time string in the text field is interpreted after clicking the submit button. It is then reflected in the Report date informational line at the page displaying the graphs. The date format is quite flexible. It understands such input as "July 13 5:00", or "01/13/2003 5:00", etc.

The vertical axis scales automatically to fit the data values. The meaning of the values depends on the nature of the datasource, and is usually described in the graph legend, comments, and the help text.

Usually the legend of the vertical axis specifies the meaning of the values:

  • Bps: bytes per second counter
  • bps: bits per second counter
  • pps: pakets per second counter
Other legends correspond mostly to gauges, such as temperature, load percentage, or disk space.

The graphing engine automatically chooses the best units for scaling the values. The scaling magnitude is displayed alongside the numerical value, with the following meaning:

  • a: 10e-18 Atto
  • f: 10e-15 Femto
  • p: 10e-12 Pico
  • n: 10e-9 Nano
  • u: 10e-6 Micro
  • m: 10e-3 Milli
  • k: 10e+3 Kilo
  • M: 10e+6 Mega
  • G: 10e+9 Giga
  • T: 10e+12 Tera
  • P: 10e+15 Peta
  • E: 10e+18 Exa
Memory usage is scaled with the base of 1024.

torrus-2.07/sup/webplain/torrus-report.css0000644000175000017510000000517711545711242015727 00000000000000/* Torrus Renderer stylesheet. Designed by Stanislav Sinyagin $Id$ */ BODY { background-color : white; color : black; font-family : verdana, arial, helvetica, sans-serif; font-size : 10pt; margin : 0; padding-bottom : 0; padding-left : 0; padding-right : 0; padding-top : 0; voice-family : inherit, male; } H1, H2, H3 { background-color : transparent; color : black; } H1 { font-size : 18pt; font-weight : 900; line-height : 20pt; } H2 { font-size : 16pt; font-weight : 700; line-height : 18pt; } H3 { font-size : 14pt; line-height : 16pt; } A, A:link, A:visited { background-color : transparent; color : black; text-decoration : none; } A:hover { background-color : #eee; color : inherit; } *.Header { background-color : transparent; border-bottom : 0.5pt solid black; border-left : 0 solid black; border-right : 0 solid black; border-top : 0.5pt solid black; color : black; font-size : 9pt; font-weight : 700; margin : 5pt 0 10pt; padding-bottom : 0; padding-left : 10pt; padding-right : 0; padding-top : 10pt; } DIV.CurrentTime { float: right; font-size : 9px; text-align: right; } *.Content, *.SingleColumnContent { margin-bottom : 0; margin-left : 5pt; margin-right : 5pt; margin-top : 0; padding-bottom : 10pt; padding-left : 10pt; padding-right : 10pt; padding-top : 10pt; } DIV.CurrentTree { background-color : transparent; margin-bottom : 4pt; } TABLE.ReportTable { font-size : 9pt; border-collapse : collapse; } CAPTION.ReportTable { font-size : 14pt; font-weight : 700; caption-side: top; padding-bottom : 7pt; padding-top : 10pt; } TR.ReportHeadRow { background-color : #999; } TR.ReportEvenRow { background-color : #ccc; } TD { border : solid 1px #aaa; padding-bottom : 1pt; padding-top : 3pt; padding-left : 2pt; padding-right : 2pt; width : 10%; } TD.ReportHeadCell { font-weight : 700; text-align : center; } TD.ReportCell { text-align : right; padding-left : 7pt; } TD.ReportFirstCell { text-align : left; font-weight : 600; } DIV.ReportLegend { margin-top: 60pt; margin-left: 10pt; font-size : 7pt; } SPAN.ReportLegendTerm { font-weight : 700; padding-right : 2pt; } *.Footer { background-color : transparent; border-bottom : 0 solid black; border-left : 0 solid black; border-right : 0 solid black; border-top : 0.75pt solid black; color : black; font-size : 6pt; margin : 0 0 10pt; padding-bottom : 0; padding-left : 0; padding-right : 0; padding-top : 0; text-align : right; width : 100%; } *.SiteInfo, *.TreeInfo { padding-left : 5em; } torrus-2.07/sup/webplain/torrus-printer.css0000644000175000017510000001003311545711242016062 00000000000000/* Torrus Renderer stylesheet. Designed by Stanislav Sinyagin $Id$ */ BODY { background-color : white; color : black; font-family : verdana, arial, helvetica, sans-serif; font-size : 10pt; margin : 0; padding-bottom : 0; padding-left : 0; padding-right : 0; padding-top : 0; voice-family : inherit, male; } H1, H2, H3 { background-color : transparent; color : black; } H1 { font-size : 18pt; font-weight : 900; line-height : 20pt; } H2 { font-size : 16pt; font-weight : 700; line-height : 18pt; } H3 { font-size : 14pt; line-height : 16pt; } P { background-color : transparent; color : black; line-height : 18pt; text-decoration : none; padding-bottom : 0; padding-left : 0; padding-right : 0; padding-top : 0; } A, A:link, A:visited { background-color : transparent; color : black; text-decoration : none; } *.Header { background-color : transparent; border-bottom : 0.5pt solid black; border-left : 0 solid black; border-right : 0 solid black; border-top : 0.5pt solid black; color : black; font-size : 9pt; font-weight : 700; margin : 5pt 0 10pt; padding-bottom : 0; padding-left : 10pt; padding-right : 0; padding-top : 10pt; } DIV.LoginInfo { position : absolute; right : 0; top : 8px; font-size : 9px; text-align : right; } DIV.LoginInfo SPAN.UserName { display : block; } DIV.LoginInfo SPAN.Logout { display : none; } DIV.CurrentTime { float: right; font-size : 9px; text-align: right; } *.Content, *.SingleColumnContent { margin-bottom : 0; margin-left : 5pt; margin-right : 5pt; margin-top : 0; padding-bottom : 10pt; padding-left : 10pt; padding-right : 10pt; padding-top : 10pt; } DIV.CurrentPath { background-color : transparent; } *.PathURLs { font-size : 9px; } DIV.CurrentTree { background-color : transparent; } DIV.Legend { background-color : transparent; color : black; font-size : 8pt; margin-bottom : 10pt; margin-top : 10pt; } DIV.LegendRow { clear : both; height : 9pt; width : 100%; margin-bottom : 3pt; } *.LegendRow *.LegendName { font-weight : bold; padding-right : 5pt; text-align : left; } *.LegendRow *.LegendValue { text-align : left; } P.Variables SPAN.VariableName { font-weight : bold; } DIV.Monitors { clear : both; float : none; font-size : 8pt; margin-bottom : 10pt; position : relative; width : 90%; } SPAN.MonitorName { padding-left: 20pt; padding-right: 20pt; } DIV.Listing { margin-bottom : 10pt; margin-left : 20pt; margin-right : 20pt; } *.ListRow, *.ListRowEven { border-bottom : 0.5pt solid gray; clear : both; font-size : 8pt; line-height : 12pt; padding-top : 3pt; width : 100%; } *.Listing *.NodeName { display : block; font-weight : bold; padding-right : 5pt; padding-left : 5pt; text-align : left; } *.Listing *.NodeDescr { display : block; padding-left : 30pt; padding-right : 5pt; text-align : left; } DIV.Graph, DIV.ShortGraph { border-bottom : 0.5pt solid gray; margin-bottom : 10pt; margin-left : 20pt; margin-right : 20pt; margin-top : 15pt; page-break-inside : avoid; } DIV.ShortGraph *.NodeName { font-weight : bold; width : 100%; } DIV.ShortGraph *.NodeDescr { margin-bottom : 5pt; width : 100%; } *.GraphImage { text-align: center; } *.GraphImage IMG { border-width : 0; border-color : transparent; float : none; } /* In tokenset display, short graphs are placed in two columns on the screen, but one column on printer */ DIV.ShortLeft, DIV.ShortRight { width : 100%; } *.BottomShortcuts { display : none; } *.TopMenu, *.BottomMenu { display : none; } *.Footer { background-color : transparent; border-bottom : 0 solid black; border-left : 0 solid black; border-right : 0 solid black; border-top : 0.75pt solid black; color : black; font-size : 6pt; margin : 0 0 10pt; padding-bottom : 0; padding-left : 0; padding-right : 0; padding-top : 0; text-align : right; width : 100%; } *.SiteInfo, *.TreeInfo { padding-left : 5em; } torrus-2.07/sup/webplain/torrus.css0000644000175000017510000001670111545711242014411 00000000000000/* Torrus Renderer stylesheet. Designed by BlueRobot.com Modified by Ian Holsman Optimised by Stanislav Sinyagin $Id$ */ BODY { background-color : white; color : #333; font-family : verdana, arial, helvetica, sans-serif; font-size : 11px; margin : 0; padding-bottom : 0; padding-left : 0; padding-right : 0; padding-top : 0; voice-family : inherit, male; } H1, H2, H3, P { background-color : inherit; margin : 0 0 15px; padding-bottom : 0; padding-left : 0; padding-right : 0; padding-top : 0; } H1, H2 { color : #ccc; } H1 { font-size : 28px; font-weight : 900; line-height : 28px; } H2 { font-size : 20px; font-weight : 700; line-height : 20px; } H3 { color : #333; font-size : 18px; line-height : 18px; } P { clear : both; /* needed for Opera 6.12 */ color : #333; float : none; font-size : 11px; line-height : 20px; } A { background-color : inherit; color : #09c; font-weight : 600; text-decoration : none; } A:link, A:visited { background-color : inherit; color : #09c; } A:hover { background-color : #eee; color : inherit; } DIV.CurrentPath A:hover { background-color : #ccc; color : inherit; } *.Header { background-color : #eee; border-bottom : 1px solid black; border-left : 0 solid black; border-right : 0 solid black; border-top : 1px solid black; color : inherit; margin : 1em 0 1em; padding-bottom : 0; padding-left : 20px; padding-right : 0; padding-top : 17px; } *.Header A:hover { background-color : #ccc; color : inherit; } DIV.LoginInfo { position : absolute; right : 1em; top : 1.5em; font-size : 9px; text-align : right; } DIV.LoginInfo SPAN.UserName { display : block; } DIV.LoginInfo SPAN.Logout { display : block; } SPAN.Logout A { font-size : 9px; } DIV.CurrentTime { float: right; font-size : 9px; padding-right: 1em; text-align: right; } *.Content, *.SingleColumnContent { display : block; float : left; margin-bottom : 20px; margin-left : 0px; margin-right : 0px; margin-top : 0; padding-bottom : 10px; padding-left : 10px; padding-right : 10px; padding-top : 10px; } *.SingleColumnContent { padding-right : 0px; width : 100%; } *.Content { padding-right : 0px; width : 70%; } DIV.PathMenu { background-color : #eee; border-bottom : 1px dashed #999; border-left : 1px dashed #999; border-right : 1px dashed #999; border-top : 1px dashed #999; color : inherit; float : left; line-height : 17px; margin-left : 5px; padding-bottom : 10px; padding-left : 10px; padding-right : 10px; padding-top : 10px; position : relative; min-width : 15%; /* does not work in IE6 */ } SPAN.PathElement { display : block; } SPAN.TreeName { font-weight : bold; } *.PathMenu DIV.CurrentTree { font-size : 10px; overflow : hidden; width : 150px; /* compensate unsupported min-width in IE6 */ } *.PathMenuHeader { font-size : 10px; } *.SingleColumnContent DIV.CurrentTree { padding-bottom : 5px; } *.SingleColumnContent DIV.CurrentTree { color : inherit; font-size : 10px; } DIV.Legend { background-color : #eee; color : inherit; clear : both; float : none; font-size : 10px; margin-bottom : 10px; position : relative; width : 90%; } DIV.LegendRow { clear : both; float : none; margin-bottom: 2px; } DIV.LegendRow SPAN.LegendName { font-weight : bold; text-align : left; padding-right : 5px; } DIV.LegendRow SPAN.LegendValue { text-align : left; } P.Variables SPAN.VariableName { font-weight : bold; } DIV.Monitors { clear : both; float : none; font-size : 10px; margin-bottom : 10px; position : relative; width : 90%; } SPAN.MonitorName { padding-left: 20px; padding-right: 20px; } DIV.Listing { clear : both; float : none; font-size : 11px; margin-bottom : 10px; width : 90%; } *.ListRow, *.ListRowEven { clear : both; margin-top : 3px; } *.ListRowEven { background-color : #eee; } *.ListRowEven A:hover { background-color : #ccc; color : inherit; } DIV.Listing *.NodeName { display : block; font-weight : bold; padding-left : 10px; text-align : left; } DIV.Listing *.NodeDescr, DIV.Listing *.TokensetDescr { display : block; padding-left : 30px; } *.RecursiveListRow { clear : both; margin-top : 3px; margin-left : 20px; margin-right : 2px; padding-bottom: 2px; border: 1px solid #eee; } DIV.ShortGraph *.NodeDescr { font-weight : 600; padding-left : 10px; } DIV.Graph, DIV.ShortGraph { clear : left; float : left; margin-bottom : 10px; margin-top : 15px; position : relative; width : 100%; } DIV.ShortGraph *.NodeName, DIV.ShortGraph *.NodeDescr { clear : both; float : none; font-size : 11px; width : 100%; } DIV.ShortGraph IMG { border-width : 0; border-color : transparent; clear : both; float : left; } /* In tokenset display, short graphs are placed in two columns: left and right */ DIV.ShortLeft, DIV.ShortRight { margin-bottom : 5px; page-break-inside : avoid; position : relative; width : 50%; } DIV.ShortLeft { clear : left; float : left; } DIV.ShortRight { clear : right; float : right; } FORM.LoginForm { color : #333; font-size : 11px; line-height : 20px; width : 50%; } SPAN.LoginTitle { float : left; width : 20%; } SPAN.LoginInput INPUT { width : 30%; } SPAN.LoginInput INPUT.Remember { width : auto; } *.BottomShortcuts { clear : both; float : none; font-size : 11px; height : 15px; margin : 25px 0 20px; padding-bottom : 0; padding-left : 0; padding-right : 0; padding-top : 0; position : relative; } *.TopMenu { font-size : 9px; padding-left : 1em; } *.BottomMenu { clear : both; float : none; font-size : 9px; /* height : 15px; */ margin : 50px 0 0 0; padding-bottom : 0; padding-left : 1em; padding-right : 0; padding-top : 0; width : 100%; } *.TopMenu A, *.TopMenu A:link, *.TopMenu A:visited, *.BottomMenu A, *.BottomMenu A:link, *.BottomMenu A:visited { color: #5b99a5; font-size : 9px; } *.Footer { background-color : #eee; border-bottom : 1px solid black; border-left : 0 solid black; border-right : 0 solid black; border-top : 1px solid black; clear : both; color : inherit; float : none; font-size : 10px; height : 15px; line-height : 12px; margin : 0 0 10px; padding-bottom : 0; padding-left : 0; padding-right : 1em; padding-top : 0; text-align : right; } *.Footer A { font-size : 10px; } *.SiteInfo, *.TreeInfo { padding-left : 5em; } *.HelpContent { font-size: 12px; line-height: 15px; padding-bottom: 5px; padding-left: 2em; padding-right: 2em; padding-top: 5px; } *.HelpContent P { font-size: 12px; } *.HelpHeader { color : #ccc; font-size : 13px; font-weight: 800; margin : 10px 0 10px; } *.HelpFooter { position: absolute; bottom: 0; margin : 0 0 10px; } *.HelpPathHeader { font-weight: 700; margin : 10px 0 10px; } *.HelpMessage { padding-left: 2em; padding-right: 2em; } *.SetDateDialog { font-size : 9px; padding-bottom : 0; padding-left : 2em; padding-right : 2em; padding-top : 0; } *.SetDateDialog FORM { display : inline; } *.SetDateDialog INPUT { font-size : 9px; } *.SearchDialog { font-size : 9px; padding-bottom : 0; padding-left : 2em; padding-right : 2em; padding-top : 0; } *.SearchDialog FORM { display : inline; } *.SearchDialog INPUT { font-size : 9px; } *.ErrorMessage { color : red; height : 15px; } torrus-2.07/sup/Makefile.in0000644000175000017510000003723712137523664012623 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002 Stanislav Sinyagin # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # Stanislav Sinyagin # VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = sup DIST_COMMON = $(dist_dtd_DATA) $(dist_mibs_DATA) $(dist_styl_DATA) \ $(dist_webplain_DATA) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(dtddir)" "$(DESTDIR)$(mibsdir)" \ "$(DESTDIR)$(styldir)" "$(DESTDIR)$(webplaindir)" DATA = $(dist_dtd_DATA) $(dist_mibs_DATA) $(dist_styl_DATA) \ $(dist_webplain_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ FIND = @FIND@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ KILL = @KILL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PERLCRITIC = @PERLCRITIC@ PERLINC = @PERLINC@ POD2MAN = @POD2MAN@ POD2TEXT = @POD2TEXT@ RM = @RM@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SLEEP = @SLEEP@ STRIP = @STRIP@ SU = @SU@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cachedir = @cachedir@ cfgdefdir = @cfgdefdir@ datadir = @datadir@ datarootdir = @datarootdir@ dbhome = @dbhome@ defrrddir = @defrrddir@ distxmldir = @distxmldir@ docdir = @docdir@ dvidir = @dvidir@ enable_pkgonly = @enable_pkgonly@ enable_varperm = @enable_varperm@ exec_prefix = @exec_prefix@ exmpdir = @exmpdir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ logdir = @logdir@ mandir = @mandir@ mansec_misc = @mansec_misc@ mansec_usercmd = @mansec_usercmd@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ perlithreads = @perlithreads@ perllibdir = @perllibdir@ perllibdirs = @perllibdirs@ piddir = @piddir@ pkgbindir = @pkgbindir@ pkgdocdir = @pkgdocdir@ pkghome = @pkghome@ plugdevdisccfgdir = @plugdevdisccfgdir@ pluginsdir = @pluginsdir@ plugtorruscfgdir = @plugtorruscfgdir@ plugwrapperdir = @plugwrapperdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ reportsdir = @reportsdir@ sbindir = @sbindir@ scriptsdir = @scriptsdir@ seslockdir = @seslockdir@ sesstordir = @sesstordir@ sharedstatedir = @sharedstatedir@ siteconfdir = @siteconfdir@ sitedir = @sitedir@ sitexmldir = @sitexmldir@ srcdir = @srcdir@ supdir = @supdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tmpldir = @tmpldir@ tmpluserdir = @tmpluserdir@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ torrus_user = @torrus_user@ var_group = @var_group@ var_mode = @var_mode@ var_user = @var_user@ varprefix = @varprefix@ webplaindir = @webplaindir@ webscriptsdir = @webscriptsdir@ wrapperdir = @wrapperdir@ dtddir = $(supdir)/dtd dist_dtd_DATA = dtd/snmp-discovery.dtd dtd/torrus-config.dtd mibsdir = $(supdir)/mibs dist_mibs_DATA = mibs/RRDTOOL-SMI.txt \ mibs/TORRUS-MIB.txt styldir = $(supdir)/styling dist_styl_DATA = \ styling/colornames.pl \ styling/rainbow-schema.pl \ styling/torrus-schema.pl dist_webplain_DATA = \ webplain/explain-rrdgraph.html \ webplain/torrus.css \ webplain/torrus-printer.css \ webplain/torrus-report.css all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sup/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu sup/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-dist_dtdDATA: $(dist_dtd_DATA) @$(NORMAL_INSTALL) test -z "$(dtddir)" || $(MKDIR_P) "$(DESTDIR)$(dtddir)" @list='$(dist_dtd_DATA)'; test -n "$(dtddir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dtddir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(dtddir)" || exit $$?; \ done uninstall-dist_dtdDATA: @$(NORMAL_UNINSTALL) @list='$(dist_dtd_DATA)'; test -n "$(dtddir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(dtddir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(dtddir)" && rm -f $$files install-dist_mibsDATA: $(dist_mibs_DATA) @$(NORMAL_INSTALL) test -z "$(mibsdir)" || $(MKDIR_P) "$(DESTDIR)$(mibsdir)" @list='$(dist_mibs_DATA)'; test -n "$(mibsdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(mibsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(mibsdir)" || exit $$?; \ done uninstall-dist_mibsDATA: @$(NORMAL_UNINSTALL) @list='$(dist_mibs_DATA)'; test -n "$(mibsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(mibsdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(mibsdir)" && rm -f $$files install-dist_stylDATA: $(dist_styl_DATA) @$(NORMAL_INSTALL) test -z "$(styldir)" || $(MKDIR_P) "$(DESTDIR)$(styldir)" @list='$(dist_styl_DATA)'; test -n "$(styldir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(styldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(styldir)" || exit $$?; \ done uninstall-dist_stylDATA: @$(NORMAL_UNINSTALL) @list='$(dist_styl_DATA)'; test -n "$(styldir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(styldir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(styldir)" && rm -f $$files install-dist_webplainDATA: $(dist_webplain_DATA) @$(NORMAL_INSTALL) test -z "$(webplaindir)" || $(MKDIR_P) "$(DESTDIR)$(webplaindir)" @list='$(dist_webplain_DATA)'; test -n "$(webplaindir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(webplaindir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(webplaindir)" || exit $$?; \ done uninstall-dist_webplainDATA: @$(NORMAL_UNINSTALL) @list='$(dist_webplain_DATA)'; test -n "$(webplaindir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(webplaindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(webplaindir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(dtddir)" "$(DESTDIR)$(mibsdir)" "$(DESTDIR)$(styldir)" "$(DESTDIR)$(webplaindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dist_dtdDATA \ install-dist_mibsDATA install-dist_stylDATA \ install-dist_webplainDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_dtdDATA uninstall-dist_mibsDATA \ uninstall-dist_stylDATA uninstall-dist_webplainDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-data-local install-dist_dtdDATA install-dist_mibsDATA \ install-dist_stylDATA install-dist_webplainDATA install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-dist_dtdDATA uninstall-dist_mibsDATA \ uninstall-dist_stylDATA uninstall-dist_webplainDATA install-data-local: $(mkinstalldirs) $(DESTDIR)$(webscriptsdir) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: torrus-2.07/sup/dtd/0000755000175000017510000000000012137523671011373 500000000000000torrus-2.07/sup/dtd/torrus-config.dtd0000644000175000017510000000560211545711242014607 00000000000000 torrus-2.07/sup/dtd/snmp-discovery.dtd0000644000175000017510000000224711545711242014772 00000000000000 torrus-2.07/sup/mibs/0000755000175000017510000000000012137523671011552 500000000000000torrus-2.07/sup/mibs/RRDTOOL-SMI.txt0000644000175000017510000000152311545711242014002 00000000000000RRDTOOL-SMI DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-IDENTITY, enterprises FROM SNMPv2-SMI; rrdtool MODULE-IDENTITY LAST-UPDATED "200209150000Z" ORGANIZATION "RRD Tool" CONTACT-INFO " Tobi Oetiker Postal: ETZ J97, ETH 8092 Zurich Switzerland Telephone: +41 1 632-5286 E-mail: oetiker@ee.ethz.ch RRD Tool Information: http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/ " DESCRIPTION "The Structure of RRDTool fellow projects" ::= { enterprises 14697 } -- assigned by IANA torrus OBJECT-IDENTITY STATUS current DESCRIPTION "Round Robin Database Framework. http://torrus.sourceforge.net/ " ::= { rrdtool 1 } -- more to come if necessary. END torrus-2.07/sup/mibs/TORRUS-MIB.txt0000644000175000017510000001244211545711242013674 00000000000000TORRUS-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-IDENTITY, NOTIFICATION-TYPE, Integer32 FROM SNMPv2-SMI DateAndTime FROM SNMPv2-TC rrdtool FROM RRDTOOL-SMI; torrus MODULE-IDENTITY LAST-UPDATED "200506210000Z" ORGANIZATION "Round Robin Database Framework project" CONTACT-INFO "Round Robin Database Framework project Project description and documentation: http://torrus.org Administrative contact for MIB module: Stanislav Sinyagin Tel. +41 79 407 02 24 E-mail: ssinyagin@yahoo.com" DESCRIPTION "The MIB module for SNMP variables specific to Torrus project" ::= { rrdtool 1 } EventType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Defines the event type: set -- The monitor condition is first time met repeat -- The monitor condition is met again on the consequtive monitorin cycle clear -- The monitor condition is not met the first time after event type set or repeat forget -- The monitor condition was not met during the expiration period since the last event type clear" SYNTAX INTEGER { set(1), repeat(2), clear(3), forget(4) } TreeName ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Torrus system operates with several datasource trees identified by names" SYNTAX OCTET STRING (SIZE (1..512)) Token ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Token is a short ID for the leaf or subtree of the Torrus datasources hierarchy" SYNTAX OCTET STRING (SIZE (5..10)) Path ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Path is the full name of the Torrus datasource, containing its parent nodes separated by slashes" SYNTAX OCTET STRING (SIZE (1..512)) MonitorEventsEntry ::= SEQUENCE { torrusEventIndex Integer32, torrusToken Token, torrusMonitorName OCTET STRING, torrusEventType EventType, torrusPath Path, torrusTimestamp DateAndTime, torrusSeverity Integer32, torrusMonitorDesc OCTET STRING } torrusMonitorEventsTable OBJECT-TYPE SYNTAX SEQUENCE OF MonitorEventsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Table of current monitor events" ::= { torrus 1 } torrusMonitorEventsEntry OBJECT-TYPE SYNTAX MonitorEventsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each monitor event is characterized by the datasource token and monitor name" INDEX { torrusEventIndex } ::= { torrusMonitorEventsTable 1 } torrusEventIndex OBJECT-TYPE SYNTAX Integer32 (1..65535) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The value of this object uniquely identifies this event entry." ::= { torrusMonitorEventsEntry 1 } torrusToken OBJECT-TYPE SYNTAX Token MAX-ACCESS not-accessible STATUS current DESCRIPTION "Token is a short ID for the leaf or subtree of the Torrus datasources hierarchy" ::= { torrusMonitorEventsEntry 2 } torrusMonitorName OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each monitor instance is identified by unique name" ::= { torrusMonitorEventsEntry 3 } torrusEventType OBJECT-TYPE SYNTAX EventType MAX-ACCESS not-accessible STATUS current DESCRIPTION "The type of the event: set(1), repeat(2), clear(3), forget(4)" ::= { torrusMonitorEventsEntry 4 } torrusPath OBJECT-TYPE SYNTAX Path MAX-ACCESS not-accessible STATUS current DESCRIPTION "The full name of the Torrus datasource, containing its parent nodes separated by slashes" ::= { torrusMonitorEventsEntry 5 } torrusTimestamp OBJECT-TYPE SYNTAX DateAndTime MAX-ACCESS not-accessible STATUS current DESCRIPTION "Timestamp of the event, in SNMPv2 format, e.g. 1992-5-26,13:30:15.0,-4:0" ::= { torrusMonitorEventsEntry 6 } torrusTreeName OBJECT-TYPE SYNTAX TreeName MAX-ACCESS not-accessible STATUS current DESCRIPTION "Name of the datasource tree" ::= { torrusMonitorEventsEntry 7 } torrusSeverity OBJECT-TYPE SYNTAX Integer32 (1..65535) MAX-ACCESS not-accessible STATUS current DESCRIPTION "Optional severity level" ::= { torrusMonitorEventsEntry 8 } torrusMonitorDesc OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS not-accessible STATUS current DESCRIPTION "Human readable monitor comment" ::= { torrusMonitorEventsEntry 9 } torrusAlarm NOTIFICATION-TYPE OBJECTS { torrusToken, torrusMonitorName, torrusEventType, torrusPath, torrusTimestamp } STATUS current DESCRIPTION "The SNMP trap that is generated when an Torrus monitor condition is changed for the leaf being monitored" ::= { torrus 2 } END torrus-2.07/sup/styling/0000755000175000017510000000000012137523671012311 500000000000000torrus-2.07/sup/styling/colornames.pl0000644000175000017510000002227511661302716014734 00000000000000# Symbolic Color names # Stanislav Sinyagin # Shawn Ferry my %colorNames = ( # Taken from the tt2 example file 'black' => {'color' => '#000000'}, 'grey25' => {'color' => '#404040'}, 'grey50' => {'color' => '#808080'}, 'grey75' => {'color' => '#c0c0c0'}, 'white' => {'color' => '#ffffff'}, 'red' => {'color' => '#ff0000'}, 'red25' => {'color' => '#400000'}, 'red50' => {'color' => '#800000'}, 'red75' => {'color' => '#c00000'}, 'green' => {'color' => '#00ff00'}, 'green25' => {'color' => '#004000'}, 'green50' => {'color' => '#008000'}, 'green75' => {'color' => '#00c000'}, 'blue' => {'color' => '#0000ff'}, 'blue25' => {'color' => '#000040'}, 'blue50' => {'color' => '#000080'}, 'blue75' => {'color' => '#0000c0'}, 'blood' => {'color' => '#800000'}, 'scarlet' => {'color' => '#c04040'}, 'rose' => {'color' => '#f08080'}, 'orange' => {'color' => '#fe7202'}, 'leaf' => {'color' => '#006400'}, 'bud' => {'color' => '#66aa66'}, 'mint' => {'color' => '#aaffaa'}, 'marine' => {'color' => '#0066cc'}, 'sky' => {'color' => '#66ccff'}, 'mauve' => {'color' => '#6666cc'}, 'lilac' => {'color' => '#9797ff'}, # http://www.mandarindesign.com/color.html#namedcolors # http://www.w3schools.com/html/html_colornames.asp # http://www.oreilly.com/catalog/wdnut/excerpt/color_names.html 'aliceblue' => {'color' => '#F0F8FF'}, 'antiquewhite' => {'color' => '#FAEBD7'}, 'aqua' => {'color' => '#00FFFF'}, 'aquamarine' => {'color' => '#7FFFD4'}, 'azure' => {'color' => '#F0FFFF'}, 'beige' => {'color' => '#F5F5DC'}, 'bisque' => {'color' => '#FFE4C4'}, 'blanchedalmond' => {'color' => '#FFEBCD'}, 'blueviolet' => {'color' => '#8A2BE2'}, 'brown' => {'color' => '#A52A2A'}, 'burlywood' => {'color' => '#DEB887'}, 'cadetblue' => {'color' => '#5F9EA0'}, 'chartreuse' => {'color' => '#7FFF00'}, 'chocolate' => {'color' => '#D2691E'}, 'coral' => {'color' => '#FF7F50'}, 'cornflowerblue' => {'color' => '#6495ED'}, 'cornsilk' => {'color' => '#FFF8DC'}, 'crimson' => {'color' => '#DC143C'}, 'cyan' => {'color' => '#00FFFF'}, 'darkblue' => {'color' => '#00008B'}, 'darkcyan' => {'color' => '#008B8B'}, 'darkgoldenrod' => {'color' => '#B8860B'}, 'darkgray' => {'color' => '#A9A9A9'}, 'darkgreen' => {'color' => '#006400'}, 'darkkhaki' => {'color' => '#BDB76B'}, 'darkmagenta' => {'color' => '#8B008B'}, 'darkolivegreen' => {'color' => '#556B2F'}, 'darkorange' => {'color' => '#FF8C00'}, 'darkorchid' => {'color' => '#9932CC'}, 'darkred' => {'color' => '#8B0000'}, 'darksalmon' => {'color' => '#E9967A'}, 'darkseagreen' => {'color' => '#8FBC8B'}, 'darkslateblue' => {'color' => '#483D8B'}, 'darkslategray' => {'color' => '#2F4F4F'}, 'darkturquoise' => {'color' => '#00CED1'}, 'darkviolet' => {'color' => '#9400D3'}, 'deeppink' => {'color' => '#FF1493'}, 'deepskyblue' => {'color' => '#00BFFF'}, 'dimgray' => {'color' => '#696969'}, 'dodgerblue' => {'color' => '#1E90FF'}, 'firebrick' => {'color' => '#B22222'}, 'floralwhite' => {'color' => '#FFFAF0'}, 'forestgreen' => {'color' => '#228B22'}, 'fuchsia' => {'color' => '#FF00FF'}, 'gainsboro' => {'color' => '#DCDCDC'}, 'ghostwhite' => {'color' => '#F8F8FF'}, 'gold' => {'color' => '#FFD700'}, 'goldenrod' => {'color' => '#DAA520'}, 'gray' => {'color' => '#808080'}, 'greenyellow' => {'color' => '#ADFF2F'}, 'honeydew' => {'color' => '#F0FFF0'}, 'hotpink' => {'color' => '#FF69B4'}, 'indianred' => {'color' => '#CD5C5C'}, 'indigo' => {'color' => '#4B0082'}, 'ivory' => {'color' => '#FFFFF0'}, 'khaki' => {'color' => '#F0E68C'}, 'lavender' => {'color' => '#E6E6FA'}, 'lavenderblush' => {'color' => '#FFF0F5'}, 'lawngreen' => {'color' => '#7CFC00'}, 'lemonchiffon' => {'color' => '#FFFACD'}, 'lightblue' => {'color' => '#ADD8E6'}, 'lightcoral' => {'color' => '#F08080'}, 'lightcyan' => {'color' => '#E0FFFF'}, 'lightgoldenrodyellow' => {'color' => '#FAFAD2'}, 'lightgreen' => {'color' => '#90EE90'}, 'lightgrey' => {'color' => '#D3D3D3'}, 'lightpink' => {'color' => '#FFB6C1'}, 'lightsalmon' => {'color' => '#FFA07A'}, 'lightseagreen' => {'color' => '#20B2AA'}, 'lightskyblue' => {'color' => '#87CEFA'}, 'lightslategray' => {'color' => '#778899'}, 'lightsteelblue' => {'color' => '#B0C4DE'}, 'lightyellow' => {'color' => '#FFFFE0'}, 'lime' => {'color' => '#00FF00'}, 'limegreen' => {'color' => '#32CD32'}, 'linen' => {'color' => '#FAF0E6'}, 'magenta' => {'color' => '#FF00FF'}, 'maroon' => {'color' => '#800000'}, 'mediumaquamarine' => {'color' => '#66CDAA'}, 'mediumblue' => {'color' => '#0000CD'}, 'mediumorchid' => {'color' => '#BA55D3'}, 'mediumpurple' => {'color' => '#9370DB'}, 'mediumseagreen' => {'color' => '#3CB371'}, 'mediumslateblue' => {'color' => '#7B68EE'}, 'mediumspringgreen' => {'color' => '#00FA9A'}, 'mediumturquoise' => {'color' => '#48D1CC'}, 'mediumvioletred' => {'color' => '#C71585'}, 'midnightblue' => {'color' => '#191970'}, 'mintcream' => {'color' => '#F5FFFA'}, 'mistyrose' => {'color' => '#FFE4E1'}, 'moccasin' => {'color' => '#FFE4B5'}, 'navajowhite' => {'color' => '#FFDEAD'}, 'navy' => {'color' => '#000080'}, 'oldlace' => {'color' => '#FDF5E6'}, 'olive' => {'color' => '#808000'}, 'olivedrab' => {'color' => '#6B8E23'}, 'orangered' => {'color' => '#FF4500'}, 'orchid' => {'color' => '#DA70D6'}, 'palegoldenrod' => {'color' => '#EEE8AA'}, 'palegreen' => {'color' => '#98FB98'}, 'paleturquoise' => {'color' => '#AFEEEE'}, 'palevioletred' => {'color' => '#DB7093'}, 'papayawhip' => {'color' => '#FFEFD5'}, 'peachpuff' => {'color' => '#FFDAB9'}, 'peru' => {'color' => '#CD853F'}, 'pink' => {'color' => '#FFC0CB'}, 'plum' => {'color' => '#DDA0DD'}, 'powderblue' => {'color' => '#B0E0E6'}, 'purple' => {'color' => '#800080'}, 'rosybrown' => {'color' => '#BC8F8F'}, 'royalblue' => {'color' => '#4169E1'}, 'saddlebrown' => {'color' => '#8B4513'}, 'salmon' => {'color' => '#FA8072'}, 'sandybrown' => {'color' => '#F4A460'}, 'seagreen' => {'color' => '#2E8B57'}, 'seashell' => {'color' => '#FFF5EE'}, 'sienna' => {'color' => '#A0522D'}, 'silver' => {'color' => '#C0C0C0'}, 'skyblue' => {'color' => '#87CEEB'}, 'slateblue' => {'color' => '#6A5ACD'}, 'slategray' => {'color' => '#708090'}, 'snow' => {'color' => '#FFFAFA'}, 'springgreen' => {'color' => '#00FF7F'}, 'steelblue' => {'color' => '#4682B4'}, 'tan' => {'color' => '#D2B48C'}, 'teal' => {'color' => '#008080'}, 'thistle' => {'color' => '#D8BFD8'}, 'tomato' => {'color' => '#FF6347'}, 'turquoise' => {'color' => '#40E0D0'}, 'violet' => {'color' => '#EE82EE'}, 'wheat' => {'color' => '#F5DEB3'}, 'whitesmoke' => {'color' => '#F5F5F5'}, 'yellow' => {'color' => '#FFFF00'}, 'yellowgreen' => {'color' => '#9ACD32'}, ); while( my($style, $def) = each( %colorNames ) ) { $Torrus::Renderer::graphStyles{$style} = $def; } 1; torrus-2.07/sup/styling/rainbow-schema.pl0000644000175000017510000000222311545711242015457 00000000000000# Example of alternate style # rougly the traditional colors in a rainbow. # Shawn Ferry # # This file should be referenced using the # $Torrus::Renderer::stylingProfileOverlay option: # $Torrus::Renderer::stylingProfileOverlay = "rainbow-schema"; $Torrus::Renderer::graphStyles{'one'}{'color'} = '##darkred'; $Torrus::Renderer::graphStyles{'two'}{'color'} = '##red'; $Torrus::Renderer::graphStyles{'three'}{'color'} = '##yellow'; $Torrus::Renderer::graphStyles{'four'}{'color'} = '##deeppink'; $Torrus::Renderer::graphStyles{'five'}{'color'} = '##forestgreen'; $Torrus::Renderer::graphStyles{'six'}{'color'} = '##orange'; $Torrus::Renderer::graphStyles{'seven'}{'color'} = '##indigo'; $Torrus::Renderer::graphStyles{'eight'}{'color'} = '##blueviolet'; $Torrus::Renderer::graphStyles{'nine'}{'color'} = '##blue'; $Torrus::Renderer::graphStyles{'ten'}{'color'} = '##deepskyblue'; # slightly off white background with gold grid lines push( @Torrus::Renderer::graphExtraArgs, '--color=CANVAS#DCDCDC', #light grey '--color=BACK#808080', # darker grey '--color=GRID#FFD700' ); # gold 1; torrus-2.07/sup/styling/torrus-schema.pl0000644000175000017510000001271311703556537015373 00000000000000# RRDtool graph Colors and Lines Profile. # You are encouraged to create your own copy and reference it # with $Torrus::Renderer::stylingProfile in your torrus-siteconfig.pl # or better define your amendments in Torrus::Renderer::stylingProfileOverlay # Stanislav Sinyagin # Shawn Ferry %Torrus::Renderer::graphStyles = ( 'SingleGraph' => { 'color' => '##blue', 'line' => 'LINE2' }, 'SingleGraphMax' => { # MAX value graph on top of the Average 'color' => '##cornflowerblue', 'line' => 'LINE1' }, 'HWBoundary' => { 'color' => '##red', 'line' => 'LINE1' }, 'HWFailure' => { 'color' => '##moccasin' }, 'HruleMin' => { 'color' => '##darkmagenta' }, 'HruleNormal' => { 'color' => '##seagreen' }, 'HruleMax' => { 'color' => '##darkmagenta' }, 'BpsIn' => { 'color' => '#01ca00', 'line' => 'AREA' }, 'BpsOut' => { 'color' => '##blue', 'line' => 'LINE2' }, 'BpsInMax' => { 'color' => '#b7ea8c', 'line' => 'AREA' }, 'BpsOutMax' => { 'color' => '#017eb5', 'line' => 'LINE1' }, 'BusinessDay' => { 'color' => '##white', 'line' => 'AREA' }, 'Evening' => { 'color' => '##mintcream', 'line' => 'AREA' }, 'Night' => { 'color' => '##lavender', 'line' => 'AREA' }, # Common Definitions # Using generic names allows the "generic" value to be # changed without editing every instance 'in' => { 'color' => '##green', 'line' => 'AREA' }, 'out' => { 'color' => '##blue', 'line' => 'LINE2' }, 'nearend' => { 'color' => '##green', 'line' => 'LINE2' }, 'farend' => { 'color' => '##blue', 'line' => 'LINE2' }, 'maxvalue' => { 'color' => '##darkseagreen', 'line' => 'AREA' }, 'currvalue' => { 'color' => '##blue', 'line' => 'LINE2' }, 'totalresource' => { 'color' => '##palegreen', 'line' => 'AREA' }, 'resourceusage' => { 'color' => '##blue', 'line' => 'AREA' }, 'resourcepartusage' => { 'color' => '##crimson', 'line' => 'AREA' }, # convenient definitions one - ten, colors that # "work" in a single graph 'one' => {'color' => '##green'}, 'two' => {'color' => '##blue'}, 'three' => {'color' => '##red'}, 'four' => {'color' => '##gold'}, 'five' => {'color' => '##seagreen'}, 'six' => {'color' => '##cornflowerblue'}, 'seven' => {'color' => '##crimson'}, 'eight' => {'color' => '##darkorange'}, 'nine' => {'color' => '##darkmagenta'}, 'ten' => {'color' => '##orangered'}, # Numbered palette to make dynamically assembled stacked charts # dark28 and accent8 color schemes, from # http://bloodgate.com/perl/graph/manual/att_colors.html 'clr1' => {'color' => '#1b9e77'}, 'clr2' => {'color' => '#d95f02'}, 'clr3' => {'color' => '#7570b3'}, 'clr4' => {'color' => '#e7298a'}, 'clr5' => {'color' => '#66a61e'}, 'clr6' => {'color' => '#e6ab02'}, 'clr7' => {'color' => '#a6761d'}, 'clr8' => {'color' => '#666666'}, 'clr9' => {'color' => '#7fc97f'}, 'clr10' => {'color' => '#beaed4'}, 'clr11' => {'color' => '#fdc086'}, 'clr12' => {'color' => '#ffd92f'}, 'clr13' => {'color' => '#386cb0'}, 'clr14' => {'color' => '#f0027f'}, 'clr15' => {'color' => '#bf5b17'}, # definitions for combinatorial graphing #RED 'red1' => { 'color' => '##red', 'line' => 'AREA', }, 'red2' => { 'color' => '##red25', 'line' => 'STACK', }, 'red3' => { 'color' => '##red50', 'line' => 'STACK', }, 'red4' => { 'color' => '##red75', 'line' => 'STACK', }, #GREEN 'green1' => { 'color' => '##green', 'line' => 'AREA', }, 'green2' => { 'color' => '##green25', 'line' => 'STACK', }, 'green3' => { 'color' => '##green50', 'line' => 'STACK', }, 'green4' => { 'color' => '##green75', 'line' => 'STACK', }, #BLUE 'blue1' => { 'color' => '##blue', 'line' => 'AREA', }, 'blue2' => { 'color' => '##blue25', 'line' => 'STACK', }, 'blue3' => { 'color' => '##blue50', 'line' => 'STACK', }, 'blue4' => { 'color' => '##blue75', 'line' => 'STACK', }, ); # Place for extra RRDtool graph arguments # Example: ( '--color', 'BACK#D0D0FF', '--color', 'GRID#A0A0FF' ); @Torrus::Renderer::graphExtraArgs = (); 1; torrus-2.07/configure.ac0000644000175000017510000002631612137504231012216 00000000000000# Copyright (C) 2002-2013 Stanislav Sinyagin # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # Stanislav Sinyagin # AC_INIT([torrus],[2.07],[ssinyagin@users.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_AUX_DIR(conftools) AC_CANONICAL_HOST AM_INIT_AUTOMAKE(1.9) AC_PATH_PROG(PERL, perl, no) AC_PATH_PROG(PERLCRITIC, perlcritic, no) # Need this for init.torrus AC_PATH_PROG(SU, su, no) AC_PATH_PROG(KILL, kill, no) AC_PATH_PROG(SED, sed, no) AC_PATH_PROG(FIND, find, no) AC_PATH_PROG(RM, rm, no) AC_PATH_PROG(SLEEP, sleep, no) # This will generate doc pages from POD sources AC_PATH_PROG(POD2TEXT, pod2text, no) AM_CONDITIONAL([POD2TEXT_PRESENT], [test "$POD2TEXT" != no]) AC_PATH_PROG(POD2MAN, pod2man, no) AM_CONDITIONAL([POD2MAN_PRESENT], [test "$POD2MAN" != no]) AC_ARG_ENABLE(pkgonly, [AC_HELP_STRING([--enable-pkgonly], [Skip all checking])]) AC_SUBST(enable_pkgonly) AC_ARG_ENABLE(threads, [AC_HELP_STRING([--disable-threads], [Disable Perl threads usage])]) perllibdirs="\'\${perllibdir}\'" PERLOPTS= AC_ARG_VAR(PERLINC, [[] Additional space-separated Perl library paths]) if test ! -z "$PERLINC"; then for d in $PERLINC; do PERLOPTS="${PERLOPTS} -I${d}" perllibdirs=${perllibdirs}"\,\'"${d}"\'" done fi find_rrdtool () { if ${PERL} -e 'use RRDs' 2>/dev/null; then :; else if test "$enable_pkgonly" != yes; then AC_MSG_NOTICE([RRDs.pm is not in default Perl search paths.]) AC_MSG_CHECKING([RRDtool in /usr/local/rrdtool*]) with_rrdtool=`ls -1dr /usr/local/rrdtool* | head -1` if test -d $with_rrdtool; then AC_MSG_RESULT([${with_rrdtool}]) else AC_MSG_ERROR([Cannot find RRDtool]) fi test_rrdtool else with_rrdtool="/usr/local/rrdtool" fi fi } test_rrdtool () { if test "$enable_pkgonly" != yes; then if ${PERL} -I${with_rrdtool}/lib/perl -e 'use RRDs'; then :; else AC_MSG_ERROR([Could not find RRDs perl module in ${with_rrdtool}]) fi fi perllibdirs=${perllibdirs}"\,\'"${with_rrdtool}"/lib/perl/\'" } AC_ARG_WITH(rrdtool, [AC_HELP_STRING(--with-rrdtool=DIR,RRDTool location)], test_rrdtool, find_rrdtool) AC_SUBST(perllibdirs, [${perllibdirs}]) # Check the necessary Perl modules if test "$enable_pkgonly" != yes; then for module in 'BerkeleyDB' 'XML::LibXML' 'Template' \ 'Proc::Daemon' 'Net::SNMP' 'URI::Escape' 'Apache::Session' \ 'Date::Parse' 'JSON' do AC_MSG_CHECKING([presence of $module]) if ${PERL} ${PERLOPTS} -e 'use '$module 2>/dev/null; then AC_MSG_RESULT([Ok]) else AC_MSG_ERROR([Perl cannot find $module]); fi done # Check if Perl threads can be used. # Requirements are: perl 5.8.8 with threads compiled, # threads ver. 1.41 or higher, threads::shared ver. 1.03 or higher perlithreads=1 if test x"$enable_threads" = xno; then perlithreads=0 else AC_MSG_CHECKING([if Perl version is 5.8.8 or higher]) if ${PERL} ${PERLOPTS} -e 'use 5.8.8' 2>/dev/null; then AC_MSG_RESULT([Ok]) else perlithreads=0 fi if test ${perlithreads} -eq 1; then AC_MSG_CHECKING([threading support in Perl]) if ${PERL} ${PERLOPTS} -e 'use threads' 2>/dev/null; then AC_MSG_RESULT([Ok]) else perlithreads=0 fi fi if test ${perlithreads} -eq 1; then AC_MSG_CHECKING([if threads module version is 1.41 or higher]) if ${PERL} ${PERLOPTS} -e \ 'use threads; exit($threads::VERSION >= 1.41 ? 0:1)'; then AC_MSG_RESULT([Ok]) else perlithreads=0 fi fi if test ${perlithreads} -eq 1; then AC_MSG_CHECKING([if threads::shared module version is 1.03 or higher]) if ${PERL} ${PERLOPTS} -e \ 'use threads; use threads::shared; exit($threads::shared::VERSION >= 1.03 ? 0:1)'; then AC_MSG_RESULT([Ok]) else perlithreads=0 fi fi if test ${perlithreads} -eq 0; then AC_MSG_RESULT([No. Multithreading will not be used.]) fi fi AC_SUBST(perlithreads, [${perlithreads}]) fi AC_ARG_VAR(torrus_user, [[torrus] UID to run the daemons]) if test -z "$torrus_user"; then torrus_user=torrus; fi if test "$enable_pkgonly" != yes; then AC_MSG_CHECKING([if user ${torrus_user} exists]) torrus_check_file=torrus_usercheck_$$ torrus_check_error=no if ! touch ${torrus_check_file}; then AC_MSG_ERROR([Cannot create ${torrus_check_file}]) elif ! chown ${torrus_user} ${torrus_check_file}; then torrus_check_error=yes fi rm -f ${torrus_check_file} if test ${torrus_check_error} = yes; then AC_MSG_ERROR([User ${torrus_user} does not exist]) else AC_MSG_RESULT([Ok]) fi fi # Set the var/db and var/cache ownership AC_ARG_VAR(var_user, [[TORRUS_USER] Owner of db and cache directories]) AC_ARG_VAR(var_group, [[torrus] Group of db and cache directories]) AC_ARG_VAR(var_mode, [[775] Mode of db and cache directories]) AC_ARG_ENABLE(varperm, [AC_HELP_STRING(--disable-varperm, Disable db and cache access rights tuning)], [], [enable_varperm="yes"]) AC_SUBST(enable_varperm) AC_ARG_VAR(pkghome, [[PREFIX/torrus] Place for Torrus static files]) if test -z "$pkghome"; then pkghome='${prefix}/torrus'; fi AC_ARG_VAR(pkgbindir, [[PKGHOME/bin] Torrus executables]) if test -z "$pkgbindir"; then pkgbindir='${pkghome}/bin'; fi AC_ARG_VAR(cfgdefdir, [[PKGHOME/conf_defaults] torrus-config.pl and others]) if test -z "$cfgdefdir"; then cfgdefdir='${pkghome}/conf_defaults'; fi AC_ARG_VAR(pkgdocdir, [[PKGHOME/doc] Documentation files]) if test -z "$pkgdocdir"; then pkgdocdir='${pkghome}/doc'; fi AC_ARG_VAR(exmpdir, [[PKGHOME/examples] Examples]) if test -z "$exmpdir"; then exmpdir='${pkghome}/examples'; fi AC_ARG_VAR(perllibdir, [[PKGHOME/perllib] Torrus Perl libraries]) if test -z "$perllibdir"; then perllibdir='${pkghome}/perllib'; fi AC_ARG_VAR(pluginsdir, [[PKGHOME/plugins] Plugin configurations]) if test -z "$pluginsdir"; then pluginsdir='${pkghome}/plugins'; fi AC_ARG_VAR(plugtorruscfgdir, [[PLUGINSDIR/torrus-config]]) if test -z "$plugtorruscfgdir"; then plugtorruscfgdir='${pluginsdir}/torrus-config'; fi AC_ARG_VAR(plugdevdisccfgdir, [[PLUGINSDIR/devdiscover-config]]) if test -z "$plugdevdisccfgdir"; then plugdevdisccfgdir='${pluginsdir}/devdiscover-config'; fi AC_ARG_VAR(plugwrapperdir, [[PLUGINSDIR/wrapper]]) if test -z "$plugwrapperdir"; then plugwrapperdir='${pluginsdir}/wrapper'; fi AC_ARG_VAR(scriptsdir, [[PKGHOME/scripts] Script files]) if test -z "$scriptsdir"; then scriptsdir='${pkghome}/scripts'; fi AC_ARG_VAR(supdir, [[PKGHOME/sup] Supplementary files]) if test -z "$supdir"; then supdir='${pkghome}/sup'; fi AC_ARG_VAR(webplaindir, [[SUPDIR/webplain] Web interface plain files path]) if test -z "$webplaindir"; then webplaindir='${supdir}/webplain'; fi AC_ARG_VAR(webscriptsdir, [[SUPDIR/webscripts] Directory for optional web scripts]) if test -z "$webscriptsdir"; then webscriptsdir='${supdir}/webscripts'; fi AC_ARG_VAR(tmpldir, [[PKGHOME/templates] Template files]) if test -z "$tmpldir"; then tmpldir='${pkghome}/templates'; fi AC_ARG_VAR(distxmldir, [[PKGHOME/xmlconfig] Distribution XML config files]) if test -z "$distxmldir"; then distxmldir='${pkghome}/xmlconfig'; fi AC_ARG_VAR(sitedir, [[SYSCONFDIR/torrus] Site configuration files]) if test -z "$sitedir"; then sitedir='${sysconfdir}/torrus'; fi AC_ARG_VAR(siteconfdir, [[SITEDIR/conf] Site configuration files]) if test -z "$siteconfdir"; then siteconfdir='${sitedir}/conf'; fi AC_ARG_VAR(tmpluserdir, [[SITEDIR/templates] User-defined Template files]) if test -z "$tmpluserdir"; then tmpluserdir='${sitedir}/templates'; fi AC_ARG_VAR(sitexmldir, [[SITEDIR/xmlconfig] Site XML configs]) if test -z "$sitexmldir"; then sitexmldir='${sitedir}/xmlconfig'; fi AC_ARG_VAR(logdir, [[/var/log/torrus] Log files]) if test -z "$logdir"; then logdir='/var/log/torrus'; fi AC_ARG_VAR(piddir, [[/var/run/torrus] PID files]) if test -z "$piddir"; then piddir='/var/run/torrus'; fi AC_ARG_VAR(varprefix, [[/var/torrus] Common prefix for runtime data]) if test -z "$varprefix"; then varprefix='/var/torrus'; fi AC_ARG_VAR(cachedir, [[VARPREFIX/cache] Renderer cache]) if test -z "$cachedir"; then cachedir='${varprefix}/cache'; fi AC_ARG_VAR(dbhome, [[VARPREFIX/db] Berkeley DB files]) if test -z "$dbhome"; then dbhome='${varprefix}/db'; fi AC_ARG_VAR(reportsdir, [[VARPREFIX/reports] Reports output]) if test -z "$reportsdir"; then reportsdir='${varprefix}/reports'; fi AC_ARG_VAR(seslockdir, [[VARPREFIX/session_data/lock] Web session locks]) if test -z "$seslockdir"; then seslockdir='${varprefix}/session_data/lock'; fi AC_ARG_VAR(sesstordir, [[VARPREFIX/session_data/store] Web session storage]) if test -z "$sesstordir"; then sesstordir='${varprefix}/session_data/store'; fi AC_ARG_VAR(wrapperdir, [[BINDIR] CLI wrapper]) if test -z "$wrapperdir"; then wrapperdir='${bindir}'; fi AC_ARG_VAR(mansec_usercmd, [[1] User commands man section]) if test -z "$mansec_usercmd"; then mansec_usercmd='1'; fi AC_ARG_VAR(mansec_misc, [[7] Miscellaneous man section]) if test -z "$mansec_misc"; then mansec_misc='7'; fi AC_ARG_VAR(defrrddir, [[/srv/torrus/collector_rrd] Default RRD storage path]) if test -z "$defrrddir"; then defrrddir='/srv/torrus/collector_rrd'; fi AC_CONFIG_FILES([Makefile bin/Makefile configs/Makefile]) AC_CONFIG_FILES([doc/Makefile doc/manpages/Makefile]) AC_CONFIG_FILES([examples/Makefile perllib/Makefile]) AC_CONFIG_FILES([sup/Makefile xmlconfig/Makefile]) AC_CONFIG_FILES([setup_tools/substvars.sh],[chmod +x setup_tools/substvars.sh]) AC_CONFIG_FILES([setup_tools/mkvardir.sh], [chmod +x setup_tools/mkvardir.sh]) AC_CONFIG_FILES([init.d/torrus], [chmod +x init.d/torrus]) AC_SUBST(VERSION) AC_OUTPUT VARSAVE=configs/instvars echo creating $VARSAVE rm -f $VARSAVE for VAR in $ac_subst_vars; do case ${VAR} in DEFS | PACKAGE* | INSTALL* | VERSION | ACLOCAL | AUTO* | MAKEINFO |\ install_sh | AM* | am* | ac* | ECHO* | build* | host* | target* |\ CYG* | PATH_SEPARATOR | AWK | STRIP | mkdir* |\ perllibdirs ) ;; *) eval 'VAL=${'$VAR'}' echo ${VAR}=\'${VAL}\' >>$VARSAVE ;; esac done torrus-2.07/aclocal.m40000644000175000017510000005505112137523663011600 00000000000000# generated automatically by aclocal 1.11.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],, [m4_warning([this file was generated for autoconf 2.65. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR torrus-2.07/README0000644000175000017510000000045611545711242010611 00000000000000Torrus project http://sourceforge.net/projects/torrus http://torrus.org http://sourceforge.net/apps/mediawiki/torrus/ For installation instructions, see doc/install.txt or convert doc/install.pod into a format of your preference. (C) 2002-2010, Stanislav Sinyagin torrus-2.07/COPYING0000644000175000017510000004311011545711243010757 00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. torrus-2.07/doc/0000755000175000017510000000000012137523670010555 500000000000000torrus-2.07/doc/Makefile.am0000644000175000017510000000435611661302716012536 00000000000000 # Copyright (C) 2002 Stanislav Sinyagin # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # Stanislav Sinyagin # SUBDIRS = . manpages SUBST = @abs_top_builddir@/setup_tools/substvars.sh CLEANFILES = $(POD_FILES) $(nodist_pkgdoc_DATA) EXTRA_DIST = $(SRCPOD) SRCPOD = \ install.pod.in \ nodeid_usage.pod.in \ reporting_setup.pod.in \ rpnexpr.pod.in \ rrfw_torrus_migration.pod.in \ scalability.pod.in \ snmpdiscovery.pod.in \ stylingprofile.pod.in \ userguide.pod.in \ vendorsupport.pod.in \ webintf.pod.in \ xmlconfig.pod.in POD_FILES = \ install.pod \ nodeid_usage.pod \ reporting_setup.pod \ rpnexpr.pod \ rrfw_torrus_migration.pod \ scalability.pod \ snmpdiscovery.pod \ stylingprofile.pod \ userguide.pod \ vendorsupport.pod \ webintf.pod \ xmlconfig.pod pkgdocdir = @pkgdocdir@ if POD2TEXT_PRESENT nodist_pkgdoc_DATA = \ install.txt \ nodeid_usage.txt \ reporting_setup.txt \ rpnexpr.txt \ rrfw_torrus_migration.txt \ scalability.txt \ snmpdiscovery.txt \ stylingprofile.txt \ userguide.txt \ vendorsupport.txt \ webintf.txt \ xmlconfig.txt endif devdocdir = $(pkgdocdir)/devdoc dist_devdoc_DATA = \ devdoc/architecture.pod \ devdoc/devdiscover.pod \ devdoc/progstyle.pod \ devdoc/reqs.0.0.pod \ devdoc/reqs.0.1.pod \ devdoc/torrus_roadmap.pod SUFFIXES = .pod.in .pod .txt .PRECIOUS: $(POD_FILES) .pod.in.pod: $(SUBST) $< > $@ if POD2TEXT_PRESENT .pod.txt: $(POD2TEXT) $< > $@ endif htdocs: $(POD_FILES) cd manpages; make pods HTMLDIR=@abs_top_builddir@/../htdocs $(SHELL) mkhtdocs.sh torrus-2.07/doc/rrfw_torrus_migration.pod.in0000644000175000017510000001667311661302716016267 00000000000000# webintf.pod - Torrus web interface reference # Copyright (C) 2002 Stanislav Sinyagin # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # Stanislav Sinyagin # # =head1 RRFW to Torrus migration guide =head2 Introduction Torrus is the new marketing name for RRFW (Round-robin Database Framework), a robust and flexible software package for data series processing. The last release of RRFW is 0.1.8. The upcoming release 1.0.0 of Torrus will introduce some significant changes and design improvements. The directory structure of Torrus is more standards-compliant, and more convenient for system adminisrators. The user files are strictly separated from the distribution files. The XML configurations and HTML templates are being searched in multiple directories, thus there will be no longer a mixture of site-specific files with the ones from distribution. In addition, Torrus introduces a commandline wrapper that is installed in a generic directory for user executables (by default, F). This greatly simplifies the site administrator's tasks. The plugins infrastructure is completely redesigned. The plugin installation procedure is separated from the main software installation. In addition, plugin installers set up their initialization scripts in special directories, so that there's no need for plugin initialization in F and other files. Further on, we assume that RRFW is installed in its default directory, F, and Torrus is installed with default paths. These paths may differ in your installation. We refer to TORRUS_DISTR as the unpacked Torrus distribution path. =head2 Software installation Create a new user: C and group: C. The user ID that is used by Apache process must be a member of this group. Depending on the system, this user may be named as C, C, C etc. Consult your Apache configuration for details. Install Torrus. If your system already runs RRFW release 0.1.8, all prerequisites should be already in place. Then you simply unpack the Torrus distribution, and from its directory execute ./configure make install If required, download and unpack the Torrus plugins. Then for each plugin, execute torrus install_plugin =head2 The Perl configuration files Te distribution contains a short Shell script called C. This script takes one file name as an argument, replaces all occurrences of I to I and I to I, and finally replaces the specified file with the new one. Copy the site configuration files from RRFW to Torrus directory: cd /usr/local/etc/torrus/ cp /usr/local/rrfw-0.1/share/rrfw/rrfw-siteconfig.pl \ conf/torrus-siteconfig.pl TORRUS_DISTR/setup_tools/replace_rrfw.sh conf/torrus-siteconfig.pl If needed, follow the same procedure for F and other site configs. =head2 XML configuration files The format of XML fles has not changed, so you simply copy all locally defined files into F. The following Shell commands might be of help. They copy all XML files that do not occur in F, the default path for distribution supplied files: cd /usr/local/rrfw-0.1/share/rrfw/xmlconfig/ find . -name '*.xml' -exec test ! -f /usr/local/torrus/xmlconfig/'{}' ';' \ -print | cpio --create --file=/tmp/allxml.cpio cd /usr/local/etc/torrus/xmlconfig/ cpio --extract --make-directories --preserve-modification-time \ --file=/tmp/allxml.cpio After copying XML files, compile them in Torrus: torrus compilexml --all --verbose =head2 Monitor actions If you utilize the monitor daemon, you will most probably need to change the action statements. In the action of type C, the C parameter should be edited. RRFW was usually referencing the email notification command as I<$RRFW_HOME/bin/action_printemail>. In Torrus, this command should be referred as I<$TORRUS_BIN/action_printemail>. =head2 SNMP discovery files cd /usr/local/etc/torrus/ cp /usr/local/rrfw-0.1/share/rrfw/discovery/*.ddx discovery/ The treatment of C parameter has slightly changed. In RRFW, relative filename meant relative to the current working directory, and C<$XMLCONFIG> macro was used for referring the default XML files directory. In Torrus, C<$XMLCONFIG> is still supported, but it is advisory to get rid of it. Now the relative filenames refer to the user's XML directory, F. Absolute filenames are used as they are. In addition, C acepts the relative input file names, and searches for them in F. =head2 Web interface ACLs cd /usr/local/etc/torrus/ /usr/local/rrfw-0.1/bin/acledit --export=acl.xml torrus acledit --import=acl.xml =head2 Site-specific text templates If you used some custom templates (HTML templates for the Web interface, or text templates for e-mail notifications), copy them to F. This directory should contain only your custom templates. Those delivered with the distribution packages are located in F. =head2 Apache configuration Follow the Torrus Web interface guide and configure Apache accordingly. If needed, use the following Apache command to redirect the users which use the old URL: Redirect /rrfw http://host.domain.com/torrus After changing the configuration, stop and start Apache. =head2 Stop RRFW collector and monitor processes Depending on your system configuration, the command would look like /etc/init.d/rrfw stop Make sure that all old processes are stopped. Then remove the RRFW startup script from all rc.d directories. =head2 Change the RRD files ownership Depending on your system configuration, the paths for RRD files might be different. chown torrus:torrus /var/snmpcollector/* =head2 Test and run processes For testing purposes, you might want to try launching the collector and monitor processes, as follows: torrus collector --tree=mytree --runonce --debug Then copy the Torrus startup script to your system's init directory and setup new symbolic links, if required. The following example should work for Sun Solaris: cp TORRUS_DISTR/init.d/torrus /etc/init.d cd /etc/rc3.d ln -s S90torrus ../init.d/torrus cd /etc/rc0.d ln -s K90torrus ../init.d/torrus Run the startup script and verify that RRD files get updated. =head2 Update the cron jobs RRFW's cron job F should be replaced with the analogous job from Torrus: F =head2 Update documentation Update your site operational manuals to reflect the new software name, paths and URLs. =head1 Author Copyright (c) 2004 Stanislav Sinyagin Essinyagin@yahoo.comE torrus-2.07/doc/vendorsupport.pod.in0000644000175000017510000001433512034264722014542 00000000000000# Copyright (C) 2004 Stanislav Sinyagin # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # Stanislav Sinyagin # # =head1 Torrus Vendor Support List =head2 Introduction This document provides a listing of vendor devices and generic MIBs that are suppported by Torrus'es SNMP discovery utilities and/or templates and other supporting files. All SNMP MIBs described below are supported through C, the SNMP discovery utility. Where possible, the system contact, location, and interface descriptions are copied to the generated Torrus configuration. =head2 Generic SNMP MIBs =over 4 =item * RFC1628 (UPS-MIB) Generic statistics covered by most UPS manufactures, including input, output, and bypass group information. =item * RFC1697 (RDBMS-MIB) Provides the database engine performance statistics. Tested with Oracle only. =item * RFC2662 (ADSL-LINE-MIB) ADSL DSLAM statitics and line status. Tested with Paradyne DSLAM. =item * RFC2670 (DOCS-IF-MIB) DOCSIS cable status and statistics. Tested with Cisco uBR. =item * RFC2737 (ENTITY-MIB) Used to retrieve information about chassis and temperature sensors in Cisco devices. =item * RFC2790 (HOST-RESOURCES-MIB) Server CPU, memory, and disk statistics. Tested with net-snmp and MS Windows. =item * RFC2863 (IF-MIB) Generic network interface statistics from C and C. Most servers and network devices support this MIB. Featuring custom vendor-dependent indexing and interface type/name filtering. Tested with many different vendors. =back =head2 Vendor-specific SNMP monitoring =over =item * Alcatel-Lucent ESS 7450: full support for SAP, Services and Customer for VPLS services. ISAM: line termination statistics for various LT boards. The module is only available under NDA because of Alcatel-Lucent MIB privacy policy. =item * Alteon content switches Application switching and performance statistics. =item * Allied Telesyn PBC18 Media converter Reports the line status for the manageable modular media converter. =item * Arbor Networks Provide statistics for Arbor eSeries devices. (e30, e100) =item * APC PowerNet and NetBotz Prvide statistics for various environment sensors and power meters. =item * Ascend MAX Provides statistics for analog and ISDN interfaces, and the total number of lines used. =item * Atmel wireless access points and bridges Privides link quality and traffic statistics for wireless devices. The discovery process would run very slow unless you specify the following parameter in the discovery instructions XML: =item * AxxessIT Ethernet over SDH switches (aka Cisco ONS 15300) The module arranges the Ethernet interface statistics with such information as slot/port mapping and interface descriptions. =item * BetterNetworks EthernetBox The discovery module detects active sensors in an EthernetBox sensor module. =item * Brocade (Foundry) A variety of Foundry switches and routers is supported for memory, CPU, and temperature statistics. =item * CASA Systems CMTS Modem quantities per upstream, downstream, MAC domain. =item * Cisco CatOS Memory, CPU, and temperature information. Per-interface statistics may be limited to the ports with description only. =item * Cisco IOS Provides per-interface traffic statistics; CPU, memory, and temperature information; I/O buffer statistics; IPSec traffic information; SAA agents statistics; cbQoS monitoring (implemented in a separate plugin); DOCSIS uBR-specific variables (modem quantities and channel utilization); CISCO-ENHANCED-MEMPOOL-MIB (linecards and VIP modules memory, see notes below); MAC accounting statistics (associated with BGP AS numbers when applicable); LRE and VDSL line statistics; BGP prefix counts (http://tinyurl.com/y3ganv); CAR statistics; VPDN Statistics; 3G cellular statistics. B On Cisco 7500, IOS version 12.0(26)S2 or 12.0(26)S3, CISCO-ENHANCED-MEMPOOL-MIB polling causes memory leak and leads to the router crash (Bug ID CSCef53395). The problem is fixed in IOS versions 12.0(26)S5, 12.0(27)S3, 12.0(28)S2, and 12.0(30)S. =item * Cisco PIX Firewall Firewall performance statistics. =item * Cisco SCE Service Control Engine performance statistics. =item * Compaq Insite Manager Temperature and memory health information statistics for Compaq servers. =item * Comtech EF Data Satellite modem statistics. =item * Empire (Concord) SystemEDGE Provides lots of statistics and information that a SystemEDGE agent may provide about the server health and performance. =item * Force10 Networks CPU, Temperature and Power supply statistics. =item * Jacarta iMeter Humidity, Temperature, Electric current meters. =item * Juniper JunOS Class of service, firewall, operating environment, reverse path forwarding, and interface statistics. =item * Liebert HVAC systems Temperature, humidity and system state sensors =item * Microsoft Windows 2000/XP Sets up proper interface indexing and provides FTP and HTTP server statistics. =item * Motorola BSR CMTS (ex-Riverdelta) Displays modem quantities. =item * NetApp.com storage products Storage arrays performance and health information. =item * NetScreen Firewall Firewall performance statistics. =item * Oracle Database engine statistics. =item * Paradyne GranDSLAM xDSL statistics and line status. =item * Symmetricom NTP appliance NTP clock statistics =item * UCD SNMP and Net-SNMP Memory, CPU, and disk usage information. =item * Xylan ethernet switches Port indexing for OmniSwitch and OmniStack ethernet switches. =back =head1 Author Copyright (c) 2004-2005 Stanislav Sinyagin Essinyagin@yahoo.comE torrus-2.07/doc/snmpdiscovery.pod.in0000644000175000017510000012464111730174054014517 00000000000000# Copyright (C) 2002-2009 Stanislav Sinyagin # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # Stanislav Sinyagin # # =head1 Torrus SNMP Discovery User Guide =head2 Introduction In many (but not only) cases Torrus is used for SNMP monitoring. It provides powerful tools which automate the process of devices' MIB discovery. The discovery tools consist of two programs: C performs the SNMP discovery, based on the discovery instructions XML file. The result of its work is a new Torrus datasource configuration file. Another utility, C, is a program that generates the basic discovery instructions file based on a set of commandline options. The device discovery XML, or as we call them DDX files, are usually resided in F<@siteconfdir@/discovery/> directory. This is the default path to search for them when the absolute path is not given. =head2 C: Discovery instructions generator Usage: torrus genddx options... Options: --host=hostname router hostname --hostfile=filename space-separated router hostnames file --out=outfile output file. [routers.ddx] --discout=filename discovery output file [routers.xml] --domain=domain optional DNS domain name --version=v SNMP version [2c] --community=string SNMP read community [public] --port=number SNMP port [161] --retries=number SNMP retries [2] --timeout=number SNMP timeout [10] --subtree=string Subtree name [/Routers] --datadir=path data-dir parameter [@defrrddir@] --holtwinters Enable Holt-Winters analysis This utility generates C instructions XML file (DDX) based on commandline options and a plain list of SNMP agents' hostnames. Hostnames are specified with one or many C<--host=hostname> options, or a plain text file with space-separated hostnames. Each host may have a symbolic name. This symbolic name is used as the host-level subtree name. The symbolic name follows the hostname with a semicolon. By default, the devices are placed into C subtree hierarchy. You may change the subtree name with the I<--subtree> option. Single slash as subtree name would cause host-level subtrees placed at the top of the datasources tree. By default, C specifies the discovery output file as , and it would be placed in site XML configuration directory. You most probably will change this by using the C<--discout> option. Examples: torrus genddx --out=ch-langenthal.ddx \ --discout=ch-langenthal.xml \ --host=192.168.34.35:Langenthal_PE1 \ --host=192.168.34.36:Langenthal_PE2 \ --host=192.168.34.37:Langenthal_CE_Stadtverwaltung \ --community=blahBlah \ --subtree=/MPLS/CH/Bern/Langenthal torrus devdiscover --in=ch-langenthal.ddx B C is designed as a one-time utility. You may run it to create a typical discovery file with basic set of options. Then the discovery configuration XML would be the primary source of information, and it should be maintained by manual editing, or by some other automated means. Alternatively you may use C utility and generate highly customized discovery instruction files based on static templates and lists of SNMP nodes. See L manpage for more details and examples. =head2 C: SNMP discovery tool Usage: torrus devdiscover --in=filename.ddx options... [ddx files] Options: --in=filename.ddx discovery instructions XML file(s) --mkdir create data-dir directories --limit=regexp limit the discovery by output files --forcebundle always write the bundle file --fallback=integer maximum age of XML file to fall back to --threads=integer number of parallel discovery threads --verbose print extra information --debug print debugging information --snmpdebug print SNMP protocol details This utility performs the SNMP discovery of devices listed in the input DDX file. The output XML file is the Torrus datasources configuration. Output file name is taken from C parameter in the DDX. If the output file is not an absolute path, the file is placed in the site XML configuration directory (F<@sitexmldir@>). C is accompanied by a number of MIB- or vendor-specific modules, each responsible for finding specific SNMP variables in the SNMP device, and for generating a piece of Torrus configuration XML file responsible for that specific MIB. The list of supported generic MIBs and vendors is constantly growing. It is quite easy to create new discovery modules, and the internals are documented in I. The output file automatically includes all required prerequisite generic and vendor template definition files. Behaviour of C is controlled by variables in F<@siteconfdir@/devdiscover-siteconfig.pl> file. Default values for those variables reside in F<@cfgdefdir@/devdiscover-config.pl>. For large installations, it is recommended to place RRD files into a hashed directory structure. You can enable this feature by setting $Torrus::DevDiscover::hashDataDirEnabled = 1; in your F file. Then launching C with C<--mkdir> option would automatically create the subdirectories inside C. The XML files produced by C may be automatically changed with some local site-specific scripts. See XUpdate usage example in I. =head2 DDX, the discovery instructions file The input file for C is an XML file. Its DTD is available in Torrus distribution in F. A typical place to store the discovery XML is F<@siteconfdir@/discovery/>. Example: 1.0 Manually edited by Vassisuali Poupkine RRA:AVERAGE:0:1:57600 RRA:AVERAGE:0.25:20:8640 RRA:MAX:0.25:20:8640 RRA:AVERAGE:0:1:105408 RRA:AVERAGE:0.34:12:4560 RRA:MAX:0.34:12:4560 RRA:AVERAGE:0.25:288:732 RRA:MAX:0.25:288:732 =head3 XML elements =over 4 =item * C Mandatory. The top-level element. =item * C Mandatory. It must contain the element C. =item * C Mandatory. It must contain a format version currently supported by devdiscover. Currently supported version is C<1.0>. =item * C Optional. May contain the information about the file creator: a human author name, or a program. =item * C Some parameters are mandatory. This element defines a global or host-specific parameter. Mandatory attribute C identifies the parameter, and the value is taken eother from C attribute, or from the textual content of the element. C element should be the child element of C for global parameters or C for host-level parameters. Host-level parameters override the values of global parameters. These parameters are for C only. They are not Torrus configuration parameters, although some of them are directly copied into the generated configuration file. =item * C Mandatory. Defines a host to run SNMP discovery. =back =head3 Common parameters =over 4 =item * C, C, C, C, C, C, C, C Optional. When defined, these parameters override those from C template in F. =item * C Mandatory. Specifies the output filename for generated Torrus configuration. If it's a relative path, the file is placed in F<@sitexmldir@> directory. =item * C Optional. Specifies a comma-separated list of XML file names for bundle output. Each bundle file will contain EincludeE statement for each corresponding C. =item * C, C, C, C, C, C, C, C, C, C, C, C, C, C, C Mandatory SNMP session parameters. Authentication parameters depend on the SNMP version used. See the I for details. These parameters define the SNMP agent properties and are copied one-to-one to the output configuration. =item * C Optional. Defines a DNS domain name to be appended to C. =item * C and C Optional parameters specifying the local socket binding address and port. =item * C Mandatory. Defines the directory path where RRD files for this host are stored. In case if hashed directories are enabled, C specifies the base path under which the hashed subdirectories are created. =item * C Optional. Determines the host-specific subtree name. If not specified, the subtree is named by C, or by C if system ID is not defined. =item * C Optional. If defined, it overrides the default value of system ID, which is equal to the value of C. =item * C Optional. Defines the host-specific reference for I. Default value is equal to C. =item * C Optional. When defined, these parameters overwrites the value from the template and vendor-specific discovery modules. =item * C Optional. Default: C. Devdiscover sets this parameter to C when it finds SNMPv2-MIB::sysUpTime variable unavailable in the device. =item * C Optional. If defined, it sets the SNMP maximum message size different from default. The default value is 1470 (defined in Net::SNMP). =item * C Optional. If defined, it sets the maximum number of objects to return in SNMP getBulkRequest. The default value is 10. =item * C Optional. Defines the datasourse tree path under which the host-specific subtree is created. =item * C Optional. Valid values: C, C. Determines if Holt-Winters forecasting should be enabled for the given host. =item * C Optional. Comma-separated list of discovery device types that need to be excluded from discovery process. For example, ATMEL appliances conflict with Empire SystemEdge MIBs, and you need to disable C module in order to run the discovery on those appliances. =item * C Optional comma-separated list of device types. If defined, only the specified types will be used for device probing. Also it automatically disables the SNMP reachability statistics unless C is set to C. =item * C Optional comma-separated list of alias paths for a given host. Aliases must be unique for each host. =item * C Optional comma-separated list of template names that will be applied to the resulting XML configuration at the host level. =item * C Optional comma-separated list of XML files that will be listed in C statements in the resulting XML output. =item * C Optional comma-separated list of parameter names that should be copied from the discovery configuration file to the generated Torrus configuration at the host level. =item * C Optional comma-separated list of object selectors. They are explained in more detail below. =item * C When set to C, this parameter disables SNMP collection for this host. It is useful for creating custom views, in conjunction with C parameter. =item * C If set to C, the device reachability statistics are not enabled for this host. =item * C If C parameter is specified, the SNMP reachability statistics are disabled by default. If C is set to C, the reachability statistics are actvated in any case. =item * C This parameter overrides the default round-robin array definition for collector statistics. By default, we keep 5-minute details for 2 weeks, 30-minute average and maximum details for 6 weeks, and 1-day aggregated stats for 2 years. =item * C This parameter overrides the round-robin array definitions for SNMP reachability statistics. By default, 5-minute data is stored for 3 months, and daily averages are stored for 3 years. =item * C Semicolon-separated (;) list of pairs of tokenset names and descriptions. Each tokenset name is followed by colon (:) and the description text: important-graphs: Important Graphs; unimportant-graphs: Unimportant Graphs =item * C For a tokenset XXX, specifies the value of C parameter. It defines the view name that is used to display graphs inside the tokenset. =item * C if set to C, the legend is not shown. It usually has uptime, software version, and contact information for the SNMP device. =item * C Sets the comment string for the host. =item * C Default: C. When set to C, the link to the recursive view at the host level is omitted. =item * C If defined, this should be a comma-separated list of template registry entries that override the default template references. The overlaying templates should be referred in C<%Torrus::DevDiscover::templateOverlays>. For example, we want to redefine the interface counter template. Then in the DDX file, we set Then in F we set %Torrus::DevDiscover::templateOverlays = { 'my_ifcounters' => { 'RFC2863_IF_MIB::iftable-octets' => { 'name' => 'my-iftable-octets', 'source' => 'mycustom-rfc2863.if-mib.xml' }, 'RFC2863_IF_MIB::ifxtable-hcoctets' => { 'name' => 'my-ifxtable-hcoctets', 'source' => 'mycustom-rfc2863.if-mib.xml' }, }}; =back =head3 Parameters for C This discovery module is responsible for agent's interfaces table and interface counters. Recognized optional parameters are: =over 4 =item * C Some agents do not implement 64-bit counters correctly. When this parameter is set to C, 64-bit interface counters are not used for the host. For Cisco IOS devices, the C discovery module tries to detect such situation automatically. =item * C Defines the child subtree name within host-level subtree where interface counters are located. Default: C. =item * C Defines the comment string for interface counters subtree. Default: I. =item * C If set to C, interfaces with ifAdminStatus set to other than up(1) are included in the discovery results. By default, such interfaces are not listed. =item * C If set to C, the interfaces with ifOperStatus status set to notPresent(6) are included in the discovery results. By default, such interfaces are not listed. =item * C If set to C, the interfaces with ifOperStatus equal to down(2) are excluded from the discovery results. =item * C Comma-separated list of interface names which should be excluded from configuration. Spaces are allowed between the names and commas. The names should be the ones that are used for interface subtrees. =item * C If defined, this parameter specifies the list of interfaces that will be included in the discovery results. The names should match the interface subtree names. Caution: if specified incorrectly, this parameter may disable discovery for all interfaces on a device. =item * C This parameter defines which interfaces' C leaves to add to which tokensets. The value is a semicolon-separated (;) list of entries of form I, where I is a name of the tokenset, and the I is the subtree name of the corresponding interface. The token sets must be defined elsewhere in Torrus configuration. Example: clusters: 10_1, 10_2; uplinks: 1_1, 1_2 Alternatively, this parameter can be defined at the global level, and then each interface should be pretended by the SNMP host name (the same as in C parameter) and slash sign (/): clusters: RTR01/Ethernet0_0, RTR01/FastEthernet2_1; =item * C Optional comma-separated list of parameter names that would be copied to the output Torrus configuration at interface level. For each parameter I, the value for a particular interface I will be taken from parameter C::I> in the discovery configuration file. Example: =item * C Optional. For a device that doesn't have a corresponding vendor-specific discovery module, this parameter would advice C how to build C index mapping. By default, the interfaces are mapped by C values if they are unique, or C otherwise. If C is non-unique, C is taken as interface reference. For many vendors, this would not give reliable or convenient mapping. Valid values for the hint are: C, C, and C. The first two suggest the mapping by corresponding SNMP variables, and the third one should be used for devices with fixed C layout: in this case, the C values are recorded as they are at the moment of discovery. This option is ignored if the device is supported by a vendor specific discovery module. =item * C Optional. Before Torrus version 1.0.10, C parameter was derived from C values, even if they were non-unique. Now this interface nick is based on C only if it contains unique values. This discovery parameter, if set to C, restores the old behavior. =item * C Optional. By default, per-interface subtrees are named after the values of C SNMP variables. If this option is set to C, this SNMP variable would be used for subtree naming. This option is ignored if the device is supported by a vendor specific discovery module. =item * C Optional. By default, per-interface I is derived from C. This parameter can change the reference table for nodeid. Valid values are: C, C, C, C. =item * C Optional. By default, interfaces are ordered by their ifindex, which can lead to not being ordered at all on devices where interfaces can come and go. Setting this parameter to C drops the auto-generated I values and makes Torrus sort the interfaces alphabetically. =item * C If set to C, all the interface statistics are skipped from the XML configuration output. Still the interface table is examined and the results may be used by other discovery modules. =item * C If set to C, the bandwidth usage percentage will be shown for those interfaces where two parameters are defined (in megabits per second): C and C. These interface parameters may be set by C discovery parameter, or by selectors with the action C, or by setting C. =item * C Defines the values (in megabits per second) for C and C interface parameters. Semicolon-separated list of (I:I:I) values, for example: ethernet0_0:10:10; ethernet0_1:20:20; =item * C, C, C, C Defines traffic summary graphs. A summary graph presents a sum of traffic from several interfaces. The interfaces can belong to different hosts, but then these hosts should have the same C parameter value. C defines a list of summary names, C specifies the full path in the datasource tree to display the graph, optional C defines a descriptive comment for the graph, and C lists the interfaces that comprise this sum. The interfaces can be defined at the host level in the form C or at the global level in the form C. Example: =back =head3 Other generic MIB parameters =over 4 =item * C Defines the child subtree name within host-level subtree where system CPU and memory statistics are located. Default: C. =item * C If set to C, only the DOCSIS upstream statistics are enabled, and downstream and MAC layer stats are skipped. =item * C If set to C, all DOCSIS interfaces are excluded from any cable or interface statistics. =back =head3 Vendor parameters =over 4 =item * C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C When set to C, the corresponding statistics are included or excluded from the graphs. =item * C When set to C, the data will be written to filenames based on the name bundle instead of by the ID of the bundle. =item * C When set to C, wireless client machines are not tracked. =item * C When set to C, Cisco CPU usage statistics are excluded from discovery. =item * C When set to C, Cisco memory pool usage statistics are excluded from discovery. For Cisco series 7500, see the note in the I. =item * C When set to C, Cisco temperature sensors are excluded from discovery. =item * C When set to C, Cisco temperature sensors are recorded and displayed in degrees Fahrenheit. =item * C When set to C, Cisco temperature sensor values are stored in a separate RRD file per sensor ID. This is useful for modular big routers like Cisco GSR. =item * C if set to C, Cisco power supply statistics are not collected. =item * C Name of the power supply monitor for Cisco devices. =item * C When set to C, Cisco memory buffer statistics are included to the discovery. Many IOS releases report faulty information, thus these stats are disabled by default. =item * C When set to C, IPSec statistics are excluded from discovery. =item * C If set to C, BGP statistics are not included. =item * C When set to C, the interfaces VlanXXX are added to statistics. By default they are not included, because some hardware platforms give irrelevant counter statistics. =item * C When set to C, the interfaces "unrouted Vlan XXX" are added to statistics. By default they are not included, because some hardware platforms provide no statistics for such interfaces. =item * C If set to C, DialerX interfaces are included in discovery results. =item * C When set to C, only those Catalyst ports are included in configuration which have a port name (set up by C command). =item * C When set to C, Cisco MAC accounting statistics will be enabled for those MACs which correspond to BGP peers only. =item * C Specifies a description for an autonomous system number. Currently it's used with Cisco MAC accounting and Cisco BGP statistics only. =item * C Specifies a description for a peer by its IP address. Dots in IP address should be replaced with underscores. Currently it's used with Cisco MAC accounting and Cisco BGP statistics only. =item * C Works the same way as C and assigns MAC accounting peers to tokensets. =item * C When set to C, the Committed Access Rate statistics are disabled from discovery. =item * C When set to C, the VPDN (Virtual Private Dial-up Network) statistics are disabled from discovery. =item * C If set to C, ME3400 Port QoS statistics are disabled. =item * C If set to C, the Hw Serial and Revision strings are not shown in device comment. =item * C, C, C, C, C, C If set to C, the corresponding statistics are excluded from Cisco SCE graphs. =item * C Comma-separated list of SSID which are only allowed for discovery. By default, all SSID are allowed. =item * C, C, C When set to C, disables the corresponding statistics category. =item * C, C When set to C, enables the user of fahrenheit temperature, or writes multiple rrd files. =item * C, C, C, C, C, C When set to C, disables the corresponding statistics category for JunOS devices. =item * C, C, C, C When set to C, disable the corresponding statistics category for Liebert devices. =item * C When set to C, the temperature readings will be in fahrenheit. =item * C, C, C Set a numeric value for the maximum temperature, humidity, or dew point on NetBotz sensor graphs. The maximum is displayed with a dark red line. =item * C Mandatory for Paradyne DSLAM devices. It should uniquely identify the slot within the device. Any sequence of word characters is allowed. =back See also: I for the list of supported MIBs and vendors. =head2 Object selectors Selectors are a common mechanism for applying customizations to some discovery objects. For example, you may want to apply a monitor to byte counters of interfaces that have a special word in the description. Or apply Holt-Winters prediction to a certain subset of interfaces. Selectors are defined in a DDX file as regular parameters. The parameter C defines a list of selector names. Each selector is identifed by its name and type. The type of selector defines which objects will be searched: IF-MIB interfaces, or Cisco temperature sensors, or something else. The parameters are described below. =over 4 =item * C Comma-separated list of selector names. Further below we use C as selector name, C as attribute name, and C as action name. =item * C Type of objects to be selected. Supported values are: C, C, C. =item * C An RPN (reverse Polish notation) expression that defines the object attributes to be checked and relation between them. Attribute names should be specified in curly braces ({}). The rest of the syntax is described in I guide. The attribute names are specific to the selector type and are described below. =item * C For a given selector name C and attribute name C, this parameter defines the attribute value that should be compared to the object's properties. In most cases it defines a regular expression that should match the value of a corresponding object's property. =item * C For a given selector name C, this parameter defines a comma-separated list of actions to be applied for objects where C returns true. The action names are specific to the selector type and are described below. =item * C For a given selector C and action C, this parameter defines an argument that should be passed to the action. Each action defines its own meaning of the argument. =back =head3 RFC2863_IF_MIB selector This type of selector selects the network interfaces on a SNMP device. The following attribute names are supported: =over 4 =item * C, C, ... Interface-level subtree name as you see it in the discovery results. You can compose a complex expression of subtree matches, by createing attributes with different numbers at the end. =item * C Comment string that is defined in C parameter. It is usually derived from an interface description. =item * C Numeric IANA interface type, as returned by C SNMP variable. =back C is compared numerically. C and C are regular expressions. C accepts multiple expressions separated by space, and the selector matches if any of these expressions matches the subtree name. The following actions are supported: =over 4 =item * C, C The argument defines the monitor name to be applied to the input or output bytes counter. =item * C, C, C, C The argument defines the monitor name to be applied to discard and error counters that are discovered for a given interface. =item * C The argument defines the value for C parameter. See the manual for F for more details. =item * C No argument needed. This action enables Holt-Winters prediction for given interface's counters. =item * C, C, C No argument needed. The action disables the packet, discard or error counters for a given interface to be collected. =item * C The argument is a comma-separated list of tokenset names where C graphs would be added. This action complements C. =item * C The argument defines additional configuration parameters to be placed at the interface level. The value should be one or several C pairs separated by semicolon (;). Parameters defined in C may override the ones defined in this action. =item * C, C Analagous to C, but the parameters are applied to InBytes and OutBytes leaves of the selected interface. =item * C The argument is a comma-separated list of template names to add at the interface level. If a template is not seen in the DevDiscover's template registry, it produces a warning. See C for more details about a proper way of adding custom templates. =item * C This action excludes the matched interface from discovery results. No arguments needed. =item * C For a DOCSIS CMTS, this action assigns a new monitor to the upstream Signal/Noise ratio gauge, instead of the default monitor. =item * C For a DOCSIS CMTS, this action adds the Signal/Noise ratio graph to a specified tokenset. =item * C For a DOCSIS CMTS, this action assigns a monitor to the C counter of the upstream FEC statistics. =item * C For a DOCSIS CMTS, this action assigns a monitor to the C counter of the upstream FEC statistics. =item * C For a DOCSIS CMTS, this action assigns a monitor to the downstream C counter. =item * C For Cisco uBR, this action assigns a monitor to the C gauge in the MAC layer stats. =item * C, C For Cisco uBR, this action assigns a monitor to upstream utilization and free contention timeslots gauges correspondingly. =back =head3 CiscoCPU selector A selector of this type selects CPU statistics Cisco router or switch. The attributes supported are: C and C, and their values are regular expressions that should match the CPU name or description, as discovered by C. The action supported is C, and its argument specifies the tokenset where to place the CPU statistics graph. =head3 CiscoSensor selector A selector of this type selects temperature sensors on a Cisco router or switch. The only attribute supported is C, and its value is a regular expression that should match the sensor description, as discovered by C. Actions supported: C, C. =head3 ALU_SAP selector This selector type is designed for SAP entries in Alcatel-Lucent ESS and SR routers. Attributes supported: C (regexp), C (regexp), C (exact match), C (exact match). Actions supported: C (excludes a selected SAP from the datasources). =head3 NetBotzSensor selector A selector of this type selects sensors on a NetBotz environment monitoring appliances. Attributes supported: C, C, C. Arguments are matched as regular expressions. Actions supported: C, C. =head3 Examples The following example applies a monitor called C to all inlet sensors on a Cisco device: The following example enables Holt-Winters prediction and specifies some parameters to all FastEthernet interfaces which have the string "SRV-ID" in their descriptions: The following example sets up the monitors defined in F: DocsisUpSNRMonitor, DocsisUpFECCorMonitor, DocsisUpFECUncorMonitor, DocsisDownUtilMonitor, DocsisMacModemsMonitor, DocsisUpUtilMonitor, DocsisUpSlotsMonitor, InErrorsMonitor, OutErrorsMonitor This example excludes all non-Gigabit ports from discovery results: =head1 Author Copyright (c) 2002-2011 Stanislav Sinyagin Essinyagin@yahoo.comE torrus-2.07/doc/Makefile.in0000644000175000017510000005413412137523664012554 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002 Stanislav Sinyagin # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # Stanislav Sinyagin # VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc DIST_COMMON = $(dist_devdoc_DATA) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(devdocdir)" "$(DESTDIR)$(pkgdocdir)" DATA = $(dist_devdoc_DATA) $(nodist_pkgdoc_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ FIND = @FIND@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ KILL = @KILL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PERLCRITIC = @PERLCRITIC@ PERLINC = @PERLINC@ POD2MAN = @POD2MAN@ POD2TEXT = @POD2TEXT@ RM = @RM@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SLEEP = @SLEEP@ STRIP = @STRIP@ SU = @SU@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cachedir = @cachedir@ cfgdefdir = @cfgdefdir@ datadir = @datadir@ datarootdir = @datarootdir@ dbhome = @dbhome@ defrrddir = @defrrddir@ distxmldir = @distxmldir@ docdir = @docdir@ dvidir = @dvidir@ enable_pkgonly = @enable_pkgonly@ enable_varperm = @enable_varperm@ exec_prefix = @exec_prefix@ exmpdir = @exmpdir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ logdir = @logdir@ mandir = @mandir@ mansec_misc = @mansec_misc@ mansec_usercmd = @mansec_usercmd@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ perlithreads = @perlithreads@ perllibdir = @perllibdir@ perllibdirs = @perllibdirs@ piddir = @piddir@ pkgbindir = @pkgbindir@ pkgdocdir = @pkgdocdir@ pkghome = @pkghome@ plugdevdisccfgdir = @plugdevdisccfgdir@ pluginsdir = @pluginsdir@ plugtorruscfgdir = @plugtorruscfgdir@ plugwrapperdir = @plugwrapperdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ reportsdir = @reportsdir@ sbindir = @sbindir@ scriptsdir = @scriptsdir@ seslockdir = @seslockdir@ sesstordir = @sesstordir@ sharedstatedir = @sharedstatedir@ siteconfdir = @siteconfdir@ sitedir = @sitedir@ sitexmldir = @sitexmldir@ srcdir = @srcdir@ supdir = @supdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tmpldir = @tmpldir@ tmpluserdir = @tmpluserdir@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ torrus_user = @torrus_user@ var_group = @var_group@ var_mode = @var_mode@ var_user = @var_user@ varprefix = @varprefix@ webplaindir = @webplaindir@ webscriptsdir = @webscriptsdir@ wrapperdir = @wrapperdir@ SUBDIRS = . manpages SUBST = @abs_top_builddir@/setup_tools/substvars.sh CLEANFILES = $(POD_FILES) $(nodist_pkgdoc_DATA) EXTRA_DIST = $(SRCPOD) SRCPOD = \ install.pod.in \ nodeid_usage.pod.in \ reporting_setup.pod.in \ rpnexpr.pod.in \ rrfw_torrus_migration.pod.in \ scalability.pod.in \ snmpdiscovery.pod.in \ stylingprofile.pod.in \ userguide.pod.in \ vendorsupport.pod.in \ webintf.pod.in \ xmlconfig.pod.in POD_FILES = \ install.pod \ nodeid_usage.pod \ reporting_setup.pod \ rpnexpr.pod \ rrfw_torrus_migration.pod \ scalability.pod \ snmpdiscovery.pod \ stylingprofile.pod \ userguide.pod \ vendorsupport.pod \ webintf.pod \ xmlconfig.pod @POD2TEXT_PRESENT_TRUE@nodist_pkgdoc_DATA = \ @POD2TEXT_PRESENT_TRUE@ install.txt \ @POD2TEXT_PRESENT_TRUE@ nodeid_usage.txt \ @POD2TEXT_PRESENT_TRUE@ reporting_setup.txt \ @POD2TEXT_PRESENT_TRUE@ rpnexpr.txt \ @POD2TEXT_PRESENT_TRUE@ rrfw_torrus_migration.txt \ @POD2TEXT_PRESENT_TRUE@ scalability.txt \ @POD2TEXT_PRESENT_TRUE@ snmpdiscovery.txt \ @POD2TEXT_PRESENT_TRUE@ stylingprofile.txt \ @POD2TEXT_PRESENT_TRUE@ userguide.txt \ @POD2TEXT_PRESENT_TRUE@ vendorsupport.txt \ @POD2TEXT_PRESENT_TRUE@ webintf.txt \ @POD2TEXT_PRESENT_TRUE@ xmlconfig.txt devdocdir = $(pkgdocdir)/devdoc dist_devdoc_DATA = \ devdoc/architecture.pod \ devdoc/devdiscover.pod \ devdoc/progstyle.pod \ devdoc/reqs.0.0.pod \ devdoc/reqs.0.1.pod \ devdoc/torrus_roadmap.pod SUFFIXES = .pod.in .pod .txt all: all-recursive .SUFFIXES: .SUFFIXES: .pod.in .pod .txt $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-dist_devdocDATA: $(dist_devdoc_DATA) @$(NORMAL_INSTALL) test -z "$(devdocdir)" || $(MKDIR_P) "$(DESTDIR)$(devdocdir)" @list='$(dist_devdoc_DATA)'; test -n "$(devdocdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(devdocdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(devdocdir)" || exit $$?; \ done uninstall-dist_devdocDATA: @$(NORMAL_UNINSTALL) @list='$(dist_devdoc_DATA)'; test -n "$(devdocdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(devdocdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(devdocdir)" && rm -f $$files install-nodist_pkgdocDATA: $(nodist_pkgdoc_DATA) @$(NORMAL_INSTALL) test -z "$(pkgdocdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdocdir)" @list='$(nodist_pkgdoc_DATA)'; test -n "$(pkgdocdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgdocdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgdocdir)" || exit $$?; \ done uninstall-nodist_pkgdocDATA: @$(NORMAL_UNINSTALL) @list='$(nodist_pkgdoc_DATA)'; test -n "$(pkgdocdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(pkgdocdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(pkgdocdir)" && rm -f $$files # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(devdocdir)" "$(DESTDIR)$(pkgdocdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dist_devdocDATA install-nodist_pkgdocDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-dist_devdocDATA uninstall-nodist_pkgdocDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic ctags \ ctags-recursive distclean distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am \ install-dist_devdocDATA install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man \ install-nodist_pkgdocDATA install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-dist_devdocDATA uninstall-nodist_pkgdocDATA .PRECIOUS: $(POD_FILES) .pod.in.pod: $(SUBST) $< > $@ @POD2TEXT_PRESENT_TRUE@.pod.txt: @POD2TEXT_PRESENT_TRUE@ $(POD2TEXT) $< > $@ htdocs: $(POD_FILES) cd manpages; make pods HTMLDIR=@abs_top_builddir@/../htdocs $(SHELL) mkhtdocs.sh # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: torrus-2.07/doc/devdoc/0000755000175000017510000000000012137523670012021 500000000000000torrus-2.07/doc/devdoc/progstyle.pod0000644000175000017510000001001511661302716014467 00000000000000# rpnexpr.pod - Torrus RPN expressions guide # Copyright (C) 2002 Stanislav Sinyagin # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # Stanislav Sinyagin # # =head1 Torrus Programming Style Guide =head2 Perl indentation style The code indentation style is a kind of BSD/Allman style: while( not $success and time() < $waitingTimeout ) { $self->clearReader(); Info('Sleeping ' . $Torrus::Global::ConfigReadyRetryPeriod . ' seconds'); sleep $Torrus::Global::ConfigReadyRetryPeriod; $self->setReader(); if( $self->isReady() ) { $success = 1; Info('Now configuration is ready'); } else { Info('Configuration is still not ready'); } } Indentation is 4 characters. Opening and closing braces are aligned. There's no space between the keyword (C, C, etc.) and the opening parenthesis. Tab characters are prohibited. Page width is strictly 80 characters. All longer lines must be wrapped. When possible, leave space between parentheses and the inside content. This is not necessary for debug or print statements. There's always space around the equal sign (C<=>). The object method calls always have parentheses, even if no arguments are reqiured. Use keywords for logical operations instead of C operators: C, C, C. Use single quotes in hash references: C<$a-E{'abc'}>. =head2 Common file properties With the exception of special-purpose files, each source file must ontain the GNU copying statement, CVS C tag, and author's name and e-mail address. C, Perl, and Bourne shell files must contain Gnu Emacs variables at the end of the file: # Local Variables: # mode: perl # indent-tabs-mode: nil # perl-indent-level: 4 # End: Each file must always end with the linebreak. Otherwise it might conflict with CVS. All files must have Unix linebreak format. =head2 GNU Emacs settings Standard C does the thing: ;; Set up Perl mode (autoload 'perl-mode "perl-mode") (setq auto-mode-alist (append (list (cons "\\.pl$" 'perl-mode) (cons "\\.pm$" 'perl-mode) (cons "\\.pl\\.cgi$" 'perl-mode)) auto-mode-alist)) (custom-set-variables ;; custom-set-variables was added by Custom -- don't edit or cut/paste it! ;; Your init file should contain only one such instance. '(indent-tabs-mode nil) '(tab-width 8) ) =head2 X-Emacs settings In X-Emacs, the default handler for Perl files is C. The following custom variables must be set in order to comply to our styling standards: (custom-set-variables ;; custom-set-variables was added by Custom -- don't edit or cut/paste it! ;; Your init file should contain only one such instance. '(cperl-brace-offset -4) '(cperl-continued-statement-offset 4) '(cperl-indent-level 4) '(indent-tabs-mode nil) '(tab-width 8) ) =head2 Normalizing multiple files In Torrus CVS repository, in the root of module C, there is a small utility that fixes some styling issues for all the sources in current directory and subdirectories: perl normalize-all-sources.pl It replaces tabs with spaces, deletes space at the end of line, and removes empty lines at the start and the end of file. =head1 Author Copyright (c) 2003-2005 Stanislav Sinyagin Essinyagin@yahoo.comE torrus-2.07/doc/devdoc/torrus_roadmap.pod0000644000175000017510000001744611661302716015517 00000000000000# # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # Stanislav Sinyagin # =head1 RRFW to Torrus transition roadmap =head2 Introduction The name "RRFW" appeared to be quite difficult to remember and to pronounce. There has been a call for a new name, and recently a good suggestion came from Francois Mikus: --- Francois Mikus wrote: > Here is my humble flash, which I think may be appropriate. Which I will > explain why below... > > The name I would suggest is; > > Torrus > > Has a mythical sounding name without the actual history. Has a resonance > with Torrent, where rrfw deals with a torrent of information. A google > search comes up with near nothing, and nothing commercial. Has a > resonance with Taurus, which is mythical, astrological and has an > underlying strength connotation. > > Anyway, this is the best I could think of. And it provides an opening to > have a semi-mythical/comic style yet serious mascot. > > You have a LOT of documentation. web pages, code, etc.. But marketing is > the way to win hearts and minds, create a following and get rabid > developpers on-board! Thus the project will be renamed to Torrus, and few other structural changes will accompany the transition. =head2 Releases roadmap Version 0.1.8 will be the last of RRFW, unless some urgencies arise. The first Torrus release will be 1.0.0. =head2 Multiple XML cofiguration directories During XML compilation, the datasource configuration files will be searched in multiple directories. The list of directories and the search sequence will be configurable. This will allow not to mix the distribution XML files and the ones created locally. =head2 Separated directories for templates and configuration Perl configuration files and HTML templates will also be separated into different directories, so that user-editable files don't mix with the ones from distribution. =head2 Commandline launcher A small shell script will be installed as C, and it will pass all arguments to appropriate torrus executables. For example, torrus compile --tree=main will execute C torrus utility with the argument C<--tree=main>. =head2 New directory hierarchy Filesystem Hierarchy Standard Ehttp://www.pathname.com/fhs/E proposes to put the software add-on packages into C directory and user services data, such as database contents or RRD files, in C directory. However, FreeBSD and some other systems are not FHS-compliant, and require to install all additional software into C hierarchy. We propose that Torrus distribution will support three different directory layouts, and the system administrator will decide the most suitable one: =over 4 =item 1 Default layout based in C; =item 2 FHS compliant layout, set by running C<./configure_fhs> instead of C<./configure>; =item 3 Custom layout, tunable with standard options and variables in C<./configure>. =back =head3 Default layout Although many systems like FreeBSD discourage creation of new package-specific subdirectories in /usr/local, we find it quite a common practice, and quite convenient for keeping the files together. /usr/local/torrus/ Home directory for Torrus distribution files | +- conf_defaults/ torrus-config.pl and others | +- bin/ Command-line executables | +- doc/ POD and TXT documentation files | +- examples/ Miscelaneous example files | +- perllib/ Perl libraries | +- plugins/ Plugins configuration | +- scripts/ Scripts | +- sup/ Supplementary files, DTDs, MIBs, color schemas, | Web plain files | +- templates/ Renderer output templates | +- xmlconfig/ Distrubution XML files /usr/local/etc/torrus/ Site configurable files | +- conf/ Place for torrus-siteconfig.pl and other siteconfigs | +- discovery/ Devdiscover input files | +- templates/ User-defined Renderer output templates | +- xmlconfig/ User XML configuration files /usr/local/man/ Place for man pages. All articles will have the prefix C /var/log/torrus/ Daemon logfiles /var/run/torrus/ Daemon PID files /var/torrus/cache/ Renderer cache /var/torrus/db/ Configuration databases /var/torrus/session_data/ Web interface session files /srv/torrus/collector_rrd/ Default directory for collector generated RRD files =head3 FHS compliant layout /opt/torrus/ Home directory for Torrus distribution files | +- conf_defaults/ torrus-config.pl and others | +- bin/ Command-line executables | +- doc/ POD and TXT documentation files | +- examples/ Miscelaneous example files | +- perllib/ Perl libraries | +- plugins/ Plugins configuration | +- scripts/ Scripts | +- sup/ Supplementary files, DTDs, MIBs, color schemas | +- templates/ Renderer output templates | +- xmlconfig/ Distrubution XML files /etc/opt/torrus/ Site configurable files | +- conf/ Place for torrus-siteconfig.pl and other siteconfigs | +- discovery/ Devdiscover input files | +- xmlconfig/ User XML configuration files /opt/torrus/share/man/ Place for man pages. All articles will have the prefix C /var/log/torrus/ Daemon logfiles /var/run/torrus/ Daemon PID files /var/torrus/cache/ Renderer cache /var/torrus/session_data/ Web interface session files /srv/torrus/db/ Configuration databases /srv/torrus/collector_rrd/ Default directory for collector generated RRD files =head2 New plugins design Unlike RRFW, the plugins in Torrus will be installed independently. This will allow to easily add new plugins to an existing installation. The Torrus installer stores all important variable settings in a special file, F. Then the plugin installer is able to access the settings without accessing the Torrus distribution directory. There is a helper utility, C, which applies all I variables to the plugin configuration utility. It follows then the standard installation way: ./configure && make && make install Thus the OS-dependent package installators may follow the standard configuration procedure, while those who manually install the software, will use the helper. There are two special directories: F and F. Plugins are allowed to add Perl files there. They will be automatically I'd by F and F. =head2 Authors Copyright (c) 2004 Stanislav Sinyagin torrus-2.07/doc/devdoc/reqs.0.0.pod0000644000175000017510000001330211661302716013707 00000000000000# requirements.pod: The pre-planning document # Copyright (C) 2002 Stanislav Sinyagin # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # Stanislav Sinyagin # # =head1 RRD Framework Requirements Version 0.0 Date: Jul 10 2002 This article defines some principles that a supposedly future RRD framework should have. The framework should consist of 3 independent subsystems: =over 4 =item Data Collection =item Data Monitoring =item Data Displaying =back =head2 Flexible Hierarchical Configuration Inspired by Cricket hierarchical configuration, we state here that the configuration should be hierarchical. Child nodes should inherit the properties from parents. The format of the configuration files has not to be neccessary as in Cricket. I'm not sure if it's worth keeping them in a directory structure representing the hierarchy tree, but it's definitive that multiple files should be supported. A good step ahead would be the configuration in XML format. It is also possible to have a converter from some other formats (plain text, or an SQL database) into XML which will be consumed by the framework. I leave the Data collection uncovered, since all of the existing RRD frontends do this part already. =head1 Data Monitoring Principles At the moment, the only known solution for RRD data monitoring is Cricket. Its threshold monitoring has certain limitation and drawbacks. Nevertheless, it may be used as the basis for the ideas in the further development. The major idea is to build data monitoring as a part of a bigger RRD framework, still being the independent part of the whole. The data can come from many differet sources, from RRDs produced by any of the existing and future frontends. =head2 File Naming Flexibility In most existing RRD frontends, each RRD datafile should be described individually. This is not very convenient, especially for the cases when you have several (dozens) files containing one type of data. (e.g., input traffic per source autonomous system). Also the files of same type can be created and deleted by their sourcing frontend, and it would be more convenient not having to change the monitoring configuration. Thus, we need a wildcards language which would allow to specify multiple files and derive the datasource names from thir names. =head2 Datasource Naming Each data being monitored (for RRDs, its definition specifies the Efilename, DS, RRAE triple) has to have a universal name. The name can be fully or partly qualified, depending on the configuration tree. Examples of such data reference follow: /Netflow/Exporters/63.2.3.224/if3/bps /* Interface #3 on router 63.2.3.224 */ /Netflow/Subnets/Dialin/bps /* Dial-in address pool */ /* different grouping for the rack temperature in Server Room 1 */ /Envmon/RackTemp/SR1 /SR1/Envmon/RackTemp Name aliasing should allow short or symbolic names for data sources: /* Alias for /Netflow/Exporters/63.2.3.224/if3 */ /Netflow/Upstream/FranceTelecom1 =head2 Monitoring Rules Data threshold monitoring should be described in a hierarchical manner. It would be interesting to have monitoring rules separate from the data hierarchy. On the other hand, 1) some data sources might need special and unique monitoring rules; 2) in some cases, several data sources need to be combined in order to build a threshold rule. I'm not yet sure how this must be achieved. =head2 Event Processing Once the threshold violation occurs, the monitoring system should produce the alarm event. Cricket has a good set of ways to report the alarm, and they can be taken as the basis. Also what Cricket is really missing, is displaying those data sources being alarmed. The Monitoring system should produce the instructions to the Displaying system in order to display the summary of those data sources which produce alarms within certain time. =head1 Data Displaying Principles View profiles should be configured in a hierarchical manner. Again as with data monitoring, some Views should be configured independently of the data hierarchy, but also some data should be able to define specific view profiles. There should be view profiles of different types: =over 4 =item * HTML Framework. Defines the HTML elements that should be displayed around the graphs. It also should define the child graphs. Also it should define the controls which would cause the option changes in the child graphs (e.g., enabling "Show Holt-Winters Boundaries" would produce the corresponding graph). =item * Individual Graph. Defines the way the graph should look. It should also be capable of displaying an arbitrary number of data sources. It should have tunable options, like color, size, or time period. =back The Displaying system should allow the following ways of viewing: 1) hierarchical browsing, like Cricket; 2) alarm summary display; 3) individual graph display, without HTML surrounding. The graph images should be cashed and reused whenever possible. In alarm summary browsing, these images can be generated at the moment of the event. =head1 Author Copyright (c) 2002 Stanislav Sinyagin ssinyagin@yahoo.com torrus-2.07/doc/devdoc/devdiscover.pod0000644000175000017510000002540011661302716014760 00000000000000# devdiscover.pod - Guide to devdiscover # Copyright (C) 2003 Shawn Ferry, Stanislav Sinyagin # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # Shawn Ferry # Stanislav Sinyagin # =head1 Torrus SNMP Device Discovery Developer's Guide =head2 C overview C is an extensible, module based, SNMP device discovery utility. It is intended to automatically generate Torrus configuration files, based on SNMP discovery results and templates. See I for command usage and functionality overview. In general, C consists of the following files and functional parts: =over 4 =item * C This file is installed as C in Torrus installation directory, with certain variables substituted. The program provides all the commandline functionality and options processing. Once the CLI options are processed and verified, the control is passed to the C object. =item * C This Perl module is responsible for the SNMP discovery process organization: =over 8 =item * it registers the discovery modules; =item * establishes an SNMP session to the target host; =item * initiates a new C object for the target host; =item * stores the connection-specific parameters to the device object; =item * for each registered discovery module, executes C in I order; =item * for those discovery modules which paid interest in this target host, executes C in I order; =item * upon request from C, builds the configuration XML tree, by calling C in I order for each relevant discovery module for each target host. =back =item * C This Perl module is defined in F, and provides the functionality to store the results of SNMP device discovery. =item * C This module is an encapsulation wrapper for XML configuration builder. It provides methods for every element of Torrus configuration. =item * Discovery Modules These provide all the functionality for SNMP discovery. Normally one module covers one MIB, or sometimes several vendor-specific MIBs, and it is responsible for finding out the device details necessary for Torrus configuration building. Usually a discovery module refers to one or several I