function snmpagent_cache_rebuilt() { snmpagent_cache_install(); }
function upgrade_to_0_8_8d() { db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `user_auth_group` (\n\t\t`id` int(10) unsigned NOT NULL auto_increment,\n\t\t`name` varchar(20) NOT NULL,\n\t\t`description` varchar(255) NOT NULL default '',\n\t\t`graph_settings` varchar(2) DEFAULT NULL,\n\t\t`login_opts` tinyint(1) NOT NULL DEFAULT '1',\n\t\t`show_tree` varchar(2) DEFAULT 'on',\n\t\t`show_list` varchar(2) DEFAULT 'on',\n\t\t`show_preview` varchar(2) NOT NULL DEFAULT 'on',\n\t\t`policy_graphs` tinyint(1) unsigned NOT NULL DEFAULT '1',\n\t\t`policy_trees` tinyint(1) unsigned NOT NULL DEFAULT '1',\n\t\t`policy_hosts` tinyint(1) unsigned NOT NULL DEFAULT '1',\n\t\t`policy_graph_templates` tinyint(1) unsigned NOT NULL DEFAULT '1',\n\t\t`enabled` char(2) NOT NULL DEFAULT 'on',\n\t\tPRIMARY KEY (`id`))\n\t\tENGINE=MyISAM\n\t\tCOMMENT='Table that Contains User Groups';"); db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `user_auth_group_perms` (\n\t\t`group_id` mediumint(8) unsigned NOT NULL DEFAULT '0',\n\t\t`item_id` mediumint(8) unsigned NOT NULL DEFAULT '0',\n\t\t`type` tinyint(2) unsigned NOT NULL DEFAULT '0',\n\t\tPRIMARY KEY (`group_id`,`item_id`,`type`),\n\t\tKEY `group_id` (`group_id`,`type`))\n\t\tENGINE=MyISAM\n\t\tCOMMENT='Table that Contains User Group Permissions';"); db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `user_auth_group_realm` (\n\t\t`group_id` int(10) unsigned NOT NULL,\n\t\t`realm_id` int(10) unsigned NOT NULL,\n\t\tPRIMARY KEY (`group_id`, `realm_id`),\n\t\tKEY `group_id` (`group_id`),\n\t\tKEY `realm_id` (`realm_id`))\n\t\tENGINE=MyISAM\n\t\tCOMMENT='Table that Contains User Group Realm Permissions';"); db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `user_auth_group_members` (\n\t\t`group_id` int(10) unsigned NOT NULL,\n\t\t`user_id` int(10) unsigned NOT NULL,\n\t\tPRIMARY KEY (`group_id`, `user_id`),\n\t\tKEY `group_id` (`group_id`),\n\t\tKEY `realm_id` (`user_id`))\n\t\tENGINE=MyISAM\n\t\tCOMMENT='Table that Contains User Group Members';"); db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `settings_graphs_group` (\n\t\t`group_id` smallint(8) unsigned NOT NULL DEFAULT '0',\n\t\t`name` varchar(50) NOT NULL DEFAULT '',\n\t\t`value` varchar(255) NOT NULL DEFAULT '',\n\t\tPRIMARY KEY (`group_id`,`name`))\n\t\tENGINE=MyISAM\n\t\tCOMMENT='Stores the Default User Group Graph Settings';"); db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `data_source_stats_daily` (\n\t\t`local_data_id` mediumint(8) unsigned NOT NULL,\n\t\t`rrd_name` varchar(19) NOT NULL,\n\t\t`average` DOUBLE DEFAULT NULL,\n\t\t`peak` DOUBLE DEFAULT NULL,\n\t\tPRIMARY KEY (`local_data_id`,`rrd_name`)\n\t\t) ENGINE=MyISAM;"); db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `data_source_stats_hourly` (\n\t\t`local_data_id` mediumint(8) unsigned NOT NULL,\n\t\t`rrd_name` varchar(19) NOT NULL,\n\t\t`average` DOUBLE DEFAULT NULL,\n\t\t`peak` DOUBLE DEFAULT NULL,\n\t\tPRIMARY KEY (`local_data_id`,`rrd_name`)\n\t\t) ENGINE=MyISAM;"); db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `data_source_stats_hourly_cache` (\n\t\t`local_data_id` mediumint(8) unsigned NOT NULL,\n\t\t`rrd_name` varchar(19) NOT NULL,\n\t\t`time` timestamp NOT NULL default '0000-00-00 00:00:00',\n\t\t`value` DOUBLE DEFAULT NULL,\n\t\tPRIMARY KEY (`local_data_id`,`time`,`rrd_name`),\n\t\tKEY `time` USING BTREE (`time`)\n\t\t) ENGINE=MEMORY;"); db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `data_source_stats_hourly_last` (\n\t\t`local_data_id` mediumint(8) unsigned NOT NULL,\n\t\t`rrd_name` varchar(19) NOT NULL,\n\t\t`value` DOUBLE DEFAULT NULL,\n\t\t`calculated` DOUBLE DEFAULT NULL,\n\t\tPRIMARY KEY (`local_data_id`,`rrd_name`)\n\t\t) ENGINE=MEMORY;"); if (!sizeof(db_fetch_row("SHOW COLUMNS from data_source_stats_hourly_last where Field='calculated'"))) { db_install_execute('0.8.8d', "ALTER TABLE data_source_stats_hourly_last ADD calculated DOUBLE DEFAULT NULL AFTER `value`"); } db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `data_source_stats_monthly` (\n\t\t`local_data_id` mediumint(8) unsigned NOT NULL,\n\t\t`rrd_name` varchar(19) NOT NULL,\n\t\t`average` DOUBLE DEFAULT NULL,\n\t\t`peak` DOUBLE DEFAULT NULL,\n\t\tPRIMARY KEY (`local_data_id`,`rrd_name`)\n\t\t) ENGINE=MyISAM;"); db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `data_source_stats_weekly` (\n\t\t`local_data_id` mediumint(8) unsigned NOT NULL,\n\t\t`rrd_name` varchar(19) NOT NULL,\n\t\t`average` DOUBLE DEFAULT NULL,\n\t\t`peak` DOUBLE DEFAULT NULL,\n\t\tPRIMARY KEY (`local_data_id`,`rrd_name`)\n\t\t) ENGINE=MyISAM;"); db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `data_source_stats_yearly` (\n\t\t`local_data_id` mediumint(8) unsigned NOT NULL,\n\t\t`rrd_name` varchar(19) NOT NULL,\n\t\t`average` DOUBLE DEFAULT NULL,\n\t\t`peak` DOUBLE DEFAULT NULL,\n\t\tPRIMARY KEY (`local_data_id`,`rrd_name`)\n\t\t) ENGINE=MyISAM;"); db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `poller_output_boost` (\n\t\t`local_data_id` mediumint(8) unsigned NOT NULL default '0',\n\t\t`rrd_name` varchar(19) NOT NULL default '',\n\t\t`time` datetime NOT NULL default '0000-00-00 00:00:00',\n\t\t`output` varchar(512) NOT NULL,\n\t\tPRIMARY KEY USING BTREE (`local_data_id`,`time`,`rrd_name`))\n\t\tENGINE=MEMORY;"); db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `poller_output_boost_processes` (\n\t\t`sock_int_value` bigint(20) unsigned NOT NULL auto_increment,\n\t\t`status` varchar(255) default NULL,\n\t\tPRIMARY KEY (`sock_int_value`))\n\t\tENGINE=MEMORY;"); if (db_table_exists('plugin_domains')) { db_install_execute('0.8.8d', 'RENAME TABLE plugin_domains TO user_domains'); } db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `user_domains` (\n\t\t`domain_id` int(10) unsigned NOT NULL auto_increment,\n\t\t`domain_name` varchar(20) NOT NULL,\n\t\t`type` int(10) UNSIGNED NOT NULL DEFAULT '0',\n\t\t`enabled` char(2) NOT NULL DEFAULT 'on',\n\t\t`defdomain` tinyint(3) NOT NULL DEFAULT '0',\n\t\t`user_id` int(10) unsigned NOT NULL default '0',\n\t\tPRIMARY KEY (`domain_id`))\n\t\tENGINE=MyISAM\n\t\tCOMMENT='Table to Hold Login Domains';"); if (db_table_exists('plugin_domains_ldsp')) { db_install_execute('0.8.8d', 'RENAME TABLE plugin_domains_ldsp TO user_domains_ldap'); } db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `user_domains_ldap` (\n\t\t`domain_id` int(10) unsigned NOT NULL,\n\t\t`server` varchar(128) NOT NULL,\n\t\t`port` int(10) unsigned NOT NULL,\n\t\t`port_ssl` int(10) unsigned NOT NULL,\n\t\t`proto_version` tinyint(3) unsigned NOT NULL,\n\t\t`encryption` tinyint(3) unsigned NOT NULL,\n\t\t`referrals` tinyint(3) unsigned NOT NULL,\n\t\t`mode` tinyint(3) unsigned NOT NULL,\n\t\t`dn` varchar(128) NOT NULL,\n\t\t`group_require` char(2) NOT NULL,\n\t\t`group_dn` varchar(128) NOT NULL,\n\t\t`group_attrib` varchar(128) NOT NULL,\n\t\t`group_member_type` tinyint(3) unsigned NOT NULL,\n\t\t`search_base` varchar(128) NOT NULL,\n\t\t`search_filter` varchar(128) NOT NULL,\n\t\t`specific_dn` varchar(128) NOT NULL,\n\t\t`specific_password` varchar(128) NOT NULL,\n\t\tPRIMARY KEY (`domain_id`))\n\t\tENGINE=MyISAM\n\t\tCOMMENT='Table to Hold Login Domains for LDAP';"); if (db_table_exists('plugin_snmpagent_cache')) { db_install_execute('0.8.8d', 'RENAME TABLE plugin_snmpagent_cache TO snmpagent_cache'); } db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `snmpagent_cache` (\n\t\t`oid` varchar(255) NOT NULL,\n\t\t`name` varchar(255) NOT NULL,\n\t\t`mib` varchar(255) NOT NULL,\n\t\t`type` varchar(255) NOT NULL DEFAULT '',\n\t\t`otype` varchar(255) NOT NULL DEFAULT '',\n\t\t`kind` varchar(255) NOT NULL DEFAULT '',\n\t\t`max-access` varchar(255) NOT NULL DEFAULT 'not-accessible',\n\t\t`value` varchar(255) NOT NULL DEFAULT '',\n\t\t`description` varchar(5000) NOT NULL DEFAULT '',\n\t\tPRIMARY KEY (`oid`),\n\t\tKEY `name` (`name`),\n\t\tKEY `mib` (`mib`))\n\t\tENGINE=MyISAM\n\t\tCOMMENT='SNMP MIB CACHE';"); if (db_table_exists('plugin_snmpagent_mibs')) { db_install_execute('0.8.8d', 'RENAME TABLE plugin_snmpagent_mibs TO snmpagent_mibs'); } db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `snmpagent_mibs` (\n\t\t`id` int(8) NOT NULL AUTO_INCREMENT,\n\t\t`name` varchar(32) NOT NULL DEFAULT '',\n\t\t`file` varchar(255) NOT NULL DEFAULT '',\n\t\tPRIMARY KEY (`id`))\n\t\tENGINE=MyISAM\n\t\tCOMMENT='Registered MIB files';"); if (db_table_exists('plugin_snmpagent_cache_notifications')) { db_install_execute('0.8.8d', 'RENAME TABLE plugin_snmpagent_cache_notifications TO snmpagent_cache_notifications'); } db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `snmpagent_cache_notifications` (\n\t\t`name` varchar(255) NOT NULL,\n\t\t`mib` varchar(255) NOT NULL,\n\t\t`attribute` varchar(255) NOT NULL,\n\t\t`sequence_id` smallint(6) NOT NULL,\n\t\tKEY `name` (`name`))\n\t\tENGINE=MyISAM\n\t\tCOMMENT='Notifcations and related attributes';"); if (db_table_exists('plugin_snmpagent_cache_textual_conventions')) { db_install_execute('0.8.8d', 'RENAME TABLE plugin_snmpagent_cache_textual_conventions TO snmpagent_cache_textual_conventions'); } db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `snmpagent_cache_textual_conventions` (\n\t\t`name` varchar(255) NOT NULL,\n\t\t`mib` varchar(255) NOT NULL,\n\t\t`type` varchar(255) NOT NULL DEFAULT '',\n\t\t`description` varchar(5000) NOT NULL DEFAULT '',\n\t\tKEY `name` (`name`),\n\t\tKEY `mib` (`mib`))\n\t\tENGINE=MyISAM\n\t\tCOMMENT='Textual conventions';"); if (db_table_exists('plugin_snmpagent_managers')) { db_install_execute('0.8.8d', 'RENAME TABLE plugin_snmpagent_managers TO snmpagent_managers'); } db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `snmpagent_managers` (\n\t\t`id` int(8) NOT NULL AUTO_INCREMENT,\n\t\t`hostname` varchar(255) NOT NULL,\n\t\t`description` varchar(255) NOT NULL,\n\t\t`disabled` char(2) DEFAULT NULL,\n\t\t`max_log_size` tinyint(1) NOT NULL,\n\t\t`snmp_version` varchar(255) NOT NULL,\n\t\t`snmp_community` varchar(255) NOT NULL,\n\t\t`snmp_username` varchar(255) NOT NULL,\n\t\t`snmp_auth_password` varchar(255) NOT NULL,\n\t\t`snmp_auth_protocol` varchar(255) NOT NULL,\n\t\t`snmp_priv_password` varchar(255) NOT NULL,\n\t\t`snmp_priv_protocol` varchar(255) NOT NULL,\n\t\t`snmp_port` varchar(255) NOT NULL,\n\t\t`snmp_message_type` tinyint(1) NOT NULL,\n\t\t`notes` text,\n\t\tPRIMARY KEY (`id`),\n\t\tKEY `hostname` (`hostname`))\n\t\tENGINE=MyISAM\n\t\tCOMMENT='snmp notification receivers';"); if (db_table_exists('plugin_snmpagent_managers_notifications')) { db_install_execute('0.8.8d', 'RENAME TABLE plugin_snmpagent_managers_notifications TO snmpagent_managers_notifications'); } db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `snmpagent_managers_notifications` (\n\t\t`manager_id` int(8) NOT NULL,\n\t\t`notification` varchar(255) NOT NULL,\n\t\t`mib` varchar(255) NOT NULL,\n\t\tKEY `mib` (`mib`),\n\t\tKEY `manager_id` (`manager_id`),\n\t\tKEY `manager_id2` (`manager_id`,`notification`))\n\t\tENGINE=MyISAM\n\t\tCOMMENT='snmp notifications to receivers';"); if (db_table_exists('plugin_snmpagent_notifications_log')) { db_install_execute('0.8.8d', 'RENAME TABLE plugin_snmpagent_notifications_log TO snmpagent_notifications_log'); } db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `snmpagent_notifications_log` (\n\t\t`id` int(12) NOT NULL AUTO_INCREMENT,\n\t\t`time` int(24) NOT NULL,\n\t\t`severity` tinyint(1) NOT NULL,\n\t\t`manager_id` int(8) NOT NULL,\n\t\t`notification` varchar(255) NOT NULL,\n\t\t`mib` varchar(255) NOT NULL,\n\t\t`varbinds` varchar(5000) NOT NULL,\n\t\tPRIMARY KEY (`id`),\n\t\tKEY `time` (`time`),\n\t\tKEY `severity` (`severity`),\n\t\tKEY `manager_id` (`manager_id`),\n\t\tKEY `manager_id2` (`manager_id`,`notification`))\n\t\tENGINE=MyISAM\n\t\tCOMMENT='logs snmp notifications to receivers';"); db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `data_source_purge_temp` (\n\t\t`id` integer UNSIGNED auto_increment,\n\t\t`name_cache` varchar(255) NOT NULL default '',\n\t\t`local_data_id` mediumint(8) unsigned NOT NULL default '0',\n\t\t`name` varchar(128) NOT NULL default '',\n\t\t`size` integer UNSIGNED NOT NULL default '0',\n\t\t`last_mod` TIMESTAMP NOT NULL default '0000-00-00 00:00:00',\n\t\t`in_cacti` tinyint NOT NULL default '0',\n\t\t`data_template_id` mediumint(8) unsigned NOT NULL default '0',\n\t\tPRIMARY KEY (`id`),\n\t\tUNIQUE KEY name (`name`), \n\t\tKEY local_data_id (`local_data_id`), \n\t\tKEY in_cacti (`in_cacti`), \n\t\tKEY data_template_id (`data_template_id`)) \n\t\tENGINE=MyISAM \n\t\tCOMMENT='RRD Cleaner File Repository';"); db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `data_source_purge_action` (\n\t\t`id` integer UNSIGNED auto_increment,\n\t\t`name` varchar(128) NOT NULL default '',\n\t\t`local_data_id` mediumint(8) unsigned NOT NULL default '0',\n\t\t`action` tinyint(2) NOT NULL default 0,\n\t\tPRIMARY KEY (`id`),\n\t\tUNIQUE KEY name (`name`))\n\t\tENGINE=MyISAM \n\t\tCOMMENT='RRD Cleaner File Actions';"); db_install_execute('0.8.8d', "ALTER TABLE graph_tree \n\t\tADD COLUMN enabled char(2) DEFAULT 'on' AFTER id,\n\t\tADD COLUMN locked TINYINT default '0' AFTER enabled, \n\t\tADD COLUMN locked_date TIMESTAMP default '0000-00-00' AFTER locked, \n\t\tADD COLUMN last_modified TIMESTAMP default '0000-00-00' AFTER name, \n\t\tADD COLUMN user_id INT UNSIGNED default '1' AFTER name, \n\t\tADD COLUMN modified_by INT UNSIGNED default '1'"); db_install_execute('0.8.8d', "ALTER TABLE graph_tree_items \n\t\tMODIFY COLUMN id BIGINT UNSIGNED NOT NULL auto_increment, \n\t\tADD COLUMN parent BIGINT UNSIGNED default NULL AFTER id, \n\t\tADD COLUMN position int UNSIGNED default NULL AFTER parent,\n\t\tADD INDEX parent (parent)"); db_install_execute('0.8.8d', "CREATE TABLE IF NOT EXISTS `user_auth_cache` (\n\t\t`user_id` int(10) unsigned NOT NULL DEFAULT '0',\n\t\t`hostname` varchar(64) NOT NULL DEFAULT '',\n\t\t`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,\n\t\t`token` varchar(1024) NOT NULL DEFAULT '') \n\t\tENGINE=MyISAM \n\t\tCOMMENT='Caches Remember Me Details'"); // Add secpass fields db_install_add_column('0.8.8d', 'user_auth', array('name' => 'lastchange', 'type' => 'int(12)', 'NULL' => false, 'default' => '-1')); db_install_add_column('0.8.8d', 'user_auth', array('name' => 'lastlogin', 'type' => 'int(12)', 'NULL' => false, 'default' => '-1')); db_install_add_column('0.8.8d', 'user_auth', array('name' => 'password_history', 'type' => 'text', 'NULL' => false, 'default' => '')); db_install_add_column('0.8.8d', 'user_auth', array('name' => 'locked', 'type' => 'varchar(3)', 'NULL' => false, 'default' => '')); db_install_add_column('0.8.8d', 'user_auth', array('name' => 'failed_attempts', 'type' => 'int(5)', 'NULL' => false, 'default' => '0')); db_install_add_column('0.8.8d', 'user_auth', array('name' => 'lastfail', 'type' => 'int(12)', 'NULL' => false, 'default' => '0')); // Convert all trees to new format, but never run more than once $columns = array_rekey(db_fetch_assoc("SHOW COLUMNS FROM graph_tree_items"), "Field", array("Type", "Null", "Key", "Default", "Extra")); if (isset($columns['order_key'])) { $trees = db_fetch_assoc("SELECT id FROM graph_tree ORDER BY id"); if (sizeof($trees)) { foreach ($trees as $t) { $tree_items = db_fetch_assoc("SELECT * \n\t\t\t\tFROM graph_tree_items \n\t\t\t\tWHERE graph_tree_id=" . $t['id'] . " \n\t\t\t\tAND order_key NOT LIKE '___000%' \n\t\t\t\tORDER BY order_key"); /* reset the position variable in case we run more than once */ db_execute("UPDATE graph_tree_items SET position=0 WHERE graph_tree_id=" . $t['id']); $prev_parent = 0; $prev_id = 0; $position = 0; if (sizeof($tree_items)) { foreach ($tree_items as $item) { $translated_key = rtrim($item["order_key"], "0\r\n"); $missing_len = strlen($translated_key) % CHARS_PER_TIER; if ($missing_len > 0) { $translated_key .= substr("000", 0, $missing_len); } $parent_key_len = strlen($translated_key) - CHARS_PER_TIER; $parent_key = substr($translated_key, 0, $parent_key_len); $parent_id = db_fetch_cell("SELECT id FROM graph_tree_items WHERE graph_tree_id=" . $item["graph_tree_id"] . " AND order_key LIKE '" . $parent_key . "000%'"); if (!empty($parent_id)) { /* get order */ if ($parent_id != $prev_parent) { $position = 0; } $position = db_fetch_cell("SELECT MAX(position) \n\t\t\t\t\t\t\tFROM graph_tree_items \n\t\t\t\t\t\t\tWHERE graph_tree_id=" . $item['graph_tree_id'] . " \n\t\t\t\t\t\t\tAND parent=" . $parent_id) + 1; db_execute("UPDATE graph_tree_items SET parent={$parent_id}, position={$position} WHERE id=" . $item["id"]); } else { db_execute("UPDATE graph_tree_items SET parent=0, position={$position} WHERE id=" . $item["id"]); } $prev_parent = $parent_id; } } /* get base tree items and set position */ $tree_items = db_fetch_assoc("SELECT * \n\t\t\t\tFROM graph_tree_items\n\t\t\t\tWHERE graph_tree_id=" . $t['id'] . " \n\t\t\t\tAND order_key LIKE '___000%' \n\t\t\t\tORDER BY order_key"); $position = 0; if (sizeof($tree_items)) { foreach ($tree_items as $item) { db_execute("UPDATE graph_tree_items SET parent=0, position={$position} WHERE id=" . $item['id']); $position++; } } } } db_install_execute('0.8.8d', "ALTER TABLE graph_tree_items DROP COLUMN order_key"); } /* merge of clog */ /* clog user = 19 */ /* dlog admin = 18 */ $realms = db_fetch_assoc("SELECT * FROM plugin_realms WHERE plugin = 'clog'"); if (sizeof($realms)) { foreach ($realms as $r) { if ($r['file'] == 'clog.php') { db_execute("UPDATE user_auth_realm SET realm_id=18 WHERE realm_id=" . ($r['id'] + 100)); } elseif ($r['file'] == 'clog_user.php') { db_execute("UPDATE user_auth_realm SET realm_id=19 WHERE realm_id=" . ($r['id'] + 100)); } } } db_install_execute('0.8.8d', "DELETE FROM plugin_realms WHERE file LIKE 'clog%'"); db_install_execute('0.8.8d', "DELETE FROM plugin_config WHERE directory='clog'"); db_install_execute('0.8.8d', "DELETE FROM plugin_hooks WHERE name='clog'"); snmpagent_cache_install(); // Adding email column for future user db_install_add_column('0.8.8d', 'user_auth', array('name' => 'email_address', 'type' => 'varchar(128)', 'NULL' => true, 'after' => 'full_name')); db_install_execute('0.8.8d', 'DROP TABLE IF EXISTS poller_output_realtime'); db_install_execute('0.8.8d', "CREATE TABLE poller_output_realtime (\n\t\tlocal_data_id mediumint(8) unsigned NOT NULL default '0',\n\t\trrd_name varchar(19) NOT NULL default '',\n\t\ttime timestamp NOT NULL default '0000-00-00 00:00:00',\n\t\toutput text NOT NULL,\n\t\tpoller_id varchar(30) NOT NULL default '',\n\t\tPRIMARY KEY (local_data_id,rrd_name,`time`),\n\t\tKEY poller_id(poller_id)) \n\t\tENGINE=MyISAM"); db_install_execute('0.8.8d', 'DROP TABLE IF EXISTS poller_output_rt'); db_install_execute('0.8.8d', "DELETE FROM plugin_realms WHERE file LIKE '%graph_image_rt%'"); db_install_execute('0.8.8d', "DELETE FROM plugin_config WHERE directory='realtime'"); db_install_execute('0.8.8d', "DELETE FROM plugin_hooks WHERE name='realtime'"); // If we have never install Nectar before, we can simply install if (!sizeof(db_fetch_row("SHOW TABLES LIKE '%plugin_nectar%'"))) { db_install_execute('0.8.8d', "CREATE TABLE `reports` (\n\t\t\t`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,\n\t\t\t`user_id` mediumint(8) unsigned NOT NULL DEFAULT '0',\n\t\t\t`name` varchar(100) NOT NULL DEFAULT '',\n\t\t\t`cformat` char(2) NOT NULL DEFAULT '',\n\t\t\t`format_file` varchar(255) NOT NULL DEFAULT '',\n\t\t\t`font_size` smallint(2) unsigned NOT NULL DEFAULT '0',\n\t\t\t`alignment` smallint(2) unsigned NOT NULL DEFAULT '0',\n\t\t\t`graph_linked` char(2) NOT NULL DEFAULT '',\n\t\t\t`intrvl` smallint(2) unsigned NOT NULL DEFAULT '0',\n\t\t\t`count` smallint(2) unsigned NOT NULL DEFAULT '0',\n\t\t\t`offset` int(12) unsigned NOT NULL DEFAULT '0',\n\t\t\t`mailtime` bigint(20) unsigned NOT NULL DEFAULT '0',\n\t\t\t`subject` varchar(64) NOT NULL DEFAULT '',\n\t\t\t`from_name` varchar(40) NOT NULL,\n\t\t\t`from_email` text NOT NULL,\n\t\t\t`email` text NOT NULL,\n\t\t\t`bcc` text NOT NULL,\n\t\t\t`attachment_type` smallint(2) unsigned NOT NULL DEFAULT '1',\n\t\t\t`graph_height` smallint(2) unsigned NOT NULL DEFAULT '0',\n\t\t\t`graph_width` smallint(2) unsigned NOT NULL DEFAULT '0',\n\t\t\t`graph_columns` smallint(2) unsigned NOT NULL DEFAULT '0',\n\t\t\t`thumbnails` char(2) NOT NULL DEFAULT '',\n\t\t\t`lastsent` bigint(20) unsigned NOT NULL DEFAULT '0',\n\t\t\t`enabled` char(2) DEFAULT '',\n\t\t\tPRIMARY KEY (`id`),\n\t\t\tKEY `mailtime` (`mailtime`)) \n\t\t\tENGINE=MyISAM \n\t\t\tCOMMENT='Cacri Reporting Reports'"); db_install_execute('0.8.8d', "CREATE TABLE `reports_items` (\n\t\t\t`id` int(10) unsigned NOT NULL AUTO_INCREMENT,\n\t\t\t`report_id` int(10) unsigned NOT NULL DEFAULT '0',\n\t\t\t`item_type` tinyint(1) unsigned NOT NULL DEFAULT '1',\n\t\t\t`tree_id` int(10) unsigned NOT NULL DEFAULT '0',\n\t\t\t`branch_id` int(10) unsigned NOT NULL DEFAULT '0',\n\t\t\t`tree_cascade` char(2) NOT NULL DEFAULT '',\n\t\t\t`graph_name_regexp` varchar(128) NOT NULL DEFAULT '',\n\t\t\t`host_template_id` int(10) unsigned NOT NULL DEFAULT '0',\n\t\t\t`host_id` int(10) unsigned NOT NULL DEFAULT '0',\n\t\t\t`graph_template_id` int(10) unsigned NOT NULL DEFAULT '0',\n\t\t\t`local_graph_id` int(10) unsigned NOT NULL DEFAULT '0',\n\t\t\t`timespan` int(10) unsigned NOT NULL DEFAULT '0',\n\t\t\t`align` tinyint(1) unsigned NOT NULL DEFAULT '1',\n\t\t\t`item_text` text NOT NULL,\n\t\t\t`font_size` smallint(2) unsigned NOT NULL DEFAULT '10',\n\t\t\t`sequence` smallint(5) unsigned NOT NULL DEFAULT '0',\n\t\t\tPRIMARY KEY (`id`),\n\t\t\tKEY `report_id` (`report_id`)) \n\t\t\tENGINE=MyISAM \n\t\t\tCOMMENT='Cacti Reporting Items'"); } else { db_install_execute('0.8.8d', 'RENAME TABLE plugin_nectar TO reports'); db_install_execute('0.8.8d', 'RENAME TABLE plugin_nectar_items TO reports_items'); db_install_execute('0.8.8d', "UPDATE settings SET name=REPLACE(name, 'nectar','reports') WHERE name LIKE '%nectar%'"); db_install_add_column('0.8.8d', 'reports', array('name' => 'bcc', 'type' => 'TEXT', 'after' => 'email')); db_install_add_column('0.8.8d', 'reports', array('name' => 'from_name', 'type' => 'VARCHAR(40)', 'NULL' => false, 'default' => '', 'after' => 'mailtime')); db_install_add_column('0.8.8d', 'reports', array('name' => 'user_id', 'type' => 'mediumint(8)', 'unsigned' => true, 'NULL' => false, 'default' => '0', 'after' => 'id')); db_install_add_column('0.8.8d', 'reports', array('name' => 'graph_width', 'type' => 'smallint(2)', 'unsigned' => true, 'NULL' => false, 'default' => '0', 'after' => 'attachment_type')); db_install_add_column('0.8.8d', 'reports', array('name' => 'graph_height', 'type' => 'smallint(2)', 'unsigned' => true, 'NULL' => false, 'default' => '0', 'after' => 'graph_width')); db_install_add_column('0.8.8d', 'reports', array('name' => 'graph_columns', 'type' => 'smallint(2)', 'unsigned' => true, 'NULL' => false, 'default' => '0', 'after' => 'graph_height')); db_install_add_column('0.8.8d', 'reports', array('name' => 'thumbnails', 'type' => 'char(2)', 'NULL' => false, 'default' => '', 'after' => 'graph_columns')); db_install_add_column('0.8.8d', 'reports', array('name' => 'font_size', 'type' => 'smallint(2)', 'NULL' => false, 'default' => '16', 'after' => 'name')); db_install_add_column('0.8.8d', 'reports', array('name' => 'alignment', 'type' => 'smallint(2)', 'NULL' => false, 'default' => '0', 'after' => 'font_size')); db_install_add_column('0.8.8d', 'reports', array('name' => 'cformat', 'type' => 'char(2)', 'NULL' => false, 'default' => '', 'after' => 'name')); db_install_add_column('0.8.8d', 'reports', array('name' => 'format_file', 'type' => 'varchar(255)', 'NULL' => false, 'default' => '', 'after' => 'cformat')); db_install_add_column('0.8.8d', 'reports', array('name' => 'graph_linked', 'type' => 'char(2)', 'NULL' => false, 'default' => '', 'after' => 'alignment')); db_install_add_column('0.8.8d', 'reports', array('name' => 'subject', 'type' => 'varchar(64)', 'NULL' => false, 'default' => '', 'after' => 'mailtime')); /* plugin_reports_items upgrade */ db_install_add_column('0.8.8d', 'reports_items', array('name' => 'host_template_id', 'type' => 'int(10)', 'unsigned' => true, 'NULL' => false, 'default' => '0', 'after' => 'item_type')); db_install_add_column('0.8.8d', 'reports_items', array('name' => 'graph_template_id', 'type' => 'int(10)', 'unsigned' => true, 'NULL' => false, 'default' => '0', 'after' => 'host_id')); db_install_add_column('0.8.8d', 'reports_items', array('name' => 'tree_id', 'type' => 'int(10)', 'unsigned' => true, 'NULL' => false, 'default' => '0', 'after' => 'item_type')); db_install_add_column('0.8.8d', 'reports_items', array('name' => 'branch_id', 'type' => 'int(10)', 'unsigned' => true, 'NULL' => false, 'default' => '0', 'after' => 'tree_id')); db_install_add_column('0.8.8d', 'reports_items', array('name' => 'tree_cascade', 'type' => 'char(2)', 'NULL' => false, 'default' => '', 'after' => 'branch_id')); db_install_add_column('0.8.8d', 'reports_items', array('name' => 'graph_name_regexp', 'type' => 'varchar(128)', 'NULL' => false, 'default' => '', 'after' => 'tree_cascade')); /* fix host templates and graph template ids */ $items = db_fetch_assoc("SELECT * FROM reports_items WHERE item_type=1"); if (sizeof($items)) { foreach ($items as $row) { $host = db_fetch_row("SELECT host.* \n\t\t\t\tFROM graph_local \n\t\t\t\tLEFT JOIN host \n\t\t\t\tON (graph_local.host_id=host.id) \n\t\t\t\tWHERE graph_local.id=" . $row["local_graph_id"]); $graph_template = db_fetch_cell("SELECT graph_template_id \n\t\t\t\tFROM graph_local \n\t\t\t\tWHERE id=" . $row["local_graph_id"]); db_execute("UPDATE reports_items SET " . " host_id='" . $host["id"] . "', " . " host_template_id='" . $host["host_template_id"] . "', " . " graph_template_id='" . $graph_template . "' " . " WHERE id=" . $row["id"]); } } } db_install_add_column('0.8.8d', 'host', array('name' => 'snmp_sysDescr', 'type' => 'varchar(300)', 'NULL' => false, 'default' => '', 'after' => 'snmp_timeout')); db_install_add_column('0.8.8d', 'host', array('name' => 'snmp_sysObjectID', 'type' => 'varchar(64)', 'NULL' => false, 'default' => '', 'after' => 'snmp_sysDescr')); db_install_add_column('0.8.8d', 'host', array('name' => 'snmp_sysUpTimeInstance', 'type' => 'int', 'NULL' => false, 'default' => '0', 'after' => 'snmp_sysObjectID', 'unsigned' => true)); db_install_add_column('0.8.8d', 'host', array('name' => 'snmp_sysContact', 'type' => 'varchar(300)', 'NULL' => false, 'default' => '', 'after' => 'snmp_sysUpTimeInstance')); db_install_add_column('0.8.8d', 'host', array('name' => 'snmp_sysName', 'type' => 'varchar(300)', 'NULL' => false, 'default' => '', 'after' => 'snmp_sysContact')); db_install_add_column('0.8.8d', 'host', array('name' => 'snmp_sysLocation', 'type' => 'varchar(300)', 'NULL' => false, 'default' => '', 'after' => 'snmp_sysName')); db_install_add_column('0.8.8d', 'host', array('name' => 'polling_time', 'type' => 'DOUBLE', 'default' => '0', 'after' => 'avg_time')); }