Gentoo Archives: gentoo-commits

From: Matt Turner <mattst88@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/catalyst:pending/mattst88 commit in: catalyst/base/, catalyst/targets/
Date: Thu, 29 Oct 2020 16:14:31
Message-Id: 1603988027.56b60e41c674e4ad4abc56fba86d5dceaf962231.mattst88@gentoo
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",