blob: ff49923c4818bd0f8e5d2f7be93e58a4030118fa [file] [log] [blame]
#!/usr/local/bin/perl
use DBI;
$hostname = 'localhost'; # Host that serves the mSQL Database
$dbname = 'snmp'; # mySQL Database name
$doit = 1;
sub usage {
print "$0 [-H sqlhost] [-u user] [-p password] [-d] [-n]\n";
exit 0;
}
while ($#ARGV > -1 && $ARGV[0] =~ /^-/) {
$_ = shift @ARGV;
usage if (/-h/);
$hostname = shift if (/-H/);
$user = shift if (/-u/);
$pass = shift if (/-p/);
$delete = 1 if (/-d/);
$verbose = 1 if (/-v/);
$doit = 0 if (/-n/);
}
( $dbh = DBI->connect("DBI:mysql:database=$dbname;host=$hostname", $user, $pass))
or die "\tConnect not ok: $DBI::errstr\n";
# run a whole ton of setup stuff
if ($delete) {
$dbh->do("drop database if exists $dbname");
}
# here we go
$dbh->do("create database $dbname");
$dbh->do("use $dbname");
$dbh->do("create table hosts (id integer auto_increment primary key,
name varchar(16),
community varchar(32))");
$dbh->do("create table hosterrors (id integer auto_increment primary key,
host varchar(16),
errormsg varchar(128))");
$dbh->do("create table hosttables (id integer auto_increment primary key,
host varchar(16), tablename varchar(64),
groupname varchar(32),
keephistory integer(2))");
$dbh->do("create table usergroups (id integer auto_increment primary key,
user varchar(16),
groupname varchar(32),
isadmin enum('N','Y') default 'N')");
$dbh->do("create table userprefs (id integer auto_increment primary key,
user varchar(16),
groupname varchar(32),
tablename varchar(64),
columnname varchar(64),
displayit enum('N','Y') default 'Y')");
$dbh->do("create table hostgroups (id integer auto_increment primary key,
host varchar(16),
groupname varchar(32))");
$dbh->do("create table oncall (id integer auto_increment primary key,
user varchar(16),
groupname varchar(32),
email varchar(64),
days varchar(64),
hours varchar(64))");
$dbh->do("create table errorexpressions (id integer auto_increment primary key,
tablename varchar(64),
expression varchar(255),
returnfield varchar(64))");
# insert the standard ucd-snmp expressions
$dbh->do("insert into errorexpressions(tablename, expression, returnfield)
values('prEntry', 'prErrorFlag > 0', 'prErrMessage')");
$dbh->do("insert into errorexpressions(tablename, expression, returnfield)
values('extEntry', 'extResult > 0', 'extOutput')");
$dbh->do("insert into errorexpressions(tablename, expression, returnfield)
values('dskEntry', 'dskErrorFlag > 0', 'dskErrMessage')");
$dbh->do("insert into errorexpressions(tablename, expression, returnfield)
values('laEntry', 'laErrorFlag > 0', 'laErrMessage')");
$dbh->do("insert into errorexpressions(tablename, expression, returnfield)
values('fileEntry', 'fileErrorFlag > 0', 'fileErrMessage')");
$dbh->do("insert into errorexpressions(tablename, expression, returnfield)
values('snmperrs', 'snmperrErrorFlag > 0', 'snmperrErrMessage')");
$dbh->do("insert into errorexpressions(tablename, expression, returnfield)
values('memory', 'memSwapError > 0', 'memSwapErrMessage')");
$dbh->disconnect();