Пример #1
0
function snmpagent_cache_rebuilt()
{
    snmpagent_cache_install();
}
Пример #2
0
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'));
}