Revert "Revert "and added files""
[bcm963xx.git] / userapps / opensource / net-snmp / perl / manager / setupdb
1 #!/usr/bin/perl
2
3 use DBI;
4 $hostname = 'localhost';          # Host that serves the mSQL Database
5 $dbname = 'snmp';                 # mySQL Database name
6 $doit = 1;
7
8 sub usage {
9     print "$0 [-H sqlhost] [-u user] [-p password] [-d] [-n]\n";
10     exit 0;
11 }
12
13 while ($#ARGV > -1 && $ARGV[0] =~ /^-/) {
14     $_ = shift @ARGV;
15     usage if (/-h/);
16     $hostname = shift if (/-H/);
17     $user = shift if (/-u/);
18     $pass = shift if (/-p/);
19     $delete = 1 if (/-d/);
20     $verbose = 1 if (/-v/);
21     $doit = 0 if (/-n/);
22 }
23
24 ( $dbh = DBI->connect("DBI:mysql:database=$dbname;host=$hostname", $user, $pass))
25     or die "\tConnect not ok: $DBI::errstr\n";
26
27 # run a whole ton of setup stuff
28
29 if ($delete) {
30     DO("drop database if exists $dbname");
31 }
32
33 # here we go
34
35 DO("create database $dbname");
36 DO("use $dbname");
37
38 # tables dumped with
39 #
40 # mysqldump -d ... snmp TABLE | perl -n -e 'while(<>) { last if (/CREATE/);} print "DO(\"$_"; while (<>) { last if (/\);/); print; } print ")\");\n";'
41
42 DO("CREATE TABLE hosterrors (
43   id int(11) DEFAULT '0' NOT NULL auto_increment,
44   host varchar(64),
45   errormsg varchar(128),
46   PRIMARY KEY (id)
47 )");
48
49 DO("CREATE TABLE hosttables (
50   id int(11) DEFAULT '0' NOT NULL auto_increment,
51   host varchar(64),
52   tablename varchar(64),
53   groupname varchar(32),
54   keephistory int(2),
55   PRIMARY KEY (id)
56 )");
57
58 DO("CREATE TABLE usergroups (
59   id int(11) DEFAULT '0' NOT NULL auto_increment,
60   user varchar(16),
61   groupname varchar(32),
62   isadmin enum('N','Y') DEFAULT 'N',
63   PRIMARY KEY (id)
64 )");
65
66 DO("CREATE TABLE userprefs (
67   id int(11) DEFAULT '0' NOT NULL auto_increment,
68   user varchar(16),
69   groupname varchar(32),
70   tablename varchar(64),
71   columnname varchar(64),
72   displayit enum('N','Y') DEFAULT 'Y',
73   PRIMARY KEY (id)
74 )");
75
76 DO("CREATE TABLE hostgroups (
77   id int(11) DEFAULT '0' NOT NULL auto_increment,
78   host varchar(64),
79   groupname varchar(32),
80   sysObjectId varchar(255),
81   sysDescr varchar(255),
82   versionTag varchar(32),
83   sysUpTime varchar(64),
84   PRIMARY KEY (id)
85 )");
86
87 DO("CREATE TABLE oncall (
88   id int(11) DEFAULT '0' NOT NULL auto_increment,
89   user varchar(16),
90   groupname varchar(32),
91   email varchar(64),
92   days varchar(64),
93   hours varchar(64),
94   PRIMARY KEY (id)
95 )");
96
97 DO("CREATE TABLE errorexpressions (
98   id int(11) DEFAULT '0' NOT NULL auto_increment,
99   tablename varchar(64),
100   expression varchar(255),
101   returnfield varchar(64),
102   PRIMARY KEY (id)
103 )");
104
105 DO("CREATE TABLE setup (
106   lookup varchar(64),
107   varcol varchar(128),
108   valcol varchar(128)
109 )");
110
111 DO("CREATE TABLE authgroup (
112   id int(11) DEFAULT '0' NOT NULL auto_increment,
113   lookup varchar(64),
114   varcol varchar(128),
115   valcol varchar(128),
116   PRIMARY KEY (id)
117 )");
118
119 DO("CREATE TABLE authhost (
120   id int(11) DEFAULT '0' NOT NULL auto_increment,
121   lookup varchar(64),
122   varcol varchar(128),
123   valcol varchar(128),
124   PRIMARY KEY (id)
125 )");
126
127 # insert the standard ucd-snmp expressions 
128 DO("insert into errorexpressions(tablename, expression, returnfield)
129                 values('prTable', 'prErrorFlag > 0', 'prErrMessage')");
130 DO("insert into errorexpressions(tablename, expression, returnfield)
131                 values('extTable', 'extResult > 0', 'extOutput')");
132 DO("insert into errorexpressions(tablename, expression, returnfield)
133                 values('dskTable', 'dskErrorFlag > 0', 'dskErrMessage')");
134 DO("insert into errorexpressions(tablename, expression, returnfield)
135                 values('laTable', 'laErrorFlag > 0', 'laErrMessage')");
136 DO("insert into errorexpressions(tablename, expression, returnfield)
137                 values('fileTable', 'fileErrorFlag > 0', 'fileErrMessage')");
138 DO("insert into errorexpressions(tablename, expression, returnfield)
139                 values('snmperrs', 'snmperrErrorFlag > 0', 'snmperrErrMessage')");
140 DO("insert into errorexpressions(tablename, expression, returnfield)
141                 values('memory', 'memSwapError > 0', 'memSwapErrMessage')");
142
143 $dbh->disconnect();
144
145 sub DO {
146     my $cmd = shift;
147     print $cmd,"\n" if ($verbose);
148     $dbh->do($cmd) if ($doit);
149 }