From 7f74a98451674d1d735ab92295ca64ebd340bf65 Mon Sep 17 00:00:00 2001 From: Dagobert Michelsen Date: Wed, 27 May 2015 13:35:34 +0200 Subject: [PATCH] svr4pkg: assume command worked only on known-to-be-good returncodes --- packaging/os/svr4pkg.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/packaging/os/svr4pkg.py b/packaging/os/svr4pkg.py index 51cda437e7f..5d8bac17eaa 100644 --- a/packaging/os/svr4pkg.py +++ b/packaging/os/svr4pkg.py @@ -209,15 +209,25 @@ def main(): (rc, out, err) = package_uninstall(module, name, src, category) out = out[:75] - # Success, Warning, Interruption, Reboot all, Reboot this return codes + # Returncodes as per pkgadd(1m) + # 0 Successful completion + # 1 Fatal error. + # 2 Warning. + # 3 Interruption. + # 4 Administration. + # 5 Administration. Interaction is required. Do not use pkgadd -n. + # 10 Reboot after installation of all packages. + # 20 Reboot after installation of this package. + # 99 (observed) pkgadd: ERROR: could not process datastream from if rc in (0, 2, 3, 10, 20): result['changed'] = True # no install nor uninstall, or failed else: result['changed'] = False - # Fatal error, Administration, Administration Interaction return codes - if rc in (1, 4 , 5): + # Only return failed=False when the returncode is known to be good as there may be more + # undocumented failure return codes + if rc not in (0, 2, 10, 20): result['failed'] = True else: result['failed'] = False