1 |
commit: 56b60e41c674e4ad4abc56fba86d5dceaf962231 |
2 |
Author: Matt Turner <mattst88 <AT> gentoo <DOT> org> |
3 |
AuthorDate: Thu Oct 29 03:08:04 2020 +0000 |
4 |
Commit: Matt Turner <mattst88 <AT> gentoo <DOT> org> |
5 |
CommitDate: Thu Oct 29 16:13:47 2020 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/catalyst.git/commit/?id=56b60e41 |
7 |
|
8 |
catalyst: Split action_sequence into prepare/build/finish |
9 |
|
10 |
We want to run the "build" sequence in a different mount namespace from |
11 |
the "prepare" and "finish" sequences, so this splits action_sequence |
12 |
into those groupings. |
13 |
|
14 |
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org> |
15 |
|
16 |
catalyst/base/stagebase.py | 24 +++++++++++++++--------- |
17 |
catalyst/targets/embedded.py | 6 +++++- |
18 |
catalyst/targets/livecd_stage1.py | 6 +++++- |
19 |
catalyst/targets/livecd_stage2.py | 10 +++++++--- |
20 |
catalyst/targets/netboot.py | 6 +++++- |
21 |
catalyst/targets/stage1.py | 12 ++++++------ |
22 |
catalyst/targets/stage4.py | 6 +++++- |
23 |
7 files changed, 48 insertions(+), 22 deletions(-) |
24 |
|
25 |
diff --git a/catalyst/base/stagebase.py b/catalyst/base/stagebase.py |
26 |
index 46b7c59c..75c84baa 100644 |
27 |
--- a/catalyst/base/stagebase.py |
28 |
+++ b/catalyst/base/stagebase.py |
29 |
@@ -64,7 +64,9 @@ class StageBase(TargetBase, ClearBase, GenBase): |
30 |
"portage_overlay", |
31 |
"portage_prefix", |
32 |
]) |
33 |
- self.action_sequence = [] |
34 |
+ self.prepare_sequence = [] |
35 |
+ self.build_sequence = [] |
36 |
+ self.finish_sequence = [] |
37 |
|
38 |
self.set_valid_build_kernel_vars(addlargs) |
39 |
TargetBase.__init__(self, myspec, addlargs) |
40 |
@@ -478,36 +480,40 @@ class StageBase(TargetBase, ClearBase, GenBase): |
41 |
Or it calls the normal set_action_sequence() for the target stage. |
42 |
""" |
43 |
if "purgeonly" in self.settings["options"]: |
44 |
- self.action_sequence.append("remove_chroot") |
45 |
+ self.build_sequence.append("remove_chroot") |
46 |
return |
47 |
self.set_action_sequence() |
48 |
|
49 |
def set_action_sequence(self): |
50 |
"""Set basic stage1, 2, 3 action sequences""" |
51 |
- self.action_sequence.extend([ |
52 |
+ self.prepare_sequence.extend([ |
53 |
"unpack", |
54 |
"setup_confdir", |
55 |
"portage_overlay", |
56 |
+ ]) |
57 |
+ self.build_sequence.extend([ |
58 |
"bind", |
59 |
"chroot_setup", |
60 |
"setup_environment", |
61 |
"run_local", |
62 |
"preclean", |
63 |
"unbind", |
64 |
+ ]) |
65 |
+ self.finish_sequence.extend([ |
66 |
"clean", |
67 |
]) |
68 |
self.set_completion_action_sequences() |
69 |
|
70 |
def set_completion_action_sequences(self): |
71 |
if "fetch" not in self.settings["options"]: |
72 |
- self.action_sequence.append("capture") |
73 |
+ self.finish_sequence.append("capture") |
74 |
if "keepwork" in self.settings["options"]: |
75 |
- self.action_sequence.append("clear_autoresume") |
76 |
+ self.finish_sequence.append("clear_autoresume") |
77 |
elif "seedcache" in self.settings["options"]: |
78 |
- self.action_sequence.append("remove_autoresume") |
79 |
+ self.finish_sequence.append("remove_autoresume") |
80 |
else: |
81 |
- self.action_sequence.append("remove_autoresume") |
82 |
- self.action_sequence.append("remove_chroot") |
83 |
+ self.finish_sequence.append("remove_autoresume") |
84 |
+ self.finish_sequence.append("remove_chroot") |
85 |
|
86 |
def set_use(self): |
87 |
use = self.settings["spec_prefix"] + "/use" |
88 |
@@ -1381,7 +1387,7 @@ class StageBase(TargetBase, ClearBase, GenBase): |
89 |
self.purge() |
90 |
|
91 |
failure = False |
92 |
- for x in self.action_sequence: |
93 |
+ for x in self.prepare_sequence + self.build_sequence + self.finish_sequence: |
94 |
log.notice('--- Running action sequence: %s', x) |
95 |
sys.stdout.flush() |
96 |
try: |
97 |
|
98 |
diff --git a/catalyst/targets/embedded.py b/catalyst/targets/embedded.py |
99 |
index 75eb68e4..1314ce7c 100644 |
100 |
--- a/catalyst/targets/embedded.py |
101 |
+++ b/catalyst/targets/embedded.py |
102 |
@@ -41,11 +41,13 @@ class embedded(StageBase): |
103 |
StageBase.__init__(self, spec, addlargs) |
104 |
|
105 |
def set_action_sequence(self): |
106 |
- self.action_sequence.extend([ |
107 |
+ self.prepare_sequence.extend([ |
108 |
"unpack", |
109 |
"config_profile_link", |
110 |
"setup_confdir", |
111 |
"portage_overlay", |
112 |
+ ]) |
113 |
+ self.build_sequence.extend([ |
114 |
"bind", |
115 |
"chroot_setup", |
116 |
"setup_environment", |
117 |
@@ -55,6 +57,8 @@ class embedded(StageBase): |
118 |
"fsscript", |
119 |
"unmerge", |
120 |
"unbind", |
121 |
+ ]) |
122 |
+ self.finish_sequence.extend([ |
123 |
"remove", |
124 |
"empty", |
125 |
"clean", |
126 |
|
127 |
diff --git a/catalyst/targets/livecd_stage1.py b/catalyst/targets/livecd_stage1.py |
128 |
index 9dbfa506..81367053 100644 |
129 |
--- a/catalyst/targets/livecd_stage1.py |
130 |
+++ b/catalyst/targets/livecd_stage1.py |
131 |
@@ -23,16 +23,20 @@ class livecd_stage1(StageBase): |
132 |
StageBase.__init__(self, spec, addlargs) |
133 |
|
134 |
def set_action_sequence(self): |
135 |
- self.action_sequence.extend([ |
136 |
+ self.prepare_sequence.extend([ |
137 |
"unpack", |
138 |
"config_profile_link", |
139 |
"setup_confdir", |
140 |
"portage_overlay", |
141 |
+ ]) |
142 |
+ self.build_sequence.extend([ |
143 |
"bind", |
144 |
"chroot_setup", |
145 |
"setup_environment", |
146 |
"build_packages", |
147 |
"unbind", |
148 |
+ ]) |
149 |
+ self.finish_sequence.extend([ |
150 |
"clean", |
151 |
]) |
152 |
self.set_completion_action_sequences() |
153 |
|
154 |
diff --git a/catalyst/targets/livecd_stage2.py b/catalyst/targets/livecd_stage2.py |
155 |
index c9b5ce08..f6c14919 100644 |
156 |
--- a/catalyst/targets/livecd_stage2.py |
157 |
+++ b/catalyst/targets/livecd_stage2.py |
158 |
@@ -87,11 +87,13 @@ class livecd_stage2(StageBase): |
159 |
print_traceback=True) |
160 |
|
161 |
def set_action_sequence(self): |
162 |
- self.action_sequence.extend([ |
163 |
+ self.prepare_sequence.extend([ |
164 |
"unpack", |
165 |
"config_profile_link", |
166 |
"setup_confdir", |
167 |
"portage_overlay", |
168 |
+ ]) |
169 |
+ self.build_sequence.extend([ |
170 |
"bind", |
171 |
"chroot_setup", |
172 |
"setup_environment", |
173 |
@@ -99,7 +101,7 @@ class livecd_stage2(StageBase): |
174 |
"build_kernel" |
175 |
]) |
176 |
if "fetch" not in self.settings["options"]: |
177 |
- self.action_sequence.extend([ |
178 |
+ self.build_sequence.extend([ |
179 |
"bootloader", |
180 |
"preclean", |
181 |
"livecd_update", |
182 |
@@ -108,6 +110,8 @@ class livecd_stage2(StageBase): |
183 |
"rcupdate", |
184 |
"unmerge", |
185 |
"unbind", |
186 |
+ ]) |
187 |
+ self.finish_sequence.extend([ |
188 |
"remove", |
189 |
"empty", |
190 |
"clean", |
191 |
@@ -115,4 +119,4 @@ class livecd_stage2(StageBase): |
192 |
"setup_overlay", |
193 |
"create_iso", |
194 |
]) |
195 |
- self.action_sequence.append("clear_autoresume") |
196 |
+ self.finish_sequence.append("clear_autoresume") |
197 |
|
198 |
diff --git a/catalyst/targets/netboot.py b/catalyst/targets/netboot.py |
199 |
index e5c6d43c..9a0a4156 100644 |
200 |
--- a/catalyst/targets/netboot.py |
201 |
+++ b/catalyst/targets/netboot.py |
202 |
@@ -160,11 +160,13 @@ class netboot(StageBase): |
203 |
self.resume.enable("empty") |
204 |
|
205 |
def set_action_sequence(self): |
206 |
- self.action_sequence.extend([ |
207 |
+ self.prepare_sequence.extend([ |
208 |
"unpack", |
209 |
"config_profile_link", |
210 |
"setup_confdir", |
211 |
"portage_overlay", |
212 |
+ ]) |
213 |
+ self.build_sequence.extend([ |
214 |
"bind", |
215 |
"chroot_setup", |
216 |
"setup_environment", |
217 |
@@ -177,6 +179,8 @@ class netboot(StageBase): |
218 |
"remove", |
219 |
"empty", |
220 |
"unbind", |
221 |
+ ]) |
222 |
+ self.finish_sequence.extend([ |
223 |
"clean", |
224 |
"clear_autoresume", |
225 |
]) |
226 |
|
227 |
diff --git a/catalyst/targets/stage1.py b/catalyst/targets/stage1.py |
228 |
index 89b30fe1..be3eae93 100644 |
229 |
--- a/catalyst/targets/stage1.py |
230 |
+++ b/catalyst/targets/stage1.py |
231 |
@@ -87,15 +87,15 @@ class stage1(StageBase): |
232 |
chroot for re-use in stage2 without the need to unpack it. |
233 |
''' |
234 |
if "fetch" not in self.settings["options"]: |
235 |
- self.action_sequence.append("capture") |
236 |
+ self.finish_sequence.append("capture") |
237 |
if "keepwork" in self.settings["options"]: |
238 |
- self.action_sequence.append("clear_autoresume") |
239 |
+ self.finish_sequence.append("clear_autoresume") |
240 |
elif "seedcache" in self.settings["options"]: |
241 |
- self.action_sequence.append("remove_autoresume") |
242 |
- self.action_sequence.append("clean_stage1") |
243 |
+ self.finish_sequence.append("remove_autoresume") |
244 |
+ self.finish_sequence.append("clean_stage1") |
245 |
else: |
246 |
- self.action_sequence.append("remove_autoresume") |
247 |
- self.action_sequence.append("remove_chroot") |
248 |
+ self.finish_sequence.append("remove_autoresume") |
249 |
+ self.finish_sequence.append("remove_chroot") |
250 |
|
251 |
def clean_stage1(self): |
252 |
'''seedcache is enabled, so salvage the /tmp/stage1root, |
253 |
|
254 |
diff --git a/catalyst/targets/stage4.py b/catalyst/targets/stage4.py |
255 |
index bb20be79..78a5c780 100644 |
256 |
--- a/catalyst/targets/stage4.py |
257 |
+++ b/catalyst/targets/stage4.py |
258 |
@@ -39,11 +39,13 @@ class stage4(StageBase): |
259 |
self.settings["cleanables"].remove('/etc/resolv.conf') |
260 |
|
261 |
def set_action_sequence(self): |
262 |
- self.action_sequence.extend([ |
263 |
+ self.prepare_sequence.extend([ |
264 |
"unpack", |
265 |
"config_profile_link", |
266 |
"setup_confdir", |
267 |
"portage_overlay", |
268 |
+ ]) |
269 |
+ self.build_sequence.extend([ |
270 |
"bind", |
271 |
"chroot_setup", |
272 |
"setup_environment", |
273 |
@@ -56,6 +58,8 @@ class stage4(StageBase): |
274 |
"rcupdate", |
275 |
"unmerge", |
276 |
"unbind", |
277 |
+ ]) |
278 |
+ self.finish_sequence.extend([ |
279 |
"remove", |
280 |
"empty", |
281 |
"clean", |