Skip to content

Commit ee498f8

Browse files
committed
make outputter behave more like salt
runner output should be identical now
1 parent c4790e7 commit ee498f8

2 files changed

Lines changed: 10 additions & 6 deletions

File tree

pepper/cli.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -600,7 +600,7 @@ def poll_for_returns(self, api, load):
600600
exit_code = exit_code if self.options.fail_if_minions_dont_respond else 0
601601
failed = list(set(ret_nodes) ^ set(nodes))
602602
if failed:
603-
yield exit_code, {'Failed': failed}
603+
yield exit_code, [{'Failed': failed}]
604604

605605
def login(self, api):
606606
login = api.token if self.options.userun else api.login
@@ -664,7 +664,7 @@ def run(self):
664664
load = self.parse_cmd(api)
665665

666666
for entry in load:
667-
if entry.get('client', '').startswith('local'):
667+
if not entry.get('client', '').startswith('wheel'):
668668
entry['full_return'] = True
669669

670670
if self.options.fail_if_minions_dont_respond:

pepper/script.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ def __call__(self):
5454
logger.debug('Use Salt outputters')
5555
result = json.loads(result)
5656

57+
# unwrap ret in some cases
5758
if 'return' in result:
5859
result = result['return']
5960

@@ -63,7 +64,6 @@ def __call__(self):
6364
for minionid, minionret in ret.items():
6465
# rest_tornado doesnt return full_return directly
6566
# it will always be from get_event, so the output differs slightly
66-
logger.error(minionret)
6767
if isinstance(minionret, dict) and 'return' in minionret:
6868
# version >= 2017.7
6969
salt.output.display_output(
@@ -86,9 +86,13 @@ def __call__(self):
8686
opts=self.opts
8787
)
8888
elif 'data' in ret:
89+
# unfold runners
90+
outputter = ret.get('outputter', 'nested')
91+
if isinstance(ret['data'], dict) and 'return' in ret['data']:
92+
ret = ret['data']['return']
8993
salt.output.display_output(
90-
ret['data'],
91-
self.cli.options.output or ret.get('outputter', 'nested'),
94+
ret,
95+
self.cli.options.output or outputter,
9296
opts=self.opts
9397
)
9498
else:
@@ -100,7 +104,7 @@ def __call__(self):
100104
else:
101105
salt.output.display_output(
102106
{self.cli.options.client: ret},
103-
'nested',
107+
self.cli.options.output or 'nested',
104108
opts=self.opts,
105109
)
106110
else:

0 commit comments

Comments
 (0)