[server] add support for linktest

This commit is contained in:
Fabio Erculiani
2011-08-05 22:58:03 +02:00
parent 8b62b034fe
commit 7b521b924b
2 changed files with 35 additions and 2 deletions

View File

@@ -51,7 +51,8 @@ help_opts = [
(1, 'fit <package files>', 2, _('inject package files into the current repository')),
(1, 'graph <pkgs> [--complete]', 1, _('show dependency graph of packages')),
(1, 'init <repository>', 2, _('initialize repository (erasing all its content)')),
(1, 'libtest [--dump]', 2, _('look for missing libraries')),
(1, 'libtest [--dump]', 2, _('look for missing libraries (scan system)')),
(1, 'linktest [<excl libs>]', 2, _('look for missing libraries (scan repository metadata)')),
(1, 'list [<repository>]', 2, _('list packages in repository')),
(1, 'log [<repository>]', 2, _('show log for repository')),
(1, 'mv <from> <to> <pkgs>', 2, _('move packages from a repository to another')),
@@ -238,6 +239,9 @@ elif main_cmd == "libtest":
lt_options.append("--dump")
_exec_args([REAGENT_EXEC, "libtest"] + lt_options)
elif main_cmd == "linktest":
_exec_args([REAGENT_EXEC, "linktest"] + options)
elif main_cmd == "deptest":
if options:
avail_repos = _get_available_repositories()

View File

@@ -117,8 +117,9 @@ help_opts = [
(2, 'new [categories]', 2, _('scan new packages available in SPM')),
None,
(1, 'deptest', 2, _('look for unsatisfied dependencies')),
(1, 'libtest', 2, _('look for missing libraries')),
(1, 'libtest', 2, _('look for missing libraries (scan system)')),
(2, '--dump', 2, _('dump results to files')),
(1, 'linktest [excluded libraries]', 1, _('look for missing libraries (scan repository metadata)')),
(1, 'pkgtest', 2, _('verify the integrity of local package files')),
None,
(1, 'cleanup', 2, _('remove downloaded packages and clean temp. directories)')),
@@ -284,6 +285,34 @@ elif main_cmd == "libtest":
entropy.tools.release_entropy_locks(server)
server.shutdown()
elif main_cmd == "linktest":
acquired = False
server = None
rc = 1
try:
server = get_entropy_server()
acquired = entropy.tools.acquire_entropy_locks(server)
if not acquired:
print_error(darkgreen(_("Another Entropy is currently running.")))
else:
srv_set = server.Settings()[Server.SYSTEM_SETTINGS_PLG_ID]['server']
base_repository_id = srv_set['base_repository_id']
qa = server.QA()
for repository_id in server.repositories():
repo = server.open_repository(repository_id)
found_something = qa.test_missing_runtime_libraries(
server,
[(x, repository_id) for x in repo.listAllPackageIds()],
base_repository_id = base_repository_id,
excluded_libraries = options)
if not found_something:
rc = 0
finally:
if server is not None:
if acquired:
entropy.tools.release_entropy_locks(server)
server.shutdown()
# cleanup
elif main_cmd == "cleanup":
import text_tools