tweak privatebridge to remove exception message when ovs is not installed - prints...
[nodemanager.git] / tools.py
index dbfa55f..02e2ab9 100644 (file)
--- a/tools.py
+++ b/tools.py
@@ -9,6 +9,7 @@ import threading
 import subprocess
 import shutil
 import sys
+import signal
 
 import logger
 
@@ -309,6 +310,15 @@ def get_node_virt ():
         f.write(virt)
     return virt
 
+### this return True or False to indicate that systemctl is present on that box
+# cache result in memory as _has_systemctl
+_has_systemctl=None
+def has_systemctl ():
+    global _has_systemctl
+    if _has_systemctl is None:
+        _has_systemctl = (subprocess.call([ 'systemctl', '--help' ]) == 0)
+    return _has_systemctl
+
 # how to run a command in a slice
 # now this is a painful matter
 # the problem is with capsh that forces a bash command to be injected in its exec'ed command
@@ -328,3 +338,12 @@ def command_in_slice (slicename, argv):
     logger.log("command_in_slice: WARNING: could not find a valid virt")
     return argv
 
+####################
+def init_signals ():
+    def handler (signum, frame):
+        logger.log("Received signal %d - exiting"%signum)
+        os._exit(1)
+    signal.signal(signal.SIGHUP,handler)
+    signal.signal(signal.SIGQUIT,handler)
+    signal.signal(signal.SIGINT,handler)
+    signal.signal(signal.SIGTERM,handler)