forked from ungleich-public/cdist
handle errors with exceptions instead of function
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
This commit is contained in:
parent
211212e079
commit
ea9dc8d60c
1 changed files with 12 additions and 9 deletions
21
bin/cdist
21
bin/cdist
|
@ -81,9 +81,9 @@ def file_to_list(filename):
|
|||
|
||||
return lines
|
||||
|
||||
def exit_error(*args):
|
||||
log.error(*args)
|
||||
sys.exit(1)
|
||||
class CdistError(Exception):
|
||||
"""Base exception class for this project"""
|
||||
pass
|
||||
|
||||
class Cdist:
|
||||
"""Cdist main class to hold arbitrary data"""
|
||||
|
@ -185,9 +185,9 @@ class Cdist:
|
|||
print(script_fd.read())
|
||||
script_fd.close()
|
||||
|
||||
exit_error("Command failed (shell): " + " ".join(*args))
|
||||
raise CdistError("Command failed (shell): " + " ".join(*args))
|
||||
except OSError as error:
|
||||
exit_error(" ".join(*args) + ": " + error.args[1])
|
||||
raise CdistError(" ".join(*args) + ": " + error.args[1])
|
||||
|
||||
def run_or_fail(self, *args, **kargs):
|
||||
if "remote" in kargs:
|
||||
|
@ -200,9 +200,9 @@ class Cdist:
|
|||
try:
|
||||
subprocess.check_call(*args, **kargs)
|
||||
except subprocess.CalledProcessError:
|
||||
exit_error("Command failed: " + " ".join(*args))
|
||||
raise CdistError("Command failed: " + " ".join(*args))
|
||||
except OSError as error:
|
||||
exit_error(" ".join(*args) + ": " + error.args[1])
|
||||
raise CdistError(" ".join(*args) + ": " + error.args[1])
|
||||
|
||||
|
||||
def remove_remote_dir(self, destination):
|
||||
|
@ -368,7 +368,7 @@ class Cdist:
|
|||
"""Run global explorers"""
|
||||
explorers = self.list_global_explorers()
|
||||
if(len(explorers) == 0):
|
||||
exit_error("No explorers found in", self.global_explorer_dir)
|
||||
raise CdistError("No explorers found in", self.global_explorer_dir)
|
||||
|
||||
self.transfer_global_explorers()
|
||||
for explorer in explorers:
|
||||
|
@ -674,7 +674,7 @@ def emulator():
|
|||
try:
|
||||
os.makedirs(param_out_dir, exist_ok=True)
|
||||
except OSError as error:
|
||||
exit_error(param_out_dir + ": " + error.args[1])
|
||||
raise CdistError(param_out_dir + ": " + error.args[1])
|
||||
|
||||
# Record parameter
|
||||
params = vars(args)
|
||||
|
@ -790,3 +790,6 @@ if __name__ == "__main__":
|
|||
commandline()
|
||||
except KeyboardInterrupt:
|
||||
sys.exit(0)
|
||||
except CdistError as e:
|
||||
log.error(e)
|
||||
sys.exit(1)
|
||||
|
|
Loading…
Reference in a new issue