Model Package — pynag 0.8.5 documentation

### Navigation

- index
- modules |
- next |
- previous |
- pynag 0.8.5 documentation »
- The pynag module »

# Model Package

## `Model` Package

This module provides a high level Object-Oriented wrapper around pynag.Parsers.config.

Example:

    >>> from pynag.Model import Service, Host
    >>>
    >>> all_services = Service.objects.all
    >>> my_service = all_services[0]
    >>> print my_service.host_name
    localhost
    >>>
    >>> example_host = Host.objects.filter(host_name="host.example.com")
    >>> canadian_hosts = Host.objects.filter(host_name__endswith=".ca")
    >>>
    >>> for i in canadian_hosts:
    ...     i.alias = "this host is located in Canada"
    ...     i.save()

class `pynag.Model.` `Command`(item=None, filename=None, **kwargs)

  Bases: `pynag.Model.ObjectDefinition`

  `command_line`

    This is the %s attribute for object definition

  `command_name`

    This is the %s attribute for object definition

  `object_type` = 'command'
  `objects` = <pynag.Model.ObjectFetcher object at 0x432fa10>

class `pynag.Model.` `Contact`(item=None, filename=None, **kwargs)

  Bases: `pynag.Model.ObjectDefinition`

  `add_to_contactgroup`(contactgroup)
  `address`

    This is the %s attribute for object definition

  `alias`

    This is the %s attribute for object definition

  `can_submit_commands`

    This is the %s attribute for object definition

  `contact_name`

    This is the %s attribute for object definition

  `contactgroups`

    This is the %s attribute for object definition

  `delete`(recursive=False, cleanup_related_items=True)

    Delete this contact and optionally remove references in groups and escalations

    Works like ObjectDefinition.delete() except:

    Arguments:
      cleanup_related_items – If True, remove all references to this contact in contactgroups and escalations recursive – If True, remove escalations/dependencies that rely on this (and only this) contact
  `email`

    This is the %s attribute for object definition

  `get_effective_contactgroups`()

    Get a list of all Contactgroup that are hooked to this contact

  `get_effective_hosts`()

    Get a list of all Host that are hooked to this Contact

  `get_effective_services`()

    Get a list of all Service that are hooked to this Contact

  `host_notification_commands`

    This is the %s attribute for object definition

  `host_notification_options`

    This is the %s attribute for object definition

  `host_notification_period`

    This is the %s attribute for object definition

  `host_notifications_enabled`

    This is the %s attribute for object definition

  `object_type` = 'contact'
  `objects` = <pynag.Model.ObjectFetcher object at 0x432fa50>
  `pager`

    This is the %s attribute for object definition

  `remove_from_contactgroup`(contactgroup)
  `retain_nonstatus_information`

    This is the %s attribute for object definition

  `retain_status_information`

    This is the %s attribute for object definition

  `service_notification_commands`

    This is the %s attribute for object definition

  `service_notification_options`

    This is the %s attribute for object definition

  `service_notification_period`

    This is the %s attribute for object definition

  `service_notifications_enabled`

    This is the %s attribute for object definition

class `pynag.Model.` `Contactgroup`(item=None, filename=None, **kwargs)

  Bases: `pynag.Model.ObjectDefinition`

  `add_contact`(contact_name)

    Adds one specific contact to this contactgroup.

  `alias`

    This is the %s attribute for object definition

  `contactgroup_members`

    This is the %s attribute for object definition

  `contactgroup_name`

    This is the %s attribute for object definition

  `delete`(recursive=False, cleanup_related_items=True)

    Delete this contactgroup and optionally remove references in hosts/services

    Works like ObjectDefinition.delete() except:

    Arguments:
      cleanup_related_items – If True, remove all references to this group in hosts,services,etc. recursive – If True, remove dependant escalations.
  `get_effective_contactgroups`()

    Returns a list of every Contactgroup that is a member of this Contactgroup

  `get_effective_contacts`()

    Returns a list of every Contact that is a member of this Contactgroup

  `get_effective_hosts`()

    Return every Host that belongs to this contactgroup

  `get_effective_services`()

    Return every Host that belongs to this contactgroup

  `members`

    This is the %s attribute for object definition

  `object_type` = 'contactgroup'
  `objects` = <pynag.Model.ObjectFetcher object at 0x432fcd0>
  `remove_contact`(contact_name)

    Remove one specific contact from this contactgroup

class `pynag.Model.` `Host`(item=None, filename=None, **kwargs)

  Bases: `pynag.Model.ObjectDefinition`

  `2d_coords`

    This is the %s attribute for object definition

  `3d_coords`

    This is the %s attribute for object definition

  `acknowledge`(sticky=1, notify=1, persistent=0, author='pynag', comment='acknowledged by pynag', recursive=False, timestamp=None)
  `action_url`

    This is the %s attribute for object definition

  `active_checks_enabled`

    This is the %s attribute for object definition

  `add_to_contactgroup`(contactgroup)
  `add_to_hostgroup`(hostgroup_name)

    Add host to a hostgroup

  `address`

    This is the %s attribute for object definition

  `alias`

    This is the %s attribute for object definition

  `check_command`

    This is the %s attribute for object definition

  `check_freshness`

    This is the %s attribute for object definition

  `check_interval`

    This is the %s attribute for object definition

  `check_period`

    This is the %s attribute for object definition

  `contact_groups`

    This is the %s attribute for object definition

  `contacts`

    This is the %s attribute for object definition

  `copy`(recursive=False, filename=None, **args)

    Same as ObjectDefinition.copy() except can recursively copy services

  `delete`(recursive=False, cleanup_related_items=True)

    Delete this host and optionally its services

    Works like ObjectDefinition.delete() except for:

    Arguments:
      cleanup_related_items – If True, remove references found in hostgroups and escalations recursive – If True, also delete all services of this host
  `display_name`

    This is the %s attribute for object definition

  `downtime`(start_time=None, end_time=None, trigger_id=0, duration=7200, author=None, comment='Downtime scheduled by pynag', recursive=False)

    Put this object in a schedule downtime.

    Arguments:
      start_time – When downtime should start. If None, use time.time() (now) end_time – When scheduled downtime should end. If None use start_time + duration duration – Alternative to end_time, downtime lasts for duration seconds. Default 7200 seconds. trigger_id – trigger_id>0 means that this downtime should trigger another downtime with trigger_id. author – name of the contact scheduling downtime. If None, use current system user comment – Comment that will be put in with the downtime recursive – Also schedule same downtime for all service of this host.
    Returns:
      None because commands sent to nagios have no return values
    Raises:
      PynagError if this does not look an active object.
  `event_handler`

    This is the %s attribute for object definition

  `event_handler_enabled`

    This is the %s attribute for object definition

  `first_notification_delay`

    This is the %s attribute for object definition

  `flap_detection_enabled`

    This is the %s attribute for object definition

  `flap_detection_options`

    This is the %s attribute for object definition

  `freshness_threshold`

    This is the %s attribute for object definition

  `get_current_status`()

    Same as Service.get_current_status()

  `get_effective_check_command`()

    Returns a Command object as defined by check_command attribute

    Raises KeyError if check_command is not found or not defined.

  `get_effective_contact_groups`()

    Returns a list of all Contactgroup that belong to this Host

  `get_effective_contacts`()

    Returns a list of all Contact that belong to this Host

  `get_effective_hostgroups`()

    Returns a list of all Hostgroup that belong to this Host

  `get_effective_network_children`(recursive=False)

    Get all objects that depend on this one via “parents” attribute

    Arguments:
      recursive - If true include grandchildren in list to be returned
    Returns:
      a list of ObjectDefinition objects
  `get_effective_network_parents`(recursive=False)

    Get all objects this one depends on via “parents” attribute

    Arguments:
      recursive - If true include grandparents in list to be returned
    Returns:
      a list of ObjectDefinition objects
  `get_effective_services`()

    Returns a list of all Service that belong to this Host

  `get_related_objects`()
  `high_flap_threshold`

    This is the %s attribute for object definition

  `host_name`

    This is the %s attribute for object definition

  `hostgroups`

    This is the %s attribute for object definition

  `icon_image`

    This is the %s attribute for object definition

  `icon_image_alt`

    This is the %s attribute for object definition

  `initial_state`

    This is the %s attribute for object definition

  `low_flap_threshold`

    This is the %s attribute for object definition

  `max_check_attempts`

    This is the %s attribute for object definition

  `notes`

    This is the %s attribute for object definition

  `notes_url`

    This is the %s attribute for object definition

  `notification_interval`

    This is the %s attribute for object definition

  `notification_options`

    This is the %s attribute for object definition

  `notification_period`

    This is the %s attribute for object definition

  `notifications_enabled`

    This is the %s attribute for object definition

  `object_type` = 'host'
  `objects` = <pynag.Model.ObjectFetcher object at 0x432f850>
  `obsess_over_host`

    This is the %s attribute for object definition

  `parents`

    This is the %s attribute for object definition

  `passive_checks_enabled`

    This is the %s attribute for object definition

  `process_perf_data`

    This is the %s attribute for object definition

  `remove_from_contactgroup`(contactgroup)
  `remove_from_hostgroup`(hostgroup_name)

    Removes host from specified hostgroup

  `retain_nonstatus_information`

    This is the %s attribute for object definition

  `retain_status_information`

    This is the %s attribute for object definition

  `retry_interval`

    This is the %s attribute for object definition

  `stalking_options`

    This is the %s attribute for object definition

  `statusmap_image`

    This is the %s attribute for object definition

  `vrml_image`

    This is the %s attribute for object definition

class `pynag.Model.` `HostDependency`(item=None, filename=None, **kwargs)

  Bases: `pynag.Model.ObjectDefinition`

  `dependency_period`

    This is the %s attribute for object definition

  `dependent_host_name`

    This is the %s attribute for object definition

  `dependent_hostgroup_name`

    This is the %s attribute for object definition

  `execution_failure_criteria`

    This is the %s attribute for object definition

  `host_name`

    This is the %s attribute for object definition

  `hostgroup_name`

    This is the %s attribute for object definition

  `inherits_parent`

    This is the %s attribute for object definition

  `notification_failure_criteria`

    This is the %s attribute for object definition

  `object_type` = 'hostdependency'
  `objects` = <pynag.Model.ObjectFetcher object at 0x432fb90>

class `pynag.Model.` `HostEscalation`(item=None, filename=None, **kwargs)

  Bases: `pynag.Model.ObjectDefinition`

  `contact_groups`

    This is the %s attribute for object definition

  `contacts`

    This is the %s attribute for object definition

  `escalation_options`

    This is the %s attribute for object definition

  `escalation_period`

    This is the %s attribute for object definition

  `first_notification`

    This is the %s attribute for object definition

  `host_name`

    This is the %s attribute for object definition

  `hostgroup_name`

    This is the %s attribute for object definition

  `last_notification`

    This is the %s attribute for object definition

  `notification_interval`

    This is the %s attribute for object definition

  `object_type` = 'hostescalation'
  `objects` = <pynag.Model.ObjectFetcher object at 0x432fc10>

class `pynag.Model.` `Hostgroup`(item=None, filename=None, **kwargs)

  Bases: `pynag.Model.ObjectDefinition`

  `action_url`

    This is the %s attribute for object definition

  `add_host`(host_name)

    Adds host to this group. Behaves like Hostgroup._add_member_to_group

  `alias`

    This is the %s attribute for object definition

  `delete`(recursive=False, cleanup_related_items=True)

    Delete this hostgroup and optionally remove references in hosts and services

    Works like ObjectDefinition.delete() except:

    Arguments:
      cleanup_related_items – If True, remove all references to this group in hosts/services,escalations,etc recursive – If True, remove services and escalations that bind to this (and only this) hostgroup
  `downtime`(start_time=None, end_time=None, trigger_id=0, duration=7200, author=None, comment='Downtime scheduled by pynag', recursive=False)

    Put every host and service in this hostgroup in a schedule downtime.

    Arguments:
      start_time – When downtime should start. If None, use time.time() (now) end_time – When scheduled downtime should end. If None use start_time + duration duration – Alternative to end_time, downtime lasts for duration seconds. Default 7200 seconds. trigger_id – trigger_id>0 means that this downtime should trigger another downtime with trigger_id. author – name of the contact scheduling downtime. If None, use current system user comment – Comment that will be put in with the downtime recursive – For compatibility with other downtime commands, recursive is always assumed to be true
    Returns:
      None because commands sent to nagios have no return values
    Raises:
      PynagError if this does not look an active object.
  `get_effective_hostgroups`()

    Returns a list of every Hostgroup that is a member of this Hostgroup

  `get_effective_hosts`()

    Returns a list of all Host that belong to this hostgroup

  `get_effective_services`()

    Returns a list of all Service that belong to this hostgroup

  `hostgroup_members`

    This is the %s attribute for object definition

  `hostgroup_name`

    This is the %s attribute for object definition

  `members`

    This is the %s attribute for object definition

  `notes`

    This is the %s attribute for object definition

  `notes_url`

    This is the %s attribute for object definition

  `object_type` = 'hostgroup'
  `objects` = <pynag.Model.ObjectFetcher object at 0x432fd10>
  `remove_host`(host_name)

    Remove host from this group. Behaves like Hostgroup._remove_member_from_group

`pynag.Model.` `Object`

  alias of `HostEscalation`

class `pynag.Model.` `ObjectDefinition`(item=None, filename=None, **kwargs)

  Bases: `object`

  Holds one instance of one particular Object definition

  Example:

        >>> objects = ObjectDefinition.objects.all
        >>> my_object = ObjectDefinition( dict )

  `attribute_appendfield`(attribute_name, value)

    Convenient way to append value to an attribute with a comma seperated value

    Example:

          >>> myservice = Service()
          >>> myservice.attribute_appendfield(attribute_name="contact_groups", value="alladmins")
          >>> myservice.contact_groups
          '+alladmins'
          >>> myservice.attribute_appendfield(attribute_name="contact_groups", value='webmasters')
          >>> print myservice.contact_groups
          +alladmins,webmasters

  `attribute_is_empty`(attribute_name)

    Check if the attribute is empty

    Parameters: | attribute_name – A attribute such as host_name
    Returns: | True or False

  `attribute_removefield`(attribute_name, value)

    Convenient way to remove value to an attribute with a comma seperated value

    Example:

          >>> myservice = Service()
          >>> myservice.contact_groups = "+alladmins,localadmins"
          >>> myservice.attribute_removefield(attribute_name="contact_groups", value='localadmins')
          >>> print myservice.contact_groups
          +alladmins
          >>> myservice.attribute_removefield(attribute_name="contact_groups", value="alladmins")
          >>> print myservice.contact_groups
          None

  `attribute_replacefield`(attribute_name, old_value, new_value)

    Convenient way to replace field within an attribute with a comma seperated value

    Example:

          >>> myservice = Service()
          >>> myservice.contact_groups = "+alladmins,localadmins"
          >>> myservice.attribute_replacefield(attribute_name="contact_groups", old_value='localadmins', new_value="webmasters")
          >>> print myservice.contact_groups
          +alladmins,webmasters

  `copy`(recursive=False, filename=None, **args)

    Copies this object definition with any unsaved changes to a new configuration object

    Arguments:
      filename: If specified, new object will be saved in this file. recursive: If true, also find any related children objects and copy those **args: Any argument will be treated a modified attribute in the new definition.
    Examples:

      myhost = Host.objects.get_by_shortname(‘myhost.example.com’)

      # Copy this host to a new one myhost.copy( host_name=”newhost.example.com”, address=”127.0.0.1”)

      # Copy this host and all its services:
        myhost.copy(recursive=True, host_name=”newhost.example.com”, address=”127.0.0.1”)
    Returns:
      - A copy of the new ObjectDefinition
      - A list of all copies objects if recursive is True
  `delete`(recursive=False, cleanup_related_items=True)

    Deletes this object definition from its configuration files.

    Parameters: | recursive – If True, look for items that depend on this object and delete them as well (for example, if you delete a host, delete all its services as well) cleanup_related_items – If True, look for related items and remove references to this one. (for example, if you delete a host, remove its name from all hostgroup.members entries)

  `get`(value, default=None)

    self.get(x) == self[x]

  `get_all_macros`()

    Returns {macroname:macrovalue} hash map of this object’s macros

  `get_attribute`(attribute_name)

    Get one attribute from our object definition

    Parameters: | attribute_name – A attribute such as host_name

  `get_attribute_tuple`()

    Returns all relevant attributes in the form of:

    (attribute_name,defined_value,inherited_value)

  `get_description`()

    Returns a human friendly string describing current object.

    It will try the following in order: * return self.name (get the generic name) * return self get_shortname() * return “Untitled $object_type”

  `get_effective_children`(recursive=False)

    Get a list of all objects that inherit this object via “use” attribute

    Parameters: | recursive – If true, include grandchildren as well
    Returns: | A list of ObjectDefinition objects

  `get_effective_command_line`(host_name=None)

    Return a string of this objects check_command with all macros (i.e. $HOSTADDR$) resolved

  `get_effective_notification_command_line`(host_name=None, contact_name=None)

    Get this objects notifications with all macros (i.e. $HOSTADDR$) resolved

    Parameters: | host_name – Simulate notification using this host. If None: Use first valid host (used for services) contact_name – Simulate notification for this contact. If None: use first valid contact for the service
    Returns: | string of this objects notifications

  `get_effective_parents`(recursive=False, cache_only=False)

    Get all objects that this one inherits via “use” attribute

    Arguments:
      recursive - If true include grandparents in list to be returned
    Returns:
      a list of ObjectDefinition objects
  `get_filename`()

    Get name of the config file which defines this object

  `get_id`()

    Return a unique ID for this object

  `get_macro`(macroname, host_name=None, contact_name=None)

    Take macroname (e.g. $USER1$) and return its actual value

    Arguments:

      macroname – Macro that is to be resolved. For example $HOSTADDRESS$ host_name – Optionally specify host (use this for services that

      > – don’t define host specifically for example ones that only – define hostgroups

    Returns:
      (str) Actual value of the macro. For example “$HOSTADDRESS$” becomes “127.0.0.1”
  `get_parents`()

    Out-dated, use get_effective_parents instead. Kept here for backwards compatibility

  `get_related_objects`()

    Returns a list of ObjectDefinition that depend on this object

    Object can “depend” on another by a ‘use’ or ‘host_name’ or similar attribute

    Returns:
      List of ObjectDefinition objects
  `get_shortname`()

    Returns shortname of an object in string format.

    For the confused, nagios documentation refers to shortnames usually as <object_type>_name.

    - In case of Host it returns host_name
    - In case of Command it returns command_name
    - etc
    - Special case for services it returns “host_name/service_description”

    Returns None if no attribute can be found to use as a shortname

  `get_suggested_filename`()

    Get a suitable configuration filename to store this object in

    Returns: | filename, eg str(‘/etc/nagios/pynag/templates/hosts.cfg’)

  `has_key`(key)

    Same as key in self

  `is_dirty`()

    Returns true if any attributes has been changed on this object, and therefore it needs saving

  `is_registered`()

    Returns true if object is enabled (registered)

  `items`()
  `keys`()
  `move`(filename)

    Move this object definition to a new file. It will be deleted from current file.

    This is the same as running:

          >>> self.copy(filename=filename)
          >>> self.delete()

    Returns: | The new object definition

  `name`

    This is the %s attribute for object definition

  `object_type` = None
  `objects` = <pynag.Model.ObjectFetcher object at 0x432f550>
  `register`

    This is the %s attribute for object definition

  `reload_object`()

    Re-applies templates to this object (handy when you have changed the use attribute

  `rewrite`(*args, **kw)
  `run_check_command`(host_name=None)

    Run the check_command defined by this service. Returns return_code,stdout,stderr

  `save`(*args, **kw)
  `set_attribute`(attribute_name, attribute_value)

    Set (but does not save) one attribute in our object

    Parameters: | attribute_name – A attribute such as host_name attribute_value – The value you would like to set

  `set_filename`(filename)

    Set name of the config file which this object will be written to on next save.

  `set_macro`(macroname, new_value)

    Update a macro (custom variable) like $ARG1$ intelligently

    Returns: None

    Notes: You are responsible for calling .save() after modifying the object

    Examples:

          >>> s = Service()
          >>> s.check_command = 'okc-execute!arg1!arg2'
          >>> s.set_macro('$ARG1$', 'modified1')
          >>> s.check_command
          'okc-execute!modified1!arg2'
          >>> s.set_macro('$ARG5$', 'modified5')
          >>> s.check_command
          'okc-execute!modified1!arg2!!!modified5'
          >>> s.set_macro('$_SERVICE_TEST$', 'test')
          >>> s['__TEST']
          'test'

  `unregister`(recursive=True)

    Short for self[‘register’] = 0 ; self.save()

  `use`

    This is the %s attribute for object definition

class `pynag.Model.` `ObjectFetcher`(object_type)

  Bases: `object`

  This class is a wrapper around pynag.Parsers.config. Is responsible for fetching dict objects from config.data and turning into high ObjectDefinition objects

  Internal variables:
    - _cached_objects = List of every ObjectDefinition
    - _cached_id[o.get_id()] = o
    - _cached_shortnames[o.object_type][o.get_shortname()] = o
    - _cached_names[o.object_type][o.name] = o
    - _cached_object_type[o.object_type].append( o )
  `all`
  `filter`(**kwargs)

    Returns all objects that match the selected filter

    Example:

    Get all services where host_name is examplehost.example.com

          >>> Service.objects.filter(host_name='examplehost.example.com')

    Get service with host_name=examplehost.example.com and service_description=’Ping’

          >>> Service.objects.filter(host_name='examplehost.example.com',
          ...                        service_description='Ping')

    Get all services that are registered but without a host_name

          >>> Service.objects.filter(host_name=None,register='1')

    Get all hosts that start with ‘exampleh’

          >>> Host.objects.filter(host_name__startswith='exampleh')

    Get all hosts that end with ‘example.com’

          >>> Service.objects.filter(host_name__endswith='example.com')

    Get all contactgroups that contain ‘dba’

          >>> Contactgroup.objects.filter(host_name__contains='dba')

    Get all hosts that are not in the ‘testservers’ hostgroup

          >>> Host.objects.filter(hostgroup_name__notcontains='testservers')

    Get all services with non-empty name

          >>> Service.objects.filter(name__isnot=None)

    Get all hosts that have an address:

          >>> Host.objects.filter(address_exists=True)

  `get_all`(*args, **kw)
  `get_by_id`(id, cache_only=False)

    Get one specific object

    Returns: | ObjectDefinition
    Raises : | ValueError if object is not found

  `get_by_name`(object_name, cache_only=False)

    Get one specific object by its object_name (i.e. name attribute)

    Returns: | ObjectDefinition
    Raises : | ValueError if object is not found

  `get_by_shortname`(shortname, cache_only=False)

    Get one specific object by its shortname (i.e. host_name for host, etc)

    Parameters: | shortname – shortname of the object. i.e. host_name, command_name, etc. cache_only – If True, dont check if configuration files have changed since last parse
    Returns: | ObjectDefinition
    Raises : | ValueError if object is not found

  `get_object_types`()

    Returns a list of all discovered object types

  `needs_reload`(*args, **kw)
  `reload_cache`(*args, **kw)

class `pynag.Model.` `ObjectRelations`

  Bases: `object`

  Static container for objects and their respective neighbours

  `command_host` = defaultdict(<type 'set'>, {})
  `command_service` = defaultdict(<type 'set'>, {})
  `contact_contactgroups` = defaultdict(<type 'set'>, {})
  `contact_hosts` = defaultdict(<type 'set'>, {})
  `contact_services` = defaultdict(<type 'set'>, {})
  `contactgroup_contactgroups` = defaultdict(<type 'set'>, {})
  `contactgroup_contacts` = defaultdict(<type 'set'>, {})
  `contactgroup_hosts` = defaultdict(<type 'set'>, {})
  `contactgroup_services` = defaultdict(<type 'set'>, {})
  `contactgroup_subgroups` = defaultdict(<type 'set'>, {})
  `host_contact_groups` = defaultdict(<type 'set'>, {})
  `host_contacts` = defaultdict(<type 'set'>, {})
  `host_hostgroups` = defaultdict(<type 'set'>, {})
  `host_services` = defaultdict(<type 'set'>, {})
  `hostgroup_hostgroups` = defaultdict(<type 'set'>, {})
  `hostgroup_hosts` = defaultdict(<type 'set'>, {})
  `hostgroup_services` = defaultdict(<type 'set'>, {})
  `hostgroup_subgroups` = defaultdict(<type 'set'>, {})
  static `reset`()

    Runs clear() on every member attribute in ObjectRelations

  static `resolve_contactgroups`()

    Update all contactgroup relations to take into account contactgroup.contactgroup_members

  static `resolve_hostgroups`()

    Update all hostgroup relations to take into account hostgroup.hostgroup_members

  static `resolve_regex`()

    If any object relations are a regular expression, then expand them into a full list

  static `resolve_servicegroups`()

    Update all servicegroup relations to take into account servicegroup.servicegroup_members

  `service_contact_groups` = defaultdict(<type 'set'>, {})
  `service_contacts` = defaultdict(<type 'set'>, {})
  `service_hostgroups` = defaultdict(<type 'set'>, {})
  `service_hosts` = defaultdict(<type 'set'>, {})
  `service_servicegroups` = defaultdict(<type 'set'>, {})
  `servicegroup_members` = defaultdict(<type 'set'>, {})
  `servicegroup_servicegroups` = defaultdict(<type 'set'>, {})
  `servicegroup_services` = defaultdict(<type 'set'>, {})
  `servicegroup_subgroups` = defaultdict(<type 'set'>, {})
  `use` = defaultdict(<function <lambda> at 0x48aa398>, {})

class `pynag.Model.` `Service`(item=None, filename=None, **kwargs)

  Bases: `pynag.Model.ObjectDefinition`

  `acknowledge`(sticky=1, notify=1, persistent=0, author='pynag', comment='acknowledged by pynag', timestamp=None)
  `action_url`

    This is the %s attribute for object definition

  `active_checks_enabled`

    This is the %s attribute for object definition

  `add_to_contactgroup`(contactgroup)
  `add_to_servicegroup`(servicegroup_name)

    Add this service to a specific servicegroup

  `check_command`

    This is the %s attribute for object definition

  `check_freshness`

    This is the %s attribute for object definition

  `check_interval`

    This is the %s attribute for object definition

  `check_period`

    This is the %s attribute for object definition

  `contact_groups`

    This is the %s attribute for object definition

  `contacts`

    This is the %s attribute for object definition

  `display_name`

    This is the %s attribute for object definition

  `downtime`(start_time=None, end_time=None, trigger_id=0, duration=7200, author=None, comment='Downtime scheduled by pynag', recursive=False)

    Put this object in a schedule downtime.

    Arguments:
      start_time – When downtime should start. If None, use time.time() (now) end_time – When scheduled downtime should end. If None use start_time + duration duration – Alternative to end_time, downtime lasts for duration seconds. Default 7200 seconds. trigger_id – trigger_id>0 means that this downtime should trigger another downtime with trigger_id. author – name of the contact scheduling downtime. If None, use current system user comment – Comment that will be put in with the downtime recursive – Here for compatibility. Has no effect on a service.
    Returns:
      None because commands sent to nagios have no return values
    Raises:
      PynagError if this does not look an active object.
  `event_handler`

    This is the %s attribute for object definition

  `event_handler_enabled`

    This is the %s attribute for object definition

  `first_notification_delay`

    This is the %s attribute for object definition

  `flap_detection_enabled`

    This is the %s attribute for object definition

  `flap_detection_options`

    This is the %s attribute for object definition

  `freshness_threshold`

    This is the %s attribute for object definition

  `get_current_status`()

    Returns a Status object, reflecting this object status (i.e. status.dat)

  `get_effective_check_command`()

    Returns a Command object as defined by check_command attribute

    Raises KeyError if check_command is not found or not defined.

  `get_effective_contact_groups`()

    Returns a list of all Contactgroup that belong to this Service

  `get_effective_contacts`()

    Returns a list of all Contact that belong to this Service

  `get_effective_hostgroups`()

    Returns a list of all Hostgroup that belong to this Service

  `get_effective_hosts`()

    Returns a list of all Host that belong to this Service

  `get_effective_servicegroups`()

    Returns a list of all Servicegroup that belong to this Service

  `get_shortname`()
  `high_flap_threshold`

    This is the %s attribute for object definition

  `host_name`

    This is the %s attribute for object definition

  `hostgroup_name`

    This is the %s attribute for object definition

  `icon_image`

    This is the %s attribute for object definition

  `icon_image_alt`

    This is the %s attribute for object definition

  `initial_state`

    This is the %s attribute for object definition

  `is_volatile`

    This is the %s attribute for object definition

  `low_flap_threshold`

    This is the %s attribute for object definition

  `max_check_attempts`

    This is the %s attribute for object definition

  `merge_with_host`()

    Moves a service from its original file to the same file as the first effective host

  `notes`

    This is the %s attribute for object definition

  `notes_url`

    This is the %s attribute for object definition

  `notification_interval`

    This is the %s attribute for object definition

  `notification_options`

    This is the %s attribute for object definition

  `notification_period`

    This is the %s attribute for object definition

  `notifications_enabled`

    This is the %s attribute for object definition

  `object_type` = 'service'
  `objects` = <pynag.Model.ObjectFetcher object at 0x432f950>
  `obsess_over_service`

    This is the %s attribute for object definition

  `passive_checks_enabled`

    This is the %s attribute for object definition

  `process_perf_data`

    This is the %s attribute for object definition

  `remove_from_contactgroup`(contactgroup)
  `remove_from_servicegroup`(servicegroup_name)

    remove this service from a specific servicegroup

  `retain_nonstatus_information`

    This is the %s attribute for object definition

  `retain_status_information`

    This is the %s attribute for object definition

  `retry_interval`

    This is the %s attribute for object definition

  `service_description`

    This is the %s attribute for object definition

  `servicegroups`

    This is the %s attribute for object definition

  `stalking_options`

    This is the %s attribute for object definition

class `pynag.Model.` `ServiceDependency`(item=None, filename=None, **kwargs)

  Bases: `pynag.Model.ObjectDefinition`

  `dependency_period`

    This is the %s attribute for object definition

  `dependent_host_name`

    This is the %s attribute for object definition

  `dependent_hostgroup_name`

    This is the %s attribute for object definition

  `dependent_service_description`

    This is the %s attribute for object definition

  `execution_failure_criteria`

    This is the %s attribute for object definition

  `host_name`

    This is the %s attribute for object definition

  `hostgroup_name`

    This is the %s attribute for object definition

  `inherits_parent`

    This is the %s attribute for object definition

  `notification_failure_criteria`

    This is the %s attribute for object definition

  `object_type` = 'servicedependency'
  `objects` = <pynag.Model.ObjectFetcher object at 0x432fb10>
  `service_description`

    This is the %s attribute for object definition

class `pynag.Model.` `ServiceEscalation`(item=None, filename=None, **kwargs)

  Bases: `pynag.Model.ObjectDefinition`

  `contact_groups`

    This is the %s attribute for object definition

  `contacts`

    This is the %s attribute for object definition

  `escalation_options`

    This is the %s attribute for object definition

  `escalation_period`

    This is the %s attribute for object definition

  `first_notification`

    This is the %s attribute for object definition

  `host_name`

    This is the %s attribute for object definition

  `hostgroup_name`

    This is the %s attribute for object definition

  `last_notification`

    This is the %s attribute for object definition

  `notification_interval`

    This is the %s attribute for object definition

  `object_type` = 'serviceescalation'
  `objects` = <pynag.Model.ObjectFetcher object at 0x432fc90>
  `service_description`

    This is the %s attribute for object definition

class `pynag.Model.` `Servicegroup`(item=None, filename=None, **kwargs)

  Bases: `pynag.Model.ObjectDefinition`

  `action_url`

    This is the %s attribute for object definition

  `add_service`(shortname)

    Adds service to this group. Behaves like _add_object_to_group(object, group)

  `alias`

    This is the %s attribute for object definition

  `downtime`(start_time=None, end_time=None, trigger_id=0, duration=7200, author=None, comment='Downtime scheduled by pynag', recursive=False)

    Put every host and service in this servicegroup in a schedule downtime.

    Arguments:
      start_time – When downtime should start. If None, use time.time() (now) end_time – When scheduled downtime should end. If None use start_time + duration duration – Alternative to end_time, downtime lasts for duration seconds. Default 7200 seconds. trigger_id – trigger_id>0 means that this downtime should trigger another downtime with trigger_id. author – name of the contact scheduling downtime. If None, use current system user comment – Comment that will be put in with the downtime recursive – For compatibility with other downtime commands, recursive is always assumed to be true
    Returns:
      None because commands sent to nagios have no return values
    Raises:
      PynagError if this does not look an active object.
  `get_effective_servicegroups`()

    Returns a list of every Servicegroup that is a member of this Servicegroup

  `get_effective_services`()

    Returns a list of all Service that belong to this Servicegroup

  `members`

    This is the %s attribute for object definition

  `notes`

    This is the %s attribute for object definition

  `notes_url`

    This is the %s attribute for object definition

  `object_type` = 'servicegroup'
  `objects` = <pynag.Model.ObjectFetcher object at 0x432fd50>
  `remove_service`(shortname)

    remove service from this group. Behaves like _remove_object_from_group(object, group)

  `servicegroup_members`

    This is the %s attribute for object definition

  `servicegroup_name`

    This is the %s attribute for object definition

class `pynag.Model.` `Timeperiod`(item=None, filename=None, **kwargs)

  Bases: `pynag.Model.ObjectDefinition`

  `alias`

    This is the %s attribute for object definition

  `exclude`

    This is the %s attribute for object definition

  `object_type` = 'timeperiod'
  `objects` = <pynag.Model.ObjectFetcher object at 0x432fdd0>
  `timeperiod_name`

    This is the %s attribute for object definition

`pynag.Model.` `eventhandlers` = []

  eventhandlers – A list of Model.EventHandlers object.

## `all_attributes` Module

## `macros` Module

This file contains a dict object that maps Nagios Standard macronames to specific values.

i.e. macros[‘$HOSTADDR$’] should return ‘address’

## Subpackages

- EventHandlers Package
  - `EventHandlers` Package

### Navigation

- index
- modules |
- next |
- previous |
- pynag 0.8.5 documentation »
- The pynag module »