diff options
Diffstat (limited to 'v-i')
-rwxr-xr-x | v-i | 27 |
1 files changed, 25 insertions, 2 deletions
@@ -20,6 +20,12 @@ def log(msg): logging.info(msg) +def error(msg): + if verbose: + print("INSTALLER ERROR:", msg) + logging.error(msg) + + def run(argv, **kwargs): log(f"RUN: {argv} {kwargs}") return subprocess.run(argv, **kwargs) @@ -415,9 +421,23 @@ class SystemSpec: setattr(self, key, self._obj[key]) del self._obj + self._check() + def __repr__(self): - r = {key: getattr(self, key) for key in dir(self) if not key.startswith("_")} - return repr(r) + return repr( + {key: getattr(self, key) for key in dir(self) if not key.startswith("_")} + ) + + def _check(self): + try: + for filename in self.extra_playbooks + self.ansible_vars_files: + if not os.path.exists(filename): + raise Exception( + f"spec refers to file {filename} which does not exist" + ) + except Exception as e: + error(e) + sys.exit("problem with spec file") def main(): @@ -443,6 +463,9 @@ def main(): system = SystemSpec(args.spec) log(f"spec: {system!r}") + print("OK") + return + ansible_vars = dict(system.ansible_vars) ansible_vars["hostname"] = system.hostname for filename in system.ansible_vars_files: |