1 |
commit: 5d8d00d735d80308d3a2b973ee5de80dcb78c84e |
2 |
Author: Brian Dolbec <brian.dolbec <AT> gmail <DOT> com> |
3 |
AuthorDate: Sun Feb 6 23:40:15 2011 +0000 |
4 |
Commit: Brian Dolbec <brian.dolbec <AT> gmail <DOT> com> |
5 |
CommitDate: Sun Feb 6 23:40:15 2011 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/overlord.git;a=commit;h=5d8d00d7 |
7 |
|
8 |
use the new message class and fix the error recording and output |
9 |
|
10 |
--- |
11 |
overlord/api.py | 43 +++++++++++++++++++++---------------------- |
12 |
overlord/cli.py | 3 ++- |
13 |
2 files changed, 23 insertions(+), 23 deletions(-) |
14 |
|
15 |
diff --git a/overlord/api.py b/overlord/api.py |
16 |
index 0fe9362..4aee39e 100644 |
17 |
--- a/overlord/api.py |
18 |
+++ b/overlord/api.py |
19 |
@@ -20,10 +20,11 @@ import os |
20 |
from overlord.config import BareConfig |
21 |
#from overlord.action import Sync |
22 |
|
23 |
-from overlord.dbbase import UnknownOverlayException |
24 |
+from overlord.dbbase import UnknownOverlayException, UnknownOverlayMessage |
25 |
from overlord.db import DB, RemoteDB |
26 |
#from overlord.utils import path, delete_empty_directory |
27 |
-from overlord.debug import OUT |
28 |
+#from overlord.debug import OUT |
29 |
+from overlord.output import OUT |
30 |
|
31 |
# give them some values for now, these are from the packagekit backend |
32 |
# TODO establish some proper errors for the api. |
33 |
@@ -114,11 +115,7 @@ class OverlordAPI(object): |
34 |
for ovl in repos: |
35 |
if not self.is_installed(ovl): |
36 |
results.append(True) |
37 |
- break |
38 |
- if not self.is_repo(ovl): |
39 |
- self._error(1, UNKNOWN_REPO_ID %ovl) |
40 |
- results.append(False) |
41 |
- break |
42 |
+ continue |
43 |
try: |
44 |
self._get_installed_db().delete(self._get_installed_db().select(ovl)) |
45 |
results.append(True) |
46 |
@@ -145,11 +142,11 @@ class OverlordAPI(object): |
47 |
for ovl in repos: |
48 |
if self.is_installed(ovl): |
49 |
results.append(True) |
50 |
- break |
51 |
+ continue |
52 |
if not self.is_repo(ovl): |
53 |
- self._error(1, UNKNOWN_REPO_ID %ovl) |
54 |
+ self._error(UnknownOverlayMessage(ovl)) |
55 |
results.append(False) |
56 |
- break |
57 |
+ continue |
58 |
try: |
59 |
self._get_installed_db().add(self._get_remote_db().select(ovl), quiet=True) |
60 |
results.append(True) |
61 |
@@ -199,12 +196,13 @@ class OverlordAPI(object): |
62 |
|
63 |
for ovl in repos: |
64 |
if not self.is_repo(ovl): |
65 |
- self._error(1, UNKNOWN_REPO_ID %ovl) |
66 |
+ self._error(UnknownOverlayMessage(ovl)) |
67 |
result[ovl] = ('', False, False) |
68 |
+ continue |
69 |
try: |
70 |
overlay = db.select(ovl) |
71 |
except UnknownOverlayException, error: |
72 |
- self._error(2, "Error: %s" %str(error)) |
73 |
+ self._error(error) |
74 |
result[ovl] = ('', False, False) |
75 |
else: |
76 |
result[ovl] = { |
77 |
@@ -247,20 +245,21 @@ class OverlordAPI(object): |
78 |
|
79 |
for ovl in repos: |
80 |
if not self.is_repo(ovl): |
81 |
- self._error(1, UNKNOWN_REPO_ID % ovl) |
82 |
+ self._error(UnknownOverlayMessage(ovl)) |
83 |
result[ovl] = ('', False, False) |
84 |
+ continue |
85 |
try: |
86 |
overlay = db.select(ovl) |
87 |
#print "overlay = ", ovl |
88 |
- #print overlay |
89 |
+ #print "!!!", overlay |
90 |
except UnknownOverlayException, error: |
91 |
#print "ERRORS", str(error) |
92 |
- self._error(2, "Error: %s" %str(error)) |
93 |
+ self._error(error) |
94 |
result[ovl] = ('', False, False) |
95 |
else: |
96 |
# Is the overlay supported? |
97 |
if verbose: |
98 |
- info = overlay.__str__() |
99 |
+ info = overlay.get_infostr() |
100 |
else: |
101 |
info = overlay.short_list(width) |
102 |
official = overlay.is_official() |
103 |
@@ -271,7 +270,7 @@ class OverlordAPI(object): |
104 |
|
105 |
def get_info_list(self, local=True, verbose=False, width=0): |
106 |
"""retrieves the string representation of the recorded information |
107 |
- about the repo(s) specified by ovl |
108 |
+ about the repo(s) |
109 |
|
110 |
@param local: bool (defaults to True) |
111 |
@param verbose: bool(defaults to False) |
112 |
@@ -303,7 +302,7 @@ class OverlordAPI(object): |
113 |
try: |
114 |
odb = db.select(ovl) |
115 |
except UnknownOverlayException, error: |
116 |
- self._error(1,"Sync(), failed to select %s overlay. Original error was: %s" %(ovl, str(error))) |
117 |
+ self._error(UnknownOverlayException(error)) |
118 |
continue |
119 |
|
120 |
try: |
121 |
@@ -376,7 +375,7 @@ class OverlordAPI(object): |
122 |
try: |
123 |
self._get_remote_db().cache() |
124 |
except Exception, error: |
125 |
- self._error(-1,'Failed to fetch overlay list!\n Original Error was: ' |
126 |
+ self._error('Failed to fetch overlay list!\n Original Error was: ' |
127 |
+ str(error)) |
128 |
return False |
129 |
self.get_available(reload=True) |
130 |
@@ -417,13 +416,13 @@ class OverlordAPI(object): |
131 |
result = self.get_installed(reload=True) |
132 |
|
133 |
|
134 |
- def _error(self, num, message): |
135 |
+ def _error(self, message): |
136 |
"""outputs the error to the pre-determined output |
137 |
defaults to stderr. This method may be removed, is here for now |
138 |
due to code taken from the packagekit backend. |
139 |
""" |
140 |
- msg = "Error: %d," % num, message |
141 |
- self._error_messages.append(msg) |
142 |
+ #msg = "Error: %d," % num, message |
143 |
+ self._error_messages.append(message) |
144 |
if self.report_errors: |
145 |
print >>stderr, msg |
146 |
|
147 |
|
148 |
diff --git a/overlord/cli.py b/overlord/cli.py |
149 |
index 501dd65..0953de1 100644 |
150 |
--- a/overlord/cli.py |
151 |
+++ b/overlord/cli.py |
152 |
@@ -171,7 +171,8 @@ class Main(object): |
153 |
try: |
154 |
result += getattr(self, action[1])() |
155 |
except Exception, error: |
156 |
- self.output.error(self.api.get_errors()) |
157 |
+ for _error in self.api.get_errors(): |
158 |
+ self.output.error(_error) |
159 |
result = -1 # So it cannot remain 0, i.e. success |
160 |
break |