This self.settings[] dictionary is very similar to the god object
anti-pattern. Moving action_sequence out it starts us down the road of
fixing this.

Signed-off-by: Matt Turner <matts...@gentoo.org>
---
 catalyst/base/stagebase.py        | 17 +++++++++--------
 catalyst/targets/embedded.py      |  2 +-
 catalyst/targets/livecd_stage1.py |  2 +-
 catalyst/targets/livecd_stage2.py |  6 +++---
 catalyst/targets/netboot.py       |  2 +-
 catalyst/targets/stage1.py        | 12 ++++++------
 catalyst/targets/stage4.py        |  2 +-
 7 files changed, 22 insertions(+), 21 deletions(-)

diff --git a/catalyst/base/stagebase.py b/catalyst/base/stagebase.py
index 73eacfbe..801df2fb 100644
--- a/catalyst/base/stagebase.py
+++ b/catalyst/base/stagebase.py
@@ -64,6 +64,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
             "portage_overlay",
             "portage_prefix",
         ])
+        self.action_sequence = []
 
         self.set_valid_build_kernel_vars(addlargs)
         TargetBase.__init__(self, myspec, addlargs)
@@ -477,13 +478,13 @@ class StageBase(TargetBase, ClearBase, GenBase):
         Or it calls the normal set_action_sequence() for the target stage.
         """
         if "purgeonly" in self.settings["options"]:
-            self.settings["action_sequence"] = ["remove_chroot"]
+            self.action_sequence = ["remove_chroot"]
             return
         self.set_action_sequence()
 
     def set_action_sequence(self):
         """Set basic stage1, 2, 3 action sequences"""
-        self.settings['action_sequence'] = [
+        self.action_sequence = [
             "unpack",
             "setup_confdir",
             "portage_overlay",
@@ -499,14 +500,14 @@ class StageBase(TargetBase, ClearBase, GenBase):
 
     def set_completion_action_sequences(self):
         if "fetch" not in self.settings["options"]:
-            self.settings["action_sequence"].append("capture")
+            self.action_sequence.append("capture")
         if "keepwork" in self.settings["options"]:
-            self.settings["action_sequence"].append("clear_autoresume")
+            self.action_sequence.append("clear_autoresume")
         elif "seedcache" in self.settings["options"]:
-            self.settings["action_sequence"].append("remove_autoresume")
+            self.action_sequence.append("remove_autoresume")
         else:
-            self.settings["action_sequence"].append("remove_autoresume")
-            self.settings["action_sequence"].append("remove_chroot")
+            self.action_sequence.append("remove_autoresume")
+            self.action_sequence.append("remove_chroot")
 
     def set_use(self):
         use = self.settings["spec_prefix"] + "/use"
@@ -1380,7 +1381,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
             self.purge()
 
         failure = False
-        for x in self.settings["action_sequence"]:
+        for x in self.action_sequence:
             log.notice('--- Running action sequence: %s', x)
             sys.stdout.flush()
             try:
diff --git a/catalyst/targets/embedded.py b/catalyst/targets/embedded.py
index 99739512..3899cf1b 100644
--- a/catalyst/targets/embedded.py
+++ b/catalyst/targets/embedded.py
@@ -41,7 +41,7 @@ class embedded(StageBase):
         StageBase.__init__(self, spec, addlargs)
 
     def set_action_sequence(self):
-        self.settings['action_sequence'] = [
+        self.action_sequence = [
             "unpack",
             "config_profile_link",
             "setup_confdir",
diff --git a/catalyst/targets/livecd_stage1.py 
b/catalyst/targets/livecd_stage1.py
index f0b6be8b..b8c26cb1 100644
--- a/catalyst/targets/livecd_stage1.py
+++ b/catalyst/targets/livecd_stage1.py
@@ -23,7 +23,7 @@ class livecd_stage1(StageBase):
         StageBase.__init__(self, spec, addlargs)
 
     def set_action_sequence(self):
-        self.settings['action_sequence'] = [
+        self.action_sequence = [
             "unpack",
             "config_profile_link",
             "setup_confdir",
diff --git a/catalyst/targets/livecd_stage2.py 
b/catalyst/targets/livecd_stage2.py
index 88c0d95c..cac16b6e 100644
--- a/catalyst/targets/livecd_stage2.py
+++ b/catalyst/targets/livecd_stage2.py
@@ -87,7 +87,7 @@ class livecd_stage2(StageBase):
                                     print_traceback=True)
 
     def set_action_sequence(self):
-        self.settings['action_sequence'] = [
+        self.action_sequence = [
             "unpack",
             "config_profile_link",
             "setup_confdir",
@@ -99,7 +99,7 @@ class livecd_stage2(StageBase):
             "build_kernel"
         ]
         if "fetch" not in self.settings["options"]:
-            self.settings['action_sequence'] += [
+            self.action_sequence += [
                 "bootloader",
                 "preclean",
                 "livecd_update",
@@ -115,4 +115,4 @@ class livecd_stage2(StageBase):
                 "setup_overlay",
                 "create_iso",
             ]
-        self.settings["action_sequence"].append("clear_autoresume")
+        self.action_sequence.append("clear_autoresume")
diff --git a/catalyst/targets/netboot.py b/catalyst/targets/netboot.py
index 5620e0d3..61583f0d 100644
--- a/catalyst/targets/netboot.py
+++ b/catalyst/targets/netboot.py
@@ -160,7 +160,7 @@ class netboot(StageBase):
         self.resume.enable("empty")
 
     def set_action_sequence(self):
-        self.settings['action_sequence'] = [
+        self.action_sequence = [
             "unpack",
             "config_profile_link",
             "setup_confdir",
diff --git a/catalyst/targets/stage1.py b/catalyst/targets/stage1.py
index 2c09a41f..89b30fe1 100644
--- a/catalyst/targets/stage1.py
+++ b/catalyst/targets/stage1.py
@@ -87,15 +87,15 @@ class stage1(StageBase):
         chroot for re-use in stage2 without the need to unpack it.
         '''
         if "fetch" not in self.settings["options"]:
-            self.settings["action_sequence"].append("capture")
+            self.action_sequence.append("capture")
         if "keepwork" in self.settings["options"]:
-            self.settings["action_sequence"].append("clear_autoresume")
+            self.action_sequence.append("clear_autoresume")
         elif "seedcache" in self.settings["options"]:
-            self.settings["action_sequence"].append("remove_autoresume")
-            self.settings["action_sequence"].append("clean_stage1")
+            self.action_sequence.append("remove_autoresume")
+            self.action_sequence.append("clean_stage1")
         else:
-            self.settings["action_sequence"].append("remove_autoresume")
-            self.settings["action_sequence"].append("remove_chroot")
+            self.action_sequence.append("remove_autoresume")
+            self.action_sequence.append("remove_chroot")
 
     def clean_stage1(self):
         '''seedcache is enabled, so salvage the /tmp/stage1root,
diff --git a/catalyst/targets/stage4.py b/catalyst/targets/stage4.py
index 346c0845..eef24a73 100644
--- a/catalyst/targets/stage4.py
+++ b/catalyst/targets/stage4.py
@@ -39,7 +39,7 @@ class stage4(StageBase):
         self.settings["cleanables"].remove('/etc/resolv.conf')
 
     def set_action_sequence(self):
-        self.settings['action_sequence'] = [
+        self.action_sequence = [
             "unpack",
             "config_profile_link",
             "setup_confdir",
-- 
2.26.2


Reply via email to