summaryrefslogtreecommitdiffstats
path: root/roles/base/files/common-scripts/needs-reboot.py
diff options
context:
space:
mode:
authorKevin Fenzi <kevin@scrye.com>2014-05-20 20:09:47 +0000
committerKevin Fenzi <kevin@scrye.com>2014-05-20 20:09:47 +0000
commitc441747d541d97b061e8daec207a4011b73aa4fb (patch)
tree5000b30e07cb27b75ef24e1716e8f47c901651b4 /roles/base/files/common-scripts/needs-reboot.py
parentd6bd38f58c64f0d41f7b0e1d75ab0d5563d3e97d (diff)
downloadansible-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-xroles/base/files/common-scripts/needs-reboot.py36
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)
+
+