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