summaryrefslogtreecommitdiffstats
path: root/layman/api.py
diff options
context:
space:
mode:
Diffstat (limited to 'layman/api.py')
-rwxr-xr-xlayman/api.py45
1 files changed, 32 insertions, 13 deletions
diff --git a/layman/api.py b/layman/api.py
index 869d882..a5045aa 100755
--- a/layman/api.py
+++ b/layman/api.py
@@ -112,7 +112,7 @@ class LaymanAPI(object):
results = []
for ovl in repos:
if not self.is_installed(ovl):
- self._error("Repository '"+ovl+"' was not installed")
+ self.output.error("Repository '"+ovl+"' was not installed")
results.append(False)
continue
success = False
@@ -142,11 +142,11 @@ class LaymanAPI(object):
results = []
for ovl in repos:
if self.is_installed(ovl):
- self._error("Repository '"+ovl+"' was already installed")
+ self.output.error("Repository '"+ovl+"' was already installed")
results.append(False)
continue
if not self.is_repo(ovl):
- self._error(UnknownOverlayMessage(ovl))
+ self.output.error(UnknownOverlayMessage(ovl))
results.append(False)
continue
success = False
@@ -199,7 +199,7 @@ class LaymanAPI(object):
for ovl in repos:
if not self.is_repo(ovl):
- self._error(UnknownOverlayMessage(ovl))
+ self.output.error(UnknownOverlayMessage(ovl))
result[ovl] = ('', False, False)
continue
try:
@@ -251,7 +251,7 @@ class LaymanAPI(object):
for ovl in repos:
if not self.is_repo(ovl):
- self._error(UnknownOverlayMessage(ovl))
+ self.output.error(UnknownOverlayMessage(ovl))
result[ovl] = ('', False, False)
continue
try:
@@ -298,26 +298,39 @@ class LaymanAPI(object):
@param repos: ['repo-id1', ...] or 'repo-id'
@rtype bool or {'repo-id': bool,...}
"""
+ self.output.debug("API.sync(); repos to sync = %s" % ', '.join(repos), 5)
fatals = []
warnings = []
success = []
repos = self._check_repo_type(repos, "sync")
db = self._get_installed_db()
+ self.output.debug("API.sync(); starting ovl loop", 5)
for ovl in repos:
+ self.output.debug("API.sync(); starting ovl = %s" %ovl, 5)
try:
+ self.output.debug("API.sync(); selecting %s, db = %s" % (ovl, str(db)), 5)
odb = db.select(ovl)
+ self.output.debug("API.sync(); %s now selected" %ovl, 5)
except UnknownOverlayException as error:
- self._error(UnknownOverlayException(error))
+ self.output.debug("API.sync(); UnknownOverlayException selecting %s" %ovl, 5)
+ self._error(str(error))
+ fatals.append((ovl,
+ 'Failed to select overlay "' + ovl + '".\nError was: '
+ + str(error)))
+ self.output.debug("API.sync(); UnknownOverlayException "
+ "selecting %s. continuing to next ovl..." %ovl, 5)
continue
try:
+ self.output.debug("API.sync(); try: self._get_remote_db().select(ovl)", 5)
ordb = self._get_remote_db().select(ovl)
except UnknownOverlayException:
message = 'Overlay "%s" could not be found in the remote lists.\n' \
'Please check if it has been renamed and re-add if necessary.' % ovl
warnings.append((ovl, message))
else:
+ self.output.debug("API.sync(); else: self._get_remote_db().select(ovl)", 5)
current_src = odb.sources[0].src
available_srcs = set(e.src for e in ordb.sources)
if ordb and odb and not current_src in available_srcs:
@@ -348,6 +361,7 @@ class LaymanAPI(object):
}))
try:
+ self.output.debug("API.sync(); starting db.sync(ovl)", 5)
db.sync(ovl, self.config['quiet'])
success.append((ovl,'Successfully synchronized overlay "' + ovl + '".'))
except Exception as error:
@@ -357,19 +371,22 @@ class LaymanAPI(object):
if output_results:
if success:
- self.output.info('\nSucceeded:\n------\n', 3)
+ message = '\nSucceeded:\n------\n'
for ovl, result in success:
- self.output.info(result, 3)
+ message += result + '\n'
+ self.output.info(message, 3)
if warnings:
- self.output.warn('\nWarnings:\n------\n', 2)
+ message = '\nWarnings:\n------\n'
for ovl, result in warnings:
- self.output.warn(result + '\n', 2)
+ message += result + '\n'
+ self.output.warn(message, 2)
if fatals:
- self.output.error('\nErrors:\n------\n')
+ message = '\nErrors:\n------\n'
for ovl, result in fatals:
- self.output.error(result + '\n')
+ message += result + '\n'
+ self.output.error(message)
self.sync_results = (success, warnings, fatals)
@@ -434,7 +451,7 @@ class LaymanAPI(object):
'LaymanAPI.fetch_remote_list(); cache updated = %s'
% str(dbreload),8)
except Exception as error:
- self._error('Failed to fetch overlay list!\n Original Error was: '
+ self.output.error('Failed to fetch overlay list!\n Original Error was: '
+ str(error))
return False
self.get_available(dbreload)
@@ -483,6 +500,7 @@ class LaymanAPI(object):
due to code taken from the packagekit backend.
"""
self._error_messages.append(message)
+ self.output.debug("API._error(); _error_messages = %s" % str(self._error_messages), 4)
if self.report_errors:
print(message, file=self.config['stderr'])
@@ -494,6 +512,7 @@ class LaymanAPI(object):
@rtype: list
@return: list of error strings
"""
+ self.output.debug("API.get_errors(); _error_messages = %s" % str(self._error_messages), 4)
if len(self._error_messages):
messages = self._error_messages[:]
self._error_messages = []