From 69622b0fa5f0d29eaf6d4357a0e84f8a6f6b101b Mon Sep 17 00:00:00 2001 From: Ander Punnar Date: Thu, 16 May 2019 21:58:47 +0200 Subject: [PATCH] set __cdist_dry_run env var if dry-run --- cdist/config.py | 9 ++++++--- cdist/core/code.py | 5 ++++- cdist/core/explorer.py | 6 +++++- cdist/core/manifest.py | 5 ++++- docs/src/cdist-reference.rst.sh | 4 ++++ docs/src/cdist-type.rst | 9 +++++++++ 6 files changed, 32 insertions(+), 6 deletions(-) diff --git a/cdist/config.py b/cdist/config.py index bc05a28c..30117382 100644 --- a/cdist/config.py +++ b/cdist/config.py @@ -104,9 +104,12 @@ class Config(object): self.remove_remote_files_dirs = remove_remote_files_dirs self.explorer = core.Explorer(self.local.target_host, self.local, - self.remote, jobs=self.jobs) - self.manifest = core.Manifest(self.local.target_host, self.local) - self.code = core.Code(self.local.target_host, self.local, self.remote) + self.remote, jobs=self.jobs, + dry_run=self.dry_run) + self.manifest = core.Manifest(self.local.target_host, self.local, + dry_run=self.dry_run) + self.code = core.Code(self.local.target_host, self.local, self.remote, + dry_run=self.dry_run) def _init_files_dirs(self): """Prepare files and directories for the run""" diff --git a/cdist/core/code.py b/cdist/core/code.py index 670029ed..1550880a 100644 --- a/cdist/core/code.py +++ b/cdist/core/code.py @@ -97,7 +97,7 @@ class Code(object): """ # target_host is tuple (target_host, target_hostname, target_fqdn) - def __init__(self, target_host, local, remote): + def __init__(self, target_host, local, remote, dry_run=False): self.target_host = target_host self.local = local self.remote = remote @@ -113,6 +113,9 @@ class Code(object): local.log), } + if dry_run: + self.env['__cdist_dry_run'] = '1' + def _run_gencode(self, cdist_object, which): cdist_type = cdist_object.cdist_type script = os.path.join(self.local.type_path, diff --git a/cdist/core/explorer.py b/cdist/core/explorer.py index acceacac..353d7681 100644 --- a/cdist/core/explorer.py +++ b/cdist/core/explorer.py @@ -67,7 +67,7 @@ class Explorer(object): """Executes cdist explorers. """ - def __init__(self, target_host, local, remote, jobs=None): + def __init__(self, target_host, local, remote, jobs=None, dry_run=False): self.target_host = target_host self._open_logger() @@ -84,6 +84,10 @@ class Explorer(object): '__cdist_log_level_name': util.log_level_name_env_var_val( self.log), } + + if dry_run: + self.env['__cdist_dry_run'] = '1' + self._type_explorers_transferred = [] self.jobs = jobs diff --git a/cdist/core/manifest.py b/cdist/core/manifest.py index 938ad8b8..07af0ef8 100644 --- a/cdist/core/manifest.py +++ b/cdist/core/manifest.py @@ -96,7 +96,7 @@ class Manifest(object): """Executes cdist manifests. """ - def __init__(self, target_host, local): + def __init__(self, target_host, local, dry_run=False): self.target_host = target_host self.local = local @@ -117,6 +117,9 @@ class Manifest(object): self.log), } + if dry_run: + self.env['__cdist_dry_run'] = '1' + def _open_logger(self): self.log = logging.getLogger(self.target_host[0]) diff --git a/docs/src/cdist-reference.rst.sh b/docs/src/cdist-reference.rst.sh index 2c9c7b40..f4a37816 100755 --- a/docs/src/cdist-reference.rst.sh +++ b/docs/src/cdist-reference.rst.sh @@ -219,6 +219,10 @@ __cdist_log_level, __cdist_log_level_name | TRACE | 5 | +----------------+-----------------+ + Available for: initial manifest, explorer, type manifest, type explorer, + type gencode. +__cdist_dry_run + Is set only when doing dry run (``-n`` flag). Available for: initial manifest, explorer, type manifest, type explorer, type gencode. __explorer diff --git a/docs/src/cdist-type.rst b/docs/src/cdist-type.rst index 7c0dab8d..7e5e39ef 100644 --- a/docs/src/cdist-type.rst +++ b/docs/src/cdist-type.rst @@ -371,6 +371,15 @@ It is available for initial manifest, explorer, type manifest, type explorer, type gencode. +Detecting dry run +----------------- + +If ``$__cdist_dry_run`` environment variable is set, then it's dry run. + +It is available for initial manifest, explorer, type manifest, +type explorer, type gencode. + + Hints for typewriters ---------------------- It must be assumed that the target is pretty dumb and thus does not have high