summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2013-06-17 04:22:13 -0700
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2013-06-17 04:22:13 -0700
commitdbc0e1182590eee2711cf537f20ab262418837d9 (patch)
treed331ac28972774c2790b352fb6e8b193a5b4c7d5 /src/lib
parentef261545acbcc9ab0872383c5b66efaf53bdd329 (diff)
parentde0af523ce59bd1e4c53e10a873fcd961f8f2b30 (diff)
downloadbcfg2-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.py16
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))