- completed elog infrastructure

- implemented messages support inside database
- implemented messages database API
- wrote postinstall preliminary infrastructure with fonts,gcc,icons support


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@546 cd1c1023-2f26-0410-ae45-c471fc1f0318
This commit is contained in:
(no author)
2007-10-10 23:39:34 +00:00
parent 4b3952df5d
commit 1ceb8beae0
8 changed files with 188 additions and 26 deletions
+55 -1
View File
@@ -1077,6 +1077,28 @@ class etpDatabase:
atom,
)
)
# compile messages
try:
for message in etpData['messages']:
self.cursor.execute(
'INSERT into messages VALUES '
'(?,?)'
, ( idpackage,
message,
)
)
except:
# FIXME: temp workaround, create messages table
self.cursor.execute("CREATE TABLE messages ( idpackage INTEGER, message VARCHAR);")
for message in etpData['messages']:
self.cursor.execute(
'INSERT into messages VALUES '
'(?,?)'
, ( idpackage,
message,
)
)
# is it a system package?
if etpData['systempackage']:
@@ -1100,7 +1122,7 @@ class etpDatabase:
idprotect,
)
)
idprotect = self.isProtectAvailable(etpData['config_protect_mask'])
if (idprotect == -1):
# create category
@@ -1304,6 +1326,11 @@ class etpDatabase:
self.cursor.execute('DELETE FROM keywords WHERE idpackage = '+idpackage)
# binkeywords
self.cursor.execute('DELETE FROM binkeywords WHERE idpackage = '+idpackage)
try:
# messages
self.cursor.execute('DELETE FROM messages WHERE idpackage = '+idpackage)
except:
pass # FIXME: temp workaround
# systempackage
self.cursor.execute('DELETE FROM systempackages WHERE idpackage = '+idpackage)
try:
@@ -1595,6 +1622,7 @@ class etpDatabase:
data['digest'] = self.retrieveDigest(idpackage)
data['sources'] = self.retrieveSources(idpackage)
data['counter'] = self.retrieveCounter(idpackage)
data['messages'] = self.retrieveMessages(idpackage)
if (self.isSystemPackage(idpackage)):
data['systempackage'] = 'xxx'
@@ -1774,6 +1802,32 @@ class etpDatabase:
self.databaseCache[int(idpackage)]['retrieveCounter'] = counter
return counter
def retrieveMessages(self, idpackage):
dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"retrieveMessages: retrieving messages for package ID "+str(idpackage))
''' caching '''
if (self.xcache):
cached = self.databaseCache.get(int(idpackage), None)
if cached:
rslt = self.databaseCache[int(idpackage)].get('retrieveMessages',None)
if rslt:
return rslt
else:
self.databaseCache[int(idpackage)] = {}
messages = []
try:
self.cursor.execute('SELECT "message" FROM messages WHERE idpackage = "'+str(idpackage)+'"')
for row in self.cursor:
messages.append(row[0])
except:
pass
''' caching '''
if (self.xcache):
self.databaseCache[int(idpackage)]['retrieveMessages'] = messages
return messages
# in bytes
def retrieveSize(self, idpackage):
dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"retrieveSize: retrieving Size for package ID "+str(idpackage))