Пример #1
0
    def test_plugin_object(self):

        log.info("Testing NagiosPlugin object.")
        plugin = NagiosPlugin(
                usage = '%(prog)s --hello',
                url = 'http://www.profitbricks.com',
                blurb = 'Senseless sample Nagios plugin.',
                licence = 'Licence: GNU Lesser General Public License (LGPL), Version 3',
                extra = 'Bla blub',
        )
        plugin.add_perfdata('bla', 10, 'MByte', warning = '20', critical = '30')
        plugin.set_thresholds(warning = '10:25', critical = "~:25")
        plugin.add_message(nagios.state.ok, 'bli', 'bla')
        plugin.add_message('warning', 'blub')
        log.debug("NagiosPluginArgparse object: %r", plugin)
        log.debug("NagiosPluginArgparse object: %s", str(plugin))
Пример #2
0
    def test_plugin_object(self):

        log.info("Testing NagiosPlugin object.")
        plugin = NagiosPlugin(
            usage='%(prog)s --hello',
            url='http://www.profitbricks.com',
            blurb='Senseless sample Nagios plugin.',
            licence=
            'Licence: GNU Lesser General Public License (LGPL), Version 3',
            extra='Bla blub',
        )
        plugin.add_perfdata('bla', 10, 'MByte', warning='20', critical='30')
        plugin.set_thresholds(warning='10:25', critical="~:25")
        plugin.add_message(nagios.state.ok, 'bli', 'bla')
        plugin.add_message('warning', 'blub')
        log.debug("NagiosPluginArgparse object: %r", plugin)
        log.debug("NagiosPluginArgparse object: %s", str(plugin))
Пример #3
0
class TestNagiosPlugin3(NeedConfig):

    #--------------------------------------------------------------------------
    def setUp(self):

        super(TestNagiosPlugin3, self).setUp()

        self.plugin_name = 'TEST_CHECK_MESSAGES'
        self.plugin = NagiosPlugin(shortname=self.plugin_name)

        self.msgs = {
            'critical': 'A B C',
            'warning': 'D E F',
            'ok': 'G I H',
        }

    #--------------------------------------------------------------------------
    def test_plugin_object(self):

        log.info("Testing NagiosPlugin object shortname %r.", self.plugin_name)
        self.assertEqual(self.plugin.shortname, self.plugin_name)

    #--------------------------------------------------------------------------
    def test_codes(self):

        log.info("Testing check_messages() return code.")
        codes = [
            [['Critical'], ['Warning'], nagios.state.critical],
            [[], ['Warning'], nagios.state.warning],
            [[], [], nagios.state.ok],
        ]

        i = 0
        for fields in codes:

            c_msgs = fields[0]
            w_msgs = fields[1]
            exp_code = fields[2]
            i += 1

            (got_code, message) = self.plugin.check_messages(critical=c_msgs,
                                                             warning=w_msgs)
            log.debug(("Test %d: Crit messages: %r, Warn messages: %r, " +
                       "got code %d, got message: %r."), i, c_msgs, w_msgs,
                      got_code, message)
            self.assertEqual(got_code, exp_code)

    #--------------------------------------------------------------------------
    def test_messages(self):

        log.info("Testing check_messages() return message.")
        arrays = {
            'critical': ['A', 'B', 'C'],
            'warning': ['D', 'E', 'F'],
            'ok': ['G', 'H', 'I'],
        }

        messages = {}
        for key in arrays:
            messages[key] = ' '.join(arrays[key])

        (code,
         message) = self.plugin.check_messages(critical=arrays['critical'],
                                               warning=arrays['warning'])
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.critical)
        self.assertEqual(message, messages['critical'])

        (code,
         message) = self.plugin.check_messages(critical=arrays['critical'],
                                               warning=arrays['warning'],
                                               ok='G H I')
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.critical)
        self.assertEqual(message, messages['critical'])

        (code, message) = self.plugin.check_messages(warning=arrays['warning'])
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.warning)
        self.assertEqual(message, messages['warning'])

        (code, message) = self.plugin.check_messages(warning=arrays['warning'],
                                                     ok='G H I')
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.warning)
        self.assertEqual(message, messages['warning'])

        (code, message) = self.plugin.check_messages(ok=arrays['ok'])
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.ok)
        self.assertEqual(message, messages['ok'])

        (code, message) = self.plugin.check_messages(ok='G H I')
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.ok)
        self.assertEqual(message, messages['ok'])

        # explicit join
        join = '+'
        (code,
         message) = self.plugin.check_messages(critical=arrays['critical'],
                                               warning=arrays['warning'],
                                               join=join)
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(message, join.join(arrays['critical']))

        join = ''
        (code, message) = self.plugin.check_messages(warning=arrays['warning'],
                                                     join=join)
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(message, join.join(arrays['warning']))

        join = None
        (code, message) = self.plugin.check_messages(ok=arrays['ok'],
                                                     join=join)
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(message, ' '.join(arrays['ok']))

        #join_all messages
        join_all = ' :: '
        msg_all_cwo = join_all.join(
            [messages[x] for x in ('critical', 'warning', 'ok')])
        msg_all_cw = join_all.join(
            [messages[x] for x in ('critical', 'warning')])
        msg_all_wo = join_all.join([messages[x] for x in ('warning', 'ok')])

        log.debug("Checking join_all critical, warning, ok.")
        (code,
         message) = self.plugin.check_messages(critical=arrays['critical'],
                                               warning=arrays['warning'],
                                               ok=arrays['ok'],
                                               join_all=join_all)
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.critical)
        self.assertEqual(message, msg_all_cwo)

        log.debug("Checking join_all critical, warning.")
        (code,
         message) = self.plugin.check_messages(critical=arrays['critical'],
                                               warning=arrays['warning'],
                                               join_all=join_all)
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.critical)
        self.assertEqual(message, msg_all_cw)

        log.debug("Checking join_all warning, ok.")
        (code, message) = self.plugin.check_messages(warning=arrays['warning'],
                                                     ok=arrays['ok'],
                                                     join_all=join_all)
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.warning)
        self.assertEqual(message, msg_all_wo)

        log.debug("Checking join_all warning.")
        (code, message) = self.plugin.check_messages(warning=arrays['warning'],
                                                     join_all=join_all)
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.warning)
        self.assertEqual(message, messages['warning'])

    #--------------------------------------------------------------------------
    def test_add_message01(self):

        log.info("Testing add_message() 01 ...")

        self.plugin.add_message('critical', self.msgs['critical'])
        self.plugin.add_message('warning', self.msgs['warning'])
        (code, message) = self.plugin.check_messages()
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.critical)
        self.assertEqual(message, self.msgs['critical'])

    #--------------------------------------------------------------------------
    def test_add_message02(self):

        log.info("Testing add_message() 02 ...")

        self.plugin.add_message('critical', self.msgs['critical'])
        (code, message) = self.plugin.check_messages()
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.critical)
        self.assertEqual(message, self.msgs['critical'])

    #--------------------------------------------------------------------------
    def test_add_message03(self):

        log.info("Testing add_message() 03 ...")

        self.plugin.add_message('warning', self.msgs['warning'])
        (code, message) = self.plugin.check_messages()
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.warning)
        self.assertEqual(message, self.msgs['warning'])

    #--------------------------------------------------------------------------
    def test_add_message04(self):

        log.info("Testing add_message() 04 ...")

        self.plugin.add_message('warning', self.msgs['warning'])
        self.plugin.add_message('ok', self.msgs['ok'])
        (code, message) = self.plugin.check_messages()
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.warning)
        self.assertEqual(message, self.msgs['warning'])

    #--------------------------------------------------------------------------
    def test_add_message05(self):

        log.info("Testing add_message() 05 ...")

        self.plugin.add_message('ok', self.msgs['ok'])
        (code, message) = self.plugin.check_messages()
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.ok)
        self.assertEqual(message, self.msgs['ok'])

    #--------------------------------------------------------------------------
    def test_add_message06(self):

        log.info("Testing add_message() 06 ...")

        (code, message) = self.plugin.check_messages()
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.ok)
        self.assertEqual(message, '')

    #--------------------------------------------------------------------------
    def test_add_message_invalid(self):

        log.info("Testing add_message() with invalid codes ...")

        for key in ('foobar', 'OKAY', 'unknown', 'dependent'):
            log.debug("Trying to add a message with code %r ...", key)
            with self.assertRaises(NagiosPluginError) as cm:
                self.plugin.add_message(key, 'hi mum')
            log.debug("Got a NagiosPluginError: %s", str(cm.exception))
Пример #4
0
class TestNagiosPlugin3(NeedConfig):

    #--------------------------------------------------------------------------
    def setUp(self):

        super(TestNagiosPlugin3, self).setUp()

        self.plugin_name = 'TEST_CHECK_MESSAGES'
        self.plugin = NagiosPlugin(shortname = self.plugin_name)

        self.msgs = {
                'critical': 'A B C',
                'warning':  'D E F',
                'ok':       'G I H',
        }

    #--------------------------------------------------------------------------
    def test_plugin_object(self):

        log.info("Testing NagiosPlugin object shortname %r.", self.plugin_name)
        self.assertEqual(self.plugin.shortname, self.plugin_name)

    #--------------------------------------------------------------------------
    def test_codes(self):

        log.info("Testing check_messages() return code.")
        codes = [
            [['Critical'], ['Warning'], nagios.state.critical],
            [[],           ['Warning'], nagios.state.warning],
            [[],           [],          nagios.state.ok],
        ]

        i = 0
        for fields in codes:

            c_msgs = fields[0]
            w_msgs = fields[1]
            exp_code = fields[2]
            i += 1

            (got_code, message) = self.plugin.check_messages(
                    critical = c_msgs, warning = w_msgs)
            log.debug(("Test %d: Crit messages: %r, Warn messages: %r, " +
                    "got code %d, got message: %r."), i, c_msgs, w_msgs,
                    got_code, message)
            self.assertEqual(got_code, exp_code)

    #--------------------------------------------------------------------------
    def test_messages(self):

        log.info("Testing check_messages() return message.")
        arrays = {
            'critical': ['A', 'B', 'C'],
            'warning':  ['D', 'E', 'F'],
            'ok':       ['G', 'H', 'I'],
        }

        messages = {}
        for key in arrays:
            messages[key] = ' '.join(arrays[key])

        (code, message) = self.plugin.check_messages(
                critical = arrays['critical'], warning = arrays['warning'])
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.critical)
        self.assertEqual(message, messages['critical'])

        (code, message) = self.plugin.check_messages(
                critical = arrays['critical'], warning = arrays['warning'],
                ok = 'G H I')
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.critical)
        self.assertEqual(message, messages['critical'])

        (code, message) = self.plugin.check_messages(
                warning = arrays['warning'])
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.warning)
        self.assertEqual(message, messages['warning'])

        (code, message) = self.plugin.check_messages(
                warning = arrays['warning'], ok = 'G H I')
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.warning)
        self.assertEqual(message, messages['warning'])

        (code, message) = self.plugin.check_messages(ok = arrays['ok'])
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.ok)
        self.assertEqual(message, messages['ok'])

        (code, message) = self.plugin.check_messages(ok = 'G H I')
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.ok)
        self.assertEqual(message, messages['ok'])

        # explicit join
        join = '+'
        (code, message) = self.plugin.check_messages(
                critical = arrays['critical'], warning = arrays['warning'],
                join = join)
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(message, join.join(arrays['critical']))

        join = ''
        (code, message) = self.plugin.check_messages(
                warning = arrays['warning'], join = join)
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(message, join.join(arrays['warning']))

        join = None
        (code, message) = self.plugin.check_messages(
                ok = arrays['ok'], join = join)
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(message, ' '.join(arrays['ok']))

        #join_all messages
        join_all = ' :: '
        msg_all_cwo = join_all.join([messages[x] for x in ('critical', 'warning', 'ok')])
        msg_all_cw = join_all.join([messages[x] for x in ('critical', 'warning')])
        msg_all_wo = join_all.join([messages[x] for x in ('warning', 'ok')])

        log.debug("Checking join_all critical, warning, ok.")
        (code, message) = self.plugin.check_messages(
                critical = arrays['critical'], warning = arrays['warning'],
                ok = arrays['ok'], join_all = join_all)
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.critical)
        self.assertEqual(message, msg_all_cwo)

        log.debug("Checking join_all critical, warning.")
        (code, message) = self.plugin.check_messages(
                critical = arrays['critical'], warning = arrays['warning'],
                join_all = join_all)
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.critical)
        self.assertEqual(message, msg_all_cw)

        log.debug("Checking join_all warning, ok.")
        (code, message) = self.plugin.check_messages(warning = arrays['warning'],
                ok = arrays['ok'], join_all = join_all)
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.warning)
        self.assertEqual(message, msg_all_wo)

        log.debug("Checking join_all warning.")
        (code, message) = self.plugin.check_messages(warning = arrays['warning'],
                join_all = join_all)
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.warning)
        self.assertEqual(message, messages['warning'])

    #--------------------------------------------------------------------------
    def test_add_message01(self):

        log.info("Testing add_message() 01 ...")

        self.plugin.add_message('critical', self.msgs['critical'])
        self.plugin.add_message('warning', self.msgs['warning'])
        (code, message) = self.plugin.check_messages()
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.critical)
        self.assertEqual(message, self.msgs['critical'])

    #--------------------------------------------------------------------------
    def test_add_message02(self):

        log.info("Testing add_message() 02 ...")

        self.plugin.add_message('critical', self.msgs['critical'])
        (code, message) = self.plugin.check_messages()
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.critical)
        self.assertEqual(message, self.msgs['critical'])

    #--------------------------------------------------------------------------
    def test_add_message03(self):

        log.info("Testing add_message() 03 ...")

        self.plugin.add_message('warning', self.msgs['warning'])
        (code, message) = self.plugin.check_messages()
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.warning)
        self.assertEqual(message, self.msgs['warning'])

    #--------------------------------------------------------------------------
    def test_add_message04(self):

        log.info("Testing add_message() 04 ...")

        self.plugin.add_message('warning', self.msgs['warning'])
        self.plugin.add_message('ok', self.msgs['ok'])
        (code, message) = self.plugin.check_messages()
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.warning)
        self.assertEqual(message, self.msgs['warning'])

    #--------------------------------------------------------------------------
    def test_add_message05(self):

        log.info("Testing add_message() 05 ...")

        self.plugin.add_message('ok', self.msgs['ok'])
        (code, message) = self.plugin.check_messages()
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.ok)
        self.assertEqual(message, self.msgs['ok'])

    #--------------------------------------------------------------------------
    def test_add_message06(self):

        log.info("Testing add_message() 06 ...")

        (code, message) = self.plugin.check_messages()
        log.debug("Checking code %d, message %r.", code, message)
        self.assertEqual(code, nagios.state.ok)
        self.assertEqual(message, '')

    #--------------------------------------------------------------------------
    def test_add_message_invalid(self):

        log.info("Testing add_message() with invalid codes ...")

        for key in ('foobar', 'OKAY', 'unknown', 'dependent'):
            log.debug("Trying to add a message with code %r ...", key)
            with self.assertRaises(NagiosPluginError) as cm:
                self.plugin.add_message(key, 'hi mum')
            log.debug("Got a NagiosPluginError: %s", str(cm.exception))