[entropy.client] fix regression in AvailablePackagesRepositoryUpdater

This commit is contained in:
Fabio Erculiani
2011-01-17 15:29:08 +01:00
parent 9f70204e37
commit 28c23d1137

View File

@@ -125,6 +125,7 @@ class AvailablePackagesRepositoryUpdater(object):
def __init__(self, entropy_client, repository_id, force, gpg):
self.__force = force
self.__big_sock_timeout = 10
self._repository_id = repository_id
self._cacher = EntropyCacher()
self._last_rev = -1
self._entropy = entropy_client
@@ -148,7 +149,7 @@ class AvailablePackagesRepositoryUpdater(object):
def __get_eapi3_repository_metadata(self, eapi3_interface, session):
product = self._settings['repositories']['product']
data = eapi3_interface.CmdInterface.get_repository_metadata(
session, self.name, etpConst['currentarch'], product
session, self._repository_id, etpConst['currentarch'], product
)
if not isinstance(data, dict):
return {}
@@ -165,11 +166,11 @@ class AvailablePackagesRepositoryUpdater(object):
def __get_eapi3_connection(self):
# get database url
avail_data = self._settings['repositories']['available']
dburl = avail_data[self.name].get('service_uri')
dburl = avail_data[self._repository_id].get('service_uri')
if dburl is None:
return None
port = avail_data[self.name]['service_port']
port = avail_data[self._repository_id]['service_port']
try:
from entropy.services.ugc.interfaces import Client
from entropy.client.services.ugc.commands import Client as \
@@ -195,7 +196,7 @@ class AvailablePackagesRepositoryUpdater(object):
def __get_eapi3_local_database(self):
avail_data = self._settings['repositories']['available']
repo_data = avail_data[self.name]
repo_data = avail_data[self._repository_id]
dbfile = os.path.join(repo_data['dbpath'],
etpConst['etpdatabasefile'])
@@ -214,7 +215,7 @@ class AvailablePackagesRepositoryUpdater(object):
product = self._settings['repositories']['product']
data = eapi3_interface.CmdInterface.differential_packages_comparison(
session, idpackages, self.name,
session, idpackages, self._repository_id,
etpConst['currentarch'], product
)
if isinstance(data, bool): # then it's probably == False
@@ -320,7 +321,7 @@ class AvailablePackagesRepositoryUpdater(object):
online = self.remote_revision()
if online != -1:
local = AvailablePackagesRepository.revision(
self.name)
self._repository_id)
if (local == online) and (not self.__force):
return False
return True
@@ -328,7 +329,7 @@ class AvailablePackagesRepositoryUpdater(object):
def __show_repository_information(self):
avail_data = self._settings['repositories']['available']
repo_data = avail_data[self.name]
repo_data = avail_data[self._repository_id]
self._entropy.output(
bold("%s") % ( repo_data['description'] ),
@@ -385,7 +386,7 @@ class AvailablePackagesRepositoryUpdater(object):
def __ensure_repository_path(self):
avail_data = self._settings['repositories']['available']
repo_data = avail_data[self.name]
repo_data = avail_data[self._repository_id]
# create dir if it doesn't exist
if not os.path.isdir(repo_data['dbpath']):
@@ -396,7 +397,7 @@ class AvailablePackagesRepositoryUpdater(object):
def __validate_compression_method(self):
repo = self.name
repo = self._repository_id
repo_settings = self._settings['repositories']
dbc_format = repo_settings['available'][repo]['dbcformat']
cmethod = etpConst['etpdatabasecompressclasses'].get(dbc_format)
@@ -408,7 +409,7 @@ class AvailablePackagesRepositoryUpdater(object):
def __remove_repository_files(self):
sys_set = self._settings
avail_data = sys_set['repositories']['available']
repo_dbpath = avail_data[self.name]['dbpath']
repo_dbpath = avail_data[self._repository_id]['dbpath']
shutil.rmtree(repo_dbpath, True)
def __handle_database_download(self, cmethod):
@@ -537,7 +538,7 @@ class AvailablePackagesRepositoryUpdater(object):
def __verify_database_checksum(self, cmethod = None):
sys_settings_repos = self._settings['repositories']
avail_config = sys_settings_repos['available'][self.name]
avail_config = sys_settings_repos['available'][self._repository_id]
sep = os.path.sep
if self._repo_eapi == 1:
@@ -569,7 +570,7 @@ class AvailablePackagesRepositoryUpdater(object):
rc = 0
path = None
sys_set_repos = self._settings['repositories']['available']
repo_data = sys_set_repos[self.name]
repo_data = sys_set_repos[self._repository_id]
garbage, myfile = self._construct_paths(down_item, cmethod)
@@ -635,9 +636,9 @@ class AvailablePackagesRepositoryUpdater(object):
return True, myitem
def __update_repository_revision(self):
cur_rev = AvailablePackagesRepository.revision(self.name)
cur_rev = AvailablePackagesRepository.revision(self._repository_id)
repo_data = self._settings['repositories']
db_data = repo_data['available'][self.name]
db_data = repo_data['available'][self._repository_id]
db_data['dbrevision'] = "0"
if cur_rev != -1:
db_data['dbrevision'] = str(cur_rev)
@@ -665,7 +666,7 @@ class AvailablePackagesRepositoryUpdater(object):
header = "\t"
)
try:
dbconn = self._entropy.open_repository(self.name)
dbconn = self._entropy.open_repository(self._repository_id)
except RepositoryError as err:
tell_error(err)
return False
@@ -687,7 +688,7 @@ class AvailablePackagesRepositoryUpdater(object):
level = "info",
header = "\t"
)
dbconn = self._entropy.open_repository(self.name)
dbconn = self._entropy.open_repository(self._repository_id)
dbconn.createAllIndexes()
dbconn.commit(force = True)
if self._entropy.installed_repository() is not None:
@@ -711,7 +712,7 @@ class AvailablePackagesRepositoryUpdater(object):
raise AttributeError(mytxt)
avail_data = self._settings['repositories']['available']
repo_data = avail_data[self.name]
repo_data = avail_data[self._repository_id]
repo_db = repo_data['database']
repo_dbpath = repo_data['dbpath']
@@ -854,7 +855,7 @@ class AvailablePackagesRepositoryUpdater(object):
def _standard_items_download(self):
repos_data = self._settings['repositories']
repo_data = repos_data['available'][self.name]
repo_data = repos_data['available'][self._repository_id]
notice_board = os.path.basename(repo_data['local_notice_board'])
db_meta_file = etpConst['etpdatabasemetafilesfile']
db_meta_file_gpg = etpConst['etpdatabasemetafilesfile'] + \
@@ -1020,7 +1021,7 @@ class AvailablePackagesRepositoryUpdater(object):
finally:
shutil.rmtree(tmpdir, True)
repo_r = AvailablePackagesRepository.revision(self.name)
repo_r = AvailablePackagesRepository.revision(self._repository_id)
mytxt = "%s: %s" % (
red(_("Repository revision")),
bold(str(repo_r)),
@@ -1107,7 +1108,7 @@ class AvailablePackagesRepositoryUpdater(object):
my_repos = self._settings['repositories']
avail_data = my_repos['available']
repo_data = avail_data[self.name]
repo_data = avail_data[self._repository_id]
gpg_path = repo_data['gpg_pubkey']
if not (os.path.isfile(gpg_path) and os.access(gpg_path, os.R_OK)):
@@ -1150,7 +1151,7 @@ class AvailablePackagesRepositoryUpdater(object):
pk_expired = False
try:
pk_avail = repo_sec.is_pubkey_available(self.name)
pk_avail = repo_sec.is_pubkey_available(self._repository_id)
except repo_sec.KeyExpired:
pk_avail = False
pk_expired = True
@@ -1163,18 +1164,19 @@ class AvailablePackagesRepositoryUpdater(object):
# try to install and get fingerprint
try:
downloaded_key_fp = repo_tmp_sec.install_key(
self.name, gpg_path)
self._repository_id, gpg_path)
except RepositorySecurity.GPGError:
downloaded_key_fp = None
fingerprint = repo_sec.get_key_metadata(self.name)['fingerprint']
fingerprint = repo_sec.get_key_metadata(
self._repository_id)['fingerprint']
shutil.rmtree(tmp_dir, True)
if downloaded_key_fp != fingerprint and \
(downloaded_key_fp is not None):
mytxt = "%s: %s !!!" % (
purple(_("GPG key changed for")),
bold(self.name),
bold(self._repository_id),
)
self._entropy.output(
mytxt,
@@ -1194,7 +1196,7 @@ class AvailablePackagesRepositoryUpdater(object):
else:
mytxt = "%s: %s" % (
purple(_("GPG key already installed for")),
bold(self.name),
bold(self._repository_id),
)
self._entropy.output(
mytxt,
@@ -1207,7 +1209,7 @@ class AvailablePackagesRepositoryUpdater(object):
elif pk_expired:
mytxt = "%s: %s" % (
purple(_("GPG key EXPIRED for repository")),
bold(self.name),
bold(self._repository_id),
)
self._entropy.output(
mytxt,
@@ -1219,7 +1221,7 @@ class AvailablePackagesRepositoryUpdater(object):
# actually install
mytxt = "%s: %s" % (
purple(_("Installing GPG key for repository")),
brown(self.name),
brown(self._repository_id),
)
self._entropy.output(
mytxt,
@@ -1228,7 +1230,7 @@ class AvailablePackagesRepositoryUpdater(object):
back = True
)
try:
fingerprint = repo_sec.install_key(self.name,
fingerprint = repo_sec.install_key(self._repository_id,
gpg_path)
except RepositorySecurity.GPGError as err:
mytxt = "%s: %s" % (
@@ -1244,7 +1246,7 @@ class AvailablePackagesRepositoryUpdater(object):
mytxt = "%s: %s" % (
purple(_("Successfully installed GPG key for repository")),
brown(self.name),
brown(self._repository_id),
)
self._entropy.output(
mytxt,
@@ -1302,7 +1304,7 @@ class AvailablePackagesRepositoryUpdater(object):
back = True
)
is_valid, err_msg = repo_sec.verify_file(self.name,
is_valid, err_msg = repo_sec.verify_file(self._repository_id,
target_path, sign_path)
if is_valid:
mytxt = "%s: %s" % (
@@ -1447,7 +1449,7 @@ class AvailablePackagesRepositoryUpdater(object):
fetch_count += 1
cmd_intf = eapi3_interface.CmdInterface
pkgdata = cmd_intf.get_strict_package_information(
session, segment, self.name,
session, segment, self._repository_id,
etpConst['currentarch'], product
)
if pkgdata is None:
@@ -1533,7 +1535,7 @@ class AvailablePackagesRepositoryUpdater(object):
# update treeupdates
try:
mydbconn.setRepositoryUpdatesDigest(self.name,
mydbconn.setRepositoryUpdatesDigest(self._repository_id,
repo_metadata['treeupdates_digest'])
mydbconn.bumpTreeUpdatesActions(
repo_metadata['treeupdates_actions'])
@@ -1716,7 +1718,7 @@ class AvailablePackagesRepositoryUpdater(object):
return repo_rev
avail_data = self._settings['repositories']['available']
repo_data = avail_data[self.name]
repo_data = avail_data[self._repository_id]
url = repo_data['database'] + "/" + \
etpConst['etpdatabaserevisionfile']
@@ -1773,7 +1775,7 @@ class AvailablePackagesRepositoryUpdater(object):
my_repos = self._settings['repositories']
avail_data = my_repos['available']
repo_data = avail_data[self.name]
repo_data = avail_data[self._repository_id]
# some variables
dumpfile = os.path.join(repo_data['dbpath'],
@@ -1960,7 +1962,7 @@ class AvailablePackagesRepositoryUpdater(object):
try:
spm_class = self._entropy.Spm_class()
spm_class.entropy_client_post_repository_update_hook(
self._entropy, self.name)
self._entropy, self._repository_id)
except Exception as err:
entropy.tools.print_traceback()
mytxt = "%s: %s" % (