forked from ungleich-public/cdist
changes for relative
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
This commit is contained in:
parent
8af7c075ec
commit
4f76cfc84e
2 changed files with 26 additions and 25 deletions
|
@ -70,45 +70,45 @@ class ConfigInstall:
|
||||||
type.manifest_path)
|
type.manifest_path)
|
||||||
|
|
||||||
log.debug("%s: Running %s", cdist_object.name, manifest)
|
log.debug("%s: Running %s", cdist_object.name, manifest)
|
||||||
if os.path.exists(manifest):
|
if os.path.exists(manifest_path):
|
||||||
env = { "__object" : os.path.join(self.context.cdist_object.path,
|
env = { "__object" : os.path.join(self.context.object_base_path,
|
||||||
|
cdist_object.path)
|
||||||
"__object_id": cdist_object.object_id,
|
"__object_id": cdist_object.object_id,
|
||||||
"__object_fq": cdist_object.name,
|
"__object_fq": cdist_object.name,
|
||||||
"__type": type.path,
|
"__type": os.path.join(self.context.type_base_path,
|
||||||
|
type.path)
|
||||||
}
|
}
|
||||||
self.run_manifest(manifest, extra_env=env)
|
self.run_manifest(manifest_path, extra_env=env)
|
||||||
|
|
||||||
def run_manifest(self, manifest, extra_env=None):
|
def run_manifest(self, manifest_path, extra_env=None):
|
||||||
"""Run a manifest"""
|
"""Run a manifest"""
|
||||||
log.debug("Running manifest %s, env=%s", manifest, extra_env)
|
log.debug("Running manifest %s, env=%s", manifest_path, extra_env)
|
||||||
env = os.environ.copy()
|
env = os.environ.copy()
|
||||||
env['PATH'] = self.context.bin_path + ":" + env['PATH']
|
env['PATH'] = self.context.bin_path + ":" + env['PATH']
|
||||||
|
|
||||||
# Information required in every manifest
|
# Information required in every manifest
|
||||||
env['__target_host'] = self.target_host
|
env['__target_host'] = self.target_host
|
||||||
|
|
||||||
# FIXME: __global == __cdist_out_path - duplication
|
|
||||||
env['__global'] = self.context.out_path
|
env['__global'] = self.context.out_path
|
||||||
|
|
||||||
# Submit debug flag to manifest, can be used by emulator and types
|
# Submit debug flag to manifest, can be used by emulator and types
|
||||||
if self.debug:
|
if self.debug:
|
||||||
env['__debug'] = "yes"
|
env['__debug'] = "yes"
|
||||||
|
|
||||||
# Required for recording source
|
# Required for recording source in emulator
|
||||||
env['__cdist_manifest'] = manifest
|
env['__cdist_manifest'] = manifest_path
|
||||||
|
|
||||||
# Required to find types
|
# Required to find types in emulator
|
||||||
env['__cdist_type_base_path'] = type.path
|
env['__cdist_type_base_path'] = type.path
|
||||||
|
|
||||||
# Other environment stuff
|
# Other environment stuff
|
||||||
if extra_env:
|
if extra_env:
|
||||||
env.update(extra_env)
|
env.update(extra_env)
|
||||||
|
|
||||||
cdist.exec.shell_run_or_debug_fail(manifest, [manifest], env=env)
|
cdist.exec.shell_run_or_debug_fail(manifest_path, [manifest_path], env=env)
|
||||||
|
|
||||||
def object_run(self, cdist_object):
|
def object_run(self, cdist_object):
|
||||||
"""Run gencode or code for an object"""
|
"""Run gencode or code for an object"""
|
||||||
log.debug("Running %s from %s", mode, cdist_object)
|
log.debug("Running object %s", cdist_object)
|
||||||
|
|
||||||
# Catch requirements, which re-call us
|
# Catch requirements, which re-call us
|
||||||
if cdist_object.ran:
|
if cdist_object.ran:
|
||||||
|
@ -118,7 +118,7 @@ class ConfigInstall:
|
||||||
|
|
||||||
for requirement in cdist_object.requirements:
|
for requirement in cdist_object.requirements:
|
||||||
log.debug("Object %s requires %s", cdist_object, requirement)
|
log.debug("Object %s requires %s", cdist_object, requirement)
|
||||||
self.object_run(requirement, mode=mode)
|
self.object_run(requirement)
|
||||||
|
|
||||||
#
|
#
|
||||||
# Setup env Variable:
|
# Setup env Variable:
|
||||||
|
@ -126,17 +126,19 @@ class ConfigInstall:
|
||||||
env = os.environ.copy()
|
env = os.environ.copy()
|
||||||
env['__target_host'] = self.target_host
|
env['__target_host'] = self.target_host
|
||||||
env['__global'] = self.context.out_path
|
env['__global'] = self.context.out_path
|
||||||
env["__object"] = cdist_object.path
|
env["__object"] = os.path.join(self.context.object_base_path, cdist_object.path)
|
||||||
env["__object_id"] = cdist_object.object_id
|
env["__object_id"] = cdist_object.object_id
|
||||||
env["__object_fq"] = cdist_object.name
|
env["__object_fq"] = cdist_object.name
|
||||||
env["__type"] = type.name
|
env["__type"] = type.name
|
||||||
|
|
||||||
# gencode
|
# gencode
|
||||||
for cmd in ["local", "remote"]:
|
for cmd in ["local", "remote"]:
|
||||||
bin = getattr(type, "gencode_" + cmd)
|
bin = os.path.join(self.context.type_base_path,
|
||||||
|
getattr(type, "gencode_" + cmd))
|
||||||
|
|
||||||
if os.path.isfile(bin):
|
if os.path.isfile(bin):
|
||||||
outfile = getattr(cdist_object, "code_" + cmd)
|
outfile = os.path.join(self.context.object_base_path,
|
||||||
|
getattr(cdist_object, "code_" + cmd))
|
||||||
|
|
||||||
outfile_fd = open(outfile, "w")
|
outfile_fd = open(outfile, "w")
|
||||||
|
|
||||||
|
@ -158,20 +160,19 @@ class ConfigInstall:
|
||||||
cdist_object.changed=True
|
cdist_object.changed=True
|
||||||
|
|
||||||
# code local
|
# code local
|
||||||
code_local = cdist_object.code_local
|
code_local = cdist_object.code_local_path
|
||||||
if os.path.isfile(code_local):
|
if os.path.isfile(code_local):
|
||||||
cdist.exec.run_or_fail([code_local])
|
cdist.exec.run_or_fail([code_local])
|
||||||
|
|
||||||
# code remote
|
# code remote
|
||||||
local_remote_code = cdist_object.code_remote
|
local_remote_code = cdist_object.code_remote_path
|
||||||
remote_remote_code = cdist_object.remote_code_remote
|
remote_remote_code = cdist_object.remote_code_remote_path
|
||||||
if os.path.isfile(local_remote_code):
|
if os.path.isfile(local_remote_code):
|
||||||
self.context.transfer_file(local_remote_code, remote_remote_code)
|
self.context.transfer_file(local_remote_code, remote_remote_code)
|
||||||
cdist.exec.run_or_fail([remote_remote_code], remote_prefix=True)
|
cdist.exec.run_or_fail([remote_remote_code], remote_prefix=True)
|
||||||
|
|
||||||
cdist_object.ran = True
|
cdist_object.ran = True
|
||||||
|
|
||||||
### Cleaned / check functions: Round 1 :-) #################################
|
|
||||||
def run_type_explorer(self, cdist_object):
|
def run_type_explorer(self, cdist_object):
|
||||||
"""Run type specific explorers for objects"""
|
"""Run type specific explorers for objects"""
|
||||||
|
|
||||||
|
|
|
@ -106,10 +106,10 @@ class Context:
|
||||||
shutil.rmtree(self.cache_path)
|
shutil.rmtree(self.cache_path)
|
||||||
shutil.move(self.base_path, self.cache_path)
|
shutil.move(self.base_path, self.cache_path)
|
||||||
|
|
||||||
def __init_env(self):
|
#def __init_env(self):
|
||||||
"""Setup environment"""
|
# """Setup environment"""
|
||||||
os.environ['__cdist_out_path'] = self.out_path
|
# os.environ['__cdist_out_path'] = self.out_path
|
||||||
os.environ['__cdist_base_path'] = self.base_path
|
# os.environ['__cdist_base_path'] = self.base_path
|
||||||
|
|
||||||
def __init_out_paths(self):
|
def __init_out_paths(self):
|
||||||
"""Initialise output directory structure"""
|
"""Initialise output directory structure"""
|
||||||
|
|
Loading…
Reference in a new issue