summaryrefslogtreecommitdiffstats
path: root/pym/portage_db_template.py
diff options
context:
space:
mode:
authorBrian Harring <ferringb@gentoo.org>2005-11-05 06:14:41 +0000
committerBrian Harring <ferringb@gentoo.org>2005-11-05 06:14:41 +0000
commit20e0bdf9d568512be357f26867ef7535251e33a4 (patch)
tree5e878dce1bf79dbdcc1dc84445ca98c2cb8cf5d6 /pym/portage_db_template.py
parentd9785f96de5f1697b5f87def919dc358cc2cc30d (diff)
downloadportage-20e0bdf9d568512be357f26867ef7535251e33a4.tar.gz
portage-20e0bdf9d568512be357f26867ef7535251e33a4.tar.bz2
portage-20e0bdf9d568512be357f26867ef7535251e33a4.zip
bye bye you decrepit POS cache implementation.
svn path=/main/branches/2.0/; revision=2259
Diffstat (limited to 'pym/portage_db_template.py')
-rw-r--r--pym/portage_db_template.py174
1 files changed, 0 insertions, 174 deletions
diff --git a/pym/portage_db_template.py b/pym/portage_db_template.py
deleted file mode 100644
index e0ae7f2c3..000000000
--- a/pym/portage_db_template.py
+++ /dev/null
@@ -1,174 +0,0 @@
-# Copyright 2004 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id: /var/cvsroot/gentoo-src/portage/pym/Attic/portage_db_template.py,v 1.11.2.1 2005/01/16 02:35:33 carpaski Exp $
-
-
-import os.path,string
-from portage_util import getconfig, ReadOnlyConfig
-from portage_exception import CorruptionError
-
-class database:
- def __init__(self,path,category,dbkeys,uid,gid,config_path="/etc/portage/module_configs/"):
- self.__cacheArray = [None, None, None]
- self.__cacheKeyArray = [None, None, None]
- self.__template_init_called = True
- self.path = path
- self.category = category
- self.dbkeys = dbkeys
- self.uid = uid
- self.gid = gid
-
- self.config = None
- self.__load_config(config_path)
-
- self.module_init()
-
- def getModuleName(self):
- return self.__module__+"."+self.__class__.__name__[:]
-
- def __load_config(self,config_path):
- config_file = config_path + "/" + self.getModuleName()
- self.config = ReadOnlyConfig(config_file)
-
- def __check_init(self):
- try:
- if self.__template_init_called:
- pass
- except SystemExit, e:
- raise
- except:
- raise NotImplementedError("db_template.__init__ was overridden")
-
- def check_key(self,key):
- if (not key) or not isinstance(key, str):
- raise KeyError, "No key provided. key: %s" % (key)
-
- def clear(self):
- for x in self.keys():
- self.del_key(x)
-
- def __addCache(self,key,val):
- del self.__cacheArray[2]
- self.__cacheArray.insert(0,val)
- del self.__cacheKeyArray[2]
- self.__cacheKeyArray.insert(0,key)
-
- def __delCache(self,key):
- i = self.__cacheKeyArray.index(key)
- self.__cacheArray[i] = None
- self.__cacheKeyArray[i] = None
-
- def flushCache(self):
- self.__cacheArray = [None, None, None]
- self.__cacheKeyArray = [None, None, None]
-
- def __getitem__(self,key):
- if key in self.__cacheKeyArray:
- i = self.__cacheKeyArray.index(key)
- return self.__cacheArray[i]
-
- self.check_key(key)
- if self.has_key(key):
- try:
- values = self.get_values(key)
- self.__addCache(key,values)
- return values
- except SystemExit, e:
- raise
- except Exception, e:
- raise CorruptionError("Corruption detected when reading key '%s': %s" % (key,str(e)))
- raise KeyError("Key not in db: '%s'" % (key))
-
- def __setitem__(self,key,values):
- self.check_key(key)
- self.__addCache(key,values)
- return self.set_values(key,values)
-
- def __delitem__(self,key):
- self.__delCache(key)
- return self.del_key(key)
-
- def has_key(self,key):
- raise NotImplementedError("Method not defined")
-
- def keys(self):
- raise NotImplementedError("Method not defined")
-
- def get_values(self,key):
- raise NotImplementedError("Method not defined")
-
- def set_values(self,key,val):
- raise NotImplementedError("Method not defined")
-
- def del_key(self,key):
- raise NotImplementedError("Method not defined")
-
- def sync(self):
- raise NotImplementedError("Method not defined")
-
- def close(self):
- raise NotImplementedError("Method not defined")
-
-
-
-def test_database(db_class,path,category,dbkeys,uid,gid):
- if "_mtime_" not in dbkeys:
- dbkeys+=["_mtime_"]
- d = db_class(path,category,dbkeys,uid,gid)
-
- print "Module: "+str(d.__module__)
-
- # XXX: Need a way to do this that actually works.
- for x in dir(database):
- if x not in dir(d):
- print "FUNCTION MISSING:",str(x)
-
- list = d.keys()
- if(len(list) == 0):
- values = {}
- for x in dbkeys:
- values[x] = x[:]
- values["_mtime_"] = "1079903037"
- d.set_values("test-2.2.3-r1", values)
- d.set_values("test-2.2.3-r2", values)
- d.set_values("test-2.2.3-r3", values)
- d.set_values("test-2.2.3-r4", values)
-
- list = d.keys()
- print "Key count:",len(list)
-
- values = d.get_values(list[0])
- print "value count:",len(values)
-
- mykey = "foobar-1.2.3-r4"
-
- d.check_key(mykey)
- d.set_values(mykey, values)
- d.sync()
- del d
-
- d = db_class(path,category,dbkeys,uid,gid)
- new_vals = d.get_values(mykey)
-
- if dbkeys and new_vals:
- for x in dbkeys:
- if x not in new_vals.keys():
- print "---",x
- for x in new_vals.keys():
- if x not in dbkeys:
- print "+++",x
- else:
- print "Mismatched:",dbkeys,new_vals
-
- d.del_key(mykey)
-
- print "Should be None:",d.get_values(mykey)
-
- d.clear()
-
- d.sync
- d.close
-
- del d
-
- print "Done."