]> Frank Brehm's Git Trees - my-stuff/nagios.git/commitdiff
Verzeichnis nagios/config in nagios/cfg umbenannt
authorFrank Brehm <frank@brehm-online.com>
Thu, 2 Dec 2010 17:28:30 +0000 (17:28 +0000)
committerFrank Brehm <frank@brehm-online.com>
Thu, 2 Dec 2010 17:28:30 +0000 (17:28 +0000)
git-svn-id: http://svn.brehm-online.com/svn/my-stuff/nagios/trunk@136 ec8d2aa5-1599-4edb-8739-2b3a1bc399aa

bin/nagios/cfg/__init__.py [new file with mode: 0755]
bin/nagios/cfg/struct.py [new file with mode: 0755]
bin/nagios/config/__init__.py [deleted file]
bin/nagios/config/struct.py [deleted file]

diff --git a/bin/nagios/cfg/__init__.py b/bin/nagios/cfg/__init__.py
new file mode 100755 (executable)
index 0000000..58e5493
--- /dev/null
@@ -0,0 +1,4 @@
+#!/usr/bin/python
+
+
+# vim: fileencoding=utf-8 filetype=python ts=4
diff --git a/bin/nagios/cfg/struct.py b/bin/nagios/cfg/struct.py
new file mode 100755 (executable)
index 0000000..cc6cc36
--- /dev/null
@@ -0,0 +1,243 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+# $Id$
+# $URL$
+
+import os
+import re
+
+from nagios.object.verify import NagiosVerifyError, NagiosObjectVerifier
+
+class NagiosConfigStructError(Exception):
+    """Base class for exceptions in this module."""
+    pass
+
+class NagiosConfigStruct(object):
+    """Capsulating class for handling with nagios object structures."""
+
+    #------------------------------------------------------
+    def __repr__( self ):
+        "Dumper of hitself"
+
+        dump = {}
+
+        return repr(dump)
+
+    #------------------------------------------------------
+    def __init__( self, logger = None ):
+        "Constructor."
+
+        # Logging-Setup
+        if logger is None:
+
+            self.logger = logging.getLogger('nagiosConfig')
+            self.logger.setLevel(logging.DEBUG)
+
+            ch = logging.StreamHandler()
+            ch.setLevel(logging.DEBUG)
+
+            formatter = logging.Formatter("%(name)s - %(funcName)s(%(lineno)d) - %(levelname)s - %(message)s")
+            ch.setFormatter(formatter)
+
+            self.logger.addHandler(ch)
+
+        else:
+            self.logger = logger
+
+    #------------------------------------------------------
+    def __del__( self ):
+        "Destructor"
+
+        self.logger.debug( "Mayday - someone destroys me!!" )
+
+    #------------------------------------------------------
+    def get_valid_object_types( self ):
+        """Returns a set with all valid Nagios object types"""
+
+        return set( {
+            'host',
+            'hostgroup',
+            'service',
+            'servicegroup',
+            'contact',
+            'contactgroup',
+            'timeperiod',
+            'command',
+            'servicedependency',
+            'serviceescalation',
+            'hostdependency',
+            'hostescalation',
+            'hostextinfo',
+            'serviceextinfo',
+        } )
+
+    #------------------------------------------------------
+    def get_object_identifier_name( self, object_type ):
+        """Returns an ordered list withe the names of the identifiers of the given object_type."""
+
+        if object_type == 'host':
+            return [ 'host_name' ]
+
+        if object_type == 'hostgroup':
+            return [ 'hostgroup_name' ]
+
+        if object_type == 'service':
+            return [ 'host_name', 'service_description' ]
+
+        if object_type == 'servicegroup':
+            return [ 'servicegroup_name' ]
+
+        if object_type == 'contact':
+            return [ 'contact_name' ]
+
+        if object_type == 'contactgroup':
+            return [ 'contactgroup_name' ]
+
+        if object_type == 'timeperiod':
+            return [ 'timeperiod_name' ]
+
+        if object_type == 'timeperiod':
+            return [ 'timeperiod_name' ]
+
+        if object_type == 'command':
+            return [ 'command_name' ]
+
+        if object_type == 'servicedependency':
+            return [ 'dependent_host_name', 'dependent_service_description', 'host_name', 'service_description' ]
+
+        if object_type == 'serviceescalation':
+            return [ 'host_name', 'service_description', 'first_notification' ]
+
+        if object_type == 'hostdependency':
+            return [ 'dependent_host_name', 'host_name' ]
+
+        if object_type == 'hostescalation':
+            return [ 'host_name', 'first_notification' ]
+
+        if object_type == 'hostextinfo':
+            return [ 'host_name' ]
+
+        if object_type == 'serviceextinfo':
+            return [ 'host_name', 'service_description' ]
+
+        raise NagiosConfigStructError( "Object type {0!r} is invalid.".format( object_type ) ) 
+
+    #------------------------------------------------------
+    def check_line_syntax( self, line, object_type, file, rownum ):
+        """Verifying a given line as a property of a Nagios object of given object type."""
+
+        # Check for some strange timeperiod definitions
+        if object_type == 'timeperiod':
+            result = self.check_timeperiod_line_syntax( line )
+            if result is not None:
+                return result
+
+        # Split line into key and value
+        match = re.search( r'^\s*(\w+)\s+(.*)', line )
+        if match is None:
+            raise NagiosConfigStructError( "Couldn't evaluate line {0!r}.".format( line ) )
+
+        key = match.group(1)
+        value = match.group(2)
+
+        # User defined definitions
+        if re.match( r'^_', key ):
+            key_upper = key.upper()
+            return ( key_upper, value )
+
+        verifier = NagiosObjectVerifier( logger = logger )
+        res = None
+        args = dict( file = file, row = rownum )
+
+        # Generic properties for inheritance
+        generic_property = dict(
+            'name'     = 'string',
+            'use'      = 'array',
+            'register' = 'bool',
+        )
+
+        if key in generic_property:
+            try:
+                res = verifier.verify_property( value, generic_property[key], args )
+                return ( key, res )
+            except NagiosVerifyError as e:
+                raise NagiosConfigStructError( "Property error for {0} definition: {1}".format( object_type, e ) )
+
+
+        return ( key, value )
+
+    #------------------------------------------------------
+    def get_key_checktype( self, key, object_type ):
+        """Returns the checktype and some check parameters of the given key
+dependend to the given object_type.
+Returns None if the key is invalid."""
+
+        key_def = dict(
+            'host' = dict(
+                'host_name'                    = ( 'string',   None ),
+                'alias'                        = ( 'string',   None ), 
+                'display_name'                 = ( 'string',   None ),
+                'address'                      = ( 'string',   None ),
+                'parents'                      = ( 'array',    None ),
+                'hostgroups'                   = ( 'array',    None ),
+                'check_command'                = ( 'string',   None ),
+                'initial_state'                = ( 'set',      dict( valid_values = set( [ 'o', 'd', 'u' ] ) ) ),
+                'max_check_attempts'           = ( 'int',      None ),
+                'check_interval'               = ( 'int',      None ),
+                'retry_interval'               = ( 'int',      None ),
+                'active_checks_enabled'        = ( 'bool',     None ),
+                'passive_checks_enabled'       = ( 'bool',     None ),
+                'check_period'                 = ( 'string',   None ),
+                'obsess_over_host'             = ( 'bool',     None ),
+                'check_freshness'              = ( 'bool',     None ),
+                'freshness_threshold'          = ( 'int',      None ),
+                'event_handler'                = ( 'string',   None ),
+                'event_handler_enabled'        = ( 'bool',     None ),
+                'low_flap_threshold'           = ( 'int',      None ),
+                'high_flap_threshold'          = ( 'int',      None ),
+                'flap_detection_enabled'       = ( 'bool',     None ),
+                'flap_detection_options'       = ( 'set',      dict( valid_values = set( [ 'o', 'd', 'u' ] ) ) ),
+                'process_perf_data'            = ( 'bool',     None ),
+                'retain_status_information'    = ( 'bool',     None ),
+                'retain_nonstatus_information' = ( 'bool',     None ),
+                'contacts'                     = ( 'array',    None ),
+                'contact_groups'               = ( 'array',    None ),
+                'notification_interval'        = ( 'int',      None ),
+                'first_notification_delay'     = ( 'int',      None ),
+                'notification_period'          = ( 'string',   None ),
+                'notification_options'         = ( 'set',      dict( valid_values = set( [ 'd', 'u', 'r', 'f', 's' ] ) ) ),
+                'notifications_enabled'        = ( 'bool',     None ),
+                'stalking_options'             = ( 'set',      dict( valid_values = set( [ 'o', 'd', 'u' ] ) ) ),
+                'notes'                        = ( 'string',   None ),
+                'notes_url'                    = ( 'string',   None ),
+                'action_url'                   = ( 'string',   None ),
+                'icon_image'                   = ( 'string',   None ),
+                'icon_image_alt'               = ( 'string',   None ),
+                'vrml_image'                   = ( 'string',   None ),
+                'statusmap_image'              = ( 'string',   None ),
+                '2d_coords'                    = ( 'intarray', dict( count_min = 2, count_max = 2 ) ),
+                '3d_coords'                    = ( 'intarray', dict( count_min = 3, count_max = 3 ) ),
+            ),
+        )
+        
+        if object_type not in key_def:
+            return None
+
+        if key not in key_def[object_type]:
+            return None
+
+        return key_def[object_type][key]
+
+    #------------------------------------------------------
+    def check_timeperiod_line_syntax( self, line ):
+        """Verifies the line against a possible timeperiod definition,
+returns a key/value pair on success,
+returns None on failure"""
+
+        # Currently only a stub
+        return None
+
+    #------------------------------------------------------
+
+# vim: fileencoding=utf-8 filetype=python ts=4 expandtab
diff --git a/bin/nagios/config/__init__.py b/bin/nagios/config/__init__.py
deleted file mode 100755 (executable)
index 58e5493..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/usr/bin/python
-
-
-# vim: fileencoding=utf-8 filetype=python ts=4
diff --git a/bin/nagios/config/struct.py b/bin/nagios/config/struct.py
deleted file mode 100755 (executable)
index cc6cc36..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-# $Id$
-# $URL$
-
-import os
-import re
-
-from nagios.object.verify import NagiosVerifyError, NagiosObjectVerifier
-
-class NagiosConfigStructError(Exception):
-    """Base class for exceptions in this module."""
-    pass
-
-class NagiosConfigStruct(object):
-    """Capsulating class for handling with nagios object structures."""
-
-    #------------------------------------------------------
-    def __repr__( self ):
-        "Dumper of hitself"
-
-        dump = {}
-
-        return repr(dump)
-
-    #------------------------------------------------------
-    def __init__( self, logger = None ):
-        "Constructor."
-
-        # Logging-Setup
-        if logger is None:
-
-            self.logger = logging.getLogger('nagiosConfig')
-            self.logger.setLevel(logging.DEBUG)
-
-            ch = logging.StreamHandler()
-            ch.setLevel(logging.DEBUG)
-
-            formatter = logging.Formatter("%(name)s - %(funcName)s(%(lineno)d) - %(levelname)s - %(message)s")
-            ch.setFormatter(formatter)
-
-            self.logger.addHandler(ch)
-
-        else:
-            self.logger = logger
-
-    #------------------------------------------------------
-    def __del__( self ):
-        "Destructor"
-
-        self.logger.debug( "Mayday - someone destroys me!!" )
-
-    #------------------------------------------------------
-    def get_valid_object_types( self ):
-        """Returns a set with all valid Nagios object types"""
-
-        return set( {
-            'host',
-            'hostgroup',
-            'service',
-            'servicegroup',
-            'contact',
-            'contactgroup',
-            'timeperiod',
-            'command',
-            'servicedependency',
-            'serviceescalation',
-            'hostdependency',
-            'hostescalation',
-            'hostextinfo',
-            'serviceextinfo',
-        } )
-
-    #------------------------------------------------------
-    def get_object_identifier_name( self, object_type ):
-        """Returns an ordered list withe the names of the identifiers of the given object_type."""
-
-        if object_type == 'host':
-            return [ 'host_name' ]
-
-        if object_type == 'hostgroup':
-            return [ 'hostgroup_name' ]
-
-        if object_type == 'service':
-            return [ 'host_name', 'service_description' ]
-
-        if object_type == 'servicegroup':
-            return [ 'servicegroup_name' ]
-
-        if object_type == 'contact':
-            return [ 'contact_name' ]
-
-        if object_type == 'contactgroup':
-            return [ 'contactgroup_name' ]
-
-        if object_type == 'timeperiod':
-            return [ 'timeperiod_name' ]
-
-        if object_type == 'timeperiod':
-            return [ 'timeperiod_name' ]
-
-        if object_type == 'command':
-            return [ 'command_name' ]
-
-        if object_type == 'servicedependency':
-            return [ 'dependent_host_name', 'dependent_service_description', 'host_name', 'service_description' ]
-
-        if object_type == 'serviceescalation':
-            return [ 'host_name', 'service_description', 'first_notification' ]
-
-        if object_type == 'hostdependency':
-            return [ 'dependent_host_name', 'host_name' ]
-
-        if object_type == 'hostescalation':
-            return [ 'host_name', 'first_notification' ]
-
-        if object_type == 'hostextinfo':
-            return [ 'host_name' ]
-
-        if object_type == 'serviceextinfo':
-            return [ 'host_name', 'service_description' ]
-
-        raise NagiosConfigStructError( "Object type {0!r} is invalid.".format( object_type ) ) 
-
-    #------------------------------------------------------
-    def check_line_syntax( self, line, object_type, file, rownum ):
-        """Verifying a given line as a property of a Nagios object of given object type."""
-
-        # Check for some strange timeperiod definitions
-        if object_type == 'timeperiod':
-            result = self.check_timeperiod_line_syntax( line )
-            if result is not None:
-                return result
-
-        # Split line into key and value
-        match = re.search( r'^\s*(\w+)\s+(.*)', line )
-        if match is None:
-            raise NagiosConfigStructError( "Couldn't evaluate line {0!r}.".format( line ) )
-
-        key = match.group(1)
-        value = match.group(2)
-
-        # User defined definitions
-        if re.match( r'^_', key ):
-            key_upper = key.upper()
-            return ( key_upper, value )
-
-        verifier = NagiosObjectVerifier( logger = logger )
-        res = None
-        args = dict( file = file, row = rownum )
-
-        # Generic properties for inheritance
-        generic_property = dict(
-            'name'     = 'string',
-            'use'      = 'array',
-            'register' = 'bool',
-        )
-
-        if key in generic_property:
-            try:
-                res = verifier.verify_property( value, generic_property[key], args )
-                return ( key, res )
-            except NagiosVerifyError as e:
-                raise NagiosConfigStructError( "Property error for {0} definition: {1}".format( object_type, e ) )
-
-
-        return ( key, value )
-
-    #------------------------------------------------------
-    def get_key_checktype( self, key, object_type ):
-        """Returns the checktype and some check parameters of the given key
-dependend to the given object_type.
-Returns None if the key is invalid."""
-
-        key_def = dict(
-            'host' = dict(
-                'host_name'                    = ( 'string',   None ),
-                'alias'                        = ( 'string',   None ), 
-                'display_name'                 = ( 'string',   None ),
-                'address'                      = ( 'string',   None ),
-                'parents'                      = ( 'array',    None ),
-                'hostgroups'                   = ( 'array',    None ),
-                'check_command'                = ( 'string',   None ),
-                'initial_state'                = ( 'set',      dict( valid_values = set( [ 'o', 'd', 'u' ] ) ) ),
-                'max_check_attempts'           = ( 'int',      None ),
-                'check_interval'               = ( 'int',      None ),
-                'retry_interval'               = ( 'int',      None ),
-                'active_checks_enabled'        = ( 'bool',     None ),
-                'passive_checks_enabled'       = ( 'bool',     None ),
-                'check_period'                 = ( 'string',   None ),
-                'obsess_over_host'             = ( 'bool',     None ),
-                'check_freshness'              = ( 'bool',     None ),
-                'freshness_threshold'          = ( 'int',      None ),
-                'event_handler'                = ( 'string',   None ),
-                'event_handler_enabled'        = ( 'bool',     None ),
-                'low_flap_threshold'           = ( 'int',      None ),
-                'high_flap_threshold'          = ( 'int',      None ),
-                'flap_detection_enabled'       = ( 'bool',     None ),
-                'flap_detection_options'       = ( 'set',      dict( valid_values = set( [ 'o', 'd', 'u' ] ) ) ),
-                'process_perf_data'            = ( 'bool',     None ),
-                'retain_status_information'    = ( 'bool',     None ),
-                'retain_nonstatus_information' = ( 'bool',     None ),
-                'contacts'                     = ( 'array',    None ),
-                'contact_groups'               = ( 'array',    None ),
-                'notification_interval'        = ( 'int',      None ),
-                'first_notification_delay'     = ( 'int',      None ),
-                'notification_period'          = ( 'string',   None ),
-                'notification_options'         = ( 'set',      dict( valid_values = set( [ 'd', 'u', 'r', 'f', 's' ] ) ) ),
-                'notifications_enabled'        = ( 'bool',     None ),
-                'stalking_options'             = ( 'set',      dict( valid_values = set( [ 'o', 'd', 'u' ] ) ) ),
-                'notes'                        = ( 'string',   None ),
-                'notes_url'                    = ( 'string',   None ),
-                'action_url'                   = ( 'string',   None ),
-                'icon_image'                   = ( 'string',   None ),
-                'icon_image_alt'               = ( 'string',   None ),
-                'vrml_image'                   = ( 'string',   None ),
-                'statusmap_image'              = ( 'string',   None ),
-                '2d_coords'                    = ( 'intarray', dict( count_min = 2, count_max = 2 ) ),
-                '3d_coords'                    = ( 'intarray', dict( count_min = 3, count_max = 3 ) ),
-            ),
-        )
-        
-        if object_type not in key_def:
-            return None
-
-        if key not in key_def[object_type]:
-            return None
-
-        return key_def[object_type][key]
-
-    #------------------------------------------------------
-    def check_timeperiod_line_syntax( self, line ):
-        """Verifies the line against a possible timeperiod definition,
-returns a key/value pair on success,
-returns None on failure"""
-
-        # Currently only a stub
-        return None
-
-    #------------------------------------------------------
-
-# vim: fileencoding=utf-8 filetype=python ts=4 expandtab