forked from ungleich-public/cdist
implementing the $__object and $__object_id on the local and remote
execution call, to allow read access to parameter files
This commit is contained in:
parent
10a71eb35a
commit
5ef27191fc
1 changed files with 16 additions and 4 deletions
|
@ -123,15 +123,27 @@ class Code(object):
|
||||||
self.remote.mkdir(destination)
|
self.remote.mkdir(destination)
|
||||||
self.remote.transfer(source, destination)
|
self.remote.transfer(source, destination)
|
||||||
|
|
||||||
def _run_code(self, cdist_object, which):
|
def _run_code(self, cdist_object, which, env=None):
|
||||||
which_exec = getattr(self, which)
|
which_exec = getattr(self, which)
|
||||||
script = os.path.join(which_exec.object_path, getattr(cdist_object, 'code_%s_path' % which))
|
script = os.path.join(which_exec.object_path, getattr(cdist_object, 'code_%s_path' % which))
|
||||||
return which_exec.run_script(script)
|
return which_exec.run_script(script, env=env)
|
||||||
|
|
||||||
def run_code_local(self, cdist_object):
|
def run_code_local(self, cdist_object):
|
||||||
"""Run the code-local script for the given cdist object."""
|
"""Run the code-local script for the given cdist object."""
|
||||||
return self._run_code(cdist_object, 'local')
|
# Put some env vars, to allow read only access to the parameters over $__object
|
||||||
|
env = os.environ.copy()
|
||||||
|
env.update(self.env)
|
||||||
|
env.update({
|
||||||
|
'__object': cdist_object.absolute_path,
|
||||||
|
'__object_id': cdist_object.object_id,
|
||||||
|
})
|
||||||
|
return self._run_code(cdist_object, 'local', env=env)
|
||||||
|
|
||||||
def run_code_remote(self, cdist_object):
|
def run_code_remote(self, cdist_object):
|
||||||
"""Run the code-remote script for the given cdist object on the remote side."""
|
"""Run the code-remote script for the given cdist object on the remote side."""
|
||||||
return self._run_code(cdist_object, 'remote')
|
# Put some env vars, to allow read only access to the parameters over $__object which is already on the remote side
|
||||||
|
env = {
|
||||||
|
'__object': os.path.join(self.remote.object_path, cdist_object.path),
|
||||||
|
'__object_id': cdist_object.object_id,
|
||||||
|
}
|
||||||
|
return self._run_code(cdist_object, 'remote', env=env)
|
||||||
|
|
Loading…
Reference in a new issue