debian/0000755000000000000000000000000012244477337007203 5ustar debian/worker.conf0000644000000000000000000000025512244477232011357 0ustar # Example configuration file for the mod gearman worker # server=localhost key=very-secret-password hosts=yes services=yes p1_file=/usr/share/mod-gearman/mod_gearman_p1.pl debian/watch0000644000000000000000000000030412244477232010223 0ustar version=3 opts=\ filenamemangle=s{v((?:\d+\.)+\d+)/$}{mod_gearman-$1.tar.gz},\ downloadurlmangle=s{v((?:\d\.)+\d+)/$}{v$1/src/mod_gearman-$1.tar.gz} \ http://mod-gearman.org/download/ v([\d\.]+)/ debian/tests/0000755000000000000000000000000012244477232010337 5ustar debian/tests/sharness.sh0000644000000000000000000004411112244477232012522 0ustar #!/bin/sh # # Copyright (c) 2011-2012 Mathias Lafeldt # Copyright (c) 2005-2012 Git project # Copyright (c) 2005-2012 Junio C Hamano # # 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, see http://www.gnu.org/licenses/ . # Public: Current version of Sharness. SHARNESS_VERSION="0.3.0" export SHARNESS_VERSION # Public: The file extension for tests. By default, it is set to "t". : ${SHARNESS_TEST_EXTENSION:=t} export SHARNESS_TEST_EXTENSION # Keep the original TERM for say_color ORIGINAL_TERM=$TERM # For repeatability, reset the environment to a known state. LANG=C LC_ALL=C PAGER=cat TZ=UTC TERM=dumb EDITOR=: export LANG LC_ALL PAGER TZ TERM EDITOR unset VISUAL CDPATH GREP_OPTIONS # Line feed LF=' ' [ "x$ORIGINAL_TERM" != "xdumb" ] && ( TERM=$ORIGINAL_TERM && export TERM && [ -t 1 ] && tput bold >/dev/null 2>&1 && tput setaf 1 >/dev/null 2>&1 && tput sgr0 >/dev/null 2>&1 ) && color=t while test "$#" -ne 0; do case "$1" in -d|--d|--de|--deb|--debu|--debug) debug=t; shift ;; -i|--i|--im|--imm|--imme|--immed|--immedi|--immedia|--immediat|--immediate) immediate=t; shift ;; -l|--l|--lo|--lon|--long|--long-|--long-t|--long-te|--long-tes|--long-test|--long-tests) TEST_LONG=t; export TEST_LONG; shift ;; -h|--h|--he|--hel|--help) help=t; shift ;; -v|--v|--ve|--ver|--verb|--verbo|--verbos|--verbose) verbose=t; shift ;; -q|--q|--qu|--qui|--quie|--quiet) # Ignore --quiet under a TAP::Harness. Saying how many tests # passed without the ok/not ok details is always an error. test -z "$HARNESS_ACTIVE" && quiet=t; shift ;; --no-color) color=; shift ;; --root=*) root=$(expr "z$1" : 'z[^=]*=\(.*\)') shift ;; *) echo "error: unknown test option '$1'" >&2; exit 1 ;; esac done if test -n "$color"; then say_color() { ( TERM=$ORIGINAL_TERM export TERM case "$1" in error) tput bold; tput setaf 1;; # bold red skip) tput setaf 4;; # blue warn) tput setaf 3;; # brown/yellow pass) tput setaf 2;; # green info) tput setaf 6;; # cyan *) test -n "$quiet" && return;; esac shift printf "%s" "$*" tput sgr0 echo ) } else say_color() { test -z "$1" && test -n "$quiet" && return shift printf "%s\n" "$*" } fi error() { say_color error "error: $*" EXIT_OK=t exit 1 } say() { say_color info "$*" } test -n "$test_description" || error "Test script did not set test_description." if test "$help" = "t"; then echo "$test_description" exit 0 fi exec 5>&1 exec 6<&0 if test "$verbose" = "t"; then exec 4>&2 3>&1 else exec 4>/dev/null 3>/dev/null fi test_failure=0 test_count=0 test_fixed=0 test_broken=0 test_success=0 die() { code=$? if test -n "$EXIT_OK"; then exit $code else echo >&5 "FATAL: Unexpected exit with code $code" exit 1 fi } EXIT_OK= trap 'die' EXIT # Public: Define that a test prerequisite is available. # # The prerequisite can later be checked explicitly using test_have_prereq or # implicitly by specifying the prerequisite name in calls to test_expect_success # or test_expect_failure. # # $1 - Name of prerequiste (a simple word, in all capital letters by convention) # # Examples # # # Set PYTHON prerequisite if interpreter is available. # command -v python >/dev/null && test_set_prereq PYTHON # # # Set prerequisite depending on some variable. # test -z "$NO_GETTEXT" && test_set_prereq GETTEXT # # Returns nothing. test_set_prereq() { satisfied_prereq="$satisfied_prereq$1 " } satisfied_prereq=" " # Public: Check if one or more test prerequisites are defined. # # The prerequisites must have previously been set with test_set_prereq. # The most common use of this is to skip all the tests if some essential # prerequisite is missing. # # $1 - Comma-separated list of test prerequisites. # # Examples # # # Skip all remaining tests if prerequisite is not set. # if ! test_have_prereq PERL; then # skip_all='skipping perl interface tests, perl not available' # test_done # fi # # Returns 0 if all prerequisites are defined or 1 otherwise. test_have_prereq() { # prerequisites can be concatenated with ',' save_IFS=$IFS IFS=, set -- $* IFS=$save_IFS total_prereq=0 ok_prereq=0 missing_prereq= for prerequisite; do case "$prerequisite" in !*) negative_prereq=t prerequisite=${prerequisite#!} ;; *) negative_prereq= esac total_prereq=$(($total_prereq + 1)) case "$satisfied_prereq" in *" $prerequisite "*) satisfied_this_prereq=t ;; *) satisfied_this_prereq= esac case "$satisfied_this_prereq,$negative_prereq" in t,|,t) ok_prereq=$(($ok_prereq + 1)) ;; *) # Keep a list of missing prerequisites; restore # the negative marker if necessary. prerequisite=${negative_prereq:+!}$prerequisite if test -z "$missing_prereq"; then missing_prereq=$prerequisite else missing_prereq="$prerequisite,$missing_prereq" fi esac done test $total_prereq = $ok_prereq } # You are not expected to call test_ok_ and test_failure_ directly, use # the text_expect_* functions instead. test_ok_() { test_success=$(($test_success + 1)) say_color "" "ok $test_count - $@" } test_failure_() { test_failure=$(($test_failure + 1)) say_color error "not ok $test_count - $1" shift echo "$@" | sed -e 's/^/# /' test "$immediate" = "" || { EXIT_OK=t; exit 1; } } test_known_broken_ok_() { test_fixed=$(($test_fixed + 1)) say_color error "ok $test_count - $@ # TODO known breakage vanished" } test_known_broken_failure_() { test_broken=$(($test_broken + 1)) say_color warn "not ok $test_count - $@ # TODO known breakage" } # Public: Execute commands in debug mode. # # Takes a single argument and evaluates it only when the test script is started # with --debug. This is primarily meant for use during the development of test # scripts. # # $1 - Commands to be executed. # # Examples # # test_debug "cat some_log_file" # # Returns the exit code of the last command executed in debug mode or 0 # otherwise. test_debug() { test "$debug" = "" || eval "$1" } test_eval_() { # This is a separate function because some tests use # "return" to end a test_expect_success block early. eval &3 2>&4 "$*" } test_run_() { test_cleanup=: expecting_failure=$2 test_eval_ "$1" eval_ret=$? if test -z "$immediate" || test $eval_ret = 0 || test -n "$expecting_failure"; then test_eval_ "$test_cleanup" fi if test "$verbose" = "t" && test -n "$HARNESS_ACTIVE"; then echo "" fi return "$eval_ret" } test_skip_() { test_count=$(($test_count + 1)) to_skip= for skp in $SKIP_TESTS; do case $this_test.$test_count in $skp) to_skip=t break esac done if test -z "$to_skip" && test -n "$test_prereq" && ! test_have_prereq "$test_prereq"; then to_skip=t fi case "$to_skip" in t) of_prereq= if test "$missing_prereq" != "$test_prereq"; then of_prereq=" of $test_prereq" fi say_color skip >&3 "skipping test: $@" say_color skip "ok $test_count # skip $1 (missing $missing_prereq${of_prereq})" : true ;; *) false ;; esac } # Public: Run test commands and expect them to succeed. # # When the test passed, an "ok" message is printed and the number of successful # tests is incremented. When it failed, a "not ok" message is printed and the # number of failed tests is incremented. # # With --immediate, exit test immediately upon the first failed test. # # Usually takes two arguments: # $1 - Test description # $2 - Commands to be executed. # # With three arguments, the first will be taken to be a prerequisite: # $1 - Comma-separated list of test prerequisites. The test will be skipped if # not all of the given prerequisites are set. To negate a prerequisite, # put a "!" in front of it. # $2 - Test description # $3 - Commands to be executed. # # Examples # # test_expect_success \ # 'git-write-tree should be able to write an empty tree.' \ # 'tree=$(git-write-tree)' # # # Test depending on one prerequisite. # test_expect_success TTY 'git --paginate rev-list uses a pager' \ # ' ... ' # # # Multiple prerequisites are separated by a comma. # test_expect_success PERL,PYTHON 'yo dawg' \ # ' test $(perl -E 'print eval "1 +" . qx[python -c "print 2"]') == "4" ' # # Returns nothing. test_expect_success() { test "$#" = 3 && { test_prereq=$1; shift; } || test_prereq= test "$#" = 2 || error "bug in the test script: not 2 or 3 parameters to test_expect_success" export test_prereq if ! test_skip_ "$@"; then say >&3 "expecting success: $2" if test_run_ "$2"; then test_ok_ "$1" else test_failure_ "$@" fi fi echo >&3 "" } # Public: Run test commands and expect them to fail. Used to demonstrate a known # breakage. # # This is NOT the opposite of test_expect_success, but rather used to mark a # test that demonstrates a known breakage. # # When the test passed, an "ok" message is printed and the number of fixed tests # is incremented. When it failed, a "not ok" message is printed and the number # of tests still broken is incremented. # # Failures from these tests won't cause --immediate to stop. # # Usually takes two arguments: # $1 - Test description # $2 - Commands to be executed. # # With three arguments, the first will be taken to be a prerequisite: # $1 - Comma-separated list of test prerequisites. The test will be skipped if # not all of the given prerequisites are set. To negate a prerequisite, # put a "!" in front of it. # $2 - Test description # $3 - Commands to be executed. # # Returns nothing. test_expect_failure() { test "$#" = 3 && { test_prereq=$1; shift; } || test_prereq= test "$#" = 2 || error "bug in the test script: not 2 or 3 parameters to test_expect_failure" export test_prereq if ! test_skip_ "$@"; then say >&3 "checking known breakage: $2" if test_run_ "$2" expecting_failure; then test_known_broken_ok_ "$1" else test_known_broken_failure_ "$1" fi fi echo >&3 "" } # Public: Run command and ensure that it fails in a controlled way. # # Use it instead of "! ". For example, when dies due to a # segfault, test_must_fail diagnoses it as an error, while "! " would # mistakenly be treated as just another expected failure. # # This is one of the prefix functions to be used inside test_expect_success or # test_expect_failure. # # $1.. - Command to be executed. # # Examples # # test_expect_success 'complain and die' ' # do something && # do something else && # test_must_fail git checkout ../outerspace # ' # # Returns 1 if the command succeeded (exit code 0). # Returns 1 if the command died by signal (exit codes 130-192) # Returns 1 if the command could not be found (exit code 127). # Returns 0 otherwise. test_must_fail() { "$@" exit_code=$? if test $exit_code = 0; then echo >&2 "test_must_fail: command succeeded: $*" return 1 elif test $exit_code -gt 129 -a $exit_code -le 192; then echo >&2 "test_must_fail: died by signal: $*" return 1 elif test $exit_code = 127; then echo >&2 "test_must_fail: command not found: $*" return 1 fi return 0 } # Public: Run command and ensure that it succeeds or fails in a controlled way. # # Similar to test_must_fail, but tolerates success too. Use it instead of # " || :" to catch failures caused by a segfault, for instance. # # This is one of the prefix functions to be used inside test_expect_success or # test_expect_failure. # # $1.. - Command to be executed. # # Examples # # test_expect_success 'some command works without configuration' ' # test_might_fail git config --unset all.configuration && # do something # ' # # Returns 1 if the command died by signal (exit codes 130-192) # Returns 1 if the command could not be found (exit code 127). # Returns 0 otherwise. test_might_fail() { "$@" exit_code=$? if test $exit_code -gt 129 -a $exit_code -le 192; then echo >&2 "test_might_fail: died by signal: $*" return 1 elif test $exit_code = 127; then echo >&2 "test_might_fail: command not found: $*" return 1 fi return 0 } # Public: Run command and ensure it exits with a given exit code. # # This is one of the prefix functions to be used inside test_expect_success or # test_expect_failure. # # $1 - Expected exit code. # $2.. - Command to be executed. # # Examples # # test_expect_success 'Merge with d/f conflicts' ' # test_expect_code 1 git merge "merge msg" B master # ' # # Returns 0 if the expected exit code is returned or 1 otherwise. test_expect_code() { want_code=$1 shift "$@" exit_code=$? if test $exit_code = $want_code; then return 0 fi echo >&2 "test_expect_code: command exited with $exit_code, we wanted $want_code $*" return 1 } # Public: Compare two files to see if expected output matches actual output. # # The TEST_CMP variable defines the command used for the comparision; it # defaults to "diff -u". Only when the test script was started with --verbose, # will the command's output, the diff, be printed to the standard output. # # This is one of the prefix functions to be used inside test_expect_success or # test_expect_failure. # # $1 - Path to file with expected output. # $2 - Path to file with actual output. # # Examples # # test_expect_success 'foo works' ' # echo expected >expected && # foo >actual && # test_cmp expected actual # ' # # Returns the exit code of the command set by TEST_CMP. test_cmp() { ${TEST_CMP:-diff -u} "$@" } # Public: Schedule cleanup commands to be run unconditionally at the end of a # test. # # If some cleanup command fails, the test will not pass. With --immediate, no # cleanup is done to help diagnose what went wrong. # # This is one of the prefix functions to be used inside test_expect_success or # test_expect_failure. # # $1.. - Commands to prepend to the list of cleanup commands. # # Examples # # test_expect_success 'test core.capslock' ' # git config core.capslock true && # test_when_finished "git config --unset core.capslock" && # do_something # ' # # Returns the exit code of the last cleanup command executed. test_when_finished() { test_cleanup="{ $* } && (exit \"\$eval_ret\"); eval_ret=\$?; $test_cleanup" } # Public: Summarize test results and exit with an appropriate error code. # # Must be called at the end of each test script. # # Can also be used to stop tests early and skip all remaining tests. For this, # set skip_all to a string explaining why the tests were skipped before calling # test_done. # # Examples # # # Each test script must call test_done at the end. # test_done # # # Skip all remaining tests if prerequisite is not set. # if ! test_have_prereq PERL; then # skip_all='skipping perl interface tests, perl not available' # test_done # fi # # Returns 0 if all tests passed or 1 if there was a failure. test_done() { EXIT_OK=t if test -z "$HARNESS_ACTIVE"; then test_results_dir="$SHARNESS_TEST_DIRECTORY/test-results" mkdir -p "$test_results_dir" test_results_path="$test_results_dir/${SHARNESS_TEST_FILE%.$SHARNESS_TEST_EXTENSION}.$$.counts" cat >>"$test_results_path" <<-EOF total $test_count success $test_success fixed $test_fixed broken $test_broken failed $test_failure EOF fi if test "$test_fixed" != 0; then say_color error "# $test_fixed known breakage(s) vanished; please update test(s)" fi if test "$test_broken" != 0; then say_color warn "# still have $test_broken known breakage(s)" fi if test "$test_broken" != 0 || test "$test_fixed" != 0; then test_remaining=$(( $test_count - $test_broken - $test_fixed )) msg="remaining $test_remaining test(s)" else test_remaining=$test_count msg="$test_count test(s)" fi case "$test_failure" in 0) # Maybe print SKIP message if test -n "$skip_all" && test $test_count -gt 0; then error "Can't use skip_all after running some tests" fi [ -z "$skip_all" ] || skip_all=" # SKIP $skip_all" if test $test_remaining -gt 0; then say_color pass "# passed all $msg" fi say "1..$test_count$skip_all" test -d "$remove_trash" && cd "$(dirname "$remove_trash")" && rm -rf "$(basename "$remove_trash")" exit 0 ;; *) say_color error "# failed $test_failure among $msg" say "1..$test_count" exit 1 ;; esac } # Public: Root directory containing tests. Tests can override this variable, # e.g. for testing Sharness itself. : ${SHARNESS_TEST_DIRECTORY:=$(pwd)} export SHARNESS_TEST_DIRECTORY # Public: Build directory that will be added to PATH. By default, it is set to # the parent directory of SHARNESS_TEST_DIRECTORY. : ${SHARNESS_BUILD_DIRECTORY:="$SHARNESS_TEST_DIRECTORY/.."} PATH="$SHARNESS_BUILD_DIRECTORY:$PATH" export PATH SHARNESS_BUILD_DIRECTORY # Public: Path to test script currently executed. SHARNESS_TEST_FILE="$0" export SHARNESS_TEST_FILE # Prepare test area. test_dir="trash directory.$(basename "$SHARNESS_TEST_FILE" ".$SHARNESS_TEST_EXTENSION")" test -n "$root" && test_dir="$root/$test_dir" case "$test_dir" in /*) SHARNESS_TRASH_DIRECTORY="$test_dir" ;; *) SHARNESS_TRASH_DIRECTORY="$SHARNESS_TEST_DIRECTORY/$test_dir" ;; esac test "$debug" = "t" || remove_trash="$SHARNESS_TRASH_DIRECTORY" rm -rf "$test_dir" || { EXIT_OK=t echo >&5 "FATAL: Cannot prepare test area" exit 1 } # Public: Empty trash directory, the test area, provided for each test. The HOME # variable is set to that directory too. export SHARNESS_TRASH_DIRECTORY HOME="$SHARNESS_TRASH_DIRECTORY" export HOME mkdir -p "$test_dir" || exit 1 # Use -P to resolve symlinks in our working directory so that the cwd # in subprocesses like git equals our $PWD (for pathname comparisons). cd -P "$test_dir" || exit 1 this_test=${SHARNESS_TEST_FILE##*/} this_test=${this_test%.$SHARNESS_TEST_EXTENSION} for skp in $SKIP_TESTS; do case "$this_test" in $skp) say_color info >&3 "skipping test $this_test altogether" skip_all="skip all tests in $this_test" test_done esac done # vi: set ts=4 sw=4 noet : debian/tests/run-tests0000755000000000000000000000017512244477232012234 0ustar #!/bin/sh cd "$(dirname $0)" if [ -z "${ADTTMP:-}" ]; then tempdir="$(mktemp -d --suffix=.autopkgtest)" fi prove -v *.t debian/tests/control0000644000000000000000000000005012244477232011735 0ustar Tests: run-tests Depends: @,perl,procps debian/tests/01.mod-gearman-worker.t0000644000000000000000000000040412244477232014437 0ustar #!/bin/sh test_description="Check that the gearman-job-server starts" . ./sharness.sh test_expect_success "service status" " service mod-gearman-worker status " test_expect_success "process running" " pgrep -u nagios -f mod_gearman_worker " test_done debian/source/0000755000000000000000000000000012244477232010475 5ustar debian/source/format0000644000000000000000000000001412244477232011703 0ustar 3.0 (quilt) debian/rules0000755000000000000000000000552112244477232010260 0ustar #!/usr/bin/make -f # -*- makefile -*- DEB_VERSION := $(shell dpkg-parsechangelog --format rfc822 | grep-dctrl -ensVersion -S .) DH_VERBOSE=1 export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed %: dh $@ --with=systemd,autoreconf override_dh_autoreconf: dh_autoreconf --as-needed override_dh_auto_configure: dh_auto_configure -- --localstatedir=/var/lib --enable-embedded-perl --libdir=/usr/lib override_dh_shlibdeps: dh_shlibdeps dpkg-shlibdeps -Tdebian/mod-gearman-module.substvars debian/mod-gearman-module/usr/lib/mod_gearman/mod_gearman.o override_dh_auto_install: dh_auto_install rm -f debian/mod-gearman/usr/share/mod_gearman/shared.conf rm -f debian/mod-gearman/usr/share/mod_gearman/standalone_worker.conf @ # Fix permissions chmod 644 $(CURDIR)/debian/tmp/usr/share/mod_gearman/mod_gearman_p1.pl help2man --no-info --section=8 --version-string="mod_gearman_worker $(DEB_VERSION)" \ --help-option=-h --include=$(CURDIR)/debian/help2man.include \ -n "Agent that runs active checks from a gearman queue" \ $(CURDIR)/debian/tmp/usr/bin/mod_gearman_worker \ > $(CURDIR)/debian/mod_gearman_worker.8 help2man --no-info --section=8 --version-string="check_gearman $(DEB_VERSION)" \ --help-option=-h --include=$(CURDIR)/debian/help2man.include \ -n "Nagios service check to monitor the gearman job server" \ $(CURDIR)/debian/tmp/usr/bin/check_gearman \ > $(CURDIR)/debian/check_gearman.8 help2man --no-info --section=8 --version-string="send_gearman $(DEB_VERSION)" \ --help-option=-h --include=$(CURDIR)/debian/help2man.include \ -n "Submit active and passive check results to a gearman job server" \ $(CURDIR)/debian/tmp/usr/bin/send_gearman \ > $(CURDIR)/debian/send_gearman.8 help2man --no-info --section=8 --version-string="gearman_top $(DEB_VERSION)" \ --help-option=-h --include=$(CURDIR)/debian/help2man.include \ -n "Monitor the gearman job server" \ $(CURDIR)/debian/tmp/usr/bin/gearman_top \ > $(CURDIR)/debian/gearman_top.8 help2man --no-info --section=8 --version-string="send_multi $(DEB_VERSION)" \ --help-option=-h --include=$(CURDIR)/debian/help2man.include \ -n "Submit check results from check_multi to a gearman job server" \ $(CURDIR)/debian/tmp/usr/bin/send_multi \ > $(CURDIR)/debian/send_multi.8 help2man --no-info --section=8 --version-string="mod_gearman_mini_epn $(DEB_VERSION)" \ --help-option=-h --include=$(CURDIR)/debian/help2man.include \ -n "Verify that a plugin can be run from the embedded perl interpreter (EPN)" \ $(CURDIR)/debian/tmp/usr/bin/mod_gearman_mini_epn \ > $(CURDIR)/debian/mod_gearman_mini_epn.8 override_dh_auto_test: debian/module.conf0000644000000000000000000000017412244477232011333 0ustar # Example configuration file for the event broker module # server=localhost key=very-secret-password hosts=yes services=yes debian/mod_gearman.cfg0000644000000000000000000000034212244477232012126 0ustar # Example configuration for the mod_gearman event broker module define module { module_name mod_gearman path /usr/lib/mod_gearman/mod_gearman.o module_type neb args config=/etc/mod-gearman/module.conf } debian/mod-gearman.examples0000644000000000000000000000006212244477232013122 0ustar extras/shared.conf extras/standalone_worker.conf debian/mod-gearman-worker.upstart0000644000000000000000000000061512244477232014321 0ustar # -*- upstart -*- # Upstart configuration script for "mod-gearman-worker". description "mod_gearman workers" start on (filesystem and net-device-up IFACE=lo) stop on runlevel [!2345] respawn exec start-stop-daemon --start --chuid nagios --exec /usr/sbin/mod_gearman_worker -- --config=/etc/mod-gearman/worker.conf post-stop script pkill -9 -u nagios -f mod_gearman_worker || true end script debian/mod-gearman-worker.service0000644000000000000000000000032512244477232014255 0ustar [Unit] Description=Mod Gearman worker [Service] User=nagios Restart=always ExecStart=/usr/sbin/mod_gearman_worker --config=/etc/mod-gearman/worker.conf StandardOutput=syslog [Install] WantedBy=multi-user.target debian/mod-gearman-worker.postinst0000644000000000000000000000065512244477232014506 0ustar #!/bin/sh set -e create_user() { if ! getent passwd nagios > /dev/null; then adduser --quiet --system --group --disabled-login \ --home /var/lib/nagios nagios fi } case "$1" in configure) create_user ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument '$1'" >&2 exit 1 ;; esac #DEBHELPER# debian/mod-gearman-worker.manpages0000644000000000000000000000003412244477232014405 0ustar debian/mod_gearman_worker.8 debian/mod-gearman-worker.install0000644000000000000000000000030612244477232014262 0ustar debian/tmp/usr/bin/mod_gearman_worker usr/sbin debian/mod-gearman-worker.service lib/systemd/system usr/share/mod_gearman/mod_gearman_p1.pl usr/share/mod-gearman debian/worker.conf /etc/mod-gearman debian/mod-gearman-worker.init0000755000000000000000000000745312244477232013574 0ustar #!/bin/sh ### BEGIN INIT INFO # Provides: mod-gearman-worker # Required-Start: $local_fs $remote_fs # Required-Stop: $local_fs $remote_fs # Should-Start: # Should-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Control the mod-gearman worker daemon # Description: Control the mod-gearman worker daemon which fetches # and processes jobs (servicechecks, hostchecks or # eventhandlers) from a gearman-job-server instance. ### END INIT INFO DESC="Mod-Gearman worker agents" PATH=/usr/sbin:/usr/bin:/sbin:/bin NAME=mod_gearman_worker DAEMON=/usr/sbin/$NAME CONFIG=/etc/mod-gearman/worker.conf PIDFILE=/run/mod-gearman/worker.pid USER=nagios USERID=$(id -u) DAEMON_OPTS="-d --config=$CONFIG --pidfile=$PIDFILE --logmode=syslog" # Bail out if not installed [ -x "$DAEMON" ] || exit 0 . /lib/lsb/init-functions if [ -e /etc/default/mod-gearman-worker ]; then . /etc/default/mod-gearman-worker fi # this is from madduck on IRC, 2006-07-06 # There should be a better possibility to give daemon error messages # and/or to log things log() { case "$1" in [[:digit:]]*) success=$1; shift;; *) :;; esac log_action_begin_msg "$1"; shift log_action_end_msg ${success:-0} "$*" } abort_if_unconfigured() { if [ ! -e "$CONFIG" ]; then log 1 "Configuration file $CONFIG not present" exit 1 fi } pre_start() { install -o $USER -g $USER -d $(dirname $PIDFILE) } start_worker() { start-stop-daemon --start --oknodo --user $USER --exec $DAEMON --quiet \ --chuid $USER --pidfile $PIDFILE -- $DAEMON_OPTS || return 2 } stop_worker() { start-stop-daemon --stop --oknodo --user $USER --exec $DAEMON --quiet \ --retry 10 --pidfile $PIDFILE RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 # Wait for children to finish too if this is a daemon that forks # and if the daemon is only ever run from this initscript. # If the above conditions are not satisfied then add some other code # that waits for the process to drop all resources that could be # needed by services started subsequently. A last resort is to # sleep for some time. start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --user $USER --exec $DAEMON [ "$?" = 2 ] && return 2 } reload_worker() { start-stop-daemon --stop --oknodo --user $USER --exec $DAEMON --quiet \ --signal HUP --pidfile $PIDFILE return 0 } status_worker() { status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $? } case "$1" in start) abort_if_unconfigured log_daemon_msg "Starting $DESC" "$NAME" pre_start start_worker case "$?" in 0|1) log_end_msg 0 ;; 2) log_end_msg 1 ;; esac ;; stop) log_daemon_msg "Stopping $DESC" "$NAME" stop_worker case "$?" in 0|1) log_end_msg 0 ;; 2) log_end_msg 1 ;; esac ;; reload|force-reload) log_daemon_msg "Reloading $DESC" "$NAME" reload_worker log_end_msg $? ;; status) status_worker && exit 0 || exit $? ;; restart) abort_if_unconfigured log_daemon_msg "Restarting $DESC" "$NAME" stop_worker case "$?" in 0|1) start_worker case "$?" in 0) log_end_msg 0 ;; 1) log_end_msg 1 ;; # Old process is still running *) log_end_msg 1 ;; # Failed to start esac ;; *) # Failed to stop log_end_msg 1 ;; esac ;; *) echo "Usage: $0 [start|stop|status|reload|force-reload|restart]" exit 1 ;; esac exit 0 debian/mod-gearman-worker.examples0000644000000000000000000000002312244477232014426 0ustar debian/worker.conf debian/mod-gearman-worker.dirs0000644000000000000000000000007112244477232013554 0ustar etc/mod-gearman lib/systemd/system usr/share/mod-gearman debian/mod-gearman-worker.default0000644000000000000000000000017512244477232014244 0ustar # Defaults file for mod-gearman-worker # $DAEMON_OPTS is set in the init script, you can override it here. # DAEMON_OPTS="" debian/mod-gearman-worker.README.Debian0000644000000000000000000000211212244477232014727 0ustar Usage ===== Worker configuration -------------------- Copy the example configuration file to /etc/mod-gearman # cp /usr/share/doc/mod-gearman-worker/examples/worker.conf /etc/mod-gearman Edit to point to your gearman job server, and set a password common to the module and the workers. Start the worker ---------------- # /etc/init.d/mod-gearman-worker start Check worker ------------ Check for the presence of the worker with "gearman_top". You should see something like: $ gearman_top 002010-12-14 16:08:36 - localhost:4730 - v0.14 Queue Name | Worker Available | Jobs Waiting | Jobs Running ------------------------------------------------------------------------------ check_results | 1 | 0 | 0 host | 1 | 0 | 0 service | 1 | 0 | 0 worker_somehost.example.com | 1 | 0 | 0 ------------------------------------------------------------------------------ debian/mod-gearman-tools.manpages0000644000000000000000000000016412244477232014240 0ustar debian/check_gearman.8 debian/gearman_top.8 debian/send_gearman.8 debian/send_multi.8 debian/mod_gearman_mini_epn.8 debian/mod-gearman-tools.install0000644000000000000000000000034212244477232014111 0ustar debian/tmp/usr/bin/check_gearman usr/lib/nagios/plugins debian/tmp/usr/bin/gearman_top debian/tmp/usr/bin/send_gearman usr/lib/nagios/plugins debian/tmp/usr/bin/send_multi usr/lib/nagios/plugins /usr/bin/mod_gearman_mini_epn debian/mod-gearman-module.install0000644000000000000000000000004312244477232014234 0ustar /usr/lib/mod_gearman/mod_gearman.o debian/mod-gearman-module.examples0000644000000000000000000000005212244477232014404 0ustar debian/module.conf debian/mod_gearman.cfg debian/mod-gearman-module.README.Debian0000644000000000000000000000164612244477232014716 0ustar Usage ===== Module configuration -------------------- Copy the example configuration file to /etc/mod-gearman # cp /usr/share/doc/mod-gearman-module/examples/module.conf /etc/mod-gearman Edit to point to your gearman job server, and set a password common to the module and the workers. Icinga configuration -------------------- Copy /usr/share/doc/mod-gearman-module/examples/mod_gearman.cfg to /etc/icinga/modules/ Nagios configuration -------------------- Add the following stanza to /etc/nagios/nagios.cfg broker_module=/usr/lib/mod_gearman/mod_gearman.o config=/etc/mod-gearman/module.conf Restart Nagios / Icinga ----------------------- Restart nagios or icinga, and check the log for warnings. You should see the following message in your log: [...] Event broker module '/usr/lib/mod_gearman/mod_gearman.o' initialized successfully. -- Stig Sandbeck Mathisen , Sat, 14 Jan 2012 14:22:12 +0100 debian/mod-gearman-doc.docs0000644000000000000000000000004412244477232012777 0ustar docs/README.html README TODO THANKS debian/mod-gearman-doc.doc-base0000644000000000000000000000034412244477232013527 0ustar Document: mod-gearman-doc Title: Gearman Module for Icinga or Nagios Author: Sven Nierlein Section: Network/Monitoring Format: HTML Index: /usr/share/doc/mod-gearman-doc/README.html Files: /usr/share/doc/mod-gearman-doc/*.html debian/help2man.include0000644000000000000000000000014212244477232012245 0ustar [SEE ALSO] The Mod Gearman documentation is available in /usr/share/doc/mod-gearman/README.html debian/copyright0000644000000000000000000000554112244477232011135 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: Mod Gearman Source: http://labs.consol.de/nagios/mod-gearman/ Files: * Copyright: 2010-2012, Sven Nierlein 2010 Matthias Flacke 2004 Nik Clayton License: GPL-3+ Files: debian/* Copyright: 2010-2012, Stig Sandbeck Mathisen License: GPL-3+ Files: debian/tests/sharness.sh Copyright: 2011-2012 Mathias Lafeldt 2005-2012 Git project 2005-2012 Junio C Hamano License: GPL-2+ Files: include/nagios/* Copyright: 1999-2008 Ethan Galstad License: GPL-2 Files: include/libgearman/* Copyright: 2006-2010 Brian Aker, 2008-2010 Eric Day License: BSD-3-clause Gearman server and library Copyright (C) 2008 Brian Aker, Eric Day All rights reserved. . Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: . * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. . * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. . * The names of its contributors may not be used to endorse or promote products derived from this software without specific prior written permission. . THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Files: include/base64.c common/base64.c Copyright: Unknown License: unknown Downloaded from Files: include/rijndael.h common/rijndael.c Copyright: 2002, Philip J. Erdelsky License: Public domain This software is in the public domain Files: common/md5.c include/polarssl/* Copyright: 2006-2010, Brainspark B.V. License: GPL-2+ License: GPL-2 See file:///usr/share/common-licenses/GPL-2 for details License: GPL-2+ See file:///usr/share/common-licenses/GPL-2 for details License: GPL-3+ See file:///usr/share/common-licenses/GPL-3 for details debian/control0000644000000000000000000000456412244477232010611 0ustar Source: mod-gearman Section: net Priority: extra Maintainer: Stig Sandbeck Mathisen Build-Depends: automake, dctrl-tools, debhelper (>= 9), dh-autoreconf, dh-systemd (>= 1.4), gearman-job-server, help2man, libgearman-dev (>= 0.14), libltdl-dev, libncurses5-dev, libperl-dev, libtool, Standards-Version: 3.9.4 Homepage: http://labs.consol.de/nagios/mod-gearman/ Vcs-Git: git://git.debian.org/pkg-nagios/pkg-mod-gearman Vcs-Browser: http://git.debian.org/?p=pkg-nagios/pkg-mod-gearman XS-Testsuite: autopkgtest Package: mod-gearman-doc Architecture: all Section: doc Depends: ${misc:Depends} Description: Documentation and examples for Mod-Gearman Mod-Gearman is an easy way of distributing active Icinga/Nagios checks across your network and increasing nagios scalability. Mod-Gearman can even help to reduce the load on a single nagios host, because its much smaller and more efficient in executing checks. . This package contains documentation and examples common to the mod-gearman-module and mod-gearman-worker packages. Package: mod-gearman-module Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends} Description: Nagios/Icinga event broker module for Mod-Gearman Event broker module for Icinga/Nagios. This module adds servicechecks, hostchecks and eventhandlers to a queue on a Gearman job server. . There can be multiple equal Gearman job servers. Package: mod-gearman-worker Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends}, adduser Description: Worker agent for Mod-Gearman The worker agent for Mod-Gearman connects to a Gearman job server, runs active Icinga/Nagios service checks, and return the results. . The worker can ask for any available check, or it can be bound to specific hostgroups or servicegroups. . Package: mod-gearman-tools Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends} Description: Tools for mod-gearman This package also includes a set of extra tools to send check results to Icinga/Nagios via a Gearman job server, and a plugin to monitor the Gearman job server itself: . - check_gearman - Icinga/Nagios service check to monitor the Gearman job server - gearman_top - Monitor the Gearman job server from the console - send_gearman - Submit active and passive check results to a Gearman job server - send_multi - Submit check results from the check_multi to a Gearman job server debian/compat0000644000000000000000000000000212244477232010373 0ustar 9 debian/changelog0000644000000000000000000001217012244477232011050 0ustar mod-gearman (1.4.14-1) unstable; urgency=low * Imported upstream version 1.4.14 -- Stig Sandbeck Mathisen Sun, 24 Nov 2013 23:32:43 +0100 mod-gearman (1.4.10-1) unstable; urgency=low * New upstream version -- Stig Sandbeck Mathisen Sat, 07 Sep 2013 19:38:37 +0200 mod-gearman (1.4.8-1) unstable; urgency=low * Imported upstream version 1.4.8 (Closes: #716274) * init script: use /run instead of /var/run * Bump standards version * Use dh-autoreconf * Link with -Wl,--as-needed * Fix missing dependencies for mod-gearman-module -- Stig Sandbeck Mathisen Sun, 28 Jul 2013 21:37:10 +0200 mod-gearman (1.4.6-1) unstable; urgency=low [ Stig Sandbeck Mathisen ] * New upstream version [ Michael Stapelberg ] * Use dh-systemd (Closes: #715272) [ Stig Sandbeck Mathisen ] * Add dep8 tests * Add description to mod-gearman-worker init script. Thanks to Sebastian Harl (Closes: #681777) -- Stig Sandbeck Mathisen Mon, 08 Jul 2013 19:11:33 +0200 mod-gearman (1.4.2-2) unstable; urgency=low * Upload to unstable after freeze -- Stig Sandbeck Mathisen Sun, 05 May 2013 17:54:03 +0200 mod-gearman (1.4.2-1) experimental; urgency=low * Imported upstream version 1.4.2 * init script: exit early if daemon is not installed (Closes: #699945) * Add upstart configuration for mod-gearman-worker * Change systemd service, restart mod-gearman-worker if it dies -- Stig Sandbeck Mathisen Fri, 26 Apr 2013 15:07:05 +0200 mod-gearman (1.3.6-1) unstable; urgency=low * Imported upstream version 1.3.6 (Closes: #682219) * Install example worker.conf to /etc/mod-gearman (Closes: #681775) -- Stig Sandbeck Mathisen Fri, 20 Jul 2012 12:16:42 +0200 mod-gearman (1.3.4-1) unstable; urgency=low [ Stig Sandbeck Mathisen ] * Use the packaged p1.pl file (Closes: #676417) * Create nagios user in postinst (Closes: #676418) * Update init script output and exit code when unconfigured * Bump debhelper compat level to 9 * Revise debian/copyright [ Alexander Wirt ] * Update init script (Closes: #676415) -- Stig Sandbeck Mathisen Sun, 24 Jun 2012 11:10:43 +0200 mod-gearman (1.3.0-1) unstable; urgency=low * Imported Upstream version 1.3.0 -- Stig Sandbeck Mathisen Fri, 04 May 2012 09:22:42 +0200 mod-gearman (1.2.8-1) unstable; urgency=low * Imported Upstream version 1.2.8 -- Stig Sandbeck Mathisen Mon, 16 Apr 2012 07:48:43 +0200 mod-gearman (1.2.6-1) unstable; urgency=low * New upstream release (Closes: #663700) -- Stig Sandbeck Mathisen Thu, 15 Mar 2012 23:18:39 +0100 mod-gearman (1.2.4-1) unstable; urgency=low * New upstream release -- Stig Sandbeck Mathisen Tue, 06 Mar 2012 11:02:22 +0100 mod-gearman (1.2.2-2) unstable; urgency=low * Install missing p1.pl file * Add install section to systemd service -- Stig Sandbeck Mathisen Wed, 22 Feb 2012 16:12:01 +0100 mod-gearman (1.2.2-1) unstable; urgency=low * New upstream release -- Stig Sandbeck Mathisen Wed, 08 Feb 2012 14:55:16 +0100 mod-gearman (1.2.0-1) unstable; urgency=low [ Michael Fladischer ] * Enable embedded perl interpreter. * Add patch to fix spelling and synopsis warnings. * Add doc-base. * Run `wrap-and-sort`. * Improve descriptions. [ Stig Sandbeck Mathisen ] * New upstream release * Update configuration examples * Add systemd service -- Stig Sandbeck Mathisen Sat, 14 Jan 2012 14:26:45 +0100 mod-gearman (1.1.1-1) unstable; urgency=low * New upstream release -- Stig Sandbeck Mathisen Thu, 08 Dec 2011 20:51:11 +0100 mod-gearman (1.1.0-1) unstable; urgency=low * New upstream version -- Stig Sandbeck Mathisen Wed, 12 Oct 2011 19:35:18 +0000 mod-gearman (1.0.10-1) unstable; urgency=low * New upstream release * Use upstream tarball instead of git repo -- Stig Sandbeck Mathisen Thu, 22 Sep 2011 21:25:15 +0200 mod-gearman (1.0.7-1) unstable; urgency=low * New upstream release * patch: fix linking with --as-needed option (Closes: #632431) (LP: #803184) * Set local-options / unapply-patches -- Stig Sandbeck Mathisen Sun, 17 Jul 2011 23:51:29 +0200 mod-gearman (1.0.6-1) unstable; urgency=low * New upstream release -- Stig Sandbeck Mathisen Wed, 15 Jun 2011 16:33:16 +0200 mod-gearman (1.0.5-1) unstable; urgency=low * New upstream release * Bump standards version (no changes) * Add /etc/default/mod-gearman-worker * Add a /etc/mod-gearman directory * Log to syslog by default * Fix init script usage output -- Stig Sandbeck Mathisen Thu, 19 May 2011 15:34:19 +0200 mod-gearman (1.0.3-1) unstable; urgency=low * New upstream version -- Stig Sandbeck Mathisen Thu, 07 Apr 2011 12:24:22 +0200 mod-gearman (1.0-1) unstable; urgency=low * Initial release (Closes: #605385) -- Stig Sandbeck Mathisen Thu, 10 Feb 2011 13:45:07 +0100