Array of values for (exec) return?

1,234 views
Skip to first unread message

John Ingersoll

unread,
Sep 17, 2009, 9:26:06 AM9/17/09
to puppet...@googlegroups.com
Hi,

I have an exec {} that runs a command line script, for which 0 and 1 are both good return codes. (Specifically, spamassassin update; 1 means no new downloads). I tried

    returns => [0,1],

but it still reports an error on RC = 1. Are multiple values not appropriate here?

My workaround is to exec a wrapper script that traps '1' and returns 0.

TIA

--
John Ingersoll, Jr.
Usage: fortune -P [] -a [xsz] [Q: [file]] [rKe9] -v6[+] dataspec ... inputdir

Nigel Kersten

unread,
Sep 17, 2009, 10:39:13 AM9/17/09
to puppet...@googlegroups.com
On Thu, Sep 17, 2009 at 6:26 AM, John Ingersoll <jh.ing...@gmail.com> wrote:
Hi,

I have an exec {} that runs a command line script, for which 0 and 1 are both good return codes. (Specifically, spamassassin update; 1 means no new downloads). I tried

    returns => [0,1],

but it still reports an error on RC = 1. Are multiple values not appropriate here?

My workaround is to exec a wrapper script that traps '1' and returns 0.


Is this on 0.25.0?

0.24.8 doesn't support multiple return codes, although it would be a trivial patch to backport.

Another workaround is to or with true that we've done sometimes

command => "/usr/bin/foo || true",

but that's more of a sledgehammer than specifying acceptable return codes.
 

TIA

--
John Ingersoll, Jr.
Usage: fortune -P [] -a [xsz] [Q: [file]] [rKe9] -v6[+] dataspec ... inputdir





--
Nigel Kersten
nig...@google.com
System Administrator
Google Inc.

John Ingersoll

unread,
Sep 17, 2009, 12:24:07 PM9/17/09
to puppet...@googlegroups.com
On Thu, Sep 17, 2009 at 10:39 AM, Nigel Kersten <nig...@google.com> wrote:


On Thu, Sep 17, 2009 at 6:26 AM, John Ingersoll <jh.ing...@gmail.com> wrote:
Hi,

I have an exec {} that runs a command line script, for which 0 and 1 are both good return codes. (Specifically, spamassassin update; 1 means no new downloads). I tried

    returns => [0,1],

but it still reports an error on RC = 1. Are multiple values not appropriate here?

My workaround is to exec a wrapper script that traps '1' and returns 0.


Is this on 0.25.0?

no, we're still on 0.24.8

0.24.8 doesn't support multiple return codes, although it would be a trivial patch to backport.
 
Thanks, guess I'm ok for now, though.


Another workaround is to or with true that we've done sometimes

command => "/usr/bin/foo || true",

but that's more of a sledgehammer than specifying acceptable return codes.
 
Yes, actually I _want_ notification for RC > 1

Thank you
--
John Ingersoll, Jr.
Linux Sysadmin
University of Georgia, Athens

David Schmitt

unread,
Sep 18, 2009, 4:46:49 AM9/18/09
to puppet...@googlegroups.com
John Ingersoll wrote:
> Hi,
>
> I have an exec {} that runs a command line script, for which 0 and 1 are
> both good return codes. (Specifically, spamassassin update; 1 means no
> new downloads). I tried
>
> returns => [0,1],

I'm using this for sa-update, in an exec:

> /usr/bin/sa-update ; case $? in 0) /etc/init.d/spamassassin restart;; 1) : ;; *) echo Unknown Error; exit 1;; esac


Regards, DavidS

John Ingersoll

unread,
Sep 18, 2009, 4:57:50 PM9/18/09
to puppet...@googlegroups.com
Very good; I had overlooked the simple bash syntax that can handle that . And I had forgotten about doing the restart when updates happen. Fortunately it's a test box with not much happening yet.

Thanks,

--
John Ingersoll, Jr.

Reply all
Reply to author
Forward
0 new messages