update object_run() for new interface

Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
This commit is contained in:
Nico Schottelius 2011-10-07 13:14:47 +02:00
parent e89ca8cfc2
commit af5a99dc9f
1 changed files with 17 additions and 15 deletions

View File

@ -108,11 +108,11 @@ class ConfigInstall:
"""Run gencode or code for an object"""
log.debug("Running %s from %s", mode, cdist_object)
# FIXME: replace with new object interface
file=os.path.join(self.path.object_dir(cdist_object), "require")
requirements = cdist.path.file_to_list(file)
type = self.path.get_type_from_object(cdist_object)
requirements = cdist_object.requirements
type = cdist_object.type
# FIXME: ensure objects are not run multiple times!
# FIXME: probably mark objects!
for requirement in requirements:
log.debug("Object %s requires %s", cdist_object, requirement)
self.object_run(requirement, mode=mode)
@ -122,22 +122,23 @@ class ConfigInstall:
#
env = os.environ.copy()
env['__target_host'] = self.target_host
env['__global'] = self.path.out_dir
env["__object"] = self.path.object_dir(cdist_object)
env["__object_id"] = self.path.get_object_id_from_object(cdist_object)
env["__object_fq"] = cdist_object
env["__type"] = self.path.type_dir(type)
env['__global'] = self.context.out_dir
env["__object"] = cdist_object.path
env["__object_id"] = cdist_object.object_id
env["__object_fq"] = cdist_object.name
env["__type"] = type.name
if mode == "gencode":
paths = [
self.path.type_dir(type, "gencode-local"),
self.path.type_dir(type, "gencode-remote")
type.gencode
type.gencode_remote
]
for bin in paths:
for cmd in ["local", "remote"]:
bin = getattr(type, "gencode_" + cmd)
if os.path.isfile(bin):
# omit "gen" from gencode and use it for output base
outfile=os.path.join(self.path.object_dir(cdist_object),
os.path.basename(bin)[3:])
outfile = getattr(cdist_object, "code_" + cmd)
outfile_fd = open(outfile, "w")
@ -157,6 +158,7 @@ class ConfigInstall:
# Add header and make executable - identically to 0o700
os.chmod(outfile, stat.S_IXUSR | stat.S_IRUSR | stat.S_IWUSR)
# FIXME: use new interface
# Mark object as changed
open(os.path.join(self.path.object_dir(cdist_object), "changed"), "w").close()