1 |
Author: zmedico |
2 |
Date: 2008-07-03 07:38:55 +0000 (Thu, 03 Jul 2008) |
3 |
New Revision: 10906 |
4 |
|
5 |
Modified: |
6 |
main/trunk/pym/_emerge/__init__.py |
7 |
Log: |
8 |
Remove the Scheduler._post_merge() method, and create a new |
9 |
_show_failed_fetches() method. |
10 |
|
11 |
|
12 |
Modified: main/trunk/pym/_emerge/__init__.py |
13 |
=================================================================== |
14 |
--- main/trunk/pym/_emerge/__init__.py 2008-07-03 07:04:44 UTC (rev 10905) |
15 |
+++ main/trunk/pym/_emerge/__init__.py 2008-07-03 07:38:55 UTC (rev 10906) |
16 |
@@ -7045,6 +7045,7 @@ |
17 |
self._running_tasks = set() |
18 |
self._max_jobs = 1 |
19 |
self._prefetchers = weakref.WeakValueDictionary() |
20 |
+ self._failed_fetches = [] |
21 |
self._parallel_fetch = False |
22 |
features = self.settings.features |
23 |
if "parallel-fetch" in features and \ |
24 |
@@ -7182,6 +7183,23 @@ |
25 |
prefetchers[pkg] = prefetcher |
26 |
self._add_task(prefetcher) |
27 |
|
28 |
+ def _show_failed_fetches(self): |
29 |
+ failed_fetches = self._failed_fetches |
30 |
+ if not failed_fetches or not \ |
31 |
+ ("--fetchonly" in self.myopts or \ |
32 |
+ "--fetch-all-uri" in self.myopts): |
33 |
+ return |
34 |
+ |
35 |
+ sys.stderr.write("\n\n!!! Some fetch errors were " + \ |
36 |
+ "encountered. Please see above for details.\n\n") |
37 |
+ |
38 |
+ for cpv in failed_fetches: |
39 |
+ sys.stderr.write(" ") |
40 |
+ sys.stderr.write(cpv) |
41 |
+ sys.stderr.write("\n") |
42 |
+ |
43 |
+ sys.stderr.write("\n") |
44 |
+ |
45 |
def merge(self): |
46 |
|
47 |
if "--resume" in self.myopts: |
48 |
@@ -7220,6 +7238,9 @@ |
49 |
task = running_tasks.pop() |
50 |
task.cancel() |
51 |
|
52 |
+ self._show_failed_fetches() |
53 |
+ del self._failed_fetches[:] |
54 |
+ |
55 |
if rval == os.EX_OK or not keep_going: |
56 |
break |
57 |
if "resume" not in mtimedb: |
58 |
@@ -7265,6 +7286,8 @@ |
59 |
del dropped_tasks |
60 |
self._mergelist = mylist |
61 |
|
62 |
+ self._logger.log(" *** Finished. Cleaning up...") |
63 |
+ |
64 |
return rval |
65 |
|
66 |
def _calc_resume_list(self): |
67 |
@@ -7349,7 +7372,6 @@ |
68 |
favorites = self._favorites |
69 |
mtimedb = self._mtimedb |
70 |
buildpkgonly = "--buildpkgonly" in self.myopts |
71 |
- failed_fetches = [] |
72 |
fetchonly = "--fetchonly" in self.myopts or \ |
73 |
"--fetch-all-uri" in self.myopts |
74 |
oneshot = "--oneshot" in self.myopts or \ |
75 |
@@ -7398,16 +7420,15 @@ |
76 |
pkg_count.curval += 1 |
77 |
try: |
78 |
self._execute_task(bad_resume_opts, |
79 |
- failed_fetches, |
80 |
mydbapi, pkg_count, |
81 |
myfeat, mymergelist, x) |
82 |
except self._pkg_failure, e: |
83 |
return e.status |
84 |
- return self._post_merge(mtimedb, |
85 |
- self._logger.xterm_titles, failed_fetches) |
86 |
|
87 |
+ return os.EX_OK |
88 |
+ |
89 |
def _execute_task(self, bad_resume_opts, |
90 |
- failed_fetches, mydbapi, pkg_count, myfeat, |
91 |
+ mydbapi, pkg_count, myfeat, |
92 |
mymergelist, pkg): |
93 |
favorites = self._favorites |
94 |
mtimedb = self._mtimedb |
95 |
@@ -7417,6 +7438,7 @@ |
96 |
buildpkgonly = "--buildpkgonly" in self.myopts |
97 |
fetch_all = "--fetch-all-uri" in self.myopts |
98 |
fetchonly = fetch_all or "--fetchonly" in self.myopts |
99 |
+ failed_fetches = self._failed_fetches |
100 |
|
101 |
oneshot = "--oneshot" in self.myopts or \ |
102 |
"--onlydeps" in self.myopts |
103 |
@@ -7551,37 +7573,14 @@ |
104 |
|
105 |
# Unsafe for parallel merges |
106 |
del mtimedb["resume"]["mergelist"][0] |
107 |
+ if not mtimedb["resume"]["mergelist"]: |
108 |
+ del mtimedb["resume"] |
109 |
# Commit after each merge so that --resume may still work in |
110 |
# in the event that portage is not allowed to exit normally |
111 |
# due to power failure, SIGKILL, etc... |
112 |
mtimedb.commit() |
113 |
self.curval += 1 |
114 |
|
115 |
- def _post_merge(self, mtimedb, xterm_titles, failed_fetches): |
116 |
- if "--pretend" not in self.myopts: |
117 |
- emergelog(xterm_titles, " *** Finished. Cleaning up...") |
118 |
- |
119 |
- # We're out of the loop... We're done. Delete the resume data. |
120 |
- if "resume" in mtimedb: |
121 |
- del mtimedb["resume"] |
122 |
- mtimedb.commit() |
123 |
- |
124 |
- #by doing an exit this way, --fetchonly can continue to try to |
125 |
- #fetch everything even if a particular download fails. |
126 |
- if "--fetchonly" in self.myopts or "--fetch-all-uri" in self.myopts: |
127 |
- if failed_fetches: |
128 |
- sys.stderr.write("\n\n!!! Some fetch errors were " + \ |
129 |
- "encountered. Please see above for details.\n\n") |
130 |
- for cpv in failed_fetches: |
131 |
- sys.stderr.write(" ") |
132 |
- sys.stderr.write(cpv) |
133 |
- sys.stderr.write("\n") |
134 |
- sys.stderr.write("\n") |
135 |
- sys.exit(1) |
136 |
- else: |
137 |
- sys.exit(0) |
138 |
- return os.EX_OK |
139 |
- |
140 |
class UninstallFailure(portage.exception.PortageException): |
141 |
""" |
142 |
An instance of this class is raised by unmerge() when |
143 |
|
144 |
-- |
145 |
gentoo-commits@l.g.o mailing list |