diff options
| author | Arthur de Jong <arthur@arthurdejong.org> | 2013-08-12 13:26:03 +0200 |
|---|---|---|
| committer | Arthur de Jong <arthur@arthurdejong.org> | 2013-08-17 12:31:36 +0200 |
| commit | 1b89df59af349feb27205b90727263f17f29a9d8 (patch) | |
| tree | 4b84a5a633f63200fe089efd0ce220eb3364e661 /pynslcd/netgroup.py | |
| parent | 76712760885774f883f7bf79ce97931a6e251428 (diff) | |
Give cache tables friendlier names
This also defined the tables for netgroup storage.
Diffstat (limited to 'pynslcd/netgroup.py')
| -rw-r--r-- | pynslcd/netgroup.py | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/pynslcd/netgroup.py b/pynslcd/netgroup.py index 7be2936..1de60bf 100644 --- a/pynslcd/netgroup.py +++ b/pynslcd/netgroup.py @@ -43,13 +43,24 @@ class Search(search.LDAPSearch): class Cache(cache.Cache): + tables = ('netgroup_cache', 'netgroup_triple_cache', 'netgroup_member_cache') + create_sql = ''' - -- FIXME: this does not work as entries are never removed from the cache CREATE TABLE IF NOT EXISTS `netgroup_cache` - ( `cn` TEXT NOT NULL, - `member` TEXT NOT NULL, - `mtime` TIMESTAMP NOT NULL, - UNIQUE (`cn`, `member`) ); + ( `cn` TEXT PRIMARY KEY COLLATE NOCASE, + `mtime` TIMESTAMP NOT NULL ); + CREATE TABLE IF NOT EXISTS `netgroup_triple_cache` + ( `netgroup` TEXT NOT NULL COLLATE NOCASE, + `nisNetgroupTriple` TEXT NOT NULL COLLATE NOCASE, + FOREIGN KEY(`netgroup`) REFERENCES `netgroup_cache`(`cn`) + ON DELETE CASCADE ON UPDATE CASCADE ); + CREATE INDEX IF NOT EXISTS `netgroup_triple_idx` ON `netgroup_triple_cache`(`netgroup`); + CREATE TABLE IF NOT EXISTS `netgroup_member_cache` + ( `netgroup` TEXT NOT NULL COLLATE NOCASE, + `memberNisNetgroup` TEXT NOT NULL, + FOREIGN KEY(`netgroup`) REFERENCES `netgroup_cache`(`cn`) + ON DELETE CASCADE ON UPDATE CASCADE ); + CREATE INDEX IF NOT EXISTS `netgroup_membe_idx` ON `netgroup_member_cache`(`netgroup`); ''' |
