summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2020-04-10 13:54:57 +0300
committerLars Wirzenius <liw@liw.fi>2020-04-10 13:54:57 +0300
commitb5daa18fb9373eaa39c6a7370a8236d83962f80f (patch)
treeb75ea0890901847c720d9f087998b7e53b38a937
parentb4ebf05f45930de4fc5ebef6352e635c6e8ea91b (diff)
downloadvmdb2-b5daa18fb9373eaa39c6a7370a8236d83962f80f.tar.gz
Refactor: move get_required_keys into StepRunnerList
-rw-r--r--vmdb/step_list.py16
1 files changed, 8 insertions, 8 deletions
diff --git a/vmdb/step_list.py b/vmdb/step_list.py
index 16bdb5f..c8d0ec8 100644
--- a/vmdb/step_list.py
+++ b/vmdb/step_list.py
@@ -51,13 +51,6 @@ class StepRunnerInterface: # pragma: no cover
return values
- def get_required_keys(self):
- return [
- key
- for key, value in self.get_key_spec().items()
- if value.__class__ == type
- ]
-
def run(self, step_spec, settings, state):
raise NotImplementedError()
@@ -101,12 +94,19 @@ class StepRunnerList:
def find(self, step_spec):
actual = set(step_spec.keys())
for runner in self._runners:
- required = set(runner.get_required_keys())
+ required = set(self.get_required_keys(runner))
if actual.intersection(required) == required:
runner.get_values(step_spec)
return runner
raise NoMatchingRunner(actual)
+ def get_required_keys(self, runner):
+ return [
+ key
+ for key, value in runner.get_key_spec().items()
+ if value.__class__ == type
+ ]
+
class StepError(cliapp.AppException):