[debian-edu-commits] r83256 - trunk/src/sitesummary

pere at alioth.debian.org pere at alioth.debian.org
Mon Mar 31 19:57:48 UTC 2014


Author: pere
Date: 2014-03-31 19:57:48 +0000 (Mon, 31 Mar 2014)
New Revision: 83256

Added:
   trunk/src/sitesummary/README.migrated2git
Removed:
   trunk/src/sitesummary/COPYING
   trunk/src/sitesummary/Makefile
   trunk/src/sitesummary/README
   trunk/src/sitesummary/SiteSummary.pm
   trunk/src/sitesummary/TODO
   trunk/src/sitesummary/agesinceseen-summary
   trunk/src/sitesummary/apache.conf
   trunk/src/sitesummary/collect.d/
   trunk/src/sitesummary/debian/
   trunk/src/sitesummary/debian_edu-summary
   trunk/src/sitesummary/expire-entry
   trunk/src/sitesummary/handler.d/
   trunk/src/sitesummary/hardware-model-summary
   trunk/src/sitesummary/hostclass-summary
   trunk/src/sitesummary/kernelversion-summary
   trunk/src/sitesummary/munin-plugin
   trunk/src/sitesummary/munin-plugin-agesinceseen
   trunk/src/sitesummary/nagios-nrpe-commands.cfg
   trunk/src/sitesummary/nagios-plugins/
   trunk/src/sitesummary/nagios-template-contacts.cfg
   trunk/src/sitesummary/nagios-templates.cfg
   trunk/src/sitesummary/nagios.cfg
   trunk/src/sitesummary/site-summary
   trunk/src/sitesummary/sitesummary-client
   trunk/src/sitesummary/sitesummary-client.conf
   trunk/src/sitesummary/sitesummary-collector.cgi
   trunk/src/sitesummary/sitesummary-makewebreport
   trunk/src/sitesummary/sitesummary-nodes
   trunk/src/sitesummary/sitesummary-update-munin
   trunk/src/sitesummary/sitesummary-update-nagios
   trunk/src/sitesummary/sitesummary-upload
Log:
Migrate sitesummary package to git.

Deleted: trunk/src/sitesummary/COPYING
===================================================================
--- trunk/src/sitesummary/COPYING	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/COPYING	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,340 +0,0 @@
-		    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.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    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.
-
-  <signature of Ty Coon>, 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.

Deleted: trunk/src/sitesummary/Makefile
===================================================================
--- trunk/src/sitesummary/Makefile	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/Makefile	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,94 +0,0 @@
-DESTDIR = 
-
-prefix       = /usr
-sbindir      = $(prefix)/sbin
-datadir      = $(prefix)/share
-libdir       = $(prefix)/lib
-cgibindir    = $(libdir)/cgi-bin
-pkgdatadir   = $(datadir)/sitesummary
-pkgdir       = $(libdir)/sitesummary
-collectordir = $(pkgdir)/collect.d
-perldir      = $(datadir)/perl5
-pkgvardir    = /var/lib/sitesummary
-nagiosplugdir= $(pkgdir)/nagios-plugins
-
-INSTALL      = install
-INSTALL_DATA = $(INSTALL) -m 644
-
-COLLECTORS = \
-	collect.d/debian \
-	collect.d/debian-edu \
-	collect.d/nagios \
-	collect.d/system \
-	collect.d/siteinfo
-
-SUMMARYSCRIPTS = \
-	agesinceseen-summary \
-	site-summary \
-	hardware-model-summary \
-	hostclass-summary \
-	kernelversion-summary \
-	debian_edu-summary
-
-all:
-
-install: install-server install-client
-
-install-server:
-	$(INSTALL) -d $(DESTDIR)$(cgibindir)
-	$(INSTALL) sitesummary-collector.cgi $(DESTDIR)$(cgibindir)
-
-	$(INSTALL) -d $(DESTDIR)$(sbindir)
-	for f in sitesummary-makewebreport sitesummary-nodes sitesummary-update-munin sitesummary-update-nagios ; do \
-		$(INSTALL) $$f $(DESTDIR)$(sbindir) ; \
-	done
-
-	$(INSTALL) -d $(DESTDIR)$(perldir)
-	$(INSTALL) -d $(DESTDIR)$(pkgdir)
-	$(INSTALL_DATA) SiteSummary.pm $(DESTDIR)$(perldir)
-	$(INSTALL) $(SUMMARYSCRIPTS) $(DESTDIR)$(pkgdir)/
-
-	$(INSTALL) expire-entry $(DESTDIR)$(pkgdir)/
-
-	$(INSTALL) -d $(DESTDIR)/etc/apache2/conf.d
-	$(INSTALL_DATA) apache.conf $(DESTDIR)/etc/apache2/conf.d/sitesummary
-
-	$(INSTALL) -o www-data -d $(DESTDIR)$(pkgvardir)/entries
-	$(INSTALL) -o www-data -d $(DESTDIR)$(pkgvardir)/tmpstorage
-	$(INSTALL) -d $(DESTDIR)$(pkgvardir)/www
-
-	$(INSTALL) -d $(DESTDIR)/usr/share/munin/plugins/.
-	$(INSTALL) munin-plugin $(DESTDIR)/usr/share/munin/plugins/sitesummary_sites
-	$(INSTALL) munin-plugin-agesinceseen \
-		$(DESTDIR)/usr/share/munin/plugins/sitesummary_agesinceseen
-
-	$(INSTALL) -d $(DESTDIR)/etc/nagios3
-	$(INSTALL_DATA) nagios.cfg \
-		$(DESTDIR)/etc/nagios3/sitesummary.cfg
-	$(INSTALL_DATA) nagios-templates.cfg \
-		$(DESTDIR)/etc/nagios3/sitesummary-templates.cfg
-	$(INSTALL_DATA) nagios-template-contacts.cfg \
-		$(DESTDIR)/etc/nagios3/sitesummary-template-contacts.cfg
-	$(INSTALL) -d $(DESTDIR)/etc/nagios
-	$(INSTALL_DATA) nagios-nrpe-commands.cfg \
-		$(DESTDIR)/etc/nagios/sitesummary-nrpe-commands.cfg
-
-install-client:
-	$(INSTALL) -d $(DESTDIR)$(sbindir)
-	$(INSTALL) sitesummary-client sitesummary-upload $(DESTDIR)$(sbindir)
-	$(INSTALL) -d $(DESTDIR)$(pkgdatadir)
-	$(INSTALL_DATA) sitesummary-client.conf $(DESTDIR)$(pkgdatadir)/
-
-	$(INSTALL) -d $(DESTDIR)$(collectordir)
-	for collector in $(COLLECTORS) ; do \
-		$(INSTALL) $$collector $(DESTDIR)$(collectordir); \
-	done
-
-	$(INSTALL) -d $(DESTDIR)$(nagiosplugdir)
-	for plugin in nagios-plugins/* ; do \
-		$(INSTALL) $$plugin $(DESTDIR)$(nagiosplugdir); \
-	done
-
-clean:
-	$(RM) *~ */*~
-distclean: clean

Deleted: trunk/src/sitesummary/README
===================================================================
--- trunk/src/sitesummary/README	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/README	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,179 +0,0 @@
-sitesummary
-===========
-
-More information is available from
-<URL: http://wiki.debian.org/DebianEdu/HowTo/SiteSummary >.
-
-Sitesummary generated Munin configuraiton
------------------------------------------
-
-Sitesummary can be used to generate Munin configuration to collect
-statistics from all sitesummary clients with the Munin packages
-installed.  To enable it, install the munin package and make sure
-/etc/sitesummary/collector.cfg include 'MUNINDIR=/etc/munin' to get
-sitesummary to replace the default munin configuration with the
-generated one.  Running these commands as root normally does the
-trick.
-
-  aptitude install munin munin-node
-  echo MUNINDIR=/etc/munin >> /etc/sitesummary/collector.cfg
-  sitesummary-client
-  /etc/cron.daily/sitesummary
-
-These steps can be preseeded during installation, here is an example
-to enable Munin autoconfig on the sitesummary collector
-
-  sitesummary sitesummary/replace-munin-config boolean true
-
-Sitesummary generated Nagios configuration
-------------------------------------------
-
-Since version 0.0.51, there is code in sitesummary to generate Nagios
-configuration based on the collected information.  To enable this,
-install nagios3 and nagios-plugins-standard, edit /etc/default/nagios3
-to include 'NAGIOSCFG=/etc/nagios3/sitesummary.cfg' and run the
-sitesummary cron job.  Running these commands as root normally does
-the trick.
-
-  aptitude install nagios3 nagios-plugins-standard
-  echo 'NAGIOSCFG="/etc/nagios3/sitesummary.cfg"' >> /etc/default/nagios3
-  sitesummary-client
-  /etc/cron.daily/sitesummary
-  /etc/init.d/nagios3 restart
-
-The current version of the code run all Nagios checks locally, so it
-only work on a single machine.  The plan is to change this to use NRPE
-to work with a network of machines.
-
-On the client side, add
-'include=/etc/nagios/sitesummary-nrpe-commands.cfg' and
-'dont_blame_nrpe=1' in /etc/nagios/nrpe_local.cfg to enable the
-sitesummary checks.  To make sure the nagios server can contact nrpe,
-it might be required to list the server address using the
-allowed_hosts option.  Running these commands as root normally does
-the trick.
-
-  aptitude install nagios-nrpe-server nagios-plugins-standard
-  cat > /etc/nagios/nrpe.d/sitesummary-nrpe.cfg <<EOF
-allowed_hosts=myserver
-dont_blame_nrpe=1
-include=/etc/nagios/sitesummary-nrpe-commands.cfg
-EOF
-  sitesummary-client
-
-These steps can be preseeded during installation, here is an example
-to enable Nagios autoconfig on the sitesummary collector and allow it
-to query Nagios NRPE on the clients.
-
-  sitesummary sitesummary/enable-nagios-config boolean true
-
-  sitesummary-client sitesummary-client/nagios-server string sitesummary
-  sitesummary-client sitesummary-client/enable-nagios-nrpe-config boolean true
-
-Handling hosts behind VPN connections
--------------------------------------
-
-To handle hosts with hostnames missing in DNS or IP adresses not
-available directly from the Nagios and Munin server, a mechanism to
-map entries to new hostnames is provided.
-
-To enable it, create a file /etc/sitesummary/hostmap or a file in
-/etc/sitesummary/hostmap.d/ with content like this
-
-  ether-AA:BB:CC:DD:EE:FF new-name
-
-Empty lines are ignored.  The # character indicate the start of a
-comment.  Entries in /etc/sitesummary/hostmap.d/ override entries in
-/etc/sitesummary/hostmap, and the entries in hostmap.d/ are read in
-alphabetic order, where the last entry take effect.
-
-The ether-* name is the host entry name from
-/var/lib/sitesummary/entries/, and the new-name entry is the hostname
-to use instead of the value in system/hostname.
-
-For this to work, the new-name entry must map to a IP address, either
-in DNS via an entry in /etc/hosts.
-
-Ignoring specific Nagios checks for some hosts
-----------------------------------------------
-
-Some times a machine have a package installed that cause some Nagios
-test to be enabled, but the service provided by the package is
-disabled and the check always fail.  In this case, the Nagios test can
-be disabled using the /etc/sitesummary/nagiosignore file.
-
-For example, to disable the DHCP check for a given host, add the
-hostname and the Nagios check description to
-/etc/sitesummary/nagiosignore like this:
-
-  some.nagios.host.com process - dhcpd3
-
-The nagios description can be found in
-/var/lib/sitesummary/nagios-generated.cfg.
-
-Design draft
-------------
-system to collect key info about all the machines on a site, to help
-the sysadmin keep track of a lot of hosts.
-
-Should be capable of handling both thin clients and "real machines"
-
- - two package, one server sitesummary and one client sitesummary-client
-
- - the client submits information to the server using HTTP put.  It
-   include the list of files it intend to submit, to detect deleted
-   files.
-
- - the HTTP connection is either using SSL, or the file(s) transfered
-   are GPG encrypted.  (figure out key exchange system)
-
- - the client submit a set of files and output from commands with hw
-   information etc (need plugin system to make it submit more files)
-
-    - lspci
-    - lsusb
-    - dmidecode
-    - uname -s / -m / -r / -v / -o
-    - ifconfig -a
-
-    - public ssh host key
-    - /etc/debian_version
-    - dpkg -l
-    - /etc/apt/sources.list
-    - /etc/fstab
-    - /proc/cpuinfo
-    - /proc/meminfo
-
- - the server track changes done to the files (some version control
-   system like rcs?) on each host, and make summary report on the
-   number of individual machines reporting to the server
-
- - how do we identify machines?  MAC address could work (ip -s -f link
-   maddr - which when several interfaces?).  IP addess will not work
-   for thin clients on private networks behind two different servers.
-   the linux hostid command is only using IP address and is useless.
-   Can not generate random key stored on the file system, as this
-   would give all thin clients on a server the same ID.  dmidecode
-   serial number might work for some models, but others have the same
-   serial number on several machines.
-
- - ideas for use of this info
-
-   - machine count, grouped by os/kernel/etc
-
-   - can generate a list of host keys for distribution to the clients
-
-   - can generate dhcp MAC<->IP mapping
-
-   - can generate lts.conf files for the LTSP clients
-
-The server can either be a CGI script, or listen on some port on its
-own.
-
-The client should be a platform independent script with as few
-dependencies as possible, to make it lightweight and easy to install
-on all machines.  (perl, python, /bin/sh?)
-
-Should the client know which files to report, or should the server be
-able to affect it?  Can cfengine, nagios or munin be used for this
-instead?

Added: trunk/src/sitesummary/README.migrated2git
===================================================================
--- trunk/src/sitesummary/README.migrated2git	                        (rev 0)
+++ trunk/src/sitesummary/README.migrated2git	2014-03-31 19:57:48 UTC (rev 83256)
@@ -0,0 +1,2 @@
+The sitesummary tool has been migrated to Git on Alioth:
+http://anonscm.debian.org/gitweb/?p=debian-edu/upstream/sitesummary.git

Deleted: trunk/src/sitesummary/SiteSummary.pm
===================================================================
--- trunk/src/sitesummary/SiteSummary.pm	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/SiteSummary.pm	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,467 +0,0 @@
-#
-# Support library for scripts parsing the sitesummary files.
-#
-
-package SiteSummary;
-require Exporter;
-
-our $VERSION = 0.01;
-our @ISA     = qw(Exporter);
-our @EXPORT  = qw(
-                  for_all_hosts
-                  get_age_group
-                  get_age_groups
-                  get_debian_edu_profile
-                  get_debian_edu_ver
-                  get_debian_ver
-                  get_default_route
-                  get_dns_address
-                  get_filepath_current
-                  get_hardware_info
-                  get_hostclass
-                  get_localhostname
-                  get_hostname
-                  get_linux_kernel_ver
-                  get_macaddresses
-                  get_primary_ip_address
-                  get_primary_macaddress
-                  get_unique_ether_id
-                  get_site
-                  get_sitegroup
-                  is_laptop
-                  is_pkg_installed
-                  );
-
-my $pwd = "/var/lib/sitesummary/entries";  # Path to the entries
-
-# File for debian-edu configuration
-my $debian_edu_config = "/debian-edu/config";
-
-# Provide mechanism to remap host names for hosts private networks
-# available via tunnels.
-
-my $hostmapfile = "/etc/sitesummary/hostmap";
-my $hostmapdir = "/etc/sitesummary/hostmap.d";
-my %hostmap;
-
-sub load_hostmap {
-    my @files = ($hostmapfile);
-    %hostmap = (); # Clear hostmap
-
-    if (opendir(my $dh, $hostmapdir)) {
-        push(@files, grep { /^\./ && -f "$some_dir/$_" } sort readdir($dh));
-        closedir $dh;
-    }
-    for my $file (@files) {
-        if (open(my $fh, '<', $file)) {
-            while (<$fh>) {
-                chomp;
-                s/\#.*$//;
-                next if m/^\s*$/;
-                my ($hostid, $newhostname) = split(/\s+/);
-                $hostmap{$hostid} = $newhostname;
-            }
-            close $fh;
-        }
-    }
-    return;
-}
-
-sub get_filepath_current {
-    my ($hostid, $file) = @_;
-    return "$pwd/$hostid$file";
-}
-
-#
-# Return the value string from a file, ignoring comments
-#
-sub get_file_string {
-    my ($hostid, $filename) = @_;
-    my $path = get_filepath_current($hostid, $filename);
-    my $string;
-    if (open (FILE, $path)) {
-        while(<FILE>) {
-            chomp;
-            s/\#.+$//;
-            next if (/^\s*$/);
-            $string = $_;
-        }
-        close(FILE);
-        return $string;
-    } else {
-        return undef;
-    }
-}
-
-#
-# Return the site string
-#
-sub get_site {
-    my $hostid = shift;
-    return get_file_string($hostid, "/siteinfo/site");
-}
-
-#
-# Return the sitegroup string
-#
-sub get_sitegroup {
-    my $hostid = shift;
-    return get_file_string($hostid, "/siteinfo/sitegroup");
-}
-
-#
-# Return the hostclass string
-#
-sub get_hostclass {
-    my $hostid = shift;
-    return get_file_string($hostid, "/siteinfo/hostclass");
-}
-
-#
-# Return the IP address on the primary network interface
-#
-sub get_primary_ip_address {
-    my $hostid = shift;
-    my $path = get_filepath_current($hostid, "/system/ifconfig-a");
-    # XXX Not properly implemented, just pick the first IP
-    my $ip;
-    if (open (FILE, $path)) {
-        while(<FILE>) {
-            chomp;
-            if (m/inet addr:(\S+)\s+/) {
-                $ip = $1;
-                last;
-            }
-        }
-        close(FILE);
-        return $ip;
-    } else {
-        return undef;
-    }
-}
-
-#
-# Return all MAC addresses
-sub get_macaddresses {
-    my $hostid = shift;
-    my $path = get_filepath_current($hostid, "/system/ifconfig-a");
-    if (open (FILE, $path)) {
-        my @macs;
-        while(<FILE>) {
-            chomp;
-            if (m/Link encap:Ethernet\s+HWaddr (\S+)\s+/) {
-                push(@macs, $1);
-            }
-        }
-        close(FILE);
-        return @macs;
-    } else {
-        return undef;
-    }
-}
-
-# Return current default route used on host
-sub get_default_route {
-    my $hostid = shift;
-    my $path = get_filepath_current($hostid, "/system/route-n");
-    if (open(my $fh, $path)) {
-        while (<$fh>) {
-            if (m/^0.0.0.0\s+(\S+)\s+/) {
-                close($fh);
-                return $1;
-            }
-        }
-        close($fh);
-    }
-    return undef;
-}
-
-#
-# Return the IP address on the primary network interface
-#
-sub get_primary_macaddress {
-    my $hostid = shift;
-    my $path = get_filepath_current($hostid, "/system/ifconfig-a");
-    # XXX Not properly implemented, just pick the first MAC after
-    # sorting alphabetically.
-    if (open (FILE, $path)) {
-        my @macs;
-        while(<FILE>) {
-            chomp;
-            if (m/Link encap:Ethernet\s+HWaddr (\S+)\s+/) {
-                push(@macs, $1);
-            }
-        }
-        close(FILE);
-        return (sort @macs)[0];
-    } else {
-        return undef;
-    }
-}
-
-#
-# Given the output from 'ifconfig -a', return the unique host ID used
-# by sitesummary.
-# Use like this:
-#   get_unique_ether_id(get_file_string($hostid, "/system/ifconfig-a"))
-#
-sub get_unique_ether_id {
-    my $ifconfigoutput = shift;
-    my $eth0mac;
-    my $eth1mac;
-    my $eth2mac;
-    open(IFCONFIG, $ifconfigoutput) || return undef;
-    while (<IFCONFIG>) {
-        chomp;
-        $eth0mac = $1 if (m/^eth0\s+Link encap:Ethernet  HWaddr (\S+)/);
-        $eth1mac = $1 if (m/^eth1\s+Link encap:Ethernet  HWaddr (\S+)/);
-        $eth2mac = $1 if (m/^eth2\s+Link encap:Ethernet  HWaddr (\S+)/);
-    }
-    close (IFCONFIG);
-    #print STDERR "MAC: $eth0mac\n";
-    my $mac = $eth0mac || $eth1mac || $eth2mac || "unknown";
-    return lc("ether-$mac");
-}
-
-#
-# Return the hostname string as seen on the host itself
-#
-sub get_localhostname {
-    my $hostid = shift;
-    return get_file_string($hostid, "/system/hostname");
-}
-
-#
-# Return the hostname string
-#
-sub get_hostname {
-    my $hostid = shift;
-    if (exists $hostmap{$hostid}) {
-        return $hostmap{$hostid};
-    } else {
-        return get_localhostname($hostid);
-    }
-}
-
-#
-# Return an address that can be used to contact the host.  Prefer DNS,
-# but fall back to the IP address if the IP address do not resolve in
-# DNS.
-#
-sub in_dns {
-    my $hostname = shift;
-    my $packed_ip = gethostbyname($hostname);
-    return defined $packed_ip;
-}
-sub get_dns_address {
-    my $hostid = shift;
-    my $hostname = get_hostname($hostid);
-    # Use IP address as hostname if the provided hostname is bogus or
-    # missing in DNS.
-    $hostname = get_primary_ip_address($hostid)
-        if (! in_dns($hostname) || "localhost" eq $hostname);
-    return $hostname;
-}
-
-#
-# Return Linux kernel version for the machines using Linux.
-#
-sub get_linux_kernel_ver {
-    my $hostid = shift;
-    my $path = get_filepath_current($hostid, "/system/uname-smr");
-    my $kver;
-    if (open (FILE, $path)) {
-        while(<FILE>) {
-            chomp;
-            s/\#.+$//;
-            next if (/^\s*$/);
-            my @f = (split(/\s+/, $_));
-            $kver = $f[1] if ("Linux" eq $f[0]);
-        }
-        close(FILE);
-        return $kver;
-    } else {
-        return undef;
-    }
-}
-
-sub get_debian_edu_profile {
-    my $hostid = shift;
-    my $path = get_filepath_current($hostid, $debian_edu_config);
-    if ( ! -e $path ) {
-        return undef;
-    }
-    if (open (FILE, $path)) {
-        while (<FILE>) {
-                chomp;
-                s/\#.+$//;
-                next if not (/PROFILE/);
-                s/^PROFILE=//;
-                return $_;
-        }
-    }
-    close(FILE);
-}
-
-sub get_debian_edu_ver {
-    my $hostid = shift;
-    my $path = get_filepath_current($hostid, $debian_edu_config);
-    if ( ! -e $path ) {
-        return undef;
-    }
-    if (open (FILE, $path)) {
-        while (<FILE>) {
-                chomp;
-                s/\#.+$//;
-                next if not (/VERSION/);
-                s/^VERSION=//;
-                return $_;
-        }
-    }
-}
-
-sub get_debian_ver {
-    my $hostid = shift;
-    my $path = get_filepath_current($hostid, "/debian/debian_version");
-    if (open (my $fh, $path)) {
-        my $version = <$fh>;
-        chomp $version;
-        close($fh);
-        return $version;
-    } else {
-        return undef;
-    }
-}
-
-sub get_hardware_info {
-    my $hostid = shift;
-    my $path = get_filepath_current($hostid, "/system/dmidecode");
-    if (open(FILE, "<", $path)) {
-        my $sysinfo = 0;
-        my ($vendor, $model, $version, $serial);
-        while (<FILE>) {
-            chomp;
-            next unless ($sysinfo || m/^System Information/);
-            $sysinfo = 1;
-            $vendor = $1 if (m/Manufacturer: (.+\S)\s*$/);
-            $model = $1 if (m/Product Name: (.+\S)\s*$/);
-            $version = $1 if (m/Version: (.+\S)\s*$/);
-            $serial = $1 if (m/Serial Number: (.+\S)\s*$/);
-            last if (m/^Handle /);
-        }
-        close(FILE);
-
-        # Avoid returning bogus vendor and model
-        undef $vendor if (defined $vendor &&
-                          (
-                           "Not Specified" eq $vendor
-                           || "System Manufaturer" eq $vendor
-                           || "System manufaturer" eq $vendor
-                           || "System manufacturer" eq $vendor
-                           || "To Be Filled By O.E.M." eq $vendor
-                           || "To Be Filled By O.E.M. by More String" eq $vendor
-                          ));
-        undef $model if (defined $model &&
-                         (
-                          "Not Specified" eq $model
-                          || "System Name" eq $model
-                          || "System Product Name" eq $model
-                          || "To Be Filled By O.E.M." eq $model
-                          || "To Be Filled By O.E.M. To Be Filled By O.E.M." eq $model
-                         ));
-
-        # Append version string to get for example the thinkpad model
-        # name, but ignore bogus entries.
-        $model = "$model $version" if ($version
-                                       && $version ne "Not Specified"
-                                       && $version ne "Not Available"
-                                       && $version ne "System Version"
-                                       && $version ne "To Be Filled By O.E.M."
-                                       && $version ne "None");
-
-        return ($vendor, $model, $serial);
-    } else {
-        return undef;
-    }
-}
-
-sub is_pkg_installed {
-    my ($hostid, $pkgname) = @_;
-    # Check debian/dpkg-l for 'ii *pkgname '
-    my $path = get_filepath_current($hostid, "/debian/dpkg-l");
-    if (open (my $fh, $path)) {
-        while(<$fh>) {
-            if (m/^ii *$pkgname /) {
-                close($fh);
-                return 1
-            }
-        }
-        close($fh);
-    }
-    return undef;
-}
-
-sub is_laptop {
-    my $hostid = shift;
-    my $path = get_filepath_current($hostid, "/system/laptop");
-    return -e $path;
-}
-
-sub for_all_hosts {
-    my $callback = shift;
-
-    if ( ! -d $pwd ) {
-        print STDERR "error: Missing $pwd directory.\n";
-        return undef;
-    }
-    opendir(DIR, $pwd) or die "$!: $pwd\nDied";
-    my $count = 0;
-    foreach (readdir(DIR)) {
-        chomp;
-        next if m/^$/ || m/^.$/ || m/^..$/;
-        my $hostid = $_;
-        if ( -d "$pwd/$hostid" ) {
-            $count ++ if ($callback->($hostid));
-        } else {
-            print STDERR "warning: Junk in filelog: $pwd/$hostid\n";
-        }
-    }
-    closedir(DIR);
-    return $count;
-}
-
-sub get_age_groups {
-    return (
-        0 => '>0 days',
-        3 => '>3 days',
-        7 => '>one week',
-        14 => '>14 days',
-        30 => '>30 days',
-        90 => '>90 days',
-        120 => '>120 days',
-        180 => '>180 days',
-        );
-}
-sub get_age_group {
-    my $hostid = shift;
-    my %agegroups = get_age_groups();
-    my $topdir = get_filepath_current($hostid, "/");
-    my $age = (time() - (stat($topdir))[9]) / (60 * 60 * 24);
-
-    my $thisgroup;
-    for my $group (sort { $a <=> $b; } keys %agegroups) {
-        if ($age > $group) {
-            $thisgroup = $group;
-        }
-    }
-    return $thisgroup;
-}
-
-load_hostmap();
-1;
-
-########################################################################
-# Local Variables:
-# mode: perl
-# End:
-########################################################################

Deleted: trunk/src/sitesummary/TODO
===================================================================
--- trunk/src/sitesummary/TODO	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/TODO	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,3 +0,0 @@
-- include version number in protocol exchange
-- implement encryption of submissions
-- generate more elegant web pages (with support for templates)

Deleted: trunk/src/sitesummary/agesinceseen-summary
===================================================================
--- trunk/src/sitesummary/agesinceseen-summary	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/agesinceseen-summary	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,54 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-use SiteSummary;
-use Getopt::Std;
-
-my %agedist;
-my %opts;
-
-sub usage {
-    my $retval = shift;
-    print <<EOF;
-Usage: $0 [-l]
-   -l   list hosts with the given age
-EOF
-    exit $retval;
-}
-
-getopt("l", \%opts) || usage(1);
-
-for_all_hosts(\&handle_host);
-
-print_summary();
-
-sub handle_host {
-    my $hostid = shift;
-    my $thisgroup = get_age_group($hostid);
-    if (defined $thisgroup) {
-        if (exists $agedist{$thisgroup}) {
-            push @{$agedist{$thisgroup}}, $hostid ;
-        } else {
-            $agedist{$thisgroup} = [$hostid];
-        }
-    }
-}
-
-sub print_summary {
-    printf("  %-20s %5s\n", "age", "count");
-    my %agegroups = get_age_groups();
-    for my $group (sort { $a <=> $b; } keys %agedist) {
-        printf("  %-20s %5d\n", $agegroups{$group}, scalar @{$agedist{$group}});
-        if (exists $opts{l}) {
-            for my $hostid (sort @{$agedist{$group}}) {
-                my $hostname = get_hostname($hostid);
-                my $site = get_site($hostid) || "";
-                my $sitegroup = get_sitegroup($hostid) || "";
-                printf "    %s %s/%s %s\n", $hostname, $site, $sitegroup, $hostid;
-            }
-            print "\n";
-        }
-    }
-}

Deleted: trunk/src/sitesummary/apache.conf
===================================================================
--- trunk/src/sitesummary/apache.conf	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/apache.conf	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,17 +0,0 @@
-#
-# New URL http://<host>/sitesummary/ listing the current statistics, and
-# http://<host>/cgi-bin/sitesummary-collector.cgi to receive submissions.
-#
-
-Alias /sitesummary /var/lib/sitesummary/www
-ScriptAlias /cgi-bin/sitesummary-collector.cgi /usr/lib/cgi-bin/sitesummary-collector.cgi
-
-<Directory /var/lib/sitesummary/www>
-    AllowOverride None
-    Options +SymLinksIfOwnerMatch -MultiViews
-
-    # everyone have access
-    Order deny,allow
-    Deny from none
-    Allow from all
-</Directory>

Deleted: trunk/src/sitesummary/debian_edu-summary
===================================================================
--- trunk/src/sitesummary/debian_edu-summary	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/debian_edu-summary	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,32 +0,0 @@
-#!/usr/bin/perl -w
-
-use strict;
-
-use SiteSummary;
-my %profiles;
-my %versions;
-
-for_all_hosts(\&handle_host);
-
-print_summary();
-
-exit 0;
-
-sub handle_host {
-    my $hostid = shift;
-    my $profile = get_debian_edu_profile($hostid);
-    my $version = get_debian_edu_ver($hostid);
-    $profiles{$profile}++ if (defined $profile);
-    $versions{$version}++ if (defined $version);
-}
-
-sub print_summary {
-    printf("  %-30s %5s\n", "debian-edu-profile", "count");
-    foreach ( keys %profiles ) {
-    	printf(" %30s %5s\n", $_ || "n/a", $profiles{$_});
-    }
-    printf("  %-30s %5s\n", "debian-edu-version", "count");
-    foreach ( keys %versions ) {
-    	printf(" %30s %5s\n", $_ || "n/a", $versions{$_});
-    }
-}

Deleted: trunk/src/sitesummary/expire-entry
===================================================================
--- trunk/src/sitesummary/expire-entry	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/expire-entry	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,17 +0,0 @@
-#!/bin/sh
-#
-# Expire an sitesummary entry, calling the expire hooks first and then
-# remove the entry.
-
-set -e
-
-entrydir="$1"
-
-logger -t sitesummary "Expiring sitesummary entry in $entrydir"
-
-expiredir=/usr/lib/sitesummary/expire.d
-if [ -d "$expiredir" ] ; then
-    run-parts --arg="$entrydir" $expiredir
-fi
-
-rm -rf "$entrydir"

Deleted: trunk/src/sitesummary/hardware-model-summary
===================================================================
--- trunk/src/sitesummary/hardware-model-summary	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/hardware-model-summary	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,78 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-use SiteSummary;
-use Getopt::Std;
-
-my %vendors;
-my %models;
-my %hostmap;
-my %modelmap;
-my %opts;
-
-sub usage {
-    my $retval = shift;
-    print <<EOF;
-Usage: $0 [-l]
-   -l   list hosts with the given vendor/model
-EOF
-    exit $retval;
-}
-
-getopt("l", \%opts) || usage(1);
-
-for_all_hosts(\&handle_host);
-
-print_summary();
-
-sub handle_host {
-    my $hostid = shift;
-    #print "$hostid\n";
-    my ($vendor, $model, undef) = get_hardware_info($hostid);
-    $vendor = "[no-dmi-info]" unless defined $vendor;
-    $vendors{$vendor}++;
-    if ($model) {
-        $models{$vendor}{$model}++;
-        if (exists $modelmap{$vendor} && exists $modelmap{$vendor}{$model}) {
-            push @{$modelmap{$vendor}{$model}}, $hostid ;
-        } else {
-            $modelmap{$vendor}{$model} = [$hostid];
-        }
-    } else {
-        if (exists $hostmap{$vendor}) {
-            push @{$hostmap{$vendor}}, $hostid ;
-        } else {
-            $hostmap{$vendor} = [$hostid];
-        }
-    }
-}
-
-sub print_summary {
-    printf("  %-25s %5s\n", "vendor", "count");
-    for my $vendor (sort keys %vendors) {
-        printf("  %-25s %5d\n", $vendor, $vendors{$vendor});
-        if (exists $opts{l}) {
-            if (exists $hostmap{$vendor}) {
-                for my $hostid (sort @{$hostmap{$vendor}}) {
-                    my $hostname = get_hostname($hostid);
-                    my ($vendor, $model, undef) = get_hardware_info($hostid);
-                    $vendor = "[unknown]" unless defined $vendor;
-                    $model = "" unless defined $model;
-                    printf "    %s %s/%s %s\n", $hostname, $vendor, $model, $hostid;
-                }
-            }
-        }
-        for my $model (sort keys %{$models{$vendor}}) {
-            printf("    %-23s %5d\n", $model, $models{$vendor}{$model});
-            if (exists $opts{l}) {
-                for my $hostid (sort @{$modelmap{$vendor}{$model}}) {
-                    my $hostname = get_hostname($hostid);
-                    my ($vendor, $model, undef) = get_hardware_info($hostid);
-                    printf "      %s %s/%s %s\n", $hostname, $vendor, $model, $hostid;
-                }
-            }
-        }
-    }
-}

Deleted: trunk/src/sitesummary/hostclass-summary
===================================================================
--- trunk/src/sitesummary/hostclass-summary	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/hostclass-summary	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,28 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-use SiteSummary;
-
-my %hostclasses;
-
-for_all_hosts(\&handle_host);
-
-print_summary();
-
-sub handle_host {
-    my $hostid = shift;
-    #print "$hostid\n";
-    for my $hostclass (get_hostclass($hostid)) {
-        $hostclass = "" unless defined $hostclass;
-        $hostclasses{$hostclass}++;
-    }
-}
-
-sub print_summary {
-    printf("  %-20s %5s\n", "hostclass", "count");
-    for my $hostclass (sort keys %hostclasses) {
-        printf("  %-20s %5d\n", $hostclass, $hostclasses{$hostclass});
-    }
-}

Deleted: trunk/src/sitesummary/kernelversion-summary
===================================================================
--- trunk/src/sitesummary/kernelversion-summary	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/kernelversion-summary	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,53 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-use SiteSummary;
-use Getopt::Std;
-
-my %kernelvers;
-my %opts;
-
-sub usage {
-    my $retval = shift;
-    print <<EOF;
-Usage: $0 [-l]
-   -l   list hosts using the given kernel versions
-EOF
-    exit $retval;
-}
-
-getopt("l", \%opts) || usage(1);
-
-for_all_hosts(\&handle_host);
-
-print_summary();
-
-sub handle_host {
-    my $hostid = shift;
-    #print "$hostid\n";
-    for my $kver (get_linux_kernel_ver($hostid)) {
-        $kver = "" unless defined $kver;
-        if (exists $kernelvers{$kver}) {
-            push @{$kernelvers{$kver}}, $hostid ;
-        } else {
-            $kernelvers{$kver} = [$hostid];
-        }
-    }
-}
-
-sub print_summary {
-    printf("  %-20s %5s\n", "kernel", "count");
-    for my $kver (sort keys %kernelvers) {
-        printf("  %-20s %5d\n", $kver,  scalar @{$kernelvers{$kver}});
-        if (exists $opts{l}) {
-            for my $hostid (sort @{$kernelvers{$kver}}) {
-                my $hostname = get_hostname($hostid);
-                my $site = get_site($hostid) || "";
-                my $sitegroup = get_sitegroup($hostid) || "";
-                printf "    %s %s/%s %s\n", $hostname, $site, $sitegroup, $hostid;
-            }
-        }
-    }
-}

Deleted: trunk/src/sitesummary/munin-plugin
===================================================================
--- trunk/src/sitesummary/munin-plugin	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/munin-plugin	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,69 +0,0 @@
-#!/usr/bin/perl
-#
-# Graph site counts from SiteSummary
-#
-# Magick markers (optional):
-#%# family=auto
-#%# capabilities=autoconf
-
-use strict;
-use warnings;
-
-use SiteSummary;
-
-my %sitelabels;
-
-if (!$ARGV[0]) {
-    for_all_hosts(\&handle_host);
-    # List values in the opposit order of the configuration order, to
-    # try to get the same order on the graphs and the values.
-    for my $sitelabel (sort { $b cmp $a } keys %sitelabels) {
-        my $key = label2key($sitelabel);
-        print "$key.value ", $sitelabels{$sitelabel}, "\n";
-    }
-} elsif ($ARGV[0] eq "config") {
-    for_all_hosts(\&handle_host);
-    print "graph_title SiteSummary History\n";
-    print "graph_order " . join(" ", sort keys %sitelabels), "\n";
-    print "graph_vlabel count\n";
-    print "graph_scale yes\n";
-    print "graph_height 400\n";
-    print "graph_category SiteSummary\n";
-
-    my $first = 1;
-    for my $sitelabel (sort keys %sitelabels) {
-        my $key = label2key($sitelabel);
-        print "$key.label $sitelabel\n";
-        if ($first) {
-            print "$key.draw AREA\n";
-        } else {
-            print "$key.draw STACK\n";
-        }
-        $first = 0;
-    }
-} elsif ($ARGV[0] eq "autoconf") {
-    # This module is only available when the sitesummary collector is
-    # installed too, thus we always answer yes.
-    print "yes\n";
-    exit 0;
-}
-
-sub label2key {
-    my $label = shift;
-    # Clean using method described on
-    # http://munin-monitoring.org/wiki/notes_on_datasource_names
-    $label =~ s/^[^A-Za-z_]/_/;
-    $label =~ s/[^A-Za-z0-9_]/_/g;
-
-    return "$label";
-}
-
-sub handle_host {
-    my $hostid = shift;
-    for my $site (get_site($hostid)) {
-        $site = "SiteMissing" unless defined $site;
-        $sitelabels{$site}++;
-    }
-}
-
-exit 0;

Deleted: trunk/src/sitesummary/munin-plugin-agesinceseen
===================================================================
--- trunk/src/sitesummary/munin-plugin-agesinceseen	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/munin-plugin-agesinceseen	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,75 +0,0 @@
-#!/usr/bin/perl
-#
-# Graph agesinceseen range counts from SiteSummary
-#
-# Based on bourne shell module written by Snorre Jensen.  Rewritten to
-# perl to be able to use the SiteSummary perl module by Petter
-# Reinholdtsen.
-# License: GNU General Public License
-#
-# Magick markers (optional):
-#%# family=auto
-#%# capabilities=autoconf
-
-use strict;
-use warnings;
-
-use SiteSummary;
-
-my %counts;
-
-my %agegroups = get_age_groups();
-my @order = map { $agegroups{$_}; } sort { $a <=> $b } keys %agegroups;
-
-sub label2key {
-    my $label = shift;
-    # Clean using method described on
-    # http://munin-monitoring.org/wiki/notes_on_datasource_names
-    $label =~ s/^[^A-Za-z_]/_/;
-    $label =~ s/[^A-Za-z0-9_]/_/g;
-
-    return "$label";
-}
-
-if (!$ARGV[0]) {
-    for_all_hosts(\&handle_host);
-
-    for my $label (@order) {
-        my $key = label2key($label);
-        print "$key.value ", defined $counts{$label} ? $counts{$label} : 0 , "\n";
-    }
-} elsif ($ARGV[0] eq "config") {
-    print "graph_title SiteSummary AgeSinceSeen\n";
-    print "graph_order ", join(" ", map { label2key($_); } @order), "\n";
-    print "graph_vlabel count\n";
-    print "graph_scale yes\n";
-    print "graph_args --base 1000 -l 0\n";
-    print "graph_height 400\n";
-    print "graph_category SiteSummary\n";
-
-    my $first = 1;
-    for my $label (@order) {
-        my $key = label2key($label);
-        if ($first) {
-            print "$key.draw AREA\n";
-            $first = 0;
-        } else {
-            print "$key.draw STACK\n";
-        }
-        print "$key.label $label\n";
-    }
-} elsif ($ARGV[0] eq "autoconf") {
-    # This module is only available when the sitesummary collector is
-    # installed too, thus we always answer yes.
-    print "yes\n";
-    exit 0;
-}
-
-sub handle_host {
-    my $hostid = shift;
-    my %agegroups = get_age_groups();
-    my $agegroup = get_age_group($hostid);
-    $counts{$agegroups{$agegroup}}++;
-}
-
-exit 0;

Deleted: trunk/src/sitesummary/nagios-nrpe-commands.cfg
===================================================================
--- trunk/src/sitesummary/nagios-nrpe-commands.cfg	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/nagios-nrpe-commands.cfg	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,24 +0,0 @@
-#
-# NRPE commands used by sitesummary generated Nagios checks.
-#
-command[check_apt]=/usr/lib/nagios/plugins/check_apt
-command[check_dhcp]=/usr/lib/nagios/plugins/check_dhcp
-command[check_disk]=/usr/lib/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
-command[check_etc_hosts]=/usr/lib/sitesummary/nagios-plugins/check_etc_hosts
-command[check_etc_resolv]=/usr/lib/sitesummary/nagios-plugins/check_etc_resolv
-command[check_ftp]=/usr/lib/nagios/plugins/check_ftp -H localhost
-command[check_kernel_status]=/usr/lib/sitesummary/nagios-plugins/check_kernel_status
-command[check_linux_raid]=/usr/lib/nagios/plugins/check_linux_raid
-command[check_nfs]=/usr/lib/nagios/plugins/check_rpc -H localhost -C nfs -c2,3
-command[check_ntp]=/usr/lib/nagios/plugins/check_ntp -H localhost
-command[check_procs]=/usr/lib/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$
-command[check_procs_cron]=/usr/lib/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$ -C cron
-command[check_procs_dhcpd]=/usr/lib/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$ -C dhcpd
-command[check_procs_dhcpd3]=/usr/lib/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$ -C dhcpd3
-command[check_procs_zombie]=/usr/lib/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$ -s Z
-command[check_shutdown]=/usr/lib/sitesummary/nagios-plugins/check_shutdown
-command[check_smtp]=/usr/lib/nagios/plugins/check_smtp -H localhost
-command[check_swap]=/usr/lib/nagios/plugins/check_swap -w $ARG1$ -c $ARG2$
-command[check_dns]=/usr/lib/nagios/plugins/check_dns -H $ARG1$
-command[check_squid]=/usr/lib/nagios/plugins/check_http -H localhost -p $ARG1$  -u $ARG2$  -e 'HTTP/1.0 200 OK'
-command[check_imaps]=/usr/lib/nagios/plugins/check_imap -p 993 -H localhost -S

Deleted: trunk/src/sitesummary/nagios-template-contacts.cfg
===================================================================
--- trunk/src/sitesummary/nagios-template-contacts.cfg	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/nagios-template-contacts.cfg	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,17 +0,0 @@
-define contact {
-    contact_name                   root
-    alias                          Root
-    host_notification_period       24x7
-    service_notification_period    24x7
-    host_notification_options      d,r
-    service_notification_options   w,u,c,r
-    host_notification_commands     notify-by-nothing
-    service_notification_commands  notify-by-nothing
-    email                          root at postoffice
-}
-
-define contactgroup{
-    contactgroup_name              admins
-    alias                          Nagios Administrators
-    members                        root
-}

Deleted: trunk/src/sitesummary/nagios-templates.cfg
===================================================================
--- trunk/src/sitesummary/nagios-templates.cfg	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/nagios-templates.cfg	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,265 +0,0 @@
-define timeperiod {
-    timeperiod_name 24x7
-    alias           24 Hours A Day, 7 Days A Week
-    sunday          00:00-24:00
-    monday          00:00-24:00
-    tuesday         00:00-24:00
-    wednesday       00:00-24:00
-    thursday        00:00-24:00
-    friday          00:00-24:00
-    saturday        00:00-24:00
-}
-
-define timeperiod {
-    timeperiod_name workhours
-    alias           Standard Work Hours
-    monday          09:00-17:00
-    tuesday         09:00-17:00
-    wednesday       09:00-17:00
-    thursday        09:00-17:00
-    friday          09:00-17:00
-}
-
-define timeperiod {
-    timeperiod_name nonworkhours
-    alias           Non-Work Hours
-    sunday          00:00-24:00
-    monday          00:00-09:00,17:00-24:00
-    tuesday         00:00-09:00,17:00-24:00
-    wednesday       00:00-09:00,17:00-24:00
-    thursday        00:00-09:00,17:00-24:00
-    friday          00:00-09:00,17:00-24:00
-    saturday        00:00-24:00
-}
-
-define timeperiod {
-    timeperiod_name never
-    alias           Never
-}
-
-
-define command {
-    command_name    notify-by-nothing
-    command_line    /bin/true
-}
-
-define command {
-    command_name    host-notify-by-email
-    command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTALIAS$\nState: $HOSTSTATE$ for $HOSTDURATION$\nAddress: $HOSTADDRESS$\nInfo:\n\n$HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n\nACK by: $HOSTACKAUTHOR$\nComment: $HOSTACKCOMMENT$\n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ alert $NOTIFICATIONNUMBER$ - $HOSTALIAS$ host is $HOSTSTATE$ **" $CONTACTEMAIL$
-}
-
-define command{
-    command_name    notify-by-email
-    command_line    /usr/bin/printf "%b" "***** Nagios  *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nState: $SERVICESTATE$ for $SERVICEDURATION$\nAddress: $HOSTADDRESS$\n\nInfo:\n\n$SERVICEOUTPUT$\n\nDate/Time: $LONGDATETIME$\n\nACK by: $SERVICEACKAUTHOR$\nComment: $SERVICEACKCOMMENT$\n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ alert $NOTIFICATIONNUMBER$ - $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
-}
-
-define host {
-    name server-host
-    check_command check-host-alive
-    max_check_attempts 10
-    event_handler_enabled 1
-    flap_detection_enabled 1
-    process_perf_data 1
-    retain_status_information 1
-    retain_nonstatus_information 1
-    notification_interval 0
-    notification_period 24x7
-    notifications_enabled 1
-    failure_prediction_enabled 1
-    register 0
-    notification_options d,u,r
-    contact_groups admins
-}
-
-define host {
-    use server-host
-    name switch-host
-    check_command check-host-none
-}
-
-define service {
-    name server-service
-    is_volatile 0
-    max_check_attempts 4
-    normal_check_interval 5
-    retry_check_interval 1
-    active_checks_enabled 1
-    passive_checks_enabled 1
-    check_period 24x7
-    parallelize_check 1
-    obsess_over_service 1
-    check_freshness 0
-    event_handler_enabled 1
-    flap_detection_enabled 1
-    process_perf_data 1
-    retain_status_information 1
-    retain_nonstatus_information 1
-    notification_interval 0
-    notification_period 24x7
-    notifications_enabled 1
-    failure_prediction_enabled 1
-    register 0
-    notification_options w,u,c,r
-    contact_groups admins
-}
-
-define command{
-    command_name	check_disk
-    command_line	/usr/lib/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
-}
-
-define command {
-    command_name	check_etc_hosts
-    command_line	/usr/bin/perl /usr/lib/sitesummary/nagios-plugins/check_etc_hosts
-}
-
-define command {
-    command_name	check_etc_resolv
-    command_line	/usr/bin/perl /usr/lib/sitesummary/nagios-plugins/check_etc_resolv
-}
-
-define command{
-    command_name	check_http
-    command_line	/usr/lib/nagios/plugins/check_http -H $HOSTADDRESS$ -I $HOSTADDRESS$
-}
-
-define command{
-    command_name	check_load
-    command_line	/usr/lib/nagios/plugins/check_load --warning=$ARG2$ --critical=$ARG2$
-}
-
-define command{
-    command_name	check_ping
-    command_line	/usr/lib/nagios/plugins/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$
-}
-
-define command {
-    command_name	check_shutdown
-    command_line	/usr/lib/sitesummary/nagios-plugins/check_shutdown
-}
-
-define command{
-    command_name	check_ssh
-    command_line	/usr/lib/nagios/plugins/check_ssh $HOSTADDRESS$
-}
-
-define command{
-    command_name	check_dhcp
-    command_line	/usr/lib/nagios/plugins/check_dhcp
-}
-
-define command{
-    command_name	check_ftp
-    command_line	/usr/lib/nagios/plugins/check_ftp -H localhost
-}
-
-define command{
-    command_name	check_ntp
-    command_line	/usr/lib/nagios/plugins/check_ntp -H $HOSTADDRESS$
-}
-
-define command{
-    command_name	check_tcp
-    command_line	/usr/lib/nagios/plugins/check_tcp -H $HOSTADDRESS$ -p $ARG1$
-}
-
-define command{
-    command_name	check_dns
-    command_line	/usr/lib/nagios/plugins/check_dns -s $HOSTADDRESS$ -H $ARG1$
-}
-
-define command{
-    command_name	check_imaps
-    command_line	/usr/lib/nagios/plugins/check_imap -p 993 -H $HOSTADDRESS$ -S
-}
-
-define command{
-    command_name	check_nfs
-    command_line	/usr/lib/nagios/plugins/check_rpc -H $HOSTADDRESS$ -C nfs -c2,3
-}
-
-define command{
-    command_name	check_smtp
-    command_line	/usr/lib/nagios/plugins/check_smtp -H localhost
-}
-
-define command{
-    command_name	check_squid
-    command_line	/usr/lib/nagios/plugins/check_http -H $HOSTADDRESS$ -p $ARG1$  -u $ARG2$  -e 'HTTP/1.0 200 OK'
-}
-
-define command{
-    command_name	check_swap
-    command_line	/usr/lib/nagios/plugins/check_swap -w $ARG1 -c $ARG2$
-}
-
-define command{
-    command_name	check_procs
-    command_line	/usr/lib/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$
-}
-
-define command{
-    command_name	check_procs_zombie
-    command_line	/usr/lib/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$ -s Z
-}
-
-define command{
-    command_name	check_procs_cron
-    command_line	/usr/lib/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$ -C cron
-}
-
-define command{
-    command_name	check_procs_dhcpd3
-    command_line	/usr/lib/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$ -C dhcpd3
-}
-
-define command{
-    command_name	check_procs_dhcpd
-    command_line	/usr/lib/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$ -C dhcpd
-}
-
-define command{
-    command_name	check_linux_raid
-    command_line	/usr/lib/nagios/plugins/check_linux_raid
-}
-
-define command{
-    command_name	check_users
-    command_line	/usr/lib/nagios/plugins/check_users -w $ARG1$ -c $ARG2$
-}
-
-define command{
-    command_name	check_apt
-    command_line	/usr/lib/nagios/plugins/check_apt
-}
-
-define command{
-    command_name	check_ldap_root
-    command_line	/usr/lib/sitesummary/nagios-plugins/check_ldap_root '$HOSTADDRESS$'
-}
-
-
-define command{
-    command_name       check_kernel_status
-    command_line       /usr/bin/perl /usr/lib/sitesummary/nagios-plugins/check_kernel_status
-}
-
-define command{
-    command_name	check_cups_queue
-    command_line	/usr/lib/sitesummary/nagios-plugins/check_cups_queue -H $HOSTADDRESS$ -T b -w 30 -c 70 -a 1
-}
-
-define command{
-    command_name	check-host-alive
-    command_line	/usr/lib/nagios/plugins/check_ping -H $HOSTADDRESS$ -w 5000,100% -c 5000,100% -p 1
-}
-
-define command{
-    command_name	check-host-none
-    command_line	/bin/echo Switch hosts are not checked
-}
-
-define command{
-    command_name        check_nrpe
-    command_line        /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
-}

Deleted: trunk/src/sitesummary/nagios.cfg
===================================================================
--- trunk/src/sitesummary/nagios.cfg	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/nagios.cfg	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,1301 +0,0 @@
-# Nagios configuration file for use with the sitesummary generated
-# host and service list.
-
-# LOG FILE
-# This is the main log file where service and host events are logged
-# for historical purposes.  This should be the first option specified 
-# in the config file!!!
-
-log_file=/var/log/nagios3/nagios.log
-
-cfg_file=/etc/nagios3/sitesummary-templates.cfg
-cfg_file=/etc/nagios3/sitesummary-template-contacts.cfg
-cfg_file=/var/lib/sitesummary/nagios-generated.cfg
-
-
-# Commands definitions
-#cfg_file=/etc/nagios3/commands.cfg
-
-# Debian also defaults to using the check commands defined by the debian
-# nagios-plugins package
-#cfg_dir=/etc/nagios-plugins/config
-
-# Debian uses by default a configuration directory where nagios3-common,
-# other packages and the local admin can dump or link configuration
-# files into.
-#cfg_dir=/etc/nagios3/conf.d
-
-# OBJECT CONFIGURATION FILE(S)
-# These are the object configuration files in which you define hosts,
-# host groups, contacts, contact groups, services, etc.
-# You can split your object definitions across several config files
-# if you wish (as shown below), or keep them all in a single config file.
-
-# You can specify individual object config files as shown below:
-#cfg_file=/etc/nagios3/objects/commands.cfg
-#cfg_file=/etc/nagios3/objects/contacts.cfg
-#cfg_file=/etc/nagios3/objects/timeperiods.cfg
-#cfg_file=/etc/nagios3/objects/templates.cfg
-
-# Definitions for monitoring a Windows machine
-#cfg_file=/etc/nagios3/objects/windows.cfg
-
-# Definitions for monitoring a router/switch
-#cfg_file=/etc/nagios3/objects/switch.cfg
-
-# Definitions for monitoring a network printer
-#cfg_file=/etc/nagios3/objects/printer.cfg
-
-
-# You can also tell Nagios to process all config files (with a .cfg
-# extension) in a particular directory by using the cfg_dir
-# directive as shown below:
-
-#cfg_dir=/etc/nagios3/servers
-#cfg_dir=/etc/nagios3/printers
-#cfg_dir=/etc/nagios3/switches
-#cfg_dir=/etc/nagios3/routers
-
-
-
-
-# OBJECT CACHE FILE
-# This option determines where object definitions are cached when
-# Nagios starts/restarts.  The CGIs read object definitions from 
-# this cache file (rather than looking at the object config files
-# directly) in order to prevent inconsistencies that can occur
-# when the config files are modified after Nagios starts.
-
-object_cache_file=/var/cache/nagios3/objects.cache
-
-
-
-# PRE-CACHED OBJECT FILE
-# This options determines the location of the precached object file.
-# If you run Nagios with the -p command line option, it will preprocess
-# your object configuration file(s) and write the cached config to this
-# file.  You can then start Nagios with the -u option to have it read
-# object definitions from this precached file, rather than the standard
-# object configuration files (see the cfg_file and cfg_dir options above).
-# Using a precached object file can speed up the time needed to (re)start 
-# the Nagios process if you've got a large and/or complex configuration.
-# Read the documentation section on optimizing Nagios to find our more
-# about how this feature works.
-
-precached_object_file=/var/lib/nagios3/objects.precache
-
-
-
-# RESOURCE FILE
-# This is an optional resource file that contains $USERx$ macro
-# definitions. Multiple resource files can be specified by using
-# multiple resource_file definitions.  The CGIs will not attempt to
-# read the contents of resource files, so information that is
-# considered to be sensitive (usernames, passwords, etc) can be
-# defined as macros in this file and restrictive permissions (600)
-# can be placed on this file.
-
-resource_file=/etc/nagios3/resource.cfg
-
-
-
-# STATUS FILE
-# This is where the current status of all monitored services and
-# hosts is stored.  Its contents are read and processed by the CGIs.
-# The contents of the status file are deleted every time Nagios
-#  restarts.
-
-status_file=/var/cache/nagios3/status.dat
-
-
-
-# STATUS FILE UPDATE INTERVAL
-# This option determines the frequency (in seconds) that
-# Nagios will periodically dump program, host, and 
-# service status data.
-
-status_update_interval=10
-
-
-
-# NAGIOS USER
-# This determines the effective user that Nagios should run as.  
-# You can either supply a username or a UID.
-
-nagios_user=nagios
-
-
-
-# NAGIOS GROUP
-# This determines the effective group that Nagios should run as.  
-# You can either supply a group name or a GID.
-
-nagios_group=nagios
-
-
-
-# EXTERNAL COMMAND OPTION
-# This option allows you to specify whether or not Nagios should check
-# for external commands (in the command file defined below).  By default
-# Nagios will *not* check for external commands, just to be on the
-# cautious side.  If you want to be able to use the CGI command interface
-# you will have to enable this.
-# Values: 0 = disable commands, 1 = enable commands
-
-check_external_commands=0
-
-
-
-# EXTERNAL COMMAND CHECK INTERVAL
-# This is the interval at which Nagios should check for external commands.
-# This value works of the interval_length you specify later.  If you leave
-# that at its default value of 60 (seconds), a value of 1 here will cause
-# Nagios to check for external commands every minute.  If you specify a
-# number followed by an "s" (i.e. 15s), this will be interpreted to mean
-# actual seconds rather than a multiple of the interval_length variable.
-# Note: In addition to reading the external command file at regularly 
-# scheduled intervals, Nagios will also check for external commands after
-# event handlers are executed.
-# NOTE: Setting this value to -1 causes Nagios to check the external
-# command file as often as possible.
-
-#command_check_interval=15s
-command_check_interval=-1
-
-
-
-# EXTERNAL COMMAND FILE
-# This is the file that Nagios checks for external command requests.
-# It is also where the command CGI will write commands that are submitted
-# by users, so it must be writeable by the user that the web server
-# is running as (usually 'nobody').  Permissions should be set at the 
-# directory level instead of on the file, as the file is deleted every
-# time its contents are processed.
-# Debian Users: In case you didn't read README.Debian yet, _NOW_ is the
-# time to do it.
-
-command_file=/var/lib/nagios3/rw/nagios.cmd
-
-
-
-# EXTERNAL COMMAND BUFFER SLOTS
-# This settings is used to tweak the number of items or "slots" that
-# the Nagios daemon should allocate to the buffer that holds incoming 
-# external commands before they are processed.  As external commands 
-# are processed by the daemon, they are removed from the buffer.  
-
-external_command_buffer_slots=4096
-
-
-
-# LOCK FILE
-# This is the lockfile that Nagios will use to store its PID number
-# in when it is running in daemon mode.
-
-lock_file=/var/run/nagios3/nagios3.pid
-
-
-
-# TEMP FILE
-# This is a temporary file that is used as scratch space when Nagios
-# updates the status log, cleans the comment file, etc.  This file
-# is created, used, and deleted throughout the time that Nagios is
-# running.
-
-temp_file=/var/cache/nagios3/nagios.tmp
-
-
-
-# TEMP PATH
-# This is path where Nagios can create temp files for service and
-# host check results, etc.
-
-temp_path=/tmp
-
-
-
-# EVENT BROKER OPTIONS
-# Controls what (if any) data gets sent to the event broker.
-# Values:  0      = Broker nothing
-#         -1      = Broker everything
-#         <other> = See documentation
-
-event_broker_options=-1
-
-
-
-# EVENT BROKER MODULE(S)
-# This directive is used to specify an event broker module that should
-# by loaded by Nagios at startup.  Use multiple directives if you want
-# to load more than one module.  Arguments that should be passed to
-# the module at startup are seperated from the module path by a space.
-#
-#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-# WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING
-#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-#
-# Do NOT overwrite modules while they are being used by Nagios or Nagios
-# will crash in a fiery display of SEGFAULT glory.  This is a bug/limitation
-# either in dlopen(), the kernel, and/or the filesystem.  And maybe Nagios...
-#
-# The correct/safe way of updating a module is by using one of these methods:
-#    1. Shutdown Nagios, replace the module file, restart Nagios
-#    2. Delete the original module file, move the new module file into place, restart Nagios
-#
-# Example:
-#
-#   broker_module=<modulepath> [moduleargs]
-
-#broker_module=/somewhere/module1.o
-#broker_module=/somewhere/module2.o arg1 arg2=3 debug=0
-
-
-
-# LOG ROTATION METHOD
-# This is the log rotation method that Nagios should use to rotate
-# the main log file. Values are as follows..
-#	n	= None - don't rotate the log
-#	h	= Hourly rotation (top of the hour)
-#	d	= Daily rotation (midnight every day)
-#	w	= Weekly rotation (midnight on Saturday evening)
-#	m	= Monthly rotation (midnight last day of month)
-
-log_rotation_method=d
-
-
-
-# LOG ARCHIVE PATH
-# This is the directory where archived (rotated) log files should be 
-# placed (assuming you've chosen to do log rotation).
-
-log_archive_path=/var/log/nagios3/archives
-
-
-
-# LOGGING OPTIONS
-# If you want messages logged to the syslog facility, as well as the
-# Nagios log file set this option to 1.  If not, set it to 0.
-
-use_syslog=1
-
-
-
-# NOTIFICATION LOGGING OPTION
-# If you don't want notifications to be logged, set this value to 0.
-# If notifications should be logged, set the value to 1.
-
-log_notifications=1
-
-
-
-# SERVICE RETRY LOGGING OPTION
-# If you don't want service check retries to be logged, set this value
-# to 0.  If retries should be logged, set the value to 1.
-
-log_service_retries=1
-
-
-
-# HOST RETRY LOGGING OPTION
-# If you don't want host check retries to be logged, set this value to
-# 0.  If retries should be logged, set the value to 1.
-
-log_host_retries=1
-
-
-
-# EVENT HANDLER LOGGING OPTION
-# If you don't want host and service event handlers to be logged, set
-# this value to 0.  If event handlers should be logged, set the value
-# to 1.
-
-log_event_handlers=1
-
-
-
-# INITIAL STATES LOGGING OPTION
-# If you want Nagios to log all initial host and service states to
-# the main log file (the first time the service or host is checked)
-# you can enable this option by setting this value to 1.  If you
-# are not using an external application that does long term state
-# statistics reporting, you do not need to enable this option.  In
-# this case, set the value to 0.
-
-log_initial_states=0
-
-
-
-# EXTERNAL COMMANDS LOGGING OPTION
-# If you don't want Nagios to log external commands, set this value
-# to 0.  If external commands should be logged, set this value to 1.
-# Note: This option does not include logging of passive service
-# checks - see the option below for controlling whether or not
-# passive checks are logged.
-
-log_external_commands=1
-
-
-
-# PASSIVE CHECKS LOGGING OPTION
-# If you don't want Nagios to log passive host and service checks, set
-# this value to 0.  If passive checks should be logged, set
-# this value to 1.
-
-log_passive_checks=1
-
-
-
-# GLOBAL HOST AND SERVICE EVENT HANDLERS
-# These options allow you to specify a host and service event handler
-# command that is to be run for every host or service state change.
-# The global event handler is executed immediately prior to the event
-# handler that you have optionally specified in each host or
-# service definition. The command argument is the short name of a
-# command definition that you define in your host configuration file.
-# Read the HTML docs for more information.
-
-#global_host_event_handler=somecommand
-#global_service_event_handler=somecommand
-
-
-
-# SERVICE INTER-CHECK DELAY METHOD
-# This is the method that Nagios should use when initially
-# "spreading out" service checks when it starts monitoring.  The
-# default is to use smart delay calculation, which will try to
-# space all service checks out evenly to minimize CPU load.
-# Using the dumb setting will cause all checks to be scheduled
-# at the same time (with no delay between them)!  This is not a
-# good thing for production, but is useful when testing the
-# parallelization functionality.
-#	n	= None - don't use any delay between checks
-#	d	= Use a "dumb" delay of 1 second between checks
-#	s	= Use "smart" inter-check delay calculation
-#       x.xx    = Use an inter-check delay of x.xx seconds
-
-service_inter_check_delay_method=s
-
-
-
-# MAXIMUM SERVICE CHECK SPREAD
-# This variable determines the timeframe (in minutes) from the
-# program start time that an initial check of all services should
-# be completed.  Default is 30 minutes.
-
-max_service_check_spread=30
-
-
-
-# SERVICE CHECK INTERLEAVE FACTOR
-# This variable determines how service checks are interleaved.
-# Interleaving the service checks allows for a more even
-# distribution of service checks and reduced load on remote
-# hosts.  Setting this value to 1 is equivalent to how versions
-# of Nagios previous to 0.0.5 did service checks.  Set this
-# value to s (smart) for automatic calculation of the interleave
-# factor unless you have a specific reason to change it.
-#       s       = Use "smart" interleave factor calculation
-#       x       = Use an interleave factor of x, where x is a
-#                 number greater than or equal to 1.
-
-service_interleave_factor=s
-
-
-
-# HOST INTER-CHECK DELAY METHOD
-# This is the method that Nagios should use when initially
-# "spreading out" host checks when it starts monitoring.  The
-# default is to use smart delay calculation, which will try to
-# space all host checks out evenly to minimize CPU load.
-# Using the dumb setting will cause all checks to be scheduled
-# at the same time (with no delay between them)!
-#	n	= None - don't use any delay between checks
-#	d	= Use a "dumb" delay of 1 second between checks
-#	s	= Use "smart" inter-check delay calculation
-#       x.xx    = Use an inter-check delay of x.xx seconds
-
-host_inter_check_delay_method=s
-
-
-
-# MAXIMUM HOST CHECK SPREAD
-# This variable determines the timeframe (in minutes) from the
-# program start time that an initial check of all hosts should
-# be completed.  Default is 30 minutes.
-
-max_host_check_spread=30
-
-
-
-# MAXIMUM CONCURRENT SERVICE CHECKS
-# This option allows you to specify the maximum number of 
-# service checks that can be run in parallel at any given time.
-# Specifying a value of 1 for this variable essentially prevents
-# any service checks from being parallelized.  A value of 0
-# will not restrict the number of concurrent checks that are
-# being executed.
-
-max_concurrent_checks=0
-
-
-
-# HOST AND SERVICE CHECK REAPER FREQUENCY
-# This is the frequency (in seconds!) that Nagios will process
-# the results of host and service checks.
-
-check_result_reaper_frequency=10
-
-
-
-
-# MAX CHECK RESULT REAPER TIME
-# This is the max amount of time (in seconds) that  a single
-# check result reaper event will be allowed to run before 
-# returning control back to Nagios so it can perform other
-# duties.
-
-max_check_result_reaper_time=30
-
-
-
-
-# CHECK RESULT PATH
-# This is directory where Nagios stores the results of host and
-# service checks that have not yet been processed.
-#
-# Note: Make sure that only one instance of Nagios has access
-# to this directory!  
-
-check_result_path=/var/lib/nagios3/spool/checkresults
-
-
-
-
-# MAX CHECK RESULT FILE AGE
-# This option determines the maximum age (in seconds) which check
-# result files are considered to be valid.  Files older than this 
-# threshold will be mercilessly deleted without further processing.
-
-max_check_result_file_age=3600
-
-
-
-
-# CACHED HOST CHECK HORIZON
-# This option determines the maximum amount of time (in seconds)
-# that the state of a previous host check is considered current.
-# Cached host states (from host checks that were performed more
-# recently that the timeframe specified by this value) can immensely
-# improve performance in regards to the host check logic.
-# Too high of a value for this option may result in inaccurate host
-# states being used by Nagios, while a lower value may result in a
-# performance hit for host checks.  Use a value of 0 to disable host
-# check caching.
-
-cached_host_check_horizon=15
-
-
-
-# CACHED SERVICE CHECK HORIZON
-# This option determines the maximum amount of time (in seconds)
-# that the state of a previous service check is considered current.
-# Cached service states (from service checks that were performed more
-# recently that the timeframe specified by this value) can immensely
-# improve performance in regards to predictive dependency checks.
-# Use a value of 0 to disable service check caching.
-
-cached_service_check_horizon=15
-
-
-
-# ENABLE PREDICTIVE HOST DEPENDENCY CHECKS
-# This option determines whether or not Nagios will attempt to execute
-# checks of hosts when it predicts that future dependency logic test
-# may be needed.  These predictive checks can help ensure that your
-# host dependency logic works well.
-# Values:
-#  0 = Disable predictive checks
-#  1 = Enable predictive checks (default)
-
-enable_predictive_host_dependency_checks=1
-
-
-
-# ENABLE PREDICTIVE SERVICE DEPENDENCY CHECKS
-# This option determines whether or not Nagios will attempt to execute
-# checks of service when it predicts that future dependency logic test
-# may be needed.  These predictive checks can help ensure that your
-# service dependency logic works well.
-# Values:
-#  0 = Disable predictive checks
-#  1 = Enable predictive checks (default)
-
-enable_predictive_service_dependency_checks=1
-
-
-
-# SOFT STATE DEPENDENCIES
-# This option determines whether or not Nagios will use soft state 
-# information when checking host and service dependencies. Normally 
-# Nagios will only use the latest hard host or service state when 
-# checking dependencies. If you want it to use the latest state (regardless
-# of whether its a soft or hard state type), enable this option. 
-# Values:
-#  0 = Don't use soft state dependencies (default) 
-#  1 = Use soft state dependencies 
-
-soft_state_dependencies=0
-
-
-
-# TIME CHANGE ADJUSTMENT THRESHOLDS
-# These options determine when Nagios will react to detected changes
-# in system time (either forward or backwards).
-
-#time_change_threshold=900
-
-
-
-# AUTO-RESCHEDULING OPTION
-# This option determines whether or not Nagios will attempt to
-# automatically reschedule active host and service checks to
-# "smooth" them out over time.  This can help balance the load on
-# the monitoring server.  
-# WARNING: THIS IS AN EXPERIMENTAL FEATURE - IT CAN DEGRADE
-# PERFORMANCE, RATHER THAN INCREASE IT, IF USED IMPROPERLY
-
-auto_reschedule_checks=0
-
-
-
-# AUTO-RESCHEDULING INTERVAL
-# This option determines how often (in seconds) Nagios will
-# attempt to automatically reschedule checks.  This option only
-# has an effect if the auto_reschedule_checks option is enabled.
-# Default is 30 seconds.
-# WARNING: THIS IS AN EXPERIMENTAL FEATURE - IT CAN DEGRADE
-# PERFORMANCE, RATHER THAN INCREASE IT, IF USED IMPROPERLY
-
-auto_rescheduling_interval=30
-
-
-
-# AUTO-RESCHEDULING WINDOW
-# This option determines the "window" of time (in seconds) that
-# Nagios will look at when automatically rescheduling checks.
-# Only host and service checks that occur in the next X seconds
-# (determined by this variable) will be rescheduled. This option
-# only has an effect if the auto_reschedule_checks option is
-# enabled.  Default is 180 seconds (3 minutes).
-# WARNING: THIS IS AN EXPERIMENTAL FEATURE - IT CAN DEGRADE
-# PERFORMANCE, RATHER THAN INCREASE IT, IF USED IMPROPERLY
-
-auto_rescheduling_window=180
-
-
-
-# SLEEP TIME
-# This is the number of seconds to sleep between checking for system
-# events and service checks that need to be run.
-
-sleep_time=0.25
-
-
-
-# TIMEOUT VALUES
-# These options control how much time Nagios will allow various
-# types of commands to execute before killing them off.  Options
-# are available for controlling maximum time allotted for
-# service checks, host checks, event handlers, notifications, the
-# ocsp command, and performance data commands.  All values are in
-# seconds.
-
-service_check_timeout=60
-host_check_timeout=30
-event_handler_timeout=30
-notification_timeout=30
-ocsp_timeout=5
-perfdata_timeout=5
-
-
-
-# RETAIN STATE INFORMATION
-# This setting determines whether or not Nagios will save state
-# information for services and hosts before it shuts down.  Upon
-# startup Nagios will reload all saved service and host state
-# information before starting to monitor.  This is useful for 
-# maintaining long-term data on state statistics, etc, but will
-# slow Nagios down a bit when it (re)starts.  Since its only
-# a one-time penalty, I think its well worth the additional
-# startup delay.
-
-retain_state_information=1
-
-
-
-# STATE RETENTION FILE
-# This is the file that Nagios should use to store host and
-# service state information before it shuts down.  The state 
-# information in this file is also read immediately prior to
-# starting to monitor the network when Nagios is restarted.
-# This file is used only if the preserve_state_information
-# variable is set to 1.
-
-state_retention_file=/var/lib/nagios3/retention.dat
-
-
-
-# RETENTION DATA UPDATE INTERVAL
-# This setting determines how often (in minutes) that Nagios
-# will automatically save retention data during normal operation.
-# If you set this value to 0, Nagios will not save retention
-# data at regular interval, but it will still save retention
-# data before shutting down or restarting.  If you have disabled
-# state retention, this option has no effect.
-
-retention_update_interval=60
-
-
-
-# USE RETAINED PROGRAM STATE
-# This setting determines whether or not Nagios will set 
-# program status variables based on the values saved in the
-# retention file.  If you want to use retained program status
-# information, set this value to 1.  If not, set this value
-# to 0.
-
-use_retained_program_state=1
-
-
-
-# USE RETAINED SCHEDULING INFO
-# This setting determines whether or not Nagios will retain
-# the scheduling info (next check time) for hosts and services
-# based on the values saved in the retention file.  If you
-# If you want to use retained scheduling info, set this
-# value to 1.  If not, set this value to 0.
-
-use_retained_scheduling_info=1
-
-
-
-# RETAINED ATTRIBUTE MASKS (ADVANCED FEATURE)
-# The following variables are used to specify specific host and
-# service attributes that should *not* be retained by Nagios during
-# program restarts.
-#
-# The values of the masks are bitwise ANDs of values specified
-# by the "MODATTR_" definitions found in include/common.h.  
-# For example, if you do not want the current enabled/disabled state
-# of flap detection and event handlers for hosts to be retained, you
-# would use a value of 24 for the host attribute mask...
-# MODATTR_EVENT_HANDLER_ENABLED (8) + MODATTR_FLAP_DETECTION_ENABLED (16) = 24
-
-# This mask determines what host attributes are not retained
-retained_host_attribute_mask=0
-
-# This mask determines what service attributes are not retained
-retained_service_attribute_mask=0
-
-# These two masks determine what process attributes are not retained.
-# There are two masks, because some process attributes have host and service
-# options.  For example, you can disable active host checks, but leave active
-# service checks enabled.
-retained_process_host_attribute_mask=0
-retained_process_service_attribute_mask=0
-
-# These two masks determine what contact attributes are not retained.
-# There are two masks, because some contact attributes have host and
-# service options.  For example, you can disable host notifications for
-# a contact, but leave service notifications enabled for them.
-retained_contact_host_attribute_mask=0
-retained_contact_service_attribute_mask=0
-
-
-
-# INTERVAL LENGTH
-# This is the seconds per unit interval as used in the
-# host/contact/service configuration files.  Setting this to 60 means
-# that each interval is one minute long (60 seconds).  Other settings
-# have not been tested much, so your mileage is likely to vary...
-
-interval_length=60
-
-
-
-# AGGRESSIVE HOST CHECKING OPTION
-# If you don't want to turn on aggressive host checking features, set
-# this value to 0 (the default).  Otherwise set this value to 1 to
-# enable the aggressive check option.  Read the docs for more info
-# on what aggressive host check is or check out the source code in
-# base/checks.c
-
-use_aggressive_host_checking=0
-
-
-
-# SERVICE CHECK EXECUTION OPTION
-# This determines whether or not Nagios will actively execute
-# service checks when it initially starts.  If this option is 
-# disabled, checks are not actively made, but Nagios can still
-# receive and process passive check results that come in.  Unless
-# you're implementing redundant hosts or have a special need for
-# disabling the execution of service checks, leave this enabled!
-# Values: 1 = enable checks, 0 = disable checks
-
-execute_service_checks=1
-
-
-
-# PASSIVE SERVICE CHECK ACCEPTANCE OPTION
-# This determines whether or not Nagios will accept passive
-# service checks results when it initially (re)starts.
-# Values: 1 = accept passive checks, 0 = reject passive checks
-
-accept_passive_service_checks=1
-
-
-
-# HOST CHECK EXECUTION OPTION
-# This determines whether or not Nagios will actively execute
-# host checks when it initially starts.  If this option is 
-# disabled, checks are not actively made, but Nagios can still
-# receive and process passive check results that come in.  Unless
-# you're implementing redundant hosts or have a special need for
-# disabling the execution of host checks, leave this enabled!
-# Values: 1 = enable checks, 0 = disable checks
-
-execute_host_checks=1
-
-
-
-# PASSIVE HOST CHECK ACCEPTANCE OPTION
-# This determines whether or not Nagios will accept passive
-# host checks results when it initially (re)starts.
-# Values: 1 = accept passive checks, 0 = reject passive checks
-
-accept_passive_host_checks=1
-
-
-
-# NOTIFICATIONS OPTION
-# This determines whether or not Nagios will sent out any host or
-# service notifications when it is initially (re)started.
-# Values: 1 = enable notifications, 0 = disable notifications
-
-enable_notifications=1
-
-
-
-# EVENT HANDLER USE OPTION
-# This determines whether or not Nagios will run any host or
-# service event handlers when it is initially (re)started.  Unless
-# you're implementing redundant hosts, leave this option enabled.
-# Values: 1 = enable event handlers, 0 = disable event handlers
-
-enable_event_handlers=1
-
-
-
-# PROCESS PERFORMANCE DATA OPTION
-# This determines whether or not Nagios will process performance
-# data returned from service and host checks.  If this option is
-# enabled, host performance data will be processed using the
-# host_perfdata_command (defined below) and service performance
-# data will be processed using the service_perfdata_command (also
-# defined below).  Read the HTML docs for more information on
-# performance data.
-# Values: 1 = process performance data, 0 = do not process performance data
-
-process_performance_data=0
-
-
-
-# HOST AND SERVICE PERFORMANCE DATA PROCESSING COMMANDS
-# These commands are run after every host and service check is
-# performed.  These commands are executed only if the
-# enable_performance_data option (above) is set to 1.  The command
-# argument is the short name of a command definition that you 
-# define in your host configuration file.  Read the HTML docs for
-# more information on performance data.
-
-#host_perfdata_command=process-host-perfdata
-#service_perfdata_command=process-service-perfdata
-
-
-
-# HOST AND SERVICE PERFORMANCE DATA FILES
-# These files are used to store host and service performance data.
-# Performance data is only written to these files if the
-# enable_performance_data option (above) is set to 1.
-
-#host_perfdata_file=/tmp/host-perfdata
-#service_perfdata_file=/tmp/service-perfdata
-
-
-
-# HOST AND SERVICE PERFORMANCE DATA FILE TEMPLATES
-# These options determine what data is written (and how) to the
-# performance data files.  The templates may contain macros, special
-# characters (\t for tab, \r for carriage return, \n for newline)
-# and plain text.  A newline is automatically added after each write
-# to the performance data file.  Some examples of what you can do are
-# shown below.
-
-#host_perfdata_file_template=[HOSTPERFDATA]\t$TIMET$\t$HOSTNAME$\t$HOSTEXECUTIONTIME$\t$HOSTOUTPUT$\t$HOSTPERFDATA$
-#service_perfdata_file_template=[SERVICEPERFDATA]\t$TIMET$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICEEXECUTIONTIME$\t$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$
-
-
-
-# HOST AND SERVICE PERFORMANCE DATA FILE MODES
-# This option determines whether or not the host and service
-# performance data files are opened in write ("w") or append ("a")
-# mode. If you want to use named pipes, you should use the special
-# pipe ("p") mode which avoid blocking at startup, otherwise you will
-# likely want the defult append ("a") mode.
-
-#host_perfdata_file_mode=a
-#service_perfdata_file_mode=a
-
-
-
-# HOST AND SERVICE PERFORMANCE DATA FILE PROCESSING INTERVAL
-# These options determine how often (in seconds) the host and service
-# performance data files are processed using the commands defined
-# below.  A value of 0 indicates the files should not be periodically
-# processed.
-
-#host_perfdata_file_processing_interval=0
-#service_perfdata_file_processing_interval=0
-
-
-
-# HOST AND SERVICE PERFORMANCE DATA FILE PROCESSING COMMANDS
-# These commands are used to periodically process the host and
-# service performance data files.  The interval at which the
-# processing occurs is determined by the options above.
-
-#host_perfdata_file_processing_command=process-host-perfdata-file
-#service_perfdata_file_processing_command=process-service-perfdata-file
-
-
-
-# OBSESS OVER SERVICE CHECKS OPTION
-# This determines whether or not Nagios will obsess over service
-# checks and run the ocsp_command defined below.  Unless you're
-# planning on implementing distributed monitoring, do not enable
-# this option.  Read the HTML docs for more information on
-# implementing distributed monitoring.
-# Values: 1 = obsess over services, 0 = do not obsess (default)
-
-obsess_over_services=0
-
-
-
-# OBSESSIVE COMPULSIVE SERVICE PROCESSOR COMMAND
-# This is the command that is run for every service check that is
-# processed by Nagios.  This command is executed only if the
-# obsess_over_services option (above) is set to 1.  The command 
-# argument is the short name of a command definition that you
-# define in your host configuration file. Read the HTML docs for
-# more information on implementing distributed monitoring.
-
-#ocsp_command=somecommand
-
-
-
-# OBSESS OVER HOST CHECKS OPTION
-# This determines whether or not Nagios will obsess over host
-# checks and run the ochp_command defined below.  Unless you're
-# planning on implementing distributed monitoring, do not enable
-# this option.  Read the HTML docs for more information on
-# implementing distributed monitoring.
-# Values: 1 = obsess over hosts, 0 = do not obsess (default)
-
-obsess_over_hosts=0
-
-
-
-# OBSESSIVE COMPULSIVE HOST PROCESSOR COMMAND
-# This is the command that is run for every host check that is
-# processed by Nagios.  This command is executed only if the
-# obsess_over_hosts option (above) is set to 1.  The command 
-# argument is the short name of a command definition that you
-# define in your host configuration file. Read the HTML docs for
-# more information on implementing distributed monitoring.
-
-#ochp_command=somecommand
-
-
-
-# TRANSLATE PASSIVE HOST CHECKS OPTION
-# This determines whether or not Nagios will translate
-# DOWN/UNREACHABLE passive host check results into their proper
-# state for this instance of Nagios.  This option is useful
-# if you have distributed or failover monitoring setup.  In
-# these cases your other Nagios servers probably have a different
-# "view" of the network, with regards to the parent/child relationship
-# of hosts.  If a distributed monitoring server thinks a host
-# is DOWN, it may actually be UNREACHABLE from the point of
-# this Nagios instance.  Enabling this option will tell Nagios
-# to translate any DOWN or UNREACHABLE host states it receives
-# passively into the correct state from the view of this server.
-# Values: 1 = perform translation, 0 = do not translate (default)
-
-translate_passive_host_checks=0
-
-
-
-# PASSIVE HOST CHECKS ARE SOFT OPTION
-# This determines whether or not Nagios will treat passive host
-# checks as being HARD or SOFT.  By default, a passive host check
-# result will put a host into a HARD state type.  This can be changed
-# by enabling this option.
-# Values: 0 = passive checks are HARD, 1 = passive checks are SOFT
-
-passive_host_checks_are_soft=0
-
-
-
-# ORPHANED HOST/SERVICE CHECK OPTIONS
-# These options determine whether or not Nagios will periodically 
-# check for orphaned host service checks.  Since service checks are
-# not rescheduled until the results of their previous execution 
-# instance are processed, there exists a possibility that some
-# checks may never get rescheduled.  A similar situation exists for
-# host checks, although the exact scheduling details differ a bit
-# from service checks.  Orphaned checks seem to be a rare
-# problem and should not happen under normal circumstances.
-# If you have problems with service checks never getting
-# rescheduled, make sure you have orphaned service checks enabled.
-# Values: 1 = enable checks, 0 = disable checks
-
-check_for_orphaned_services=1
-check_for_orphaned_hosts=1
-
-
-
-# SERVICE FRESHNESS CHECK OPTION
-# This option determines whether or not Nagios will periodically
-# check the "freshness" of service results.  Enabling this option
-# is useful for ensuring passive checks are received in a timely
-# manner.
-# Values: 1 = enabled freshness checking, 0 = disable freshness checking
-
-check_service_freshness=1
-
-
-
-# SERVICE FRESHNESS CHECK INTERVAL
-# This setting determines how often (in seconds) Nagios will
-# check the "freshness" of service check results.  If you have
-# disabled service freshness checking, this option has no effect.
-
-service_freshness_check_interval=60
-
-
-
-# HOST FRESHNESS CHECK OPTION
-# This option determines whether or not Nagios will periodically
-# check the "freshness" of host results.  Enabling this option
-# is useful for ensuring passive checks are received in a timely
-# manner.
-# Values: 1 = enabled freshness checking, 0 = disable freshness checking
-
-check_host_freshness=0
-
-
-
-# HOST FRESHNESS CHECK INTERVAL
-# This setting determines how often (in seconds) Nagios will
-# check the "freshness" of host check results.  If you have
-# disabled host freshness checking, this option has no effect.
-
-host_freshness_check_interval=60
-
-
-
-
-# ADDITIONAL FRESHNESS THRESHOLD LATENCY
-# This setting determines the number of seconds that Nagios
-# will add to any host and service freshness thresholds that
-# it calculates (those not explicitly specified by the user).
-
-additional_freshness_latency=15
-
-
-
-
-# FLAP DETECTION OPTION
-# This option determines whether or not Nagios will try
-# and detect hosts and services that are "flapping".  
-# Flapping occurs when a host or service changes between
-# states too frequently.  When Nagios detects that a 
-# host or service is flapping, it will temporarily suppress
-# notifications for that host/service until it stops
-# flapping.  Flap detection is very experimental, so read
-# the HTML documentation before enabling this feature!
-# Values: 1 = enable flap detection
-#         0 = disable flap detection (default)
-
-enable_flap_detection=1
-
-
-
-# FLAP DETECTION THRESHOLDS FOR HOSTS AND SERVICES
-# Read the HTML documentation on flap detection for
-# an explanation of what this option does.  This option
-# has no effect if flap detection is disabled.
-
-low_service_flap_threshold=5.0
-high_service_flap_threshold=20.0
-low_host_flap_threshold=5.0
-high_host_flap_threshold=20.0
-
-
-
-# DATE FORMAT OPTION
-# This option determines how short dates are displayed. Valid options
-# include:
-#	us		(MM-DD-YYYY HH:MM:SS)
-#	euro    	(DD-MM-YYYY HH:MM:SS)
-#	iso8601		(YYYY-MM-DD HH:MM:SS)
-#	strict-iso8601	(YYYY-MM-DDTHH:MM:SS)
-#
-
-date_format=iso8601
-
-
-
-
-# TIMEZONE OFFSET
-# This option is used to override the default timezone that this
-# instance of Nagios runs in.  If not specified, Nagios will use
-# the system configured timezone.
-#
-# NOTE: In order to display the correct timezone in the CGIs, you
-# will also need to alter the Apache directives for the CGI path 
-# to include your timezone.  Example:
-#
-#   <Directory "/usr/local/nagios/sbin/">
-#      SetEnv TZ "Australia/Brisbane"
-#      ...
-#   </Directory>
-
-#use_timezone=US/Mountain
-#use_timezone=Australia/Brisbane
-
-
-
-
-# P1.PL FILE LOCATION
-# This value determines where the p1.pl perl script (used by the
-# embedded Perl interpreter) is located.  If you didn't compile
-# Nagios with embedded Perl support, this option has no effect.
-
-p1_file=/usr/lib/nagios3/p1.pl
-
-
-
-# EMBEDDED PERL INTERPRETER OPTION
-# This option determines whether or not the embedded Perl interpreter
-# will be enabled during runtime.  This option has no effect if Nagios
-# has not been compiled with support for embedded Perl.
-# Values: 0 = disable interpreter, 1 = enable interpreter
-
-enable_embedded_perl=1
-
-
-
-# EMBEDDED PERL USAGE OPTION
-# This option determines whether or not Nagios will process Perl plugins
-# and scripts with the embedded Perl interpreter if the plugins/scripts
-# do not explicitly indicate whether or not it is okay to do so. Read
-# the HTML documentation on the embedded Perl interpreter for more 
-# information on how this option works.
-
-use_embedded_perl_implicitly=1
-
-
-
-# ILLEGAL OBJECT NAME CHARACTERS
-# This option allows you to specify illegal characters that cannot
-# be used in host names, service descriptions, or names of other
-# object types.
-
-illegal_object_name_chars=`~!$%^&*|'"<>?,()=
-
-
-
-# ILLEGAL MACRO OUTPUT CHARACTERS
-# This option allows you to specify illegal characters that are
-# stripped from macros before being used in notifications, event
-# handlers, etc.  This DOES NOT affect macros used in service or
-# host check commands.
-# The following macros are stripped of the characters you specify:
-#	$HOSTOUTPUT$
-#	$HOSTPERFDATA$
-#	$HOSTACKAUTHOR$
-#	$HOSTACKCOMMENT$
-#	$SERVICEOUTPUT$
-#	$SERVICEPERFDATA$
-#	$SERVICEACKAUTHOR$
-#	$SERVICEACKCOMMENT$
-
-illegal_macro_output_chars=`~$&|'"<>
-
-
-
-# REGULAR EXPRESSION MATCHING
-# This option controls whether or not regular expression matching
-# takes place in the object config files.  Regular expression
-# matching is used to match host, hostgroup, service, and service
-# group names/descriptions in some fields of various object types.
-# Values: 1 = enable regexp matching, 0 = disable regexp matching
-
-use_regexp_matching=0
-
-
-
-# "TRUE" REGULAR EXPRESSION MATCHING
-# This option controls whether or not "true" regular expression 
-# matching takes place in the object config files.  This option
-# only has an effect if regular expression matching is enabled
-# (see above).  If this option is DISABLED, regular expression
-# matching only occurs if a string contains wildcard characters
-# (* and ?).  If the option is ENABLED, regexp matching occurs
-# all the time (which can be annoying).
-# Values: 1 = enable true matching, 0 = disable true matching
-
-use_true_regexp_matching=0
-
-
-
-# ADMINISTRATOR EMAIL/PAGER ADDRESSES
-# The email and pager address of a global administrator (likely you).
-# Nagios never uses these values itself, but you can access them by
-# using the $ADMINEMAIL$ and $ADMINPAGER$ macros in your notification
-# commands.
-
-admin_email=root at localhost
-admin_pager=pageroot at localhost
-
-
-
-# DAEMON CORE DUMP OPTION
-# This option determines whether or not Nagios is allowed to create
-# a core dump when it runs as a daemon.  Note that it is generally
-# considered bad form to allow this, but it may be useful for
-# debugging purposes.  Enabling this option doesn't guarantee that
-# a core file will be produced, but that's just life...
-# Values: 1 - Allow core dumps
-#         0 - Do not allow core dumps (default)
-
-daemon_dumps_core=0
-
-
-
-# LARGE INSTALLATION TWEAKS OPTION
-# This option determines whether or not Nagios will take some shortcuts
-# which can save on memory and CPU usage in large Nagios installations.
-# Read the documentation for more information on the benefits/tradeoffs
-# of enabling this option.
-# Values: 1 - Enabled tweaks
-#         0 - Disable tweaks (default)
-
-use_large_installation_tweaks=0
-
-
-
-# ENABLE ENVIRONMENT MACROS
-# This option determines whether or not Nagios will make all standard
-# macros available as environment variables when host/service checks
-# and system commands (event handlers, notifications, etc.) are
-# executed.  Enabling this option can cause performance issues in 
-# large installations, as it will consume a bit more memory and (more
-# importantly) consume more CPU.
-# Values: 1 - Enable environment variable macros (default)
-#         0 - Disable environment variable macros
-
-enable_environment_macros=1
-
-
-
-# CHILD PROCESS MEMORY OPTION
-# This option determines whether or not Nagios will free memory in
-# child processes (processed used to execute system commands and host/
-# service checks).  If you specify a value here, it will override
-# program defaults.
-# Value: 1 - Free memory in child processes
-#        0 - Do not free memory in child processes
-
-#free_child_process_memory=1
-
-
-
-# CHILD PROCESS FORKING BEHAVIOR
-# This option determines how Nagios will fork child processes
-# (used to execute system commands and host/service checks).  Normally
-# child processes are fork()ed twice, which provides a very high level
-# of isolation from problems.  Fork()ing once is probably enough and will
-# save a great deal on CPU usage (in large installs), so you might
-# want to consider using this.  If you specify a value here, it will
-# program defaults.
-# Value: 1 - Child processes fork() twice
-#        0 - Child processes fork() just once
-
-#child_processes_fork_twice=1
-
-
-
-# DEBUG LEVEL
-# This option determines how much (if any) debugging information will
-# be written to the debug file.  OR values together to log multiple
-# types of information.
-# Values: 
-#          -1 = Everything
-#          0 = Nothing
-#	   1 = Functions
-#          2 = Configuration
-#          4 = Process information
-#	   8 = Scheduled events
-#          16 = Host/service checks
-#          32 = Notifications
-#          64 = Event broker
-#          128 = External commands
-#          256 = Commands
-#          512 = Scheduled downtime
-#          1024 = Comments
-#          2048 = Macros
-
-debug_level=0
-
-
-
-# DEBUG VERBOSITY
-# This option determines how verbose the debug log out will be.
-# Values: 0 = Brief output
-#         1 = More detailed
-#         2 = Very detailed
-
-debug_verbosity=1
-
-
-
-# DEBUG FILE
-# This option determines where Nagios should write debugging information.
-
-debug_file=/var/lib/nagios3/nagios.debug
-
-
-
-# MAX DEBUG FILE SIZE
-# This option determines the maximum size (in bytes) of the debug file.  If
-# the file grows larger than this size, it will be renamed with a .old
-# extension.  If a file already exists with a .old extension it will
-# automatically be deleted.  This helps ensure your disk space usage doesn't
-# get out of control when debugging Nagios.
-
-max_debug_file_size=1000000
-
-

Deleted: trunk/src/sitesummary/site-summary
===================================================================
--- trunk/src/sitesummary/site-summary	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/site-summary	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,75 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-use SiteSummary;
-use Getopt::Std;
-
-my %sites;
-my %sitegroups;
-my %hostmap;
-my %sitegroupmap;
-my %opts;
-
-sub usage {
-    my $retval = shift;
-    print <<EOF;
-Usage: $0 [-l]
-   -l   list hosts with the given site/sitegroup
-EOF
-    exit $retval;
-}
-
-getopt("l", \%opts) || usage(1);
-
-for_all_hosts(\&handle_host);
-
-print_summary();
-
-sub handle_host {
-    my $hostid = shift;
-    #print "$hostid\n";
-    for my $site (get_site($hostid)) {
-        $site = "SiteMissing" unless defined $site;
-        $sites{$site}++;
-        $hostmap{$site} = [] unless exists $hostmap{$site};
-        my $sitegroup = get_sitegroup($hostid);
-        if ($sitegroup) {
-            $sitegroups{$site}{$sitegroup}++;
-            if (exists $sitegroupmap{$site} && exists $sitegroupmap{$site}{$sitegroup}) {
-                push @{$sitegroupmap{$site}{$sitegroup}}, $hostid ;
-            } else {
-                $sitegroupmap{$site}{$sitegroup} = [$hostid];
-            }
-        } else {
-            push @{$hostmap{$site}}, $hostid ;
-        }
-    }
-}
-
-sub print_summary {
-    printf("  %-20s %5s\n", "site", "count");
-    for my $site (sort keys %sites) {
-        printf("  %-20s %5d\n", $site, $sites{$site});
-        if (exists $opts{l}) {
-            for my $hostid (sort @{$hostmap{$site}}) {
-                my $hostname = get_hostname($hostid);
-                my $site = get_site($hostid) || "";
-                my $sitegroup = get_sitegroup($hostid) || "";
-                printf "    %s %s/%s %s\n", $hostname, $site, $sitegroup, $hostid;
-            }
-        }
-        for my $sitegroup (sort keys %{$sitegroups{$site}}) {
-            printf("    %-18s %5d\n", $sitegroup, $sitegroups{$site}{$sitegroup});
-            if (exists $opts{l}) {
-                for my $hostid (sort @{$sitegroupmap{$site}{$sitegroup}}) {
-                    my $hostname = get_hostname($hostid);
-                    my $site = get_site($hostid) || "";
-                    my $sitegroup = get_sitegroup($hostid) || "";
-                    printf "      %s %s/%s %s\n", $hostname, $site, $sitegroup, $hostid;
-                }
-            }
-        }
-    }
-}

Deleted: trunk/src/sitesummary/sitesummary-client
===================================================================
--- trunk/src/sitesummary/sitesummary-client	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/sitesummary-client	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,93 +0,0 @@
-#!/bin/sh
-#
-# Collect sytem information and pass it on to the sitesummary server
-# using HTTP put.
-
-# https://svn.revolutionlinux.com/MILLE/XTERM/trunk/mille-xterm-getltscfg/src/getltscfg.script
-
-set -e
-
-PATH=/sbin:/usr/sbin:/bin:/usr/bin
-export PATH
-
-# Make sure the output from programs is well known.
-LC_ALL=C
-export LC_ALL
-
-# Make sure to store files in a ramfs backed
-# storage area on diskless clients, so use /tmp/.
-tmpdir=/tmp/sitesummary-$$
-
-log() {
-    msg="$@"
-    echo "$msg"
-    logger -p user.info -t sitesummary-client "$msg"
-}
-
-error() {
-    msg="$@"
-    log "error: $msg"
-}
-
-# Check or get GPG key, return false if it is unavailable
-get_gpg_key_if_missing() {
-    url="$1"
-    true
-}
-gpg_encrypt_for_url() {
-    url="$1"
-    infile="$2"
-    outfile="$2"
-
-    return
-
-    GPGOPTS="--no-default-keyring --keyring $urlkeyring"
-    gpg $GPGOPTS -e $infile > $outfile
-}
-
-# Read the package default
-[ -f /usr/share/sitesummary/sitesummary-client.conf ] && \
-  . /usr/share/sitesummary/sitesummary-client.conf
-for confdir in \
-    /usr/share/sitesummary/config.d \
-    /etc/sitesummary/config.d
-do
-    [ -d $confdir ] || continue
-    for config in $confdir/* ; do
-	[ -f $config ] && . $config
-    done
-done
-
-mkdir $tmpdir && cd $tmpdir
-
-for fragdir in $fragdirs ; do
-    [ -d $fragdir ] || continue 
-    for frag in $fragdir/*; do 
-	[ -x $frag ] && $frag || true
-    done
-done
-
-# Wrap up the package
-hostsummaryfile=$tmpdir.tar.gz
-tar zcf $hostsummaryfile .
-
-for url in $serverurls ; do
-    if [ "$gpgencrypt" != false ] ; then
-	if get_gpg_key_if_missing $url ; then
-	    error "gpg key for '$url' is unavailable.  refusing to submit."
-	    continue
-	fi
-	gpg_encrypt_for_url $url "$hostsummaryfile" "$hostsummaryfile.gpg"
-	hostsummaryfile="$hostsummaryfile.gpg"
-    fi
-
-    #WGETOPTS="--no-check-certificate"
-    if sitesummary-upload  -u $url -f $hostsummaryfile -d; then
-	:
-    else
-	error "unable to submit to '$url'"
-    fi
-done
-
-rm $hostsummaryfile
-rm -r $tmpdir

Deleted: trunk/src/sitesummary/sitesummary-client.conf
===================================================================
--- trunk/src/sitesummary/sitesummary-client.conf	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/sitesummary-client.conf	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,9 +0,0 @@
-serverurls="http://localhost/cgi-bin/sitesummary-collector.cgi"
-
-fragdirs="/usr/lib/sitesummary/collect.d /etc/sitesummary/collect.d"
-
-gpgencrypt=false
-
-# Random sleep between 0 and $runsleep seconds before running.  3600
-# is one hour.
-runsleep="3600"

Deleted: trunk/src/sitesummary/sitesummary-collector.cgi
===================================================================
--- trunk/src/sitesummary/sitesummary-collector.cgi	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/sitesummary-collector.cgi	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,166 +0,0 @@
-#!/usr/bin/perl -wT
-#
-# Receive HTTP post request with a file upload and process it as a
-# sitesummary submission.
-#
-# Handle three different submission methods
-#  - mime-encoded upload with sitesummary report in compressed form
-
-use strict;
-use CGI;
-use POSIX qw(strftime);
-use Socket;
-use Sys::Syslog;
-use SiteSummary;
-
-my $basedir   = "/var/lib/sitesummary";
-my $handlerdir = "/usr/lib/sitesummary/handler.d";
-
-$ENV{PATH} = "/bin:/usr/bin";
-
-print "Content-Type: text/plain\n\n";
-
-my ($peeripaddr, $peername) = get_peerinfo(\*STDIN);
-
-if (exists $ENV{REQUEST_METHOD} && $ENV{REQUEST_METHOD} ne "POST")
-{
-    print "Sitesummary  HTTP-POST submission URL\n";
-    print "Visit http://debian-edu.alioth.debian.org/ for more info.\n";
-    exit 0;
-}
-
-# Extract post data, handle both simple and multipart way
-my @entry;
-my $filename = "unknown";
-if (exists $ENV{CONTENT_TYPE} && $ENV{CONTENT_TYPE} =~ m%multipart/form-data%){
-    my $query = new CGI;
-    my $fh = $query->upload("sitesummary");
-    if ($fh) {
-        $filename = $query->param("sitesummary");
-        my $type = $query->uploadInfo($filename)->{'Content-Type'};
-        if ("application/octet-stream" ne $type) {
-            print "Only 'application/octet-stream' is supported (not $type)!";
-            die;
-        } else {
-            my $encoding = $query->uploadInfo($filename)->{'Content-Encoding'};
-            if ("x-gzip" eq $encoding || "gzip" eq $encoding) {
-                # Uncompress
-                print "Compressed ($encoding) encoding detected.\n";
-                my $data;
-                # $data = join("", <$fh>);
-                my $len = (stat($fh))[7];
-                read $fh, $data, $len;
-                $data = Compress::Zlib::memGunzip($data);
-                @entry = ($data);
-            } else { # Pass throught
-                #print STDERR "Identity encoding detected.\n";
-                @entry = <$fh>;
-            }
-        }
-    } else {
-        print $query->cgi_error;
-        die;
-    }
-} else {
-    print <<EOF;
-Unsupported submission method.
-EOF
-}
-
-my $timestamp = strftime("%Y-%m-%dT%H:%M:%S", gmtime());
-
-if ($filename =~ m/.tar.gz$/) {
-    $filename = "sitesummary.tar.gz";
-} elsif ($filename =~ m/.tar.gz.gpg$/) {
-    $filename = "sitesummary.tar.gz.gpg";
-} else {
-    die "Unhandled file type '$filename'"
-}
-
-# XXX Come up with some unique file name.
-my $savefile = "$basedir/tmpstorage/$peeripaddr-$timestamp-$$-$filename";
-
-open(SITESUMMARY, ">", $savefile) or die "Unable to write to $savefile";
-print SITESUMMARY @entry;
-close SITESUMMARY;
-
-print "Thanks for your submission to site-summary!\n";
-print "SITESUMMARY HTTP-POST OK\n";
-
-process_entry($peeripaddr, $peername, $savefile);
-
-unlink $savefile;
-
-exit 0;
-
-sub extract_unique_id {
-    return get_unique_ether_id("system/ifconfig-a") || die "Unable to read ifconfig-a";
-}
-
-sub process_entry {
-    my ($peeripaddr, $peername, $filename) = @_;
-    my $dirname;
-    if ($filename =~ m/(.+).tar.gz$/) {
-        $dirname = $1;
-        mkdir $dirname;
-        chdir $dirname;
-        `tar zxf $filename`;
-    } else {
-        die "Unhandled file format '$filename'";
-    }
-
-    open(PEERINFO, ">peerinfo") || die;
-    print PEERINFO "$peeripaddr $peername\n";
-    close(PEERINFO) || die;
-
-    my $id = extract_unique_id($dirname);
-    if ("ether-unknown" eq $id) {
-        syslog('warning', "%s", "ignoring client without MAC address connected from \[$peeripaddr\]");
-        chdir "..";
-        `rm -r $dirname`;
-        return;
-    }
-    my $newdir = "$basedir/entries/$id";
-
-    my $status = "new";
-    if ( -d $newdir ) {
-        `rm -r $newdir`;
-        $status = "update";
-    }
-
-    rename $dirname, $newdir || die;
-
-    $ENV{"PATH"} = "";
-    for my $handler (<$handlerdir/*>) {
-        # Untaint script path
-        $handler =~ m/^([^;]*)$/; $handler = $1;
-        system("$handler", "$newdir", "$status");
-    }
-}
-
-sub get_peerinfo {
-    my $sockethandle = shift;
-    my ($peeripstr, $peername) = ("", "");
-
-    if ($ENV{'REMOTE_ADDR'}) { # CGI variable
-        $peeripstr = $ENV{'REMOTE_ADDR'};
-        $peeripstr =~ m/(\d+).(\d+).(\d+).(\d+)/; # Untaint
-        $peeripstr = "$1.$2.$3.$4";
-        $peeripaddr = inet_aton($peeripstr);
-        $peername = gethostbyaddr($peeripaddr, AF_INET);
-    } elsif (my $sockaddr = getpeername($sockethandle)) {
-        my $peerport;
-        ($peerport, $peeripaddr) = sockaddr_in($sockaddr);
-        $peername = gethostbyaddr($peeripaddr, AF_INET);
-        $peeripstr = inet_ntoa($peeripaddr);
-    } else {
-        # Running on the command line, use test host
-        $peeripstr = "127.0.0.1";
-        $peername = "localhost";
-    }
-    if ("" eq $peername) {
-        syslog('warning', "%s", "client without DNS entry connected from \[$peeripstr\]");
-        $peername = "$peeripstr";
-    }
-    return ($peeripstr, $peername);
-}

Deleted: trunk/src/sitesummary/sitesummary-makewebreport
===================================================================
--- trunk/src/sitesummary/sitesummary-makewebreport	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/sitesummary-makewebreport	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,44 +0,0 @@
-#!/bin/sh
-#
-# Make simple web page with summary information.  This should be rewritten
-# to use some template system and be more flexible.
-#
-
-(
-cat <<EOF
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-<head>
-<title>sitesummary report</title>
-</head>
-<body>
-<h1>sitesummary report</h1>
-EOF
-
-for f in site-summary \
-    hostclass-summary \
-    kernelversion-summary \
-    agesinceseen-summary \
-    hardware-model-summary \
-    debian_edu-summary ; do
-    echo "<h2>$f</h2>"
-    echo "<pre>"
-    /usr/lib/sitesummary/$f
-    echo "</pre>"
-    echo
-done
-
-# Add last updated string
-echo "<hr>"
-echo -n "<p><b>Last updated</b>: "
-date
-echo "</p>"
-
-cat <<EOF
-</body>
-</html>
-EOF
-) > /var/lib/sitesummary/www/index.html
-
-exit 0

Deleted: trunk/src/sitesummary/sitesummary-nodes
===================================================================
--- trunk/src/sitesummary/sitesummary-nodes	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/sitesummary-nodes	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,586 +0,0 @@
-#!/usr/bin/perl
-#
-# Generate list of nodes to load from /etc/munin/munin.conf to check
-# all the machines reporting to sitesummary.
-
-use strict;
-use warnings;
-
-use SiteSummary;
-use Getopt::Std;
-use Socket;
-use File::Temp qw(tempfile);
-use vars qw($npingwarn $npingwarnp $npingcrit $npingcritp);
-
-sub usage {
-    print <<EOF;
-Usage: $0 [-hmnw]
-
- -h  Show usage information
- -m  Generate munin configuration for all munin clients
- -n  Generate nagios configuration for all nagios clients
- -w  List all client DNS/IP-addresses and MAC addresses
-EOF
-}
-
-$npingwarn = 100.0;
-$npingwarnp = 20; # percent
-$npingcrit = 500.0;
-$npingcritp = 60; # percent
-
-# Idea for way to provide overrides for the functions in this script
-my $conffile = "/etc/sitesummary/sitesummary-nodes.conf";
-eval 'require "$conffile"';
-if ($@ && $@ !~ qr{^Can't locate $conffile}) {
-    die $@;
-};
-
-my %opts;
-getopts("hmnw", \%opts) || (usage(), exit(1));
-
-my $nagiosignorefile = "/etc/sitesummary/nagiosignore";
-my %nagios_ignore;
-
-my %hostnames;
-my $server_hostid = get_localhost_hostid() ||
-    die "Unable to figure out hostid for the local host";
-
-for_all_hosts(\&handle_host);
-
-if ($opts{'h'}) {
-    usage();
-    exit 0;
-} elsif ($opts{'m'}) {
-    print_munin_list();
-} elsif ($opts{'w'}) {
-    print_ip_hw_list();
-} elsif ($opts{'n'}) {
-    if (open(my $fh, $nagiosignorefile)) {
-        while (<$fh>) {
-            chomp;
-            my ($hostname, $nagioscheck) = split(/ /, $_, 2);
-            $nagios_ignore{"$hostname $nagioscheck"} = 1;
-        }
-        close $fh;
-    }
-    generate_nagios_config();
-} else {
-    print_list();
-}
-exit 0;
-
-sub handle_host {
-    my $hostid = shift;
-    my $address = get_dns_address($hostid);
-    $hostnames{$address} = $hostid;
-}
-
-sub print_list {
-    for my $hostname (sort keys %hostnames) {
-        print "$hostname\n";
-    }
-}
-
-sub get_localhost_hostid {
-    my ($fh, $filename) = tempfile();
-    `/sbin/ifconfig -a > $filename`;
-    my $localhost_hostid = get_unique_ether_id($filename);
-    unlink $filename;
-    return $localhost_hostid;
-}
-
-# Get an IP address, try to resolve it in DNS , and return the IP
-# address if no DNS reverse entry was found.
-sub get_dnsnameorip {
-    my $ipaddr = shift;
-    my $resolved;
-    $resolved = gethostbyaddr(inet_aton($ipaddr), AF_INET);
-    return $resolved || $ipaddr;
-}
-
-sub is_munin_client {
-    my $hostid = shift;
-    return is_pkg_installed($hostid, "munin-node");
-}
-
-sub is_nagios_client {
-    my $hostid = shift;
-    return is_pkg_installed($hostid, "nagios-nrpe-server") ||
-        is_pkg_installed($hostid, "nagios-text") ||
-        is_pkg_installed($hostid, "nagios2") ||
-        is_pkg_installed($hostid, "nagios3");
-}
-
-sub print_munin_list {
-    for my $hostname (sort keys %hostnames) {
-        next unless (is_munin_client($hostnames{$hostname}));
-
-    # Using hostname as address, to avoid hardcoding IP addresses in
-    # the file.  Might be an idea to fetch the IP address from
-    # system/ifconfig-a
-        print <<EOF;
-[$hostname]
-    address $hostname
-    use_node_name yes
-
-EOF
-    }
-}
-
-sub print_ip_hw_list {
-    for my $hostname (sort keys %hostnames) {
-        my $macaddress = get_primary_macaddress($hostnames{$hostname});
-        print "$hostname $macaddress\n";
-    }
-}
-
-sub is_remote_nagios_client {
-    my $hostid = shift;
-    return is_pkg_installed($hostid, "nagios-nrpe-server") &&
-        $server_hostid ne $hostid;
-}
-
-# Return information about the switches connected to a given host, as
-# reported by cdpr (and perhaps lldp in the future?)
-sub get_switch_info {
-    my $hostid = shift;
-    my %switch = ();
-    for my $if (qw(eth0 eth1)) {
-        my $path = get_filepath_current($hostid, "/system/cdpr.$if");
-        my ($id, $addr);
-        if (open(my $fh, $path)) {
-            while (<$fh>) {
-                chomp;
-                if (m/^Device ID$/) {
-                    $id = <$fh>;
-                    chomp $id;
-                    $id =~ s/^\s+value:\s+(\S)\s*/$1/;
-                }
-                if (m/^Addresses$/) {
-                    $addr = <$fh>;
-                    chomp $addr;
-                    $addr =~ s/^\s+value:\s+(\S)\s*/$1/;
-                    $switch{$addr} = $id;
-                }
-            }
-            close($fh);
-        }
-    }
-    return %switch ? %switch : ();
-}
-
-
-sub is_remote_nrpe_config_active {
-    my $hostid = shift;
-
-    my $path = get_filepath_current($hostid, "/nagios/sitesummary-nrpe.cfg");
-    if (open(my $fh, $path)) {
-        while (<$fh>) {
-            if (m/^dont_blame_nrpe=1$/) {
-                close($fh);
-                return "args";
-            }
-        }
-        close($fh);
-        return "noargs";
-    }
-    return undef;
-}
-
-
-sub print_nagios_service_check {
-    my ($remote, $hostname, $description, $check, $check_args) = @_;
-    my $template = "server-service";
-
-    return if exists $nagios_ignore{"$hostname $description"};
-    my $cmd;
-    if ($remote) {
-        $cmd = "check_nrpe!$check";
-        if (defined $check_args) {
-            $check_args =~ s/!/ /g;
-            $cmd .= " -a $check_args";
-        }
-    } else {
-        $cmd = "$check";
-        $cmd .= "!$check_args" if defined $check_args;
-    }
-    print <<EOF;
-define service {
-        use                 $template;
-        host_name           $hostname
-        service_description $description
-        check_command       $cmd
-}
-EOF
-}
-
-sub nagios_hostgroup_namewash {
-    my $name = shift;
-    $name =~ s/[^0-9a-zA-Z_-]+/-/g; # Avoid illegal characteres
-    return $name;
-}
-
-sub print_nagios_hostgroup {
-    my ($name, $alias) = @_;
-
-    print <<EOF;
-define hostgroup {
-        hostgroup_name      $name
-EOF
-    print "        alias           $alias\n" if $alias;
-    print "}\n";
-}
-
-sub print_nagios_host_check {
-    my ($template, $hostname, $address, $parent, @hostgroups) = @_;
-    $template = $template || "server-host";
-    print <<EOF;
-##################### $hostname #######################
-define host {
-        use                 $template
-        host_name           $hostname
-        address             $address
-EOF
-    print "        parents             $parent\n" if ($parent);
-    if (@hostgroups) {
-        print "        hostgroups          " . join(",", @hostgroups), "\n";
-    }
-    print "}\n";
-}
-
-sub generate_nagios_config {
-    my %hosts;
-    my %hostgroup;
-    for my $hostname (sort keys %hostnames) {
-        my @groups = ();
-        my $hostid = $hostnames{$hostname};
-
-        my $address = get_dns_address($hostid);
-        my $localhostname = get_localhostname($hostid);
-
-        unless (defined $address && defined $localhostname) {
-            print "# Skipping ID $hostid without hostname and address\n";
-            next;
-        }
-
-        my $redirect = "";
-        my $nagiosclient = is_nagios_client($hostid);
-        my $remote = is_remote_nagios_client($hostid);
-        my $nrpestatus = is_remote_nrpe_config_active($hostid);
-
-        # Only check laptops that have the nagios tools installed
-        if (is_laptop($hostid) && ! $remote && ! $nagiosclient) {
-            print "# Skipping laptop $hostname\n";
-            next;
-        }
-
-        # Only check hosts missing in DNS if they have the nagios
-        # tools installed.
-        if ($hostname =~ m/^[\d\.:]+$/ && ! $remote && ! $nagiosclient) {
-            print "# Skipping host $hostname missing in DNS\n";
-            next;
-        }
-
-        my $site = get_site($hostid) || "none";
-        my $sitegroup = get_sitegroup($hostid);
-        my $debversion = get_debian_ver($hostid);
-        my $eduprofile = get_debian_edu_profile($hostid);
-        my $eduversion = get_debian_edu_ver($hostid);
-        push(@groups, nagios_hostgroup_namewash("site-$site"));
-        if ($sitegroup) {
-            push(@groups, nagios_hostgroup_namewash("site-$site-$sitegroup"));
-        }
-        push(@groups, nagios_hostgroup_namewash("debian-version-$debversion"))
-            if defined $debversion;
-        if ($eduprofile) {
-            $eduprofile =~ s/^"|"$//g; # Remove "" around the values
-            for my $profile (split(/,\s*/, $eduprofile)) {
-                push(@groups,
-                     nagios_hostgroup_namewash("edu-profile-$profile"));
-            }
-        }
-        if ($eduversion) {
-            $eduversion =~ s/^"|"$//g; # Remove "" around the values
-            push(@groups, nagios_hostgroup_namewash("edu-version-$eduversion"));
-        }
-
-        my $hostclass = get_hostclass($hostid) || "none";
-        push(@groups, nagios_hostgroup_namewash("hostclass-$hostclass"));
-
-        for my $group ( @groups ) {
-            $hostgroup{$group} = 1;
-        }
-        my $defaultrouteip = get_default_route($hostid);
-        my $defaultroute;
-        $defaultroute = get_dnsnameorip($defaultrouteip)
-            if defined $defaultroute;
-
-        # Also check default route host
-        if (defined $defaultroute && !exists $hosts{$defaultroute}) {
-            print_nagios_host_check(undef, $defaultroute, $defaultroute,
-                                    undef, "router");
-            $hosts{$defaultroute} = $defaultroute;
-            $hostgroup{"router"} = 1;
-            print_nagios_service_check(0, $defaultroute, "ping",
-                                       "check_ping",
-                                       sprintf("%.1f,%d%%!%.1f,%d%%",
-                                               $npingwarn, $npingwarnp,
-                                               $npingcrit, $npingcritp));
-        }
-
-        my %switch = get_switch_info($hostid);
-        my @parents = ();
-        for my $addr (keys %switch) {
-            $hostgroup{"switch"} = 1;
-            print_nagios_host_check("switch-host", $switch{$addr}, $addr,
-                                    undef, "switch")
-                unless (exists $hosts{$switch{$addr}});
-            $hosts{$switch{$addr}} = $addr;
-            push(@parents, $switch{$addr}) if $remote;
-        }
-
-        print_nagios_host_check(undef, $hostname, $address,
-                                join(",", @parents), @groups)
-            unless (exists $hosts{$hostname});
-        $hosts{$hostname} = $address;
-
-        # first, check ping to see if the other checks should be performed
-        print_nagios_service_check(0, $hostname, "ping",
-                                   "check_ping",
-                                   sprintf("%.1f,%d%%!%.1f,%d%%",
-                                           $npingwarn, $npingwarnp,
-                                           $npingcrit, $npingcritp));
-
-        my %tcpservices =
-        (
-         139  => { name => 'samba',   package => 'samba' },
-         389  => { name => 'ldap',    package => 'slapd' },
-         4949 => { name => 'munin',   package => 'munin-node' },
-         );
-
-        for my $port (sort { $a <=> $b } keys %tcpservices) {
-            next if (exists $tcpservices{$port}->{package} && !
-                     is_pkg_installed($hostid,
-                                      $tcpservices{$port}->{package}));
-            my $servicename = $tcpservices{$port}->{name};
-            print_nagios_service_check(0, $hostname, $servicename,
-                                       "check_tcp", $port);
-        }
-
-        # Check SSH server
-        print_nagios_service_check(0, $hostname, "ssh",
-                                   "check_ssh")
-            if is_pkg_installed($hostid, "openssh-server");
-
-        print_nagios_service_check(0, $hostname, "http",
-                                   "check_http")
-            if (is_pkg_installed($hostid, "apache") ||
-                is_pkg_installed($hostid, "apache2"));
-
-        # Check XFS port only if we can see that it is listening on TCP
-        if (is_pkg_installed($hostid, "xfs")) {
-            my $path = get_filepath_current($hostid, "/system/x11-fs-config");
-            if ( -e $path ) {
-                my $tcp = 1;
-                open (my $fh, "<", $path) || die "unable to read from $path";
-                while (<$fh>) {
-                    chomp;
-                    s/\#.+$//;
-                    $tcp = 0 if m/^no-listen\s*=\s*tcp\s*$/;
-                }
-                close($fh);
-                print_nagios_service_check(0, $hostname, "xfs",
-                                           "check_tcp", 7100)
-                    if ($tcp);
-            }
-        }
-
-        print_nagios_service_check(0, $hostname, "cups queue",
-                                   "check_cups_queue")
-            if (is_pkg_installed($hostid, "cups") &&
-                is_pkg_installed($hostid, "cups-client"));
-
-        # The rest of the checks only work if NRPE is installed and configured
-        next unless ((!$remote && $nagiosclient)
-                     || ($remote && defined $nrpestatus));
-
-        # These work without any argument passing.
-
-        # Check for APT upgrades
-        print_nagios_service_check($remote, $hostname, "apt-updates",
-                                   "check_apt");
-
-        # Check if a kernel reboot is needed
-        print_nagios_service_check($remote, $hostname, "kernel status",
-                                   "check_kernel_status");
-
-        # Detect bad DNS servers
-        print_nagios_service_check($remote, $hostname, "/etc/resolv.conf",
-                                   "check_etc_resolv");
-
-        # Detect hosts entries not matching DNS entries
-        print_nagios_service_check($remote, $hostname, "/etc/hosts",
-                                   "check_etc_hosts");
-
-        # Detect a shutdown in progress
-        print_nagios_service_check($remote, $hostname, "shutdown status",
-                                   "check_shutdown");
-
-
-# The check_dhcp test do not seem to work.  Check for the process existence.
-#        print_nagios_service_check($remote, $hostname, "dhcp",
-#                                   "check_dhcp")
-#            if is_pkg_installed($hostid, "dhcp3-server");
-        print_nagios_service_check($remote, $hostname, "process - dhcpd3",
-                                   "check_procs_dhcpd3", "1:15!1:25")
-            if (is_pkg_installed($hostid, "dhcp3-server"));
-        print_nagios_service_check($remote, $hostname, "process - dhcpd",
-                                   "check_procs_dhcpd", "1:15!1:25")
-            if (is_pkg_installed($hostid, "isc-dhcp-server"));
-
-        # Check DNS server
-        print_nagios_service_check($remote, $hostname, "dns",
-                                   "check_dns", $localhostname)
-            if (is_pkg_installed($hostid, "pdns-server") ||
-                is_pkg_installed($hostid, "bind9"));
-
-        # Check FTP server
-        print_nagios_service_check($remote, $hostname, "ftp",
-                                   "check_ftp")
-            if is_pkg_installed($hostid, "proftpd");
-
-        # Check IMAPS server
-        print_nagios_service_check($remote, $hostname, "imaps",
-                                   "check_imaps")
-            if is_pkg_installed($hostid, "courier-imap-ssl");
-
-        # check software raid status if any is active
-        if ( -e get_filepath_current($hostid, "/system/mdstat")) {
-            my $fh;
-            if (open($fh, get_filepath_current($hostid, "/system/mdstat")) &&
-                grep(/^md\d+ :/, <$fh>)) {
-                print_nagios_service_check($remote, $hostname, "sw-raid",
-                                           "check_linux_raid");
-            }
-            close($fh);
-        }
-
-        # Check NFS server
-        print_nagios_service_check($remote, $hostname, "nfs",
-                                   "check_nfs")
-            if is_pkg_installed($hostid, "nfs-kernel-server");
-
-        print_nagios_service_check($remote, $hostname, "smtp",
-                                   "check_smtp")
-            if (is_pkg_installed($hostid, "exim4-daemon-heavy") ||
-                is_pkg_installed($hostid, "exim4-daemon-light"));
-
-        # These need argument passing (as in dont_blame_nrpe=1)
-        next unless ((!$remote && $nagiosclient)
-                     || ($remote && "args" eq $nrpestatus));
-
-        print_nagios_service_check($remote, $hostname, "swap",
-                                   "check_swap", "10%!5%");
-        my $proclimit = "500!1000";
-        # Raise process count limits for thin clients, as
-        # lots of users can log into these machines and run their
-        # desktops from there.
-        if (is_pkg_installed($hostid, "ltsp-server")) {
-            $proclimit = "1500!2500";
-        }
-        print_nagios_service_check($remote, $hostname, "processes total",
-                                   "check_procs", $proclimit);
-        print_nagios_service_check($remote, $hostname, "processes zombie",
-                                   "check_procs_zombie", "20!100");
-        # Check unix load
-        print_nagios_service_check($remote, $hostname, "load as in top",
-                                   "check_load", "75,75,75!90,90,90");
-
-        # check disk free space
-        my $path = get_filepath_current($hostid, "/system/procmounts");
-        if ( -e $path ) {
-            open (F, "<", $path) || die "unable to read from $path";
-            my %checked;
-            while (<F>) {
-                chomp;
-                my ($device, $partition, $fs, $opts) = split;
-                next if (exists $checked{$device});
-                # Avoid system file systems and non-local file systems.
-                next if ($fs eq "devpts" ||
-                         $fs eq "anon_inodefs" ||
-                         $fs eq "autofs" ||
-                         $fs eq "bdev" ||
-                         $fs eq "binfmt_misc" ||
-                         $fs eq "cgroup" ||
-                         $fs eq "cifs" ||
-                         $fs eq "cpuset" ||
-                         $fs eq "debugfs" ||
-                         $fs eq "fuse.ltspfs" ||
-                         $fs eq "fusectl" ||
-                         $fs eq "hugetlbfs" ||
-                         $fs eq "inotifyfs" ||
-                         $fs eq "iso9660" ||
-                         $fs eq "mqueue" ||
-                         $fs eq "nfs" ||
-                         $fs eq "nfs4" ||
-                         $fs eq "nfsd" ||
-                         $fs eq "oprofilefs" ||
-                         $fs eq "pipefs" ||
-                         $fs eq "proc" ||
-                         $fs eq "ramfs" ||
-                         $fs eq "rootfs" ||
-                         $fs eq "rpc_pipefs" ||
-                         $fs eq "securityfs" ||
-                         $fs eq "smb" ||
-                         $fs eq "sockfs" ||
-                         $fs eq "sysfs" ||
-                         $fs eq "tmpfs" ||
-                         $fs eq "devtmpfs" ||
-                         $fs eq "xenfs" ||
-                         $fs eq "usbfs");
-
-                $checked{$device} = 1;
-                my $warn = 10;
-                my $crit = 5;
-                print_nagios_service_check($remote, $hostname,
-                                           "disk $partition",
-                                           "check_disk",
-                                           "$warn%!$crit%!$partition");
-            }
-        }
-
-        # check munin if munin-node is installed
-        # check hw raid status
-        # check hardware status
-
-        # check LDAP and LDAPS using the protocol, module present in
-        # nagios-plugins-basic
-        print_nagios_service_check(0, $hostname, "ldap root DSE",
-                                   "check_ldap_root")
-            if is_pkg_installed($hostid, "slapd");
-
-        # Check Squid web proxy
-        print_nagios_service_check($remote, $hostname, "squid",
-                                   "check_squid", "3128!http://www")
-            if is_pkg_installed($hostid, "squid");
-
-        print_nagios_service_check($remote, $hostname, "ntp time server",
-                                   "check_ntp", "-H!localhost")
-            if (is_pkg_installed($hostid, "ntp") ||
-                is_pkg_installed($hostid, "ntp-server"));
-
-        # Detect if cron no longer is running
-        print_nagios_service_check($remote, $hostname, "process - cron",
-                                   "check_procs_cron", "1:15!1:25")
-            if (is_pkg_installed($hostid, "cron"));
-    }
-
-    if (%hostgroup) {
-        print <<EOF;
-##################### host groups #######################
-EOF
-        for my $name (sort keys %hostgroup) {
-            print_nagios_hostgroup($name);
-        }
-    }
-}

Deleted: trunk/src/sitesummary/sitesummary-update-munin
===================================================================
--- trunk/src/sitesummary/sitesummary-update-munin	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/sitesummary-update-munin	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,82 +0,0 @@
-#!/bin/sh
-#
-# Author: Petter Reinholdtsen
-
-set -e
-
-nodes=/usr/sbin/sitesummary-nodes
-muninopts=""
-
-# Modify this in collector.cfg to /etc/munin/ to automatically replace
-# the default munin configuration.
-MUNINDIR=/var/lib/sitesummary
-
-if [ -d /var/cache/munin/www ] ; then
-    # Used since munin version 1.4.0-1
-    muninhtmldir="/var/cache/munin/www"
-else
-    muninhtmldir="/var/www/munin"
-fi
-# Based on of active config from munin version 1.2.5-1
-munindbdir=/var/lib/munin
-muninlogdir=/var/log/munin
-muninrundir=/var/run/munin
-munintmpldir=/etc/munin/templates
-
-[ -f /etc/sitesummary/collector.cfg ] && . /etc/sitesummary/collector.cfg
-
-# The storage area is not configurable, because too many scripts have
-# it hardcoded
-entriesdir=/var/lib/sitesummary/entries
-
-generate_munin_config() {
-    # Generate munin config.  Edit /etc/cron.d/munin to enable it.
-    # Add -c /var/lib/sitesummary/sitesummary-munin.conf to the calls
-    # to the munin scripts, or change MUNINDIR above.
-    (
-	if [ -f $MUNINDIR/munin.conf.pre ] ; then
-	    cat $MUNINDIR/munin.conf.pre
-	else
-	    cat <<EOF
-# Munin server configuration generated from cron using sitesummary
-# data by $0
-# Do not edit, it will be overwritten. 
-# Edit $MUNINDIR/munin.conf.pre and
-# $MUNINDIR/munin.conf.post instead.
-
-dbdir	$munindbdir
-htmldir	$muninhtmldir
-logdir	$muninlogdir
-rundir	$muninrundir
-tmpldir	$munintmpldir
-
-EOF
-
-            # Munin supports the includedir statement since Squeeze
-            muninver=$(dpkg -l munin|grep munin|awk '{print $3}')
-            if dpkg --compare-versions "1.4.5" le "$muninver" ; then
-	        cat <<EOF
-# (Exactly one) directory to include all files from.
-#
-includedir /etc/munin/munin-conf.d
-
-EOF
-            fi
-	fi
-
-	$nodes -m $muninopts
-
-	[ -f $MUNINDIR/munin.conf.post ] && cat $MUNINDIR/munin.conf.post
-
-        # Make sure the subshell return true to trigger the mv below.
-	true
-    ) > $MUNINDIR/munin.conf.new && \
-	chown root:root $MUNINDIR/munin.conf.new && \
-	chmod a+r $MUNINDIR/munin.conf.new && \
-	mv $MUNINDIR/munin.conf.new $MUNINDIR/munin.conf
-}
-
-# Only enable if munin and sitesummary is installed.
-if [ -f /etc/munin/munin.conf ] && [ -x /usr/sbin/sitesummary-nodes ]; then
-    generate_munin_config
-fi

Deleted: trunk/src/sitesummary/sitesummary-update-nagios
===================================================================
--- trunk/src/sitesummary/sitesummary-update-nagios	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/sitesummary-update-nagios	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,65 +0,0 @@
-#!/bin/sh
-#
-# Author: Petter Reinholdtsen
-
-set -e
-
-nodes=/usr/sbin/sitesummary-nodes
-nagiosopts=""
-
-# Specifies where to save the automatically generated nagios
-# configuration.  Add NAGIOSCFG="/etc/nagios3/sitesummary.cfg" to
-# /etc/default/nagios3 to get Nagios to use this automatically
-# generated configuration
-NAGIOSDIR=/var/lib/sitesummary
-
-if [ -f /etc/sitesummary/collector.cfg ] ; then
-   . /etc/sitesummary/collector.cfg
-fi
-
-# The storage area is not configurable, because too many scripts have
-# it hardcoded
-entriesdir=/var/lib/sitesummary/entries
-
-generate_nagios_config() {
-    (
-	$nodes -n $nagiosopts
-
-	if [ -f $NAGIOSDIR/nagios-generated.cfg.post ] ; then
-	    cat $NAGIOSDIR/nagios-generated.cfg.post
-	fi
-
-	true
-    ) > $NAGIOSDIR/nagios-generated.cfg.new && \
-        chmod a+r $NAGIOSDIR/nagios-generated.cfg.new
-    if [ ! -s $NAGIOSDIR/nagios-generated.cfg.new ] || \
-       cmp -s $NAGIOSDIR/nagios-generated.cfg.new \
-              $NAGIOSDIR/nagios-generated.cfg
-    then
-	rm $NAGIOSDIR/nagios-generated.cfg.new
-	false
-    else
-        mv $NAGIOSDIR/nagios-generated.cfg.new $NAGIOSDIR/nagios-generated.cfg
-	true
-    fi
-}
-
-# Only enable if nagios v3 and sitesummary is installed.
-if [ -f /etc/init.d/nagios3 ] && [ -x $nodes ]; then
-    # Only reload nagios if the configuration changed
-    if generate_nagios_config ; then
-    # subshell to avoid passing all variables from
-    # /etc/default/nagios3 to other parts of this script
-    (
-	if [ -r /etc/default/nagios3 ] ; then
-	    . /etc/default/nagios3
-	fi
-	# Only reload nagios if the sitesummary config is the active
-	# one and nagios3 is currently running.
-	if [ /etc/nagios3/sitesummary.cfg = "$NAGIOSCFG" ] && \
-	    invoke-rc.d nagios3 status >/dev/null ; then
-	    invoke-rc.d nagios3 reload >/dev/null
-	fi
-    )
-    fi
-fi

Deleted: trunk/src/sitesummary/sitesummary-upload
===================================================================
--- trunk/src/sitesummary/sitesummary-upload	2014-03-31 18:47:02 UTC (rev 83255)
+++ trunk/src/sitesummary/sitesummary-upload	2014-03-31 19:57:48 UTC (rev 83256)
@@ -1,102 +0,0 @@
-#!/usr/bin/perl -w
-# Written by Bill Allombert for the Debian popularity-contest project.
-# This file is placed in the public domain.
-# Rewritten for sitesummary by Petter Reinholdtsen
-
-use strict;
-use IO::Socket;
-use Getopt::Std;
-use File::Basename;
-
-my %opts;
-getopts("du:f:", \%opts);
-
-sub usage {
-    print <<"EOF";
-Usage: $0 [-Cd] [-u <url>] [-f <file>]
-  -d        enable debugging
-  -u <url>  submit to the given URL (default localhost)
-  -f <file> read popcon report from file (default stdin)
-EOF
-}
-
-my ($submiturl)  = $opts{'u'} || "http://localhost/cgi-bin/sitesummary-collector.cgi";
-my ($file)  = $opts{'f'} || "-";
-
-my ($host) = $submiturl =~ m%http://([^/]+)%;
-
-print "Unable to parse url\n" if ($opts{'d'} && ! $host);
-
-# Configure the proxy:
-my ($http_proxy,$proxy,$port,$remote);
-
-$http_proxy=$ENV{'http_proxy'};
-if (defined($http_proxy) && length($http_proxy))
-{
-  $http_proxy =~ m{http://([^:]*)(?::([0-9]+))?} 
-        or die ("unrecognized http_proxy");
-  $proxy=$1; $port=$2;
-}
-  
-$proxy=$host unless (defined($proxy));
-$port=80 unless (defined($port));
-
-# Compress the report:
-my ($str,$len);
-my $encoding;
-open FILE, "< $file" or die "reading from '$file'";
-$encoding = "identity";
-$str .= $_ while(<FILE>); 
-close(FILE);
-$len = length($str);
-
-# 30 second timeout on http connections
-$SIG{ALRM} = sub { die "timeout in sitesummary-upload\n" };
-alarm(30);
-
-# Connect to server
-$remote = IO::Socket::INET->new(Proto => "tcp", PeerAddr => $proxy, 
-                                                PeerPort => $port); 
-unless ($remote) { die "cannot connect to $proxy:$port" }
-
-my $boundary = "----------ThIs_Is_tHe_bouNdaRY_\$";
-
-my $basefile = basename($file);
-
-#Content-Length: $len
-# text/plain; charset=utf-8
-my $ORS = "\r\n"; # Use DOS line endings to make HTTP happy
-my $form;
-$form .= "--${boundary}$ORS";
-$form .= "Content-Disposition: form-data; name=\"sitesummary\"; filename=\"$basefile\"$ORS";
-$form .= "Content-Encoding: $encoding$ORS";
-$form .= "Content-Type: application/octet-stream$ORS$ORS";
-$form .= "$str$ORS";
-$form .= "--${boundary}--$ORS";
-$form .= "$ORS";
-
-my $formlen = length($form);
-
-#Send data
-print $remote <<"EOF";
-POST $submiturl HTTP/1.1
-User-Agent: sitesummary-upload
-Host: $host
-content-type: multipart/form-data; boundary=$boundary
-content-length: $formlen
-
-$form
-EOF
-
-#Get answer
-my($answer)="";
-while(<$remote>)
-{
-  $answer.=$_;
-  m/SITESUMMARY HTTP-POST OK/ and last;
-}
-close ($remote);
-#Check answer
-my $status = ($answer =~ m/SITESUMMARY HTTP-POST OK/) ? 0 : 1;
-print "Failed to upload, answer '$answer'\n" if $status && $opts{'d'};
-exit $status;




More information about the debian-edu-commits mailing list