diff options
author | Kevin Fenzi <kevin@scrye.com> | 2014-05-20 20:09:47 +0000 |
---|---|---|
committer | Kevin Fenzi <kevin@scrye.com> | 2014-05-20 20:09:47 +0000 |
commit | c441747d541d97b061e8daec207a4011b73aa4fb (patch) | |
tree | 5000b30e07cb27b75ef24e1716e8f47c901651b4 /roles/base/files/common-scripts/needs-reboot.py | |
parent | d6bd38f58c64f0d41f7b0e1d75ab0d5563d3e97d (diff) | |
download | ansible-c441747d541d97b061e8daec207a4011b73aa4fb.tar.gz ansible-c441747d541d97b061e8daec207a4011b73aa4fb.tar.xz ansible-c441747d541d97b061e8daec207a4011b73aa4fb.zip |
Add needs-reboot.py as a common script.
Diffstat (limited to 'roles/base/files/common-scripts/needs-reboot.py')
-rwxr-xr-x | roles/base/files/common-scripts/needs-reboot.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/roles/base/files/common-scripts/needs-reboot.py b/roles/base/files/common-scripts/needs-reboot.py new file mode 100755 index 000000000..a39c9ea78 --- /dev/null +++ b/roles/base/files/common-scripts/needs-reboot.py @@ -0,0 +1,36 @@ +#!/usr/bin/python -tt + +import yum +import sys +import time +import fnmatch + +result = 0 +now = time.time() +uptime = float(open('/proc/uptime', 'r').read().split()[0]) + +rebootcausers = ('glibc', 'kernel*') + +my = yum.YumBase() +my.preconf.init_plugins=False +my.preconf.debuglevel=1 +my.preconf.errorlevel=1 +pkgs = my.rpmdb.returnPackages(patterns=rebootcausers) + +does='no' +for pkg in pkgs: + if (now - pkg.installtime) < uptime: + does='yes' + break + +if len(sys.argv) > 1 and sys.argv[1] == 'after-updates': + for (n, a, e, v, r) in my.up.getUpdatesList(): + for i in rebootcausers: + if fnmatch.fnmatch(n, i): + does='yes' + + +print does +sys.exit(0) + + |