diff options
author | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2013-06-17 04:22:13 -0700 |
---|---|---|
committer | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2013-06-17 04:22:13 -0700 |
commit | dbc0e1182590eee2711cf537f20ab262418837d9 (patch) | |
tree | d331ac28972774c2790b352fb6e8b193a5b4c7d5 /src/lib | |
parent | ef261545acbcc9ab0872383c5b66efaf53bdd329 (diff) | |
parent | de0af523ce59bd1e4c53e10a873fcd961f8f2b30 (diff) | |
download | bcfg2-dbc0e1182590eee2711cf537f20ab262418837d9.tar.gz bcfg2-dbc0e1182590eee2711cf537f20ab262418837d9.tar.bz2 bcfg2-dbc0e1182590eee2711cf537f20ab262418837d9.zip |
Merge pull request #97 from AlexanderS/action-add-shell-flag
Client/Tools/Action: add shell attribute
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/Bcfg2/Client/Tools/Action.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/lib/Bcfg2/Client/Tools/Action.py b/src/lib/Bcfg2/Client/Tools/Action.py index da4412b1d..0166e4c00 100644 --- a/src/lib/Bcfg2/Client/Tools/Action.py +++ b/src/lib/Bcfg2/Client/Tools/Action.py @@ -32,10 +32,17 @@ class Action(Bcfg2.Client.Tools.Tool): def RunAction(self, entry): """This method handles command execution and status return.""" + shell = False + shell_string = '' + if entry.get('shell', 'false') == 'true': + shell = True + shell_string = '(in shell) ' + if not self.setup['dryrun']: if self.setup['interactive']: - prompt = ('Run Action %s, %s: (y/N): ' % - (entry.get('name'), entry.get('command'))) + prompt = ('Run Action %s%s, %s: (y/N): ' % + (shell_string, entry.get('name'), + entry.get('command'))) # flush input buffer while len(select.select([sys.stdin.fileno()], [], [], 0.0)[0]) > 0: @@ -48,8 +55,9 @@ class Action(Bcfg2.Client.Tools.Tool): self.logger.debug("Action: Deferring execution of %s due " "to build mode" % entry.get('command')) return False - self.logger.debug("Running Action %s" % (entry.get('name'))) - rv = self.cmd.run(entry.get('command')) + self.logger.debug("Running Action %s %s" % + (shell_string, entry.get('name'))) + rv = self.cmd.run(entry.get('command'), shell=shell) self.logger.debug("Action: %s got return code %s" % (entry.get('command'), rv.retval)) entry.set('rc', str(rv.retval)) |