check in openstack healthcheck tool
authorScott Baker <smbaker@gmail.com>
Sun, 8 Sep 2013 00:38:22 +0000 (17:38 -0700)
committerScott Baker <smbaker@gmail.com>
Sun, 8 Sep 2013 00:38:22 +0000 (17:38 -0700)
planetstack/tools/openstack-healthcheck.py [new file with mode: 0755]

diff --git a/planetstack/tools/openstack-healthcheck.py b/planetstack/tools/openstack-healthcheck.py
new file mode 100755 (executable)
index 0000000..7163c7c
--- /dev/null
@@ -0,0 +1,50 @@
+#! /usr/bin/python
+import os
+import sys
+import subprocess
+import time
+
+def get_systemd_status(service):
+    p=subprocess.Popen(["/bin/systemctl", "is-active", service], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    (out, err) = p.communicate()
+    out = out.strip()
+    return out
+
+libvirt_enabled = os.system("systemctl -q is-enabled libvirtd.service")==0
+nova_compute_enabled = os.system("systemctl -q is-enabled openstack-nova-compute.service")==0
+openvswitch_agent_enabled = os.system("systemctl -q is-enabled quantum-openvswitch-agent.service")==0
+
+print "enabled:"
+print "  libvirtd=", libvirt_enabled
+print "  openstack-nova-compute=", nova_compute_enabled
+print "  quantum-openvswitch-agent=", openvswitch_agent_enabled
+
+if (not libvirt_enabled) or (not nova_compute_enabled) or (not openvswitch_agent_enabled):
+    print "services are not enabled. exiting"
+    sys.exit(0)
+
+libvirt_status = get_systemd_status("libvirtd.service")
+nova_compute_status = get_systemd_status("openstack-nova-compute.service")
+openvswitch_agent_status = get_systemd_status("quantum-openvswitch-agent.service")
+
+print "status:"
+print "  libvirtd=", libvirt_status
+print "  openstack-nova-compute=", nova_compute_status
+print "  quantum-openvswitch-agent=", openvswitch_agent_status
+
+if (libvirt_status=="failed") or (nova_compute_status=="failed") or (openvswitch_agent_status=="failed"):
+    print "services have failed. doing the big restart"
+    os.system("systemctl stop openstack-nova-compute.service")
+    os.system("systemctl stop quantum-openvswitch-agent.service")
+    os.system("systemctl stop libvirtd.service")
+    time.sleep(5)
+    os.system("systemctl start libvirtd.service")
+    time.sleep(5)
+    os.system("systemctl start quantum-openvswitch-agent.service")
+    time.sleep(5)
+    os.system("systemctl start openstack-nova-compute.service")
+    print "done"
+
+
+
+