Model Package¶
Model Package¶
This module provides a high level Object-Oriented wrapper around pynag.Parsers.
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>¶
-
rename(shortname)¶ Rename this command, and reconfigure all related objects
-
-
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>¶
-
pager¶ This is the %s attribute for object definition
-
remove_from_contactgroup(contactgroup)¶
-
rename(shortname)¶ Renames this object, and triggers a change in related items as well.
- Args:
- shortname: New name for this object
- Returns:
- None
-
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>¶
-
remove_contact(contact_name)¶ Remove one specific contact from this contactgroup
-
rename(shortname)¶ Renames this object, and triggers a change in related items as well.
- Args:
- shortname: New name for this object
- Returns:
- None
-
-
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:
- ModelError 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 dictionary with status data information for this object
-
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
-
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>¶
-
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
-
rename(shortname)¶ Rename this host, and modify related objects
-
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>¶
-
-
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>¶
-
-
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:
- ModelError 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>¶
-
remove_host(host_name)¶ Remove host from this group. Behaves like Hostgroup._remove_member_from_group
-
rename(shortname)¶ Rename this hostgroup, and modify hosts if required
-
-
exception
pynag.Model.InvalidMacro(message, errorcode=None, errorstring=None, *args, **kwargs)¶ Bases:
pynag.Model.ModelErrorRaised when a method is inputted with an invalid macro.
-
exception
pynag.Model.ModelError(message, errorcode=None, errorstring=None, *args, **kwargs)¶ Bases:
pynag.errors.PynagErrorBase class for errors in this module.
-
pynag.Model.Object¶ alias of
HostEscalation
-
class
pynag.Model.ObjectDefinition(item=None, filename=None, **kwargs)¶ Bases:
objectHolds 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
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_defined(attribute_name)¶ Returns True if attribute_name is defined in this object
-
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>¶
-
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
-
rename(shortname)¶ Change the shortname of this object
Most objects that inherit this one, should also be responsible for updating related objects about the rename.
- Args:
- shortname: New name for this object
- Returns:
- None
-
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:
objectThis 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:
objectStatic 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 0x7f8cd80e9050>, {})¶
-
-
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:
- ModelError 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 dictionary with status data information for this object
-
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>¶
-
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
-
rename(shortname)¶ Not implemented. Do not use.
-
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>¶
-
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>¶
-
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:
- ModelError 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>¶
-
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>¶
-
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’