Entropy/Repository Service:

- fine tune client interface functions
- show more info server side


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@1999 cd1c1023-2f26-0410-ae45-c471fc1f0318
This commit is contained in:
lxnay
2008-05-27 17:04:59 +00:00
parent 769bfe75a2
commit ae6a7ff30b
+44 -12
View File
@@ -5802,7 +5802,7 @@ class RepoInterface:
return None,None,None
return data['added'],data['removed'],data['checksum']
def handle_eapi3_database_sync(self, repo, compression = True, threshold = 2000, chunk_size = 10):
def handle_eapi3_database_sync(self, repo, compression = True, threshold = 2000, chunk_size = 15):
session = self.eapi3_socket.open_session()
mydbconn = self.get_eapi3_local_database(repo)
@@ -5861,6 +5861,10 @@ class RepoInterface:
added_segments.append(list(mytmp))
del mytmp
# enable compression
if compression:
self.eapi3_socket.CmdInterface.set_gzip_compression_on_rc(session, True)
# fetch and store
count = 0
maxcount = len(added_segments)
@@ -5928,6 +5932,10 @@ class RepoInterface:
break
del added_segments
# disable compression
if compression:
self.eapi3_socket.CmdInterface.set_gzip_compression_on_rc(session, False)
# I don't need you anymore
self.eapi3_socket.close_session(session)
@@ -6009,6 +6017,20 @@ class RepoInterface:
mychecksum = mydbconn.database_checksum(do_order = True, strict = False)
if checksum == mychecksum:
result = True
else:
mytxt = "%s: %s: %s | %s: %s" % (
blue(_("Database checksum doesn't match remote.")),
darkgreen(_("local")),
mychecksum,
darkred(_("remote")),
checksum,
)
self.Entropy.updateProgress(
mytxt,
importance = 0,
type = "info",
header = "\t",
)
mydbconn.closeDB()
return result
@@ -6085,6 +6107,12 @@ class RepoInterface:
elif self.dbformat_eapi == 3:
def do_close_conn():
# close conn
if self.eapi3_socket != None:
self.eapi3_socket.disconnect()
self.eapi3_socket == None
try:
self.socket.setdefaulttimeout(10)
status = self.handle_eapi3_database_sync(repo)
@@ -6102,6 +6130,7 @@ class RepoInterface:
status = False
self.socket.setdefaulttimeout(2)
if status == False:
do_close_conn()
# set to none and completely skip database alignment
do_db_update_transfer = None
self.dbformat_eapi -= 1
@@ -6116,8 +6145,10 @@ class RepoInterface:
else: # ah, well... dunno then...
do_db_update_transfer = None
self.dbformat_eapi -= 1
do_close_conn()
continue
do_close_conn()
break
if skip_this_repo:
@@ -15558,7 +15589,10 @@ class RepositorySocketServerInterface(SocketHostInterface):
self.repositories[x]['locked']:
mydbpath = os.path.join(self.repositories[x]['dbpath'],etpConst['etpdatabasefile'])
self.close_db(mydbpath)
mytxt = blue("%s.") % (_("unlocking and indexing database"),)
mytxt = blue("%s. %s:") % (
_("unlocking and indexing database"),
_("hash"),
)
self.updateProgress(
"[%s] %s" % (
brown(str(x)),
@@ -15571,6 +15605,11 @@ class RepositorySocketServerInterface(SocketHostInterface):
mydb = self.open_db(mydbpath, docache = False)
mydb.createAllIndexes()
mydb.commitChanges()
self.updateProgress(
str(mydb.database_checksum()),
importance = 1,
type = "info"
)
mydb.closeDB()
self.Entropy.clear_dump_cache(etpCache['repository_server']+"/"+repository+"/")
self.repositories[x]['locked'] = False
@@ -15750,7 +15789,7 @@ class EntropyRepositorySocketClientCommands(EntropySocketClientCommands):
data = None
return data
def differential_packages_comparison(self, idpackages, repository, arch, product, session_id = None, compression = True):
def differential_packages_comparison(self, idpackages, repository, arch, product, session_id = None, compression = False):
self.Service.check_socket_connection()
close_session = False
if session_id == None:
@@ -15799,11 +15838,6 @@ class EntropyRepositorySocketClientCommands(EntropySocketClientCommands):
if session_id == None:
close_session = True
session_id = self.Service.open_session()
# set gzip on rc commands
if compression:
docomp = self.set_gzip_compression_on_rc(session_id, True)
else:
docomp = False
cmd = "%s %s %s %s %s %s %s" % (
session_id,
@@ -15835,14 +15869,12 @@ class EntropyRepositorySocketClientCommands(EntropySocketClientCommands):
self.Service.close_session(session_id)
return False
if docomp:
self.set_gzip_compression_on_rc(session_id, False) # reset gzip on rc commands
data = self.convert_stream_to_object(data, docomp, repository, arch, product)
data = self.convert_stream_to_object(data, compression, repository, arch, product)
if close_session:
self.Service.close_session(session_id)
return data
def get_package_information(self, idpackages, repository, arch, product, session_id = None, compression = True):
def get_package_information(self, idpackages, repository, arch, product, session_id = None, compression = False):
self.Service.check_socket_connection()