add back revision support to the new database
git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@229 cd1c1023-2f26-0410-ae45-c471fc1f0318
This commit is contained in:
@@ -33,23 +33,11 @@ import string
|
||||
|
||||
def sync(options):
|
||||
|
||||
# For each URI do the same thing
|
||||
for uri in etpConst['activatoruploaduris']:
|
||||
ftp = activatorFTP(uri)
|
||||
print "Listing the content of: "+ftp.getFTPHost()
|
||||
print "at port: "+str(ftp.getFTPPort())
|
||||
print "in dir: "+ftp.getFTPDir()
|
||||
#print ftp.getFileSize("index.htm")
|
||||
list = ftp.getRoughList()
|
||||
|
||||
#print ftp.spawnFTPCommand("mdtm index.htm")
|
||||
ftp.closeFTPConnection()
|
||||
|
||||
sys.exit(0)
|
||||
|
||||
# sync the local repository with the remote ones
|
||||
syncRemoteDatabases()
|
||||
|
||||
sys.exit(0)
|
||||
|
||||
print_info(green(" * ")+red("Collecting local binary packages..."),back = True)
|
||||
localtbz2counter = 0
|
||||
localTbz2Files = []
|
||||
@@ -195,7 +183,7 @@ def packages(options):
|
||||
uploadQueue = list(set(uploadQueue))
|
||||
|
||||
if (len(uploadQueue) == 0) and (len(downloadQueue) == 0) and (len(removalQueue) == 0):
|
||||
print_info(green(" * ")+red("Nothing to syncronize for ")+bold(extractFTPHostFromUri(uri)+red(". Queues empty.")))
|
||||
print_info(green(" * ")+red("Nothing to syncronize for ")+bold(extractFTPHostFromUri(uri)+red(". Queue empty.")))
|
||||
continue
|
||||
|
||||
|
||||
@@ -267,8 +255,6 @@ def packages(options):
|
||||
counterInfo = bold(" (")+blue(str(currentCounter))+"/"+red(uploadCounter)+bold(")")
|
||||
print_info(counterInfo+red(" Uploading file ")+bold(item[0]) + red(" [")+blue(bytesIntoHuman(item[1]))+red("] to ")+ bold(extractFTPHostFromUri(uri)) +red(" ..."),back = True)
|
||||
ftp.uploadFile(etpConst['packagessuploaddir']+"/"+item[0])
|
||||
# now move the file into etpConst['packagesbindir']
|
||||
os.system("mv "+etpConst['packagessuploaddir']+"/"+item[0]+" "+etpConst['packagesbindir']+"/")
|
||||
print_info(red(" * Upload completed for ")+bold(extractFTPHostFromUri(uri)))
|
||||
ftp.closeFTPConnection()
|
||||
|
||||
@@ -296,7 +282,7 @@ def packages(options):
|
||||
print "Now it should be time for some tidy...?"
|
||||
|
||||
# now we can store the files in upload/%ARCH% in packages/%ARCH%
|
||||
os.system("mv "+etpConst['packagessuploaddir']+"/* "+etpConst['packagesbindir']+"/")
|
||||
os.system("mv -f "+etpConst['packagessuploaddir']+"/* "+etpConst['packagesbindir']+"/ &> /dev/null")
|
||||
|
||||
def database(options):
|
||||
|
||||
|
||||
@@ -97,7 +97,8 @@ def database(options):
|
||||
print_info(red("\t CXXFLAGS: ")+darkred(result[7]))
|
||||
if (result[8]):
|
||||
print_info(red("\t Website: ")+result[8])
|
||||
print_info(red("\t USE Flags: ")+blue(result[9]))
|
||||
if (result[9]):
|
||||
print_info(red("\t USE Flags: ")+blue(result[9]))
|
||||
print_info(red("\t License: ")+bold(result[10]))
|
||||
print_info(red("\t Source keywords: ")+darkblue(result[11]))
|
||||
print_info(red("\t Binary keywords: ")+green(result[12]))
|
||||
@@ -225,12 +226,15 @@ class etpDatabase:
|
||||
self.cursor = self.connection.cursor()
|
||||
|
||||
def closeDB(self):
|
||||
if (self.isDatabaseTainted()):
|
||||
# bump revision
|
||||
self.revisionBump()
|
||||
self.cursor.close()
|
||||
self.connection.close()
|
||||
|
||||
def commitChanges(self):
|
||||
self.taintDatabase()
|
||||
self.connection.commit()
|
||||
self.taintDatabase()
|
||||
|
||||
def taintDatabase(self):
|
||||
# taint the database status
|
||||
@@ -243,6 +247,19 @@ class etpDatabase:
|
||||
# untaint the database status
|
||||
os.system("rm -f "+etpConst['etpdatabasedir']+"/"+etpConst['etpdatabasetaintfile'])
|
||||
|
||||
def revisionBump(self):
|
||||
if (not os.path.isfile(etpConst['etpdatabasedir']+"/"+etpConst['etpdatabaserevisionfile'])):
|
||||
revision = 0
|
||||
else:
|
||||
f = open(etpConst['etpdatabasedir']+"/"+etpConst['etpdatabaserevisionfile'],"r")
|
||||
revision = int(f.readline().strip())
|
||||
revision += 1
|
||||
f.close()
|
||||
f = open(etpConst['etpdatabasedir']+"/"+etpConst['etpdatabaserevisionfile'],"w")
|
||||
f.write(str(revision)+"\n")
|
||||
f.flush()
|
||||
f.close()
|
||||
|
||||
def isDatabaseTainted(self):
|
||||
if os.path.isfile(etpConst['etpdatabasedir']+"/"+etpConst['etpdatabasetaintfile']):
|
||||
return True
|
||||
|
||||
@@ -136,6 +136,7 @@ etpConst = {
|
||||
'binaryurirelativepath': "packages/"+ETP_ARCH_CONST+"/", # Relative remote path for the binary repository.
|
||||
'etpurirelativepath': "database/"+ETP_ARCH_CONST+"/", # Relative remote path for the .etp repository.
|
||||
# TO BE REMOVED? CHECK
|
||||
'etpdatabaserevisionfile': "packages.db.revision", # the local/remote database revision file
|
||||
'etpdatabaselockfile': "packages.db.lock", # the remote database lock file
|
||||
'etpdatabasedownloadlockfile': "packages.db.download.lock", # the remote database download lock file
|
||||
'etpdatabasetaintfile': "packages.db.tainted", # when this file exists, the database is not synced anymore with the online one
|
||||
|
||||
Reference in New Issue
Block a user