Monitoring::Config - Thruks Object Database
Provides access to core objects like hosts, services etc...
new({
core_conf => path to core config
obj_file => path to core config file
obj_dir => path to core config path
obj_resource_file => paths to resource.cfg file
obj_readonly => readonly pattern
obj_exclude => exclude pattern
git_base_dir => git history base folder
localdir => local path used for remote configs
relative => allow relative paths
})
return new objects database
init($config, [ $stats ])
initialize configs
discard_changes()
Forget all changes made so far and not yet saved to disk
commit([$c])
Commit changes to disk. Returns 1 on success.
$c is only needed when syncing with remote sites.
get_errors()
return all errors
print_errors([$fh])
Print all errors to stdout or supplied filehandle
get_files()
Get all files. Returns list of Monitoring::Config::File objects.
get_file_by_path($path)
Get file by path. Returns Monitoring::Config::File object or undef.
get_changed_files()
Get all changed files. Returns list of Monitoring::Config::File objects.
$list = get_objects()
Get all objects. Returns list of Monitoring::Config::Object objects.
$list = get_objects_by_type($type, [ $filter ], [ $origin])
Returns list of Monitoring::Config::Object objects for a type.
filter is verified against the name if its a scalar value. Otherwise it has to be like
$filter = {
attribute => value
};
origin is used for commands and can be 'check', 'eventhandler' or 'notification'
get_objects_by_name($type, $name, [ $templates_only , [ $name2 ]])
Get objects by name. Returns list of Monitoring::Config::Object objects.
get_objects_by_path($path)
Get all objects by path. Returns Monitoring::Config::Object objects or undef.
get_templates_by_type($type)
Get templates by type. Returns list of Monitoring::Config::Object objects.
get_template_by_name($type, $name)
Get template object by name. Returns list of Monitoring::Config::Object objects.
get_object_by_location($path, $linenr)
Get single object by path and line number. Returns Monitoring::Config::Object objects or undef.
get_object_by_id($id)
Get object by id. Returns Monitoring::Config::Object object or undef.
get_services_for_host($hostobj)
Get services by host. Returns a hashref with ids of references:
{ host => {}, group => {} }
get_services_by_name($host_name, $service_description)
Returns list of services for given host and service names
get_hosts_for_service($svcobj)
Get hosts for service. Returns a list of hosts using this service.
update()
update objects config
check_files_changed([ $reload ])
update objects config
update_object($obj, $newdata, [ $comments, [ $rebuild ]])
update objects config
delete_object($obj, [ $rebuild ])
update objects config
move_object($obj, $newfile, [ $rebuild ])
move object to different file
file_add($file, [ $rebuild ])
add new file to config
file_delete($file, [ $rebuild ])
remove a file from the config
file_undelete($file, [ $rebuild ])
undelete a file marked for removal
rebuild_index()
rebuild object index
rename_dependencies($obj, $oldname, $newname)
rename dependencies
clone_refs($orig, $obj, $cloned_name, $newname, [$clone_refs], [$test_mode])
clone all incoming references of object. In test mode nothing will be changed and just the list of clonables will be returned. If clone_refs is set, only those ids will be cloned.
gather_references($obj)
return incoming and outgoing references
get_references($obj, [ $name ])
return all references for this object
get_default_keys($type, [ $options ])
$options = {
no_alias => 0, # skip alias definitions and only return real config attributes
sort => 0, # sort by default attribute order
}
return the default config keys for a type of object
get_files_for_folder($dir, [ $regex ])
return all files below this folder (matching the regex)
get_files_root()
return root folder for config files
is_host_in_hostgroup()
return list of hostgroups if this host is member of the group
is_remote()
return true if this backend has a remote connection
remote_file_sync()
syncronize files from remote
remote_config_check()
do config check on remote site
remote_config_reload()
do a config reload on remote site
remote_file_save()
save files to remote site
remote_get_plugins()
return plugins from remote site
remote_get_pluginhelp()
return plugin help from remote site
remote_get_pluginpreview()
return plugin preview from remote site
read_rc_file()
read naglint rc file and create sort function
updates file save config
return list of plugins
return plugin help
return plugin preview