import from branch_1_1:
[freeradius.git] / src / modules / rlm_sqlhpwippool / sqlhpwippool.sql
1 ---
2 --- Draft of Netvim SQL schema just for rlm_sqlhpwippool
3 ---
4
5 CREATE DATABASE `netvim` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
6 USE netvim;
7
8 CREATE TABLE `gid_ip` (
9   `gid` int(10) unsigned NOT NULL default '0' COMMENT 'Host group ID',
10   `ip_start` bigint(20) unsigned NOT NULL default '0' COMMENT 'Beginning of IP range',
11   `ip_stop` bigint(20) unsigned NOT NULL default '0' COMMENT 'End of IP range',
12   KEY `gid` (`gid`)
13 ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Netvim: host groups to IP ranges relations';
14
15 CREATE TABLE `host_groups` (
16   `gid` int(10) unsigned NOT NULL default '0' COMMENT 'Host group ID',
17   `parent` int(10) unsigned default NULL COMMENT 'ID of parent group',
18   `name` varchar(128) NOT NULL default '' COMMENT 'Host group UNIX name',
19   PRIMARY KEY  (`gid`),
20   UNIQUE KEY `group_name` (`name`)
21 ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Netvim: host groups';
22
23 CREATE TABLE `ids` (
24   `id` int(10) unsigned NOT NULL auto_increment COMMENT 'The One True ID',
25   `enabled` tinyint(1) NOT NULL default '1' COMMENT 'If 0, ignore the object',
26   `modified` datetime NOT NULL default '0000-00-00 00:00:00' COMMENT 'Time when any of object properties were modified',
27   `created` datetime NOT NULL default '0000-00-00 00:00:00' COMMENT 'Object creation date',
28   `type` varchar(64) default NULL COMMENT 'Link to an ef action',
29   PRIMARY KEY  (`id`)
30 ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Entity: the source of ID numbers';
31
32 CREATE TABLE `ip_pools` (
33   `pid` int(10) unsigned NOT NULL default '0' COMMENT 'Named pool ID',
34   `gid` int(10) unsigned NOT NULL default '0' COMMENT 'Host group ID',
35   `pnid` int(10) unsigned NOT NULL default '0' COMMENT 'Pool name ID',
36   `ip_start` bigint(20) unsigned NOT NULL default '0' COMMENT 'Beginning of IP range',
37   `ip_stop` bigint(20) unsigned NOT NULL default '0' COMMENT 'End of IP range',
38   `prio` int(11) NOT NULL default '0' COMMENT 'Pool priority',
39   `weight` int(10) unsigned NOT NULL default '1' COMMENT 'Pool weight',
40   `total` bigint(20) unsigned NOT NULL default '0' COMMENT 'Total number of IPs in pool',
41   `free` bigint(20) unsigned NOT NULL default '0' COMMENT 'Number of free IPs in pool',
42   PRIMARY KEY  (`pid`),
43   KEY `gid` (`gid`,`pnid`)
44 ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Netvim: named IP pools assigned to given host group';
45
46 CREATE TABLE `ips` (
47   `ip` bigint(20) unsigned NOT NULL default '0' COMMENT 'IP address',
48   `pid` int(10) unsigned NOT NULL default '0' COMMENT 'Named pool ID',
49   `rsv_since` datetime NOT NULL default '0000-00-00 00:00:00' COMMENT 'Time when IP was reserved',
50   `rsv_by` varchar(64) default NULL COMMENT 'Who/what reserved IP',
51   `rsv_until` datetime NOT NULL default '0000-00-00 00:00:00' COMMENT 'Reservation timeout',
52   PRIMARY KEY  (`ip`),
53   KEY `pid` (`pid`)
54 ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Netvim: states of single IP addresses';
55
56 CREATE TABLE `pool_names` (
57   `pnid` int(10) unsigned NOT NULL default '0' COMMENT 'Named pool ID',
58   `name` varchar(128) NOT NULL default '' COMMENT 'Pool UNIX name',
59   PRIMARY KEY  (`pnid`),
60   UNIQUE KEY `pool_name` (`name`)
61 ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Netvim: definitions of pool names';