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 | |
parent | 76712760885774f883f7bf79ce97931a6e251428 (diff) |
Give cache tables friendlier names
This also defined the tables for netgroup storage.
-rw-r--r-- | pynslcd/alias.py | 13 | ||||
-rw-r--r-- | pynslcd/cache.py | 8 | ||||
-rw-r--r-- | pynslcd/group.py | 13 | ||||
-rw-r--r-- | pynslcd/host.py | 22 | ||||
-rw-r--r-- | pynslcd/netgroup.py | 21 | ||||
-rw-r--r-- | pynslcd/network.py | 24 | ||||
-rw-r--r-- | pynslcd/protocol.py | 6 | ||||
-rw-r--r-- | pynslcd/rpc.py | 6 | ||||
-rw-r--r-- | pynslcd/service.py | 22 |
9 files changed, 74 insertions, 61 deletions
diff --git a/pynslcd/alias.py b/pynslcd/alias.py index 48eccda..d5ae390 100644 --- a/pynslcd/alias.py +++ b/pynslcd/alias.py @@ -37,26 +37,27 @@ class Search(search.LDAPSearch): class Cache(cache.Cache): - tables = ('alias_cache', 'alias_1_cache') + tables = ('alias_cache', 'alias_member_cache') create_sql = ''' CREATE TABLE IF NOT EXISTS `alias_cache` ( `cn` TEXT PRIMARY KEY COLLATE NOCASE, `mtime` TIMESTAMP NOT NULL ); - CREATE TABLE IF NOT EXISTS `alias_1_cache` + CREATE TABLE IF NOT EXISTS `alias_member_cache` ( `alias` TEXT NOT NULL COLLATE NOCASE, `rfc822MailMember` TEXT NOT NULL, FOREIGN KEY(`alias`) REFERENCES `alias_cache`(`cn`) ON DELETE CASCADE ON UPDATE CASCADE ); - CREATE INDEX IF NOT EXISTS `alias_1_idx` ON `alias_1_cache`(`alias`); + CREATE INDEX IF NOT EXISTS `alias_member_idx` ON `alias_member_cache`(`alias`); ''' retrieve_sql = ''' SELECT `alias_cache`.`cn` AS `cn`, - `alias_1_cache`.`rfc822MailMember` AS `rfc822MailMember` + `alias_member_cache`.`rfc822MailMember` AS `rfc822MailMember`, + `alias_cache`.`mtime` AS `mtime` FROM `alias_cache` - LEFT JOIN `alias_1_cache` - ON `alias_1_cache`.`alias` = `alias_cache`.`cn` + LEFT JOIN `alias_member_cache` + ON `alias_member_cache`.`alias` = `alias_cache`.`cn` ''' def retrieve(self, parameters): diff --git a/pynslcd/cache.py b/pynslcd/cache.py index 56a83e5..f6d894e 100644 --- a/pynslcd/cache.py +++ b/pynslcd/cache.py @@ -59,14 +59,14 @@ class CnAliasedQuery(Query): sql = ''' SELECT `%(table)s_cache`.*, - `%(table)s_1_cache`.`cn` AS `alias` + `%(table)s_alias_cache`.`cn` AS `alias` FROM `%(table)s_cache` - LEFT JOIN `%(table)s_1_cache` - ON `%(table)s_1_cache`.`%(table)s` = `%(table)s_cache`.`cn` + LEFT JOIN `%(table)s_alias_cache` + ON `%(table)s_alias_cache`.`%(table)s` = `%(table)s_cache`.`cn` ''' cn_join = ''' - LEFT JOIN `%(table)s_1_cache` `cn_alias` + LEFT JOIN `%(table)s_alias_cache` `cn_alias` ON `cn_alias`.`%(table)s` = `%(table)s_cache`.`cn` ''' diff --git a/pynslcd/group.py b/pynslcd/group.py index aed6cc0..2028f1e 100644 --- a/pynslcd/group.py +++ b/pynslcd/group.py @@ -75,7 +75,7 @@ class Search(search.LDAPSearch): class Cache(cache.Cache): - tables = ('group_cache', 'group_3_cache') + tables = ('group_cache', 'group_member_cache') create_sql = ''' CREATE TABLE IF NOT EXISTS `group_cache` @@ -83,19 +83,20 @@ class Cache(cache.Cache): `userPassword` TEXT, `gidNumber` INTEGER NOT NULL UNIQUE, `mtime` TIMESTAMP NOT NULL ); - CREATE TABLE IF NOT EXISTS `group_3_cache` + CREATE TABLE IF NOT EXISTS `group_member_cache` ( `group` TEXT NOT NULL, `memberUid` TEXT NOT NULL, FOREIGN KEY(`group`) REFERENCES `group_cache`(`cn`) ON DELETE CASCADE ON UPDATE CASCADE ); - CREATE INDEX IF NOT EXISTS `group_3_idx` ON `group_3_cache`(`group`); + CREATE INDEX IF NOT EXISTS `group_member_idx` ON `group_member_cache`(`group`); ''' retrieve_sql = ''' - SELECT `cn`, `userPassword`, `gidNumber`, `memberUid` + SELECT `group_cache`.`cn` AS `cn`, `userPassword`, `gidNumber`, + `memberUid`, `mtime` FROM `group_cache` - LEFT JOIN `group_3_cache` - ON `group_3_cache`.`group` = `group_cache`.`cn` + LEFT JOIN `group_member_cache` + ON `group_member_cache`.`group` = `group_cache`.`cn` ''' def retrieve(self, parameters): diff --git a/pynslcd/host.py b/pynslcd/host.py index 77789ec..91c3fa0 100644 --- a/pynslcd/host.py +++ b/pynslcd/host.py @@ -38,13 +38,13 @@ class HostQuery(cache.CnAliasedQuery): sql = ''' SELECT `host_cache`.`cn` AS `cn`, - `host_1_cache`.`cn` AS `alias`, - `host_2_cache`.`ipHostNumber` AS `ipHostNumber` + `host_alias_cache`.`cn` AS `alias`, + `host_address_cache`.`ipHostNumber` AS `ipHostNumber` FROM `host_cache` - LEFT JOIN `host_1_cache` - ON `host_1_cache`.`host` = `host_cache`.`cn` - LEFT JOIN `host_2_cache` - ON `host_2_cache`.`host` = `host_cache`.`cn` + LEFT JOIN `host_alias_cache` + ON `host_alias_cache`.`host` = `host_cache`.`cn` + LEFT JOIN `host_address_cache` + ON `host_address_cache`.`host` = `host_cache`.`cn` ''' def __init__(self, parameters): @@ -53,24 +53,24 @@ class HostQuery(cache.CnAliasedQuery): class Cache(cache.Cache): - tables = ('host_cache', 'host_1_cache', 'host_2_cache') + tables = ('host_cache', 'host_alias_cache', 'host_address_cache') create_sql = ''' CREATE TABLE IF NOT EXISTS `host_cache` ( `cn` TEXT PRIMARY KEY COLLATE NOCASE, `mtime` TIMESTAMP NOT NULL ); - CREATE TABLE IF NOT EXISTS `host_1_cache` + CREATE TABLE IF NOT EXISTS `host_alias_cache` ( `host` TEXT NOT NULL COLLATE NOCASE, `cn` TEXT NOT NULL COLLATE NOCASE, FOREIGN KEY(`host`) REFERENCES `host_cache`(`cn`) ON DELETE CASCADE ON UPDATE CASCADE ); - CREATE INDEX IF NOT EXISTS `host_1_idx` ON `host_1_cache`(`host`); - CREATE TABLE IF NOT EXISTS `host_2_cache` + CREATE INDEX IF NOT EXISTS `host_alias_idx` ON `host_alias_cache`(`host`); + CREATE TABLE IF NOT EXISTS `host_address_cache` ( `host` TEXT NOT NULL COLLATE NOCASE, `ipHostNumber` TEXT NOT NULL, FOREIGN KEY(`host`) REFERENCES `host_cache`(`cn`) ON DELETE CASCADE ON UPDATE CASCADE ); - CREATE INDEX IF NOT EXISTS `host_2_idx` ON `host_2_cache`(`host`); + CREATE INDEX IF NOT EXISTS `host_address_idx` ON `host_address_cache`(`host`); ''' def retrieve(self, parameters): 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`); ''' diff --git a/pynslcd/network.py b/pynslcd/network.py index 5a43b93..bf49b4d 100644 --- a/pynslcd/network.py +++ b/pynslcd/network.py @@ -39,13 +39,13 @@ class NetworkQuery(cache.CnAliasedQuery): sql = ''' SELECT `network_cache`.`cn` AS `cn`, - `network_1_cache`.`cn` AS `alias`, - `network_2_cache`.`ipNetworkNumber` AS `ipNetworkNumber` + `network_alias_cache`.`cn` AS `alias`, + `network_address_cache`.`ipNetworkNumber` AS `ipNetworkNumber` FROM `network_cache` - LEFT JOIN `network_1_cache` - ON `network_1_cache`.`network` = `network_cache`.`cn` - LEFT JOIN `network_2_cache` - ON `network_2_cache`.`network` = `network_cache`.`cn` + LEFT JOIN `network_alias_cache` + ON `network_alias_cache`.`network` = `network_cache`.`cn` + LEFT JOIN `network_address_cache` + ON `network_address_cache`.`network` = `network_cache`.`cn` ''' def __init__(self, parameters): @@ -54,24 +54,24 @@ class NetworkQuery(cache.CnAliasedQuery): class Cache(cache.Cache): - tables = ('network_cache', 'network_1_cache', 'network_2_cache') + tables = ('network_cache', 'network_alias_cache', 'network_address_cache') create_sql = ''' CREATE TABLE IF NOT EXISTS `network_cache` ( `cn` TEXT PRIMARY KEY COLLATE NOCASE, `mtime` TIMESTAMP NOT NULL ); - CREATE TABLE IF NOT EXISTS `network_1_cache` + CREATE TABLE IF NOT EXISTS `network_alias_cache` ( `network` TEXT NOT NULL COLLATE NOCASE, `cn` TEXT NOT NULL COLLATE NOCASE, FOREIGN KEY(`network`) REFERENCES `network_cache`(`cn`) ON DELETE CASCADE ON UPDATE CASCADE ); - CREATE INDEX IF NOT EXISTS `network_1_idx` ON `network_1_cache`(`network`); - CREATE TABLE IF NOT EXISTS `network_2_cache` - ( `network` TEXT NOT NULL, + CREATE INDEX IF NOT EXISTS `network_alias_idx` ON `network_alias_cache`(`network`); + CREATE TABLE IF NOT EXISTS `network_address_cache` + ( `network` TEXT NOT NULL COLLATE NOCASE, `ipNetworkNumber` TEXT NOT NULL, FOREIGN KEY(`network`) REFERENCES `network_cache`(`cn`) ON DELETE CASCADE ON UPDATE CASCADE ); - CREATE INDEX IF NOT EXISTS `network_2_idx` ON `network_2_cache`(`network`); + CREATE INDEX IF NOT EXISTS `network_address_idx` ON `network_address_cache`(`network`); ''' def retrieve(self, parameters): diff --git a/pynslcd/protocol.py b/pynslcd/protocol.py index 7684161..122673d 100644 --- a/pynslcd/protocol.py +++ b/pynslcd/protocol.py @@ -37,19 +37,19 @@ class Search(search.LDAPSearch): class Cache(cache.Cache): - tables = ('protocol_cache', 'protocol_1_cache') + tables = ('protocol_cache', 'protocol_alias_cache') create_sql = ''' CREATE TABLE IF NOT EXISTS `protocol_cache` ( `cn` TEXT PRIMARY KEY, `ipProtocolNumber` INTEGER NOT NULL, `mtime` TIMESTAMP NOT NULL ); - CREATE TABLE IF NOT EXISTS `protocol_1_cache` + CREATE TABLE IF NOT EXISTS `protocol_alias_cache` ( `protocol` TEXT NOT NULL, `cn` TEXT NOT NULL, FOREIGN KEY(`protocol`) REFERENCES `protocol_cache`(`cn`) ON DELETE CASCADE ON UPDATE CASCADE ); - CREATE INDEX IF NOT EXISTS `protocol_1_idx` ON `protocol_1_cache`(`protocol`); + CREATE INDEX IF NOT EXISTS `protocol_alias_idx` ON `protocol_alias_cache`(`protocol`); ''' def retrieve(self, parameters): diff --git a/pynslcd/rpc.py b/pynslcd/rpc.py index efb6cb9..98a0ecc 100644 --- a/pynslcd/rpc.py +++ b/pynslcd/rpc.py @@ -37,19 +37,19 @@ class Search(search.LDAPSearch): class Cache(cache.Cache): - tables = ('rpc_cache', 'rpc_1_cache') + tables = ('rpc_cache', 'rpc_alias_cache') create_sql = ''' CREATE TABLE IF NOT EXISTS `rpc_cache` ( `cn` TEXT PRIMARY KEY, `oncRpcNumber` INTEGER NOT NULL, `mtime` TIMESTAMP NOT NULL ); - CREATE TABLE IF NOT EXISTS `rpc_1_cache` + CREATE TABLE IF NOT EXISTS `rpc_alias_cache` ( `rpc` TEXT NOT NULL, `cn` TEXT NOT NULL, FOREIGN KEY(`rpc`) REFERENCES `rpc_cache`(`cn`) ON DELETE CASCADE ON UPDATE CASCADE ); - CREATE INDEX IF NOT EXISTS `rpc_1_idx` ON `rpc_1_cache`(`rpc`); + CREATE INDEX IF NOT EXISTS `rpc_alias_idx` ON `rpc_alias_cache`(`rpc`); ''' def retrieve(self, parameters): diff --git a/pynslcd/service.py b/pynslcd/service.py index 6b3424e..6f55cc1 100644 --- a/pynslcd/service.py +++ b/pynslcd/service.py @@ -44,15 +44,15 @@ class ServiceQuery(cache.CnAliasedQuery): sql = ''' SELECT `service_cache`.*, - `service_1_cache`.`cn` AS `alias` + `service_alias_cache`.`cn` AS `alias` FROM `service_cache` - LEFT JOIN `service_1_cache` - ON `service_1_cache`.`ipServicePort` = `service_cache`.`ipServicePort` - AND `service_1_cache`.`ipServiceProtocol` = `service_cache`.`ipServiceProtocol` + LEFT JOIN `service_alias_cache` + ON `service_alias_cache`.`ipServicePort` = `service_cache`.`ipServicePort` + AND `service_alias_cache`.`ipServiceProtocol` = `service_cache`.`ipServiceProtocol` ''' cn_join = ''' - LEFT JOIN `service_1_cache` `cn_alias` + LEFT JOIN `service_alias_cache` `cn_alias` ON `cn_alias`.`ipServicePort` = `service_cache`.`ipServicePort` AND `cn_alias`.`ipServiceProtocol` = `service_cache`.`ipServiceProtocol` ''' @@ -69,7 +69,7 @@ class ServiceQuery(cache.CnAliasedQuery): class Cache(cache.Cache): - tables = ('service_cache', 'service_1_cache') + tables = ('service_cache', 'service_alias_cache') create_sql = ''' CREATE TABLE IF NOT EXISTS `service_cache` @@ -78,7 +78,7 @@ class Cache(cache.Cache): `ipServiceProtocol` TEXT NOT NULL, `mtime` TIMESTAMP NOT NULL, UNIQUE (`ipServicePort`, `ipServiceProtocol`) ); - CREATE TABLE IF NOT EXISTS `service_1_cache` + CREATE TABLE IF NOT EXISTS `service_alias_cache` ( `ipServicePort` INTEGER NOT NULL, `ipServiceProtocol` TEXT NOT NULL, `cn` TEXT NOT NULL, @@ -86,8 +86,8 @@ class Cache(cache.Cache): ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY(`ipServiceProtocol`) REFERENCES `service_cache`(`ipServiceProtocol`) ON DELETE CASCADE ON UPDATE CASCADE ); - CREATE INDEX IF NOT EXISTS `service_1_idx1` ON `service_1_cache`(`ipServicePort`); - CREATE INDEX IF NOT EXISTS `service_1_idx2` ON `service_1_cache`(`ipServiceProtocol`); + CREATE INDEX IF NOT EXISTS `service_alias_idx1` ON `service_alias_cache`(`ipServicePort`); + CREATE INDEX IF NOT EXISTS `service_alias_idx2` ON `service_alias_cache`(`ipServiceProtocol`); ''' def store(self, name, aliases, port, protocol): @@ -97,12 +97,12 @@ class Cache(cache.Cache): (?, ?, ?, ?) ''', (name, port, protocol, datetime.datetime.now())) self.con.execute(''' - DELETE FROM `service_1_cache` + DELETE FROM `service_alias_cache` WHERE `ipServicePort` = ? AND `ipServiceProtocol` = ? ''', (port, protocol)) self.con.executemany(''' - INSERT INTO `service_1_cache` + INSERT INTO `service_alias_cache` VALUES (?, ?, ?) ''', ((port, protocol, alias) for alias in aliases)) |