[entropy.server] first chunk of refactoring and cleanup work (making repo=None argument die)

This commit is contained in:
Fabio Erculiani
2011-01-31 23:20:58 +01:00
parent ea95b269cc
commit 985b35cdab
7 changed files with 349 additions and 431 deletions
+68 -78
View File
@@ -307,7 +307,7 @@ class ServerPackagesRepositoryUpdater(object):
def __write_gpg_pubkey(self, repo_sec):
pubkey = repo_sec.get_pubkey(self._repository_id)
# write pubkey to file and add to data upload
gpg_path = self._entropy._get_local_database_gpg_signature_file(
gpg_path = self._entropy._get_local_repository_gpg_signature_file(
self._repository_id)
with open(gpg_path, "w") as gpg_f:
gpg_f.write(pubkey)
@@ -325,7 +325,7 @@ class ServerPackagesRepositoryUpdater(object):
"""
Return whether repository is locally locked (already).
"""
lock_file = self._entropy._get_database_lockfile(self._repository_id)
lock_file = self._entropy._get_repository_lockfile(self._repository_id)
return os.path.isfile(lock_file)
def _calculate_sync_queues(self):
@@ -368,8 +368,8 @@ class ServerPackagesRepositoryUpdater(object):
extra_text_files = []
gpg_signed_files = []
data = {}
db_rev_file = self._entropy._get_local_database_revision_file(
repo = self._repository_id)
db_rev_file = self._entropy._get_local_repository_revision_file(
self._repository_id)
# adding ~ at the beginning makes this file to be appended at the end
# of the upload queue
data['~database_revision_file'] = db_rev_file
@@ -378,14 +378,14 @@ class ServerPackagesRepositoryUpdater(object):
# branch migration support scripts
post_branch_mig_file = self._entropy._get_local_post_branch_mig_script(
repo = self._repository_id)
self._repository_id)
if os.path.isfile(post_branch_mig_file) or download:
if download:
data['database_post_branch_hop_script'] = post_branch_mig_file
extra_text_files.append(post_branch_mig_file)
post_branch_upg_file = self._entropy._get_local_post_branch_upg_script(
repo = self._repository_id)
self._repository_id)
if os.path.isfile(post_branch_upg_file) or download:
if download:
data['database_post_branch_upgrade_script'] = \
@@ -394,30 +394,29 @@ class ServerPackagesRepositoryUpdater(object):
post_repo_update_file = \
self._entropy._get_local_post_repo_update_script(
repo = self._repository_id)
self._repository_id)
if os.path.isfile(post_repo_update_file) or download:
if download:
data['database_post_repo_update_script'] = post_repo_update_file
extra_text_files.append(post_repo_update_file)
database_ts_file = self._entropy._get_local_database_timestamp_file(
repo = self._repository_id)
database_ts_file = self._entropy._get_local_repository_timestamp_file(
self._repository_id)
if os.path.isfile(database_ts_file) or download:
data['database_timestamp_file'] = database_ts_file
if not download:
critical.append(database_ts_file)
database_package_mask_file = \
self._entropy._get_local_database_mask_file(
repo = self._repository_id)
self._entropy._get_local_repository_mask_file(self._repository_id)
if os.path.isfile(database_package_mask_file) or download:
if download:
data['database_package_mask_file'] = database_package_mask_file
extra_text_files.append(database_package_mask_file)
database_package_system_mask_file = \
self._entropy._get_local_database_system_mask_file(
repo = self._repository_id)
self._entropy._get_local_repository_system_mask_file(
self._repository_id)
if os.path.isfile(database_package_system_mask_file) or download:
if download:
data['database_package_system_mask_file'] = \
@@ -425,8 +424,8 @@ class ServerPackagesRepositoryUpdater(object):
extra_text_files.append(database_package_system_mask_file)
database_package_confl_tagged_file = \
self._entropy._get_local_database_confl_tagged_file(
repo = self._repository_id)
self._entropy._get_local_repository_confl_tagged_file(
self._repository_id)
if os.path.isfile(database_package_confl_tagged_file) or download:
if download:
data['database_package_confl_tagged_file'] = \
@@ -434,8 +433,8 @@ class ServerPackagesRepositoryUpdater(object):
extra_text_files.append(database_package_confl_tagged_file)
database_license_whitelist_file = \
self._entropy._get_local_database_licensewhitelist_file(
repo = self._repository_id)
self._entropy._get_local_repository_licensewhitelist_file(
self._repository_id)
if os.path.isfile(database_license_whitelist_file) or download:
if download:
data['database_license_whitelist_file'] = \
@@ -443,8 +442,8 @@ class ServerPackagesRepositoryUpdater(object):
extra_text_files.append(database_license_whitelist_file)
database_mirrors_file = \
self._entropy._get_local_database_mirrors_file(
repo = self._repository_id)
self._entropy._get_local_repository_mirrors_file(
self._repository_id)
if os.path.isfile(database_mirrors_file) or download:
if download:
data['database_mirrors_file'] = \
@@ -452,8 +451,8 @@ class ServerPackagesRepositoryUpdater(object):
extra_text_files.append(database_mirrors_file)
database_fallback_mirrors_file = \
self._entropy._get_local_database_fallback_mirrors_file(
repo = self._repository_id)
self._entropy._get_local_repository_fallback_mirrors_file(
self._repository_id)
if os.path.isfile(database_fallback_mirrors_file) or download:
if download:
data['database_fallback_mirrors_file'] = \
@@ -462,22 +461,22 @@ class ServerPackagesRepositoryUpdater(object):
exp_based_pkgs_removal_file = \
self._entropy._get_local_exp_based_pkgs_rm_whitelist_file(
repo = self._repository_id)
self._repository_id)
if os.path.isfile(exp_based_pkgs_removal_file) or download:
if download:
data['exp_based_pkgs_removal_file'] = \
exp_based_pkgs_removal_file
extra_text_files.append(exp_based_pkgs_removal_file)
database_rss_file = self._entropy._get_local_database_rss_file(
repo = self._repository_id)
database_rss_file = self._entropy._get_local_repository_rss_file(
self._repository_id)
if os.path.isfile(database_rss_file) or download:
data['database_rss_file'] = database_rss_file
if not download:
critical.append(data['database_rss_file'])
database_rss_light_file = \
self._entropy._get_local_database_rsslight_file(
repo = self._repository_id)
self._entropy._get_local_repository_rsslight_file(
self._repository_id)
if os.path.isfile(database_rss_light_file) or download:
data['database_rss_light_file'] = database_rss_light_file
@@ -485,34 +484,34 @@ class ServerPackagesRepositoryUpdater(object):
critical.append(data['database_rss_light_file'])
pkglist_file = self._entropy._get_local_pkglist_file(
repo = self._repository_id)
self._repository_id)
data['pkglist_file'] = pkglist_file
if not download:
critical.append(data['pkglist_file'])
critical_updates_file = self._entropy._get_local_critical_updates_file(
repo = self._repository_id)
self._repository_id)
if os.path.isfile(critical_updates_file) or download:
if download:
data['critical_updates_file'] = critical_updates_file
extra_text_files.append(critical_updates_file)
restricted_file = self._entropy._get_local_restricted_file(
repo = self._repository_id)
self._repository_id)
if os.path.isfile(restricted_file) or download:
if download:
data['restricted_file'] = restricted_file
extra_text_files.append(restricted_file)
keywords_file = self._entropy._get_local_database_keywords_file(
repo = self._repository_id)
keywords_file = self._entropy._get_local_repository_keywords_file(
self._repository_id)
if os.path.isfile(keywords_file) or download:
if download:
data['keywords_file'] = keywords_file
extra_text_files.append(keywords_file)
gpg_file = self._entropy._get_local_database_gpg_signature_file(
repo = self._repository_id)
gpg_file = self._entropy._get_local_repository_gpg_signature_file(
self._repository_id)
if os.path.isfile(gpg_file) or download:
data['gpg_file'] = gpg_file
# no need to add to extra_text_files, it will be added
@@ -524,8 +523,7 @@ class ServerPackagesRepositoryUpdater(object):
# upload eapi3 signal file
something_new = os.path.join(
self._entropy._get_local_database_dir(
repo = self._repository_id),
self._entropy._get_local_repository_dir(self._repository_id),
etpConst['etpdatabaseeapi3updates'])
with open(something_new, "w") as sn_f:
sn_f.flush()
@@ -534,24 +532,22 @@ class ServerPackagesRepositoryUpdater(object):
# always push metafiles file, it's cheap
data['metafiles_path'] = \
self._entropy._get_local_database_compressed_metafiles_file(
repo = self._repository_id)
self._entropy._get_local_repository_compressed_metafiles_file(
self._repository_id)
critical.append(data['metafiles_path'])
gpg_signed_files.append(data['metafiles_path'])
if 2 not in disabled_eapis:
data['dump_path_light'] = os.path.join(
self._entropy._get_local_database_dir(
repo = self._repository_id),
etpConst[cmethod[5]])
self._entropy._get_local_repository_dir(
self._repository_id), etpConst[cmethod[5]])
critical.append(data['dump_path_light'])
gpg_signed_files.append(data['dump_path_light'])
data['dump_path_digest_light'] = os.path.join(
self._entropy._get_local_database_dir(
repo = self._repository_id),
etpConst[cmethod[6]])
self._entropy._get_local_repository_dir(
self._repository_id), etpConst[cmethod[6]])
critical.append(data['dump_path_digest_light'])
gpg_signed_files.append(data['dump_path_digest_light'])
@@ -559,38 +555,33 @@ class ServerPackagesRepositoryUpdater(object):
if 1 not in disabled_eapis:
data['compressed_database_path'] = os.path.join(
self._entropy._get_local_database_dir(
repo = self._repository_id),
self._entropy._get_local_repository_dir(self._repository_id),
etpConst[cmethod[2]])
critical.append(data['compressed_database_path'])
gpg_signed_files.append(data['compressed_database_path'])
data['compressed_database_path_light'] = os.path.join(
self._entropy._get_local_database_dir(
repo = self._repository_id),
self._entropy._get_local_repository_dir(self._repository_id),
etpConst[cmethod[7]])
critical.append(data['compressed_database_path_light'])
gpg_signed_files.append(data['compressed_database_path_light'])
data['database_path_digest'] = os.path.join(
self._entropy._get_local_database_dir(
repo = self._repository_id),
self._entropy._get_local_repository_dir(self._repository_id),
etpConst['etpdatabasehashfile']
)
critical.append(data['database_path_digest'])
gpg_signed_files.append(data['database_path_digest'])
data['compressed_database_path_digest'] = os.path.join(
self._entropy._get_local_database_dir(
repo = self._repository_id),
self._entropy._get_local_repository_dir(self._repository_id),
etpConst[cmethod[2]] + etpConst['packagesmd5fileext']
)
critical.append(data['compressed_database_path_digest'])
gpg_signed_files.append(data['compressed_database_path_digest'])
data['compressed_database_path_digest_light'] = os.path.join(
self._entropy._get_local_database_dir(
repo = self._repository_id),
self._entropy._get_local_repository_dir(self._repository_id),
etpConst[cmethod[8]]
)
critical.append(data['compressed_database_path_digest_light'])
@@ -599,15 +590,15 @@ class ServerPackagesRepositoryUpdater(object):
# SSL cert file, just for reference
ssl_ca_cert = self._entropy._get_local_database_ca_cert_file(
repo = self._repository_id)
ssl_ca_cert = self._entropy._get_local_repository_ca_cert_file(
self._repository_id)
if os.path.isfile(ssl_ca_cert):
if download:
data['ssl_ca_cert_file'] = ssl_ca_cert
extra_text_files.append(ssl_ca_cert)
ssl_server_cert = self._entropy._get_local_database_server_cert_file(
repo = self._repository_id)
ssl_server_cert = self._entropy._get_local_repository_server_cert_file(
self._repository_id)
if os.path.isfile(ssl_server_cert):
if download:
data['ssl_server_cert_file'] = ssl_server_cert
@@ -665,11 +656,10 @@ class ServerPackagesRepositoryUpdater(object):
raise AttributeError("wrong repository compression method")
crippled_uri = EntropyTransceiver.get_uri_name(uri)
database_path = self._entropy._get_local_database_file(
repo = self._repository_id)
database_path = self._entropy._get_local_repository_file(
self._repository_id)
database_dir_path = os.path.dirname(
self._entropy._get_local_database_file(
repo = self._repository_id))
self._entropy._get_local_repository_file(self._repository_id))
download_data, critical, text_files, tmp_dirs, \
gpg_to_verify_files = self._get_files_to_sync(cmethod,
@@ -783,13 +773,13 @@ class ServerPackagesRepositoryUpdater(object):
def _update_rss_feed(self):
product = self._settings['repositories']['product']
rss_path = self._entropy._get_local_database_rss_file(
repo = self._repository_id)
rss_light_path = self._entropy._get_local_database_rsslight_file(
repo = self._repository_id)
rss_path = self._entropy._get_local_repository_rss_file(
self._repository_id)
rss_light_path = self._entropy._get_local_repository_rsslight_file(
self._repository_id)
rss_dump_name = self._repository_id + etpConst['rss-dump-name']
db_revision_path = self._entropy._get_local_database_revision_file(
repo = self._repository_id)
db_revision_path = self._entropy._get_local_repository_revision_file(
self._repository_id)
rss_title = "%s Online Repository Status" % (
self._settings['system']['name'],)
@@ -866,7 +856,7 @@ class ServerPackagesRepositoryUpdater(object):
Update the repository timestamp file.
"""
from datetime import datetime
ts_file = self._entropy._get_local_database_timestamp_file(
ts_file = self._entropy._get_local_repository_timestamp_file(
self._repository_id)
current_ts = "%s" % (datetime.fromtimestamp(time.time()),)
with open(ts_file, "w") as ts_f:
@@ -878,7 +868,7 @@ class ServerPackagesRepositoryUpdater(object):
Create the repository packages list file.
"""
pkglist_file = self._entropy._get_local_pkglist_file(
repo = self._repository_id)
self._repository_id)
tmp_pkglist_file = pkglist_file + ".tmp"
dbconn = self._entropy.open_server_repository(
@@ -1172,12 +1162,12 @@ class ServerPackagesRepositoryUpdater(object):
found_file_list.append(gpg_path)
else:
gpg_path = \
self._entropy._get_local_database_gpg_signature_file(
self._entropy._get_local_repository_gpg_signature_file(
self._repository_id)
not_found_file_list.append(gpg_path) # not found
metafile_not_found_file = \
self._entropy._get_local_database_metafiles_not_found_file(
self._entropy._get_local_repository_metafiles_not_found_file(
self._repository_id)
with open(metafile_not_found_file, "w") as f_meta:
f_meta.writelines(not_found_file_list)
@@ -1208,7 +1198,7 @@ class ServerPackagesRepositoryUpdater(object):
cmethod = etpConst['etpdatabasecompressclasses'].get(db_format)
if cmethod is None:
raise AttributeError("wrong repository compression method passed")
database_path = self._entropy._get_local_database_file(
database_path = self._entropy._get_local_repository_file(
self._repository_id)
if disabled_eapis:
@@ -1255,7 +1245,7 @@ class ServerPackagesRepositoryUpdater(object):
# now we can safely copy it
# backup current database to avoid re-indexing
old_dbpath = self._entropy._get_local_database_file(self._repository_id)
old_dbpath = self._entropy._get_local_repository_file(self._repository_id)
backup_dbpath = old_dbpath + ".up_backup"
try:
if os.access(backup_dbpath, os.R_OK) and \
@@ -1274,7 +1264,7 @@ class ServerPackagesRepositoryUpdater(object):
upload_data, cmethod)
# create compressed dump + checksum
eapi2_dbfile = self._entropy._get_local_database_file(
eapi2_dbfile = self._entropy._get_local_repository_file(
self._repository_id)
temp_eapi2_dbfile = eapi2_dbfile+".light_eapi2.tmp"
shutil.copy2(eapi2_dbfile, temp_eapi2_dbfile)
@@ -1317,7 +1307,7 @@ class ServerPackagesRepositoryUpdater(object):
upload_data['compressed_database_path_digest'])
# create light version of the compressed db
eapi1_dbfile = self._entropy._get_local_database_file(
eapi1_dbfile = self._entropy._get_local_repository_file(
self._repository_id)
temp_eapi1_dbfile = eapi1_dbfile+".light"
shutil.copy2(eapi1_dbfile, temp_eapi1_dbfile)
@@ -1422,8 +1412,8 @@ class ServerPackagesRepositoryUpdater(object):
if not mirrors_locked and db_locked:
# mirrors not locked remotely but only locally
mylock_file = self._entropy._get_database_lockfile(
repo = self._repository_id)
mylock_file = self._entropy._get_repository_lockfile(
self._repository_id)
if os.access(mylock_file, os.W_OK) and \
os.path.isfile(mylock_file):
@@ -1453,7 +1443,7 @@ class ServerPackagesRepositoryUpdater(object):
if download_latest:
# close all the currently open repos
self._entropy.close_repositories()
download_uri = download_latest.pop(0)
download_uri = download_latest[0]
error = self._download(download_uri)
if error:
self._entropy.output(
+192 -279
View File
@@ -93,7 +93,7 @@ class ServerEntropyRepositoryPlugin(EntropyRepositoryPlugin):
repo = entropy_repository_instance.name
local_dbfile = self._metadata['local_dbfile']
taint_file = self._server._get_local_database_taint_file(repo)
taint_file = self._server._get_local_repository_taint_file(repo)
if os.path.isfile(taint_file):
dbs = ServerRepositoryStatus()
dbs.set_tainted(local_dbfile)
@@ -168,7 +168,7 @@ class ServerEntropyRepositoryPlugin(EntropyRepositoryPlugin):
return 0
# taint the database status
taint_file = self._server._get_local_database_taint_file(repo = repo)
taint_file = self._server._get_local_repository_taint_file(repo)
f = open(taint_file, "w")
f.write(etpConst['currentarch']+" repository tainted\n")
f.flush()
@@ -184,8 +184,8 @@ class ServerEntropyRepositoryPlugin(EntropyRepositoryPlugin):
Entropy repository revision bumping function. Every time it's called,
revision is incremented by 1.
"""
revision_file = self._server._get_local_database_revision_file(
repo = repo)
revision_file = self._server._get_local_repository_revision_file(
repo)
if not os.path.isfile(revision_file):
revision = 1
else:
@@ -868,7 +868,7 @@ class ServerFatscopeSystemSettingsPlugin(SystemSettingsPlugin):
idpackages = set()
exp_fp = self._helper._get_local_exp_based_pkgs_rm_whitelist_file(
repo = repoid)
repoid)
dbconn = self._helper.open_server_repository(
just_reading = True, repo = repoid)
@@ -912,8 +912,7 @@ class ServerFakeClientSystemSettingsPlugin(SystemSettingsPlugin):
"repository = %s|%s|http://--fake--|http://--fake--" % (
repoid, repo_data['description'],))
my_data['repoid'] = repoid
my_data['dbpath'] = self._helper._get_local_database_dir(
repo = repoid)
my_data['dbpath'] = self._helper._get_local_repository_dir(repoid)
my_data['dbrevision'] = self._helper.local_repository_revision(
repoid)
cli_repodata['available'][repoid] = my_data
@@ -1005,7 +1004,7 @@ class ServerSettingsMixin:
return db_download_uri.replace("/%s/" % (cur_branch,),
"/%s/" % (new_branch,))
def _get_basedir_pkg_listing(self, base_dir, repo = None, branch = None):
def _get_basedir_pkg_listing(self, base_dir, branch = None):
pkgs_dir_types = self._get_pkg_dir_names()
basedir_raw_content = []
@@ -1029,302 +1028,215 @@ class ServerSettingsMixin:
etpConst['packagesrelativepath_basedir_nonfree'],
etpConst['packagesrelativepath_basedir_restricted']]
def _get_remote_database_relative_path(self, repo = None):
def _get_remote_repository_relative_path(self, repository_id):
srv_set = self._settings[Server.SYSTEM_SETTINGS_PLG_ID]['server']
if repo is None:
repo = self.default_repository
return srv_set['repositories'][repo]['database_relative_path']
return srv_set['repositories'][repository_id]['database_relative_path']
def _get_local_database_file(self, repo = None, branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etpdatabasefile'])
def _get_local_repository_file(self, repository_id, branch = None):
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['etpdatabasefile'])
def _get_local_store_directory(self, repo = None):
def _get_local_store_directory(self, repository_id):
srv_set = self._settings[Server.SYSTEM_SETTINGS_PLG_ID]['server']
if repo is None:
repo = self.default_repository
return srv_set['repositories'][repo]['store_dir']
return srv_set['repositories'][repository_id]['store_dir']
def _get_local_upload_directory(self, repo = None):
def _get_local_upload_directory(self, repository_id):
srv_set = self._settings[Server.SYSTEM_SETTINGS_PLG_ID]['server']
if repo is None:
repo = self.default_repository
return srv_set['repositories'][repo]['upload_basedir']
return srv_set['repositories'][repository_id]['upload_basedir']
def _get_local_repository_base_directory(self, repo = None):
def _get_local_repository_base_directory(self, repository_id):
srv_set = self._settings[Server.SYSTEM_SETTINGS_PLG_ID]['server']
if repo is None:
repo = self.default_repository
return srv_set['repositories'][repo]['repo_basedir']
return srv_set['repositories'][repository_id]['repo_basedir']
def _get_local_database_taint_file(self, repo = None, branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etpdatabasetaintfile'])
def _get_local_repository_taint_file(self, repository_id, branch = None):
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['etpdatabasetaintfile'])
def _get_local_database_revision_file(self, repo = None, branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etpdatabaserevisionfile'])
def _get_local_repository_revision_file(self, repository_id, branch = None):
return os.path.join(
self._get_local_repository_dir(repository_id, branch = branch),
etpConst['etpdatabaserevisionfile'])
def _get_local_database_timestamp_file(self, repo = None, branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etpdatabasetimestampfile'])
def _get_local_database_ca_cert_file(self, repo = None, branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etpdatabasecacertfile'])
def _get_local_database_server_cert_file(self, repo = None, branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etpdatabaseservercertfile'])
def _get_local_database_mask_file(self, repo = None, branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etpdatabasemaskfile'])
def _get_local_database_system_mask_file(self, repo = None, branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etpdatabasesytemmaskfile'])
def _get_local_database_confl_tagged_file(self, repo = None, branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etpdatabaseconflictingtaggedfile'])
def _get_local_database_licensewhitelist_file(self, repo = None,
def _get_local_repository_timestamp_file(self, repository_id,
branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etpdatabaselicwhitelistfile'])
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['etpdatabasetimestampfile'])
def _get_local_database_mirrors_file(self, repo = None,
def _get_local_repository_ca_cert_file(self, repository_id, branch = None):
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['etpdatabasecacertfile'])
def _get_local_repository_server_cert_file(self, repository_id,
branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etpdatabasemirrorsfile'])
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['etpdatabaseservercertfile'])
def _get_local_database_fallback_mirrors_file(self, repo = None,
def _get_local_repository_mask_file(self, repository_id, branch = None):
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['etpdatabasemaskfile'])
def _get_local_repository_system_mask_file(self, repository_id,
branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etpdatabasefallbackmirrorsfile'])
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['etpdatabasesytemmaskfile'])
def _get_local_database_dep_rewrite_file(self, repo = None, branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etpdatabasedeprewritefile'])
def _get_local_repository_confl_tagged_file(self, repository_id,
branch = None):
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['etpdatabaseconflictingtaggedfile'])
def _get_local_database_dep_blacklist_file(self, repo = None, branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etpdatabasedepblacklistfile'])
def _get_local_repository_licensewhitelist_file(self, repository_id,
branch = None):
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['etpdatabaselicwhitelistfile'])
def _get_local_database_rss_file(self, repo = None, branch = None):
def _get_local_repository_mirrors_file(self, repository_id, branch = None):
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['etpdatabasemirrorsfile'])
def _get_local_repository_fallback_mirrors_file(self, repository_id,
branch = None):
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['etpdatabasefallbackmirrorsfile'])
def _get_local_repository_rss_file(self, repository_id, branch = None):
srv_set = self._settings[Server.SYSTEM_SETTINGS_PLG_ID]['server']
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
srv_set['rss']['name'])
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), srv_set['rss']['name'])
def _get_local_database_rsslight_file(self, repo = None, branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['rss-light-name'])
def _get_local_repository_rsslight_file(self, repository_id, branch = None):
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['rss-light-name'])
def _get_local_database_notice_board_file(self, repo = None, branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['rss-notice-board'])
def _get_local_database_treeupdates_file(self, repo = None, branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etpdatabaseupdatefile'])
def _get_local_database_compressed_metafiles_file(self, repo = None,
def _get_local_repository_notice_board_file(self, repository_id,
branch = None):
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['rss-notice-board'])
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etpdatabasemetafilesfile'])
def _get_local_database_metafiles_not_found_file(self, repo = None,
def _get_local_repository_treeupdates_file(self, repository_id,
branch = None):
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['etpdatabaseupdatefile'])
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etpdatabasemetafilesnotfound'])
def _get_local_database_gpg_signature_file(self, repo = None, branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etpdatabasegpgfile'])
def _get_local_exp_based_pkgs_rm_whitelist_file(self, repo = None,
def _get_local_repository_compressed_metafiles_file(self, repository_id,
branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etpdatabaseexpbasedpkgsrm'])
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['etpdatabasemetafilesfile'])
def _get_local_pkglist_file(self, repo = None, branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etpdatabasepkglist'])
def _get_local_repository_metafiles_not_found_file(self, repository_id,
branch = None):
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['etpdatabasemetafilesnotfound'])
def _get_local_database_sets_dir(self, repo = None, branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['confsetsdirname'])
def _get_local_repository_gpg_signature_file(self, repository_id,
branch = None):
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['etpdatabasegpgfile'])
def _get_local_post_branch_mig_script(self, repo = None, branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etp_post_branch_hop_script'])
def _get_local_exp_based_pkgs_rm_whitelist_file(self, repository_id,
branch = None):
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['etpdatabaseexpbasedpkgsrm'])
def _get_local_post_branch_upg_script(self, repo = None, branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etp_post_branch_upgrade_script'])
def _get_local_pkglist_file(self, repository_id, branch = None):
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['etpdatabasepkglist'])
def _get_local_post_repo_update_script(self, repo = None, branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etp_post_repo_update_script'])
def _get_local_database_sets_dir(self, repository_id, branch = None):
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['confsetsdirname'])
def _get_local_critical_updates_file(self, repo = None, branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etpdatabasecriticalfile'])
def _get_local_post_branch_mig_script(self, repository_id, branch = None):
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['etp_post_branch_hop_script'])
def _get_local_restricted_file(self, repo = None, branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etpdatabaserestrictedfile'])
def _get_local_post_branch_upg_script(self, repository_id, branch = None):
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['etp_post_branch_upgrade_script'])
def _get_local_database_keywords_file(self, repo = None, branch = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo, branch),
etpConst['etpdatabasekeywordsfile'])
def _get_local_post_repo_update_script(self, repository_id, branch = None):
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['etp_post_repo_update_script'])
def _get_local_database_dir(self, repo = None, branch = None):
def _get_local_critical_updates_file(self, repository_id, branch = None):
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['etpdatabasecriticalfile'])
def _get_local_restricted_file(self, repository_id, branch = None):
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['etpdatabaserestrictedfile'])
def _get_local_repository_keywords_file(self, repository_id, branch = None):
return os.path.join(self._get_local_repository_dir(repository_id,
branch = branch), etpConst['etpdatabasekeywordsfile'])
def _get_local_repository_dir(self, repository_id, branch = None):
srv_set = self._settings[Server.SYSTEM_SETTINGS_PLG_ID]['server']
if repo is None:
repo = self.default_repository
if branch is None:
branch = self._settings['repositories']['branch']
return os.path.join(srv_set['repositories'][repo]['database_dir'],
branch)
return os.path.join(
srv_set['repositories'][repository_id]['database_dir'], branch)
def _get_missing_dependencies_blacklist_file(self, repo = None,
def _get_missing_dependencies_blacklist_file(self, repository_id,
branch = None):
srv_set = self._settings[Server.SYSTEM_SETTINGS_PLG_ID]['server']
if repo is None:
repo = self.default_repository
if branch is None:
branch = self._settings['repositories']['branch']
return os.path.join(srv_set['repositories'][repo]['database_dir'],
branch, etpConst['etpdatabasemissingdepsblfile'])
return os.path.join(
srv_set['repositories'][repository_id]['database_dir'],
branch, etpConst['etpdatabasemissingdepsblfile'])
def _get_database_lockfile(self, repo = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo),
def _get_repository_lockfile(self, repository_id):
return os.path.join(self._get_local_repository_dir(repository_id),
etpConst['etpdatabaselockfile'])
def _get_database_download_lockfile(self, repo = None):
if repo is None:
repo = self.default_repository
return os.path.join(self._get_local_database_dir(repo),
def _get_repository_download_lockfile(self, repository_id):
return os.path.join(self._get_local_repository_dir(repository_id),
etpConst['etpdatabasedownloadlockfile'])
def _create_local_database_download_lockfile(self, repo = None):
if repo is None:
repo = self.default_repository
lock_file = self._get_database_download_lockfile(repo)
f_lock = open(lock_file, "w")
f_lock.write("download locked")
f_lock.flush()
f_lock.close()
def _create_local_repository_download_lockfile(self, repository_id):
lock_file = self._get_repository_download_lockfile(repository_id)
with open(lock_file, "w") as f_lock:
f_lock.write("download locked")
f_lock.flush()
def _create_local_database_lockfile(self, repo = None):
if repo is None:
repo = self.default_repository
lock_file = self._get_database_lockfile(repo)
f_lock = open(lock_file, "w")
f_lock.write("database locked")
f_lock.flush()
f_lock.close()
def _create_local_repository_lockfile(self, repository_id):
lock_file = self._get_repository_lockfile(repository_id)
with open(lock_file, "w") as f_lock:
f_lock.write("database locked")
f_lock.flush()
def _remove_local_database_lockfile(self, repo = None):
if repo is None:
repo = self.default_repository
lock_file = self._get_database_lockfile(repo)
if os.path.isfile(lock_file):
def _remove_local_repository_lockfile(self, repository_id):
lock_file = self._get_repository_lockfile(repository_id)
try:
os.remove(lock_file)
except OSError:
pass
def _remove_local_database_download_lockfile(self, repo = None):
if repo is None:
repo = self.default_repository
lock_file = self._get_database_download_lockfile(repo)
if os.path.isfile(lock_file):
def _remove_local_repository_download_lockfile(self, repository_id):
lock_file = self._get_repository_download_lockfile(repository_id)
try:
os.remove(lock_file)
except OSError:
pass
def complete_remote_package_relative_path(self, pkg_rel_url, repo = None):
def complete_remote_package_relative_path(self, pkg_rel_url, repository_id):
srv_set = self._settings[Server.SYSTEM_SETTINGS_PLG_ID]['server']
if repo is None:
repo = self.default_repository
return os.path.join(
srv_set['repositories'][repo]['remote_repo_basedir'], pkg_rel_url)
srv_set['repositories'][repository_id]['remote_repo_basedir'],
pkg_rel_url)
def complete_local_upload_package_path(self, pkg_rel_url, repo = None):
def complete_local_upload_package_path(self, pkg_rel_url, repository_id):
srv_set = self._settings[Server.SYSTEM_SETTINGS_PLG_ID]['server']
if repo is None:
repo = self.default_repository
return os.path.join(srv_set['repositories'][repo]['upload_basedir'],
pkg_rel_url)
return os.path.join(
srv_set['repositories'][repository_id]['upload_basedir'],
pkg_rel_url)
def complete_local_package_path(self, pkg_rel_url, repo = None):
def complete_local_package_path(self, pkg_rel_url, repository_id):
srv_set = self._settings[Server.SYSTEM_SETTINGS_PLG_ID]['server']
if repo is None:
repo = self.default_repository
return os.path.join(srv_set['repositories'][repo]['repo_basedir'],
pkg_rel_url)
return os.path.join(
srv_set['repositories'][repository_id]['repo_basedir'],
pkg_rel_url)
def remote_repository_mirrors(self, repository_id):
"""
@@ -1363,7 +1275,7 @@ class ServerSettingsMixin:
@return: the actual repository revision
@rtype: int
"""
dbrev_file = self._get_local_database_revision_file(repository_id)
dbrev_file = self._get_local_repository_revision_file(repository_id)
if not os.path.isfile(dbrev_file):
return 0
@@ -1513,7 +1425,7 @@ class ServerPackageDepsMixin:
@return: mask status, True if ok, False if not
@rtype: bool
"""
mask_file = self._get_local_database_mask_file(repo = repo)
mask_file = self._get_local_repository_mask_file(repo)
current_packages = []
if os.path.isfile(mask_file) and os.access(mask_file, os.R_OK):
@@ -1544,7 +1456,7 @@ class ServerPackageDepsMixin:
@return: mask status, True if ok, False if not
@rtype: bool
"""
mask_file = self._get_local_database_mask_file(repo = repo)
mask_file = self._get_local_repository_mask_file(repo)
current_packages = []
if os.path.isfile(mask_file) and os.access(mask_file, os.R_OK):
@@ -1593,7 +1505,7 @@ class ServerPackagesHandlingMixin:
back = True
)
if os.path.isfile(self._get_local_database_file(repo)):
if os.path.isfile(self._get_local_repository_file(repo)):
# test out
if show_warnings:
@@ -1604,7 +1516,7 @@ class ServerPackagesHandlingMixin:
mytxt = "%s: %s: %s" % (
bold(_("WARNING")),
red(_("repository already exists")),
self._get_local_database_file(repo),
self._get_local_repository_file(repo),
)
self.output(
mytxt,
@@ -1617,7 +1529,7 @@ class ServerPackagesHandlingMixin:
if rc_question == _("No"):
return
os.remove(self._get_local_database_file(repo))
os.remove(self._get_local_repository_file(repo))
# initialize
dbconn = self.open_server_repository(read_only = False,
@@ -1805,7 +1717,7 @@ class ServerPackagesHandlingMixin:
for pkg_fp, idpackage in download_queue[from_branch]:
down_url = dbconn.retrieveDownloadURL(idpackage)
down_rel = self.complete_remote_package_relative_path(
down_url, repo = repo)
down_url, repo)
down_rel_dir = os.path.dirname(down_rel)
obj = queue_map.setdefault(down_rel_dir, [])
obj.append(pkg_fp)
@@ -1963,7 +1875,7 @@ class ServerPackagesHandlingMixin:
# move files to upload
new_package_path = self.complete_local_upload_package_path(
download_url, repo = repo)
download_url, repo)
self._ensure_dir_path(os.path.dirname(new_package_path))
try:
@@ -2179,10 +2091,10 @@ class ServerPackagesHandlingMixin:
)
# move binary file
from_file = self.complete_local_package_path(package_rel_path,
repo = repo)
repo)
if not os.path.isfile(from_file):
from_file = self.complete_local_upload_package_path(
package_rel_path, repo = repo)
package_rel_path, repo)
if not os.path.isfile(from_file):
self.output(
"[%s=>%s|%s] %s: %s -> %s" % (
@@ -2229,7 +2141,7 @@ class ServerPackagesHandlingMixin:
del tmp_data
to_file = self.complete_local_upload_package_path(
updated_package_rel_path, repo = to_repo)
updated_package_rel_path, to_repo)
if new_tag != None:
@@ -2241,7 +2153,7 @@ class ServerPackagesHandlingMixin:
match_category, match_name, match_version, new_tag)
to_file = self.complete_local_upload_package_path(
updated_package_rel_path, repo = to_repo)
updated_package_rel_path, to_repo)
# directly move to correct place, tag changed, so file name
to_file = os.path.join(os.path.dirname(to_file),
tagged_package_filename)
@@ -2588,7 +2500,7 @@ class ServerPackagesHandlingMixin:
currentcounter += 1
pkgfile = dbconn.retrieveDownloadURL(idpackage)
pkgfile = self.complete_remote_package_relative_path(
pkgfile, repo = repo)
pkgfile, repo)
pkghash = dbconn.retrieveDigest(idpackage)
self.output(
@@ -3212,15 +3124,16 @@ class ServerPackagesHandlingMixin:
level = "info",
header = darkgreen(" @@ ")
)
branch_dbdir = self._get_local_database_dir(repo)
old_branch_dbdir = self._get_local_database_dir(repo, from_branch)
branch_dbdir = self._get_local_repository_dir(repo)
old_branch_dbdir = self._get_local_repository_dir(repo,
branch = from_branch)
# close all our databases
self.close_repositories()
# if database file did not exist got created as an empty file
# we can just rm -rf it
branch_dbfile = self._get_local_database_file(repo)
branch_dbfile = self._get_local_repository_file(repo)
if os.path.isfile(branch_dbfile):
if entropy.tools.get_file_size(branch_dbfile) == 0:
shutil.rmtree(branch_dbdir, True)
@@ -3727,7 +3640,7 @@ class ServerRepositoryMixin:
)
else:
# move empty database for security sake
dbfile = self._get_local_database_file(repoid)
dbfile = self._get_local_repository_file(repoid)
if os.path.isfile(dbfile):
shutil.move(dbfile, dbfile+".backup")
self.initialize_server_repository(repo = repoid,
@@ -3829,7 +3742,7 @@ class ServerRepositoryMixin:
repo = self.default_repository
# check if the database is locked locally
lock_file = self._get_database_lockfile(repo)
lock_file = self._get_repository_lockfile(repo)
if os.path.isfile(lock_file):
self.output(
red(_("Entropy repository is already locked by you :-)")),
@@ -4018,7 +3931,7 @@ class ServerRepositoryMixin:
read_only = True
no_upload = True
local_dbfile = self._get_local_database_file(repo, use_branch)
local_dbfile = self._get_local_repository_file(repo, branch = use_branch)
if do_cache:
cached = self._server_dbcache.get(
(repo, etpConst['systemroot'], local_dbfile, read_only,
@@ -4119,7 +4032,7 @@ class ServerRepositoryMixin:
def setup_empty_repository(self, dbpath = None, repo = None):
if dbpath is None:
dbpath = self._get_local_database_file(repo)
dbpath = self._get_local_repository_file(repo)
dbdir = os.path.dirname(dbpath)
if not os.path.isdir(dbdir):
@@ -4154,7 +4067,7 @@ class ServerRepositoryMixin:
if repo is None:
repo = self.default_repository
wl_file = self._get_local_database_licensewhitelist_file(repo = repo)
wl_file = self._get_local_repository_licensewhitelist_file(repo)
if not os.path.isfile(wl_file):
return []
return entropy.tools.generic_file_content_parser(wl_file)
@@ -4164,7 +4077,7 @@ class ServerRepositoryMixin:
if repo is None:
repo = self.default_repository
rl_file = self._get_local_restricted_file(repo = repo)
rl_file = self._get_local_restricted_file(repo)
if not os.path.isfile(rl_file):
return []
return entropy.tools.generic_file_content_parser(rl_file,
@@ -4349,7 +4262,7 @@ class ServerRepositoryMixin:
download_url = self._setup_repository_package_filename(dbconn,
idpackage)
destination_path = self.complete_local_upload_package_path(
download_url, repo = repo)
download_url, repo)
destination_dir = os.path.dirname(destination_path)
self._ensure_dir_path(destination_dir)
@@ -4550,8 +4463,8 @@ class ServerRepositoryMixin:
repo = self.default_repository
# taint the database status
db_file = self._get_local_database_file(repo = repo)
taint_file = self._get_local_database_taint_file(repo = repo)
db_file = self._get_local_repository_file(repo)
taint_file = self._get_local_repository_taint_file(repo)
f = open(taint_file, "w")
f.write("repository tainted\n")
f.flush()
@@ -4570,7 +4483,7 @@ class ServerMiscMixin:
def _ensure_paths(self, repo):
upload_dir = self._get_local_upload_directory(repo)
db_dir = self._get_local_database_dir(repo)
db_dir = self._get_local_repository_dir(repo)
for mydir in [upload_dir, db_dir]:
if (not os.path.isdir(mydir)) and (not os.path.lexists(mydir)):
os.makedirs(mydir, 0o755)
@@ -4584,11 +4497,11 @@ class ServerMiscMixin:
recursion = False, uid = etpConst['uid'])
def _setup_services(self):
self._setup_entropy_settings()
self._setup_entropy_settings(self.default_repository)
self._backup_entropy_settings()
self.Mirrors = MirrorsServer(self, self.default_repository)
def _setup_entropy_settings(self, repo = None):
def _setup_entropy_settings(self, repository_id):
srv_set = self._settings[Server.SYSTEM_SETTINGS_PLG_ID]['server']
backup_list = [
'etpdatabaseclientfilepath',
@@ -4601,7 +4514,7 @@ class ServerMiscMixin:
# setup client database
if not self.community_repo:
etpConst['etpdatabaseclientfilepath'] = \
self._get_local_database_file(repo = repo)
self._get_local_repository_file(repository_id)
etpConst['clientdbid'] = etpConst['serverdbid']
const_create_working_dirs()
@@ -4724,7 +4637,8 @@ class ServerMiscMixin:
repo = self.default_repository
if branch is None:
branch = self._settings['repositories']['branch']
wl_file = self._get_missing_dependencies_blacklist_file(repo, branch)
wl_file = self._get_missing_dependencies_blacklist_file(repo,
branch = branch)
wl_data = []
if os.path.isfile(wl_file) and os.access(wl_file, os.R_OK):
f_wl = open(wl_file, "r")
@@ -4740,7 +4654,8 @@ class ServerMiscMixin:
repo = self.default_repository
if branch is None:
branch = self._settings['repositories']['branch']
wl_file = self._get_missing_dependencies_blacklist_file(repo, branch)
wl_file = self._get_missing_dependencies_blacklist_file(repo,
branch = branch)
wl_dir = os.path.dirname(wl_file)
if not (os.path.isdir(wl_dir) and os.access(wl_dir, os.W_OK)):
return
@@ -4757,8 +4672,7 @@ class ServerMiscMixin:
path of package. This method does not check for path validity though.
"""
pkg_rel_url = dbconn.retrieveDownloadURL(idpackage)
complete_path = self.complete_local_package_path(pkg_rel_url,
repo = repo)
complete_path = self.complete_local_package_path(pkg_rel_url, repo)
return complete_path
def _get_upload_package_path(self, repo, dbconn, idpackage):
@@ -4768,8 +4682,7 @@ class ServerMiscMixin:
This method does not check for path validity though.
"""
pkg_path = dbconn.retrieveDownloadURL(idpackage)
return os.path.join(self._get_local_upload_directory(repo = repo),
pkg_path)
return os.path.join(self._get_local_upload_directory(repo), pkg_path)
def scan_package_changes(self):
@@ -5150,7 +5063,7 @@ class ServerMiscMixin:
if repo is None:
repo = self.default_repository
sets_dir = self._get_local_database_sets_dir(repo, branch)
sets_dir = self._get_local_database_sets_dir(repo, branch = branch)
if not (os.path.isdir(sets_dir) and os.access(sets_dir, os.R_OK)):
return {}
+65 -57
View File
@@ -35,7 +35,7 @@ class ServerNoticeBoardMixin:
if repo is None:
repo = self._entropy.default_repository
mirrors = self._entropy.remote_repository_mirrors(repo)
rss_path = self._entropy._get_local_database_notice_board_file(repo)
rss_path = self._entropy._get_local_repository_notice_board_file(repo)
mytmpdir = tempfile.mkdtemp(prefix = "entropy.server")
self._entropy.output(
@@ -84,7 +84,7 @@ class ServerNoticeBoardMixin:
if repo is None:
repo = self._entropy.default_repository
mirrors = self._entropy.remote_repository_mirrors(repo)
rss_path = self._entropy._get_local_database_notice_board_file(repo)
rss_path = self._entropy._get_local_repository_notice_board_file(repo)
rss_file = os.path.basename(rss_path)
self._entropy.output(
@@ -139,7 +139,7 @@ class ServerNoticeBoardMixin:
if repo is None:
repo = self._entropy.default_repository
mirrors = self._entropy.remote_repository_mirrors(repo)
rss_path = self._entropy._get_local_database_notice_board_file(repo)
rss_path = self._entropy._get_local_repository_notice_board_file(repo)
self._entropy.output(
"[repo:%s] %s %s" % (
@@ -191,7 +191,7 @@ class ServerNoticeBoardMixin:
rss_title = "%s Notice Board" % (self._settings['system']['name'],)
rss_description = "Inform about important distribution activities."
rss_path = self._entropy._get_local_database_notice_board_file(repo)
rss_path = self._entropy._get_local_repository_notice_board_file(repo)
srv_set = self._settings[Server.SYSTEM_SETTINGS_PLG_ID]['server']
if not link:
link = srv_set['rss']['website_url']
@@ -210,7 +210,7 @@ class ServerNoticeBoardMixin:
def read_notice_board(self, do_download = True, repo = None):
rss_path = self._entropy._get_local_database_notice_board_file(repo)
rss_path = self._entropy._get_local_repository_notice_board_file(repo)
if do_download:
self.download_notice_board(repo)
if not (os.path.isfile(rss_path) and os.access(rss_path, os.R_OK)):
@@ -220,7 +220,7 @@ class ServerNoticeBoardMixin:
def remove_from_notice_board(self, identifier, repo = None):
rss_path = self._entropy._get_local_database_notice_board_file(repo)
rss_path = self._entropy._get_local_repository_notice_board_file(repo)
rss_title = "%s Notice Board" % (self._settings['system']['name'],)
rss_description = "Inform about important distribution activities."
if not (os.path.isfile(rss_path) and os.access(rss_path, os.R_OK)):
@@ -314,7 +314,7 @@ class Server(ServerNoticeBoardMixin):
header = brown(" @@ ")
)
branches_path = self._entropy._get_remote_database_relative_path(
branches_path = self._entropy._get_remote_repository_relative_path(
repo)
txc = self._entropy.Transceiver(uri)
txc.set_verbosity(False)
@@ -389,7 +389,7 @@ class Server(ServerNoticeBoardMixin):
)
base_path = os.path.join(
self._entropy._get_remote_database_relative_path(repo),
self._entropy._get_remote_repository_relative_path(repo),
self._settings['repositories']['branch'])
lock_file = os.path.join(base_path,
etpConst['etpdatabaselockfile'])
@@ -434,7 +434,7 @@ class Server(ServerNoticeBoardMixin):
issues = True
if not issues:
db_taint_file = self._entropy._get_local_database_taint_file(repo)
db_taint_file = self._entropy._get_local_repository_taint_file(repo)
if os.path.isfile(db_taint_file):
os.remove(db_taint_file)
@@ -481,7 +481,7 @@ class Server(ServerNoticeBoardMixin):
lock_file = etpConst['etpdatabasedownloadlockfile']
my_path = os.path.join(
self._entropy._get_remote_database_relative_path(repo),
self._entropy._get_remote_repository_relative_path(repo),
self._settings['repositories']['branch'])
lock_file = os.path.join(my_path, lock_file)
@@ -533,7 +533,7 @@ class Server(ServerNoticeBoardMixin):
repo = self._entropy.default_repository
my_path = os.path.join(
self._entropy._get_remote_database_relative_path(repo),
self._entropy._get_remote_repository_relative_path(repo),
self._settings['repositories']['branch'])
# create path to lock file if it doesn't exist
@@ -544,13 +544,13 @@ class Server(ServerNoticeBoardMixin):
lock_string = ''
if dblock:
self._entropy._create_local_database_lockfile(repo)
lock_file = self._entropy._get_database_lockfile(repo)
self._entropy._create_local_repository_lockfile(repo)
lock_file = self._entropy._get_repository_lockfile(repo)
else:
# locking/unlocking mirror1 for download
lock_string = _('for download')
self._entropy._create_local_database_download_lockfile(repo)
lock_file = self._entropy._get_database_download_lockfile(repo)
self._entropy._create_local_repository_download_lockfile(repo)
lock_file = self._entropy._get_repository_download_lockfile(repo)
remote_path = os.path.join(my_path, os.path.basename(lock_file))
@@ -581,7 +581,7 @@ class Server(ServerNoticeBoardMixin):
level = "error",
header = darkred(" * ")
)
self._entropy._remove_local_database_lockfile(repo)
self._entropy._remove_local_repository_lockfile(repo)
return rc_upload
@@ -592,7 +592,7 @@ class Server(ServerNoticeBoardMixin):
repo = self._entropy.default_repository
my_path = os.path.join(
self._entropy._get_remote_database_relative_path(repo),
self._entropy._get_remote_repository_relative_path(repo),
self._settings['repositories']['branch'])
crippled_uri = EntropyTransceiver.get_uri_name(uri)
@@ -618,9 +618,9 @@ class Server(ServerNoticeBoardMixin):
header = darkgreen(" * ")
)
if dblock:
self._entropy._remove_local_database_lockfile(repo)
self._entropy._remove_local_repository_lockfile(repo)
else:
self._entropy._remove_local_database_download_lockfile(repo)
self._entropy._remove_local_repository_download_lockfile(repo)
else:
self._entropy.output(
"[repo:%s|%s] %s: %s - %s" % (
@@ -667,9 +667,9 @@ class Server(ServerNoticeBoardMixin):
remote_path = \
self._entropy.complete_remote_package_relative_path(
pkg_relative_path, repo = repo)
pkg_relative_path, repo)
download_path = self._entropy.complete_local_package_path(
pkg_relative_path, repo = repo)
pkg_relative_path, repo)
download_dir = os.path.dirname(download_path)
@@ -798,7 +798,7 @@ class Server(ServerNoticeBoardMixin):
if cmethod is None:
raise AttributeError("Wrong repository compression method passed")
remote_dir = os.path.join(
self._entropy._get_remote_database_relative_path(repo),
self._entropy._get_remote_repository_relative_path(repo),
self._settings['repositories']['branch'])
# let raise exception if connection is impossible
@@ -808,7 +808,7 @@ class Server(ServerNoticeBoardMixin):
compressedfile = etpConst[cmethod[2]]
rc1 = handler.is_file(os.path.join(remote_dir, compressedfile))
rev_file = self._entropy._get_local_database_revision_file(repo)
rev_file = self._entropy._get_local_repository_revision_file(repo)
revfilename = os.path.basename(rev_file)
rc2 = handler.is_file(os.path.join(remote_dir, revfilename))
@@ -911,7 +911,7 @@ class Server(ServerNoticeBoardMixin):
"""
dbstatus = []
remote_dir = os.path.join(
self._entropy._get_remote_database_relative_path(repository_id),
self._entropy._get_remote_repository_relative_path(repository_id),
self._settings['repositories']['branch'])
lock_file = os.path.join(remote_dir, etpConst['etpdatabaselockfile'])
down_lock_file = os.path.join(remote_dir,
@@ -955,12 +955,11 @@ class Server(ServerNoticeBoardMixin):
"""
gave_up = False
lock_file = self._entropy._get_database_lockfile(repo = repository_id)
lock_file = self._entropy._get_repository_lockfile(repository_id)
lock_filename = os.path.basename(lock_file)
remote_dir = os.path.join(
self._entropy._get_remote_database_relative_path(
repo = repository_id),
self._entropy._get_remote_repository_relative_path(repository_id),
self._settings['repositories']['branch'])
remote_lock_file = os.path.join(remote_dir, lock_filename)
@@ -1014,7 +1013,10 @@ class Server(ServerNoticeBoardMixin):
def _calculate_local_upload_files(self, repo = None):
upload_files = 0
upload_packages = set()
upload_dir = self._entropy._get_local_upload_directory(repo = repo)
if repo is None:
repo = self._entropy.default_repository
upload_dir = self._entropy._get_local_upload_directory(repo)
# check if it exists
if not os.path.isdir(upload_dir):
@@ -1022,7 +1024,7 @@ class Server(ServerNoticeBoardMixin):
branch = self._settings['repositories']['branch']
upload_pkgs = self._entropy._get_basedir_pkg_listing(upload_dir,
repo = repo, branch = branch)
branch = branch)
pkg_ext = etpConst['packagesext']
pkg_md5_ext = etpConst['packagesmd5fileext']
@@ -1037,8 +1039,9 @@ class Server(ServerNoticeBoardMixin):
def _calculate_local_package_files(self, repo = None):
local_files = 0
local_packages = set()
base_dir = self._entropy._get_local_repository_base_directory(
repo = repo)
if repo is None:
repo = self._entropy.default_repository
base_dir = self._entropy._get_local_repository_base_directory(repo)
# check if it exists
if not os.path.isdir(base_dir):
@@ -1046,7 +1049,7 @@ class Server(ServerNoticeBoardMixin):
branch = self._settings['repositories']['branch']
pkg_files = self._entropy._get_basedir_pkg_listing(base_dir,
repo = repo, branch = branch)
branch = branch)
pkg_ext = etpConst['packagesext']
pkg_md5_ext = etpConst['packagesmd5fileext']
@@ -1225,11 +1228,11 @@ class Server(ServerNoticeBoardMixin):
for pkg_dir_type in pkgs_dir_types:
remote_dir = self._entropy.complete_remote_package_relative_path(
pkg_dir_type, repo = repo)
pkg_dir_type, repo)
remote_dir = os.path.join(remote_dir, etpConst['currentarch'],
branch)
only_dir = self._entropy.complete_remote_package_relative_path("",
repo = repo)
repo)
db_url_dir = remote_dir[len(only_dir):]
# create path to lock file if it doesn't exist
@@ -1317,7 +1320,7 @@ class Server(ServerNoticeBoardMixin):
local_filepath = \
self._entropy.complete_local_upload_package_path(
local_package, repo = repo)
local_package, repo)
local_size = entropy.tools.get_file_size(local_filepath)
remote_size = remote_packages_data.get(local_package)
@@ -1343,7 +1346,7 @@ class Server(ServerNoticeBoardMixin):
if local_package in remote_packages:
local_filepath = self._entropy.complete_local_package_path(
local_package, repo = repo)
local_package, repo)
local_size = entropy.tools.get_file_size(local_filepath)
remote_size = remote_packages_data.get(local_package)
if remote_size is None:
@@ -1365,7 +1368,7 @@ class Server(ServerNoticeBoardMixin):
if remote_package in local_packages:
local_filepath = self._entropy.complete_local_package_path(
remote_package, repo = repo)
remote_package, repo)
local_size = entropy.tools.get_file_size(local_filepath)
remote_size = remote_packages_data.get(remote_package)
if remote_size is None:
@@ -1434,7 +1437,7 @@ class Server(ServerNoticeBoardMixin):
for item in removal_queue:
local_filepath = self._entropy.complete_local_package_path(
item, repo = repo)
item, repo)
size = entropy.tools.get_file_size(local_filepath)
metainfo['removal'] += size
removal.append((local_filepath, item, size))
@@ -1442,7 +1445,7 @@ class Server(ServerNoticeBoardMixin):
for item in download_queue:
local_filepath = self._entropy.complete_local_upload_package_path(
item, repo = repo)
item, repo)
if not os.path.isfile(local_filepath):
size = remote_packages_data.get(item)
if size is None:
@@ -1457,10 +1460,10 @@ class Server(ServerNoticeBoardMixin):
for item in upload_queue:
local_filepath = self._entropy.complete_local_upload_package_path(
item, repo = repo)
item, repo)
local_filepath_pkgs = self._entropy.complete_local_package_path(
item, repo = repo)
item, repo)
if os.path.isfile(local_filepath):
size = entropy.tools.get_file_size(local_filepath)
upload.append((local_filepath, item, size))
@@ -1528,7 +1531,8 @@ class Server(ServerNoticeBoardMixin):
for from_file, rel_file, size in copy_queue:
from_file_hash = from_file + etpConst['packagesmd5fileext']
to_file = self._entropy.complete_local_package_path(rel_file)
to_file = self._entropy.complete_local_package_path(rel_file,
repo)
to_file_hash = to_file+etpConst['packagesmd5fileext']
expiration_file = to_file+etpConst['packagesexpirationfileext']
@@ -1581,7 +1585,7 @@ class Server(ServerNoticeBoardMixin):
for rel_path, myqueue in queue_map.items():
remote_dir = self._entropy.complete_remote_package_relative_path(
rel_path, repo = repo)
rel_path, repo)
uploader = self.TransceiverServerHandler(self._entropy, [uri],
myqueue, critical_files = myqueue,
@@ -1650,10 +1654,10 @@ class Server(ServerNoticeBoardMixin):
for rel_path, myqueue in queue_map.items():
remote_dir = self._entropy.complete_remote_package_relative_path(
rel_path, repo = repo)
rel_path, repo)
local_basedir = self._entropy.complete_local_package_path(rel_path,
repo = repo)
repo)
if not os.path.isdir(local_basedir):
self._entropy._ensure_dir_path(local_basedir)
@@ -2030,16 +2034,15 @@ class Server(ServerNoticeBoardMixin):
if repo is None:
repo = self._entropy.default_repository
upload_dir = self._entropy._get_local_upload_directory(repo = repo)
basedir_list = self._entropy._get_basedir_pkg_listing(upload_dir,
repo = repo)
upload_dir = self._entropy._get_local_upload_directory(repo)
basedir_list = self._entropy._get_basedir_pkg_listing(upload_dir)
for pkg_rel in basedir_list:
source_pkg = self._entropy.complete_local_upload_package_path(
pkg_rel, repo = repo)
pkg_rel, repo)
dest_pkg = self._entropy.complete_local_package_path(pkg_rel,
repo = repo)
repo)
dest_pkg_dir = os.path.dirname(dest_pkg)
self._entropy._ensure_dir_path(dest_pkg_dir)
@@ -2067,7 +2070,7 @@ class Server(ServerNoticeBoardMixin):
def _is_package_expired(self, package_rel, repo = None):
pkg_path = self._entropy.complete_local_package_path(package_rel,
repo = repo)
repo)
pkg_path += etpConst['packagesexpirationfileext']
if not os.path.isfile(pkg_path):
return False
@@ -2085,8 +2088,11 @@ class Server(ServerNoticeBoardMixin):
def _create_expiration_file(self, package_rel, repo = None, gentle = False):
if repo is None:
repo = self._entropy.default_repository
pkg_path = self._entropy.complete_local_package_path(package_rel,
repo = repo)
repo)
pkg_path += etpConst['packagesexpirationfileext']
if gentle and os.path.isfile(pkg_path):
return
@@ -2096,17 +2102,19 @@ class Server(ServerNoticeBoardMixin):
def _collect_expiring_packages(self, branch, repo = None):
if repo is None:
repo = self._entropy.default_repository
dbconn = self._entropy.open_server_repository(just_reading = True,
repo = repo)
database_bins = set(dbconn.listAllDownloads(do_sort = False,
full_path = True))
repo_basedir = self._entropy._get_local_repository_base_directory(
repo = repo)
repo_basedir = self._entropy._get_local_repository_base_directory(repo)
repo_bins = self._entropy._get_basedir_pkg_listing(repo_basedir,
repo = repo, branch = branch)
branch = branch)
# convert to set, so that we can do fast thingszzsd
repo_bins = set(repo_bins)
@@ -2223,7 +2231,7 @@ class Server(ServerNoticeBoardMixin):
removal_map = {}
for package_rel in removal:
rel_path = self._entropy.complete_remote_package_relative_path(
package_rel, repo = repo)
package_rel, repo)
rel_dir = os.path.dirname(rel_path)
obj = removal_map.setdefault(rel_dir, [])
base_pkg = os.path.basename(package_rel)
@@ -2306,7 +2314,7 @@ class Server(ServerNoticeBoardMixin):
for package_rel in removal:
package_path = self._entropy.complete_local_package_path(
package_rel, repo = repo)
package_rel, repo)
package_path_hash = package_path + \
etpConst['packagesmd5fileext']
+2 -2
View File
@@ -62,7 +62,7 @@ class TransceiverServerHandler:
# default to database directory
branch = self._settings['repositories']['branch']
my_path = os.path.join(
self.Entropy._get_remote_database_relative_path(repo), branch)
self.Entropy._get_remote_repository_relative_path(repo), branch)
self.txc_basedir = my_path
else:
self.txc_basedir = txc_basedir
@@ -70,7 +70,7 @@ class TransceiverServerHandler:
if not local_basedir:
# default to database directory
self.local_basedir = os.path.dirname(
self.Entropy._get_local_database_file(self.repo))
self.Entropy._get_local_repository_file(self.repo))
else:
self.local_basedir = local_basedir
@@ -579,7 +579,7 @@ class Base:
# run quickpkg
for repoid in to_add:
store_dir = Entropy._get_local_store_directory(repo = repoid)
store_dir = Entropy._get_local_store_directory(repoid)
for atom in to_add[repoid]:
Entropy.Spm().generate_package(atom, store_dir)
@@ -589,7 +589,7 @@ class Base:
avail_repos.pop(etpConst['clientserverrepoid'])
matches_added = set()
for repoid in avail_repos:
store_dir = Entropy._get_local_store_directory(repo = repoid)
store_dir = Entropy._get_local_store_directory(repoid)
package_files = os.listdir(store_dir)
if not package_files:
continue
@@ -2374,7 +2374,7 @@ class PortagePlugin(SpmPlugin):
header = blue(" # ")
)
mydest = entropy_server._get_local_store_directory(repo = repo)
mydest = entropy_server._get_local_store_directory(repo)
try:
mypath = self.generate_package(myatom, mydest)
except Exception:
@@ -2493,8 +2493,9 @@ class PortagePlugin(SpmPlugin):
def package_names_update(self, entropy_repository, entropy_repository_id,
entropy_server, entropy_branch):
repo_updates_file = entropy_server._get_local_database_treeupdates_file(
entropy_repository_id)
repo_updates_file = \
entropy_server._get_local_repository_treeupdates_file(
entropy_repository_id)
do_rescan = False
stored_digest = entropy_repository.retrieveRepositoryUpdatesDigest(
+16 -10
View File
@@ -558,7 +558,8 @@ def _switch_branch(entropy_server, args):
def _restore_repository(entropy_server):
db_file = entropy_server._get_local_database_file()
db_file = entropy_server._get_local_repository_file(
entropy_server.default_repository)
db_dir = os.path.dirname(db_file)
dblist = entropy_server.installed_repository_backups(
client_dbdir = db_dir)
@@ -767,11 +768,12 @@ def _repositories(entropy_server, options):
elif cmd == "backup":
db_path = entropy_server._get_local_database_file()
db_path = entropy_server._get_local_repository_file(
entropy_server.default_repository)
# make sure to close all repos before backing-up
entropy_server.close_repositories()
rc, err_msg = entropy_server.backup_repository(entropy_server.default_repository,
os.path.dirname(db_path))
rc, err_msg = entropy_server.backup_repository(
entropy_server.default_repository, os.path.dirname(db_path))
if not rc:
print_info(darkred(" ** ")+red("%s: %s" % (
_("Error"), err_msg,) ))
@@ -1029,7 +1031,8 @@ def _update(entropy_server, options):
# package them
print_info(brown(" @@ ")+blue("%s..." % (_("Compressing packages"),) ))
store_dir = entropy_server._get_local_store_directory()
store_dir = entropy_server._get_local_store_directory(
entropy_server.default_repository)
for x in to_be_added:
print_info(brown(" # ")+red(x[0]+"..."))
try:
@@ -1039,7 +1042,8 @@ def _update(entropy_server, options):
print_info(brown(" !!! ")+bold("%s..." % (
_("Ignoring broken Spm entry, please recompile it"),) ))
store_dir = entropy_server._get_local_store_directory()
store_dir = entropy_server._get_local_store_directory(
entropy_server.default_repository)
etp_pkg_files = []
if os.path.isdir(store_dir):
etp_pkg_files = os.listdir(store_dir)
@@ -1048,7 +1052,10 @@ def _update(entropy_server, options):
# then exit gracefully
return 0
etp_pkg_files = [(os.path.join(entropy_server._get_local_store_directory(), x), False,) for x in etp_pkg_files]
local_store_dir = entropy_server._get_local_store_directory(
entropy_server.default_repository)
etp_pkg_files = [(os.path.join(local_store_dir, x), False) \
for x in etp_pkg_files]
idpackages = entropy_server.add_packages_to_repository(etp_pkg_files)
if idpackages:
@@ -1083,9 +1090,8 @@ def _status(entropy_server):
for repo_id in sorted(repos_data):
repo_data = repos_data[repo_id]
repo_rev = entropy_server.local_repository_revision(repo_id)
store_dir = entropy_server._get_local_store_directory(repo = repo_id)
upload_basedir = entropy_server._get_local_upload_directory(
repo = repo_id)
store_dir = entropy_server._get_local_store_directory(repo_id)
upload_basedir = entropy_server._get_local_upload_directory(repo_id)
upload_files, upload_packages = \
entropy_server.Mirrors._calculate_local_upload_files(
repo = repo_id)