#!/usr/bin/php -q 0) { $hosts = db_fetch_assoc("SELECT * FROM host $sql_where"); if (cacti_sizeof($hosts)) { foreach($hosts as $host) { print "NOTE: Updating Host '" . $host['description'] . "'\n"; $snmp_queries = db_fetch_assoc('SELECT snmp_query_id FROM host_template_snmp_query WHERE host_template_id=' . $host['host_template_id']); if (cacti_sizeof($snmp_queries) > 0) { print "NOTE: Updating Data Queries. There were '" . cacti_sizeof($snmp_queries) . "' Found\n"; foreach ($snmp_queries as $snmp_query) { print "NOTE: Updating Data Query ID '" . $snmp_query['snmp_query_id'] . "'\n"; db_execute('REPLACE INTO host_snmp_query (host_id,snmp_query_id,reindex_method) VALUES (' . $host['id'] . ', ' . $snmp_query['snmp_query_id'] . ',' . DATA_QUERY_AUTOINDEX_BACKWARDS_UPTIME . ')'); /* recache snmp data */ run_data_query($host['id'], $snmp_query['snmp_query_id']); } } $graph_templates = db_fetch_assoc('SELECT graph_template_id FROM host_template_graph WHERE host_template_id=' . $host['host_template_id']); if (cacti_sizeof($graph_templates) > 0) { print "NOTE: Updating Graph Templates. There were '" . cacti_sizeof($graph_templates) . "' Found\n"; foreach ($graph_templates as $graph_template) { db_execute('REPLACE INTO host_graph (host_id, graph_template_id) VALUES (' . $host['id'] . ', ' . $graph_template['graph_template_id'] . ')'); automation_hook_graph_template($host['id'], $graph_template['graph_template_id']); api_plugin_hook_function('add_graph_template_to_host', array('host_id' => $host['id'], 'graph_template_id' => $graph_template['graph_template_id'])); } } } } } else { print "ERROR: The selected Host Template does not exist, try --list-host-templates\n\n"; exit(1); } /* display_version - displays version information */ function display_version() { $version = get_cacti_cli_version(); print "Cacti Retemplate Host Utility, Version $version, " . COPYRIGHT_YEARS . "\n"; } /* display_help - displays the usage of the function */ function display_help () { display_version(); print "\nusage: host_update_template.php --host-id=[host-id|all] [--host-template=[ID]] [--debug]\n\n"; print "A utility to update Cacti devices with the latest Device Template\n\n"; print "Required:\n"; print " --host-id=host_id|all - The host_id to have templates reapplied 'all' to do all hosts\n"; print " --host-template=ID - Which Host Template to Refresh\n\n"; print "Optional:\n"; print " --debug - Display verbose output during execution\n\n"; print "List Options:\n"; print " --list-host-templates - Lists all available Host Templates\n\n"; } function debug($message) { global $debug; if ($debug) { print("DEBUG: " . $message . "\n"); } }