[server] add support for linktest
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user