[X2Go-Commits] [x2gobroker] 02/17: x2gobroker/agent.py: Move delay_execution() function over to x2gobroker/utils.py.

git-admin at x2go.org git-admin at x2go.org
Fri Dec 14 09:56:10 CET 2018


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository x2gobroker.

commit 7d6c36b9ead1625c347124a1cd7ccd6203e15c29
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Fri Sep 14 12:28:04 2018 +0200

    x2gobroker/agent.py: Move delay_execution() function over to x2gobroker/utils.py.
---
 x2gobroker/agent.py | 27 +--------------------------
 x2gobroker/utils.py | 38 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 39 insertions(+), 26 deletions(-)

diff --git a/x2gobroker/agent.py b/x2gobroker/agent.py
index 3563da2..935c330 100644
--- a/x2gobroker/agent.py
+++ b/x2gobroker/agent.py
@@ -22,7 +22,6 @@ import os.path
 import subprocess
 import paramiko
 import io
-import time
 import socket
 import logging
 
@@ -37,34 +36,10 @@ import x2gobroker.defaults
 import x2gobroker.x2gobroker_exceptions
 import x2gobroker.utils
 from x2gobroker.loggers import logger_broker, logger_error
+from x2gobroker.utils import delayed_execution
 
 tasks = {}
 
-
-def delayed_execution(agent_func, delay=0, **kwargs):
-
-    forkpid = os.fork()
-    if forkpid == 0:
-
-        # close stdin, stdout and stderr in the forked process...
-        for nm in os.listdir("/proc/self/fd"):
-            if nm.startswith('.'):
-                continue
-            fd = int(nm)
-            if fd in (0,1,2):
-                os.close(fd)
-
-        # wait for the given delay period
-        i = 0
-        while i < delay:
-            time.sleep(1)
-            i += 1
-
-        # execute the function requested
-        agent_func(**kwargs)
-        os._exit(0)
-
-
 def has_remote_broker_agent_setup():
     """\
     Peform some integrity checks that may indicate that a remote
diff --git a/x2gobroker/utils.py b/x2gobroker/utils.py
index 8f703db..3e16985 100644
--- a/x2gobroker/utils.py
+++ b/x2gobroker/utils.py
@@ -35,6 +35,7 @@ import distutils.version
 import pwd, grp
 import socket
 import binascii
+import time
 
 def _checkConfigFileDefaults(data_structure):
     """\
@@ -410,3 +411,40 @@ def get_key_fingerprint_with_colons(key):
         if idx % 2 == 0:
             _colon_fingerprint += ':'
     return _colon_fingerprint.rstrip(':')
+
+def delayed_execution(agent_func, delay, *args, **kwargs):
+    """\
+    Delay execution of a function.
+
+    :param func: function to be executed.
+    :type func: ``func``
+    :param delay: delay of the function start in seconds
+    :type delay: ``int``
+    :param args: arg parameters to be handed over to the
+        to-be-delayed function
+    :type args: ``list``
+    :param kwargs: kwarg parameters to be handed over to the
+        to-be-delayed function
+    :type kwargs: ``dict``
+
+    """
+    forkpid = os.fork()
+    if forkpid == 0:
+
+        # close stdin, stdout and stderr in the forked process...
+        for nm in os.listdir("/proc/self/fd"):
+            if nm.startswith('.'):
+                continue
+            fd = int(nm)
+            if fd in (0,1,2):
+                os.close(fd)
+
+        # wait for the given delay period
+        i = 0
+        while i < delay:
+            time.sleep(1)
+            i += 1
+
+        # execute the function requested
+        agent_func(*args, **kwargs)
+        os._exit(0)

--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2gobroker.git


More information about the x2go-commits mailing list