forked from ungleich-public/cdist
write parameters to object
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
This commit is contained in:
parent
3faf56cb04
commit
9de1d9ce20
2 changed files with 31 additions and 17 deletions
46
bin/cdist
46
bin/cdist
|
@ -77,6 +77,9 @@ def file_to_list(filename):
|
|||
|
||||
return lines
|
||||
|
||||
def exit_error(*args):
|
||||
log.error(*args)
|
||||
sys.exit(1)
|
||||
|
||||
class Cdist:
|
||||
"""Cdist main class to hold arbitrary data"""
|
||||
|
@ -144,10 +147,6 @@ class Cdist:
|
|||
shutil.rmtree(self.cache_dir)
|
||||
shutil.move(self.temp_dir, self.cache_dir)
|
||||
|
||||
def exit_error(self, *args):
|
||||
log.error(*args)
|
||||
sys.exit(1)
|
||||
|
||||
def remote_mkdir(self, directory):
|
||||
"""Create directory on remote side"""
|
||||
self.run_or_fail(["mkdir", "-p", directory], remote=True)
|
||||
|
@ -182,9 +181,9 @@ class Cdist:
|
|||
print(script_fd.read())
|
||||
script_fd.close()
|
||||
|
||||
self.exit_error("Command failed (shell): " + " ".join(*args))
|
||||
exit_error("Command failed (shell): " + " ".join(*args))
|
||||
except OSError as error:
|
||||
self.exit_error(" ".join(*args) + ": " + error.args[1])
|
||||
exit_error(" ".join(*args) + ": " + error.args[1])
|
||||
|
||||
def run_or_fail(self, *args, **kargs):
|
||||
if "remote" in kargs:
|
||||
|
@ -197,9 +196,9 @@ class Cdist:
|
|||
try:
|
||||
subprocess.check_call(*args, **kargs)
|
||||
except subprocess.CalledProcessError:
|
||||
self.exit_error("Command failed: " + " ".join(*args))
|
||||
exit_error("Command failed: " + " ".join(*args))
|
||||
except OSError as error:
|
||||
self.exit_error(" ".join(*args) + ": " + error.args[1])
|
||||
exit_error(" ".join(*args) + ": " + error.args[1])
|
||||
|
||||
|
||||
def remove_remote_dir(self, destination):
|
||||
|
@ -365,7 +364,7 @@ class Cdist:
|
|||
"""Run global explorers"""
|
||||
explorers = self.list_global_explorers()
|
||||
if(len(explorers) == 0):
|
||||
self.exit_error("No explorers found in", self.global_explorer_dir)
|
||||
exit_error("No explorers found in", self.global_explorer_dir)
|
||||
|
||||
self.transfer_global_explorers()
|
||||
for explorer in explorers:
|
||||
|
@ -639,14 +638,23 @@ def emulator():
|
|||
if os.path.isfile(os.path.join(type_dir, "singleton")):
|
||||
object_id = "singleton"
|
||||
else:
|
||||
object_id = args.object_id
|
||||
object_id = args.object_id[0]
|
||||
del args.object_id
|
||||
|
||||
print(args)
|
||||
# FIXME: / hardcoded - better portable solution available?
|
||||
if object_id[0] == '/':
|
||||
object_id = object_id[1:]
|
||||
|
||||
print(object_id)
|
||||
param_out_dir = os.path.join(global_dir, type,
|
||||
object_id, DOT_CDIST, "parameter")
|
||||
log.debug(args)
|
||||
|
||||
object_dir = os.path.join(global_dir, type,
|
||||
object_id, DOT_CDIST)
|
||||
param_out_dir = os.path.join(object_dir, "parameter")
|
||||
|
||||
try:
|
||||
os.makedirs(param_out_dir, exist_ok=True)
|
||||
except OSError as error:
|
||||
exit_error(param_out_dir + ": " + error.args[1])
|
||||
|
||||
# Record parameter
|
||||
params = vars(args)
|
||||
|
@ -654,16 +662,19 @@ def emulator():
|
|||
value = getattr(args, param)
|
||||
if value:
|
||||
file = os.path.join(param_out_dir, param)
|
||||
print(file + "<-" + param + " = " + value)
|
||||
param_fd = open(file)
|
||||
log.debug(file + "<-" + param + " = " + value)
|
||||
param_fd = open(file, "w")
|
||||
param_fd.writelines(value)
|
||||
param_fd.close()
|
||||
|
||||
|
||||
|
||||
# Record requirements
|
||||
if "__require" in os.environ:
|
||||
requirements = os.environ['__require']
|
||||
print(object_id + ":Writing requirements: " + requirements)
|
||||
require_fd = open(os.path.join(object_dir, "require"), "a")
|
||||
require_fd.writelines(requirements.split(" "))
|
||||
require_fd.close()
|
||||
|
||||
# Merge / mv object into tree
|
||||
|
||||
|
@ -672,6 +683,7 @@ def emulator():
|
|||
# write to .source?
|
||||
|
||||
# sys.exit(1)
|
||||
print("Finished " + type + "/" + object_id + repr(params))
|
||||
|
||||
|
||||
def commandline():
|
||||
|
|
|
@ -33,3 +33,5 @@
|
|||
- Allow manifest to be read from stdin
|
||||
- Create new video for cdist 2.0.0
|
||||
http://www.youtube.com/watch?v=PRMjzy48eTI
|
||||
|
||||
- Setup __debug, if -d is given, so other tools can reuse it
|
||||
|
|
Loading…
Reference in a new issue