forked from ungleich-public/cdist
integrate messaging into gencode, manifest
Signed-off-by: Nico Schottelius <nico@bento.schottelius.org>
This commit is contained in:
parent
edec2abb1d
commit
2f842d56eb
3 changed files with 19 additions and 11 deletions
|
@ -104,7 +104,8 @@ class Code(object):
|
|||
'__object_id': cdist_object.object_id,
|
||||
'__object_name': cdist_object.name,
|
||||
})
|
||||
return self.local.run_script(script, env=env, return_output=True)
|
||||
message_prefix=cdist_object.name
|
||||
return self.local.run_script(script, env=env, return_output=True, message_prefix=message_prefix)
|
||||
|
||||
def run_gencode_local(self, cdist_object):
|
||||
"""Run the gencode-local script for the given cdist object."""
|
||||
|
|
|
@ -122,7 +122,8 @@ class Manifest(object):
|
|||
if not os.path.isfile(initial_manifest):
|
||||
raise NoInitialManifestError(initial_manifest, user_supplied)
|
||||
|
||||
self.local.run_script(initial_manifest, env=self.env_initial_manifest(initial_manifest))
|
||||
message_prefix="initialmanifest"
|
||||
self.local.run_script(initial_manifest, env=self.env_initial_manifest(initial_manifest), message_prefix=message_prefix)
|
||||
|
||||
def env_type_manifest(self, cdist_object):
|
||||
type_manifest = os.path.join(self.local.type_path, cdist_object.cdist_type.manifest_path)
|
||||
|
@ -141,5 +142,6 @@ class Manifest(object):
|
|||
|
||||
def run_type_manifest(self, cdist_object):
|
||||
type_manifest = os.path.join(self.local.type_path, cdist_object.cdist_type.manifest_path)
|
||||
message_prefix = cdist_object.name
|
||||
if os.path.isfile(type_manifest):
|
||||
self.local.run_script(type_manifest, env=self.env_type_manifest(cdist_object))
|
||||
|
|
|
@ -30,6 +30,7 @@ import logging
|
|||
import tempfile
|
||||
|
||||
import cdist
|
||||
import cdist.message
|
||||
from cdist import core
|
||||
|
||||
class Local(object):
|
||||
|
@ -44,11 +45,9 @@ class Local(object):
|
|||
exec_path=sys.argv[0],
|
||||
initial_manifest=None,
|
||||
base_path=None,
|
||||
add_conf_dirs=None,
|
||||
message_prefix=None):
|
||||
add_conf_dirs=None):
|
||||
|
||||
self.target_host = target_host
|
||||
self.message_prefix=message_prefix
|
||||
|
||||
# FIXME: stopped: create base that does not require moving later
|
||||
if base_path:
|
||||
|
@ -131,6 +130,7 @@ class Local(object):
|
|||
def create_files_dirs(self):
|
||||
self._init_directories()
|
||||
self._create_conf_path_and_link_conf_dirs()
|
||||
self._create_messages()
|
||||
self._link_types_for_emulator()
|
||||
|
||||
|
||||
|
@ -153,7 +153,7 @@ class Local(object):
|
|||
self.log.debug("Local mkdir: %s", path)
|
||||
os.makedirs(path, exist_ok=True)
|
||||
|
||||
def run(self, command, env=None, return_output=False):
|
||||
def run(self, command, env=None, return_output=False, message_prefix=None):
|
||||
"""Run the given command with the given environment.
|
||||
Return the output as a string.
|
||||
|
||||
|
@ -166,8 +166,8 @@ class Local(object):
|
|||
# Export __target_host for use in __remote_{copy,exec} scripts
|
||||
env['__target_host'] = self.target_host
|
||||
|
||||
if self.message_prefix:
|
||||
message = cdist.Message(self.message_prefix, self.messages_path)
|
||||
if message_prefix:
|
||||
message = cdist.message.Message(message_prefix, self.messages_path)
|
||||
|
||||
try:
|
||||
if return_output:
|
||||
|
@ -179,10 +179,10 @@ class Local(object):
|
|||
except OSError as error:
|
||||
raise cdist.Error(" ".join(*args) + ": " + error.args[1])
|
||||
finally:
|
||||
if self.message_prefix:
|
||||
if message_prefix:
|
||||
message.merge_messages()
|
||||
|
||||
def run_script(self, script, env=None, return_output=False):
|
||||
def run_script(self, script, env=None, return_output=False, message_prefix=None):
|
||||
"""Run the given script with the given environment.
|
||||
Return the output as a string.
|
||||
|
||||
|
@ -190,7 +190,7 @@ class Local(object):
|
|||
command = ["/bin/sh", "-e"]
|
||||
command.append(script)
|
||||
|
||||
return self.run(command, env, return_output)
|
||||
return self.run(command=command, env=env, return_output=return_output, message_prefix=message_prefix)
|
||||
|
||||
def save_cache(self):
|
||||
destination = os.path.join(self.cache_path, self.target_host)
|
||||
|
@ -199,6 +199,11 @@ class Local(object):
|
|||
shutil.rmtree(destination)
|
||||
shutil.move(self.base_path, destination)
|
||||
|
||||
def _create_messages(self):
|
||||
"""Create empty messages"""
|
||||
with open(self.messages_path, "w"):
|
||||
pass
|
||||
|
||||
def _create_conf_path_and_link_conf_dirs(self):
|
||||
# Link destination directories
|
||||
for sub_dir in [ "explorer", "manifest", "type" ]:
|
||||
|
|
Loading…
Reference in a new issue