Commit 983f54f6 authored by Pavel Emelyanov's avatar Pavel Emelyanov

zdtm.py: Substract criu_cli from criu

Now we have a single place that is really about calling criu
as CLI tool inside this class, so pull one out as a preparation
to having RPC support.
Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
parent 57699ee0
......@@ -664,6 +664,16 @@ criu_bin = "../criu/criu"
join_ns_file = '/run/netns/zdtm_netns'
class criu_cli:
@staticmethod
def run(action, args, fault = None, strace = [], preexec = None):
env = None
if fault:
print "Forcing %s fault" % fault
env = dict(os.environ, CRIU_FAULT = fault)
cr = subprocess.Popen(strace + [criu_bin, action] + args, env = env, preexec_fn = preexec)
return cr.wait()
class criu:
def __init__(self, opts):
self.__test = None
......@@ -705,15 +715,6 @@ class criu:
def __ddir(self):
return os.path.join(self.__dump_path, "%d" % self.__iter)
@staticmethod
def __criu(action, args, fault = None, strace = [], preexec = None):
env = None
if fault:
print "Forcing %s fault" % fault
env = dict(os.environ, CRIU_FAULT = fault)
cr = subprocess.Popen(strace + [criu_bin, action] + args, env = env, preexec_fn = preexec)
return cr.wait()
def set_user_id(self):
# Numbers should match those in zdtm_test
os.setresgid(58467, 58467, 58467)
......@@ -748,7 +749,7 @@ class criu:
__ddir = self.__ddir()
ret = self.__criu(action, s_args, self.__fault, strace, preexec)
ret = criu_cli.run(action, s_args, self.__fault, strace, preexec)
grep_errors(os.path.join(__ddir, log))
if ret != 0:
if self.__fault and int(self.__fault) < 128:
......@@ -763,7 +764,7 @@ class criu:
os.rename(os.path.join(__ddir, log), os.path.join(__ddir, log + ".fail"))
# try again without faults
print "Run criu " + action
ret = self.__criu(action, s_args, False, strace, preexec)
ret = criu_cli.run(action, s_args, False, strace, preexec)
grep_errors(os.path.join(__ddir, log))
if ret == 0:
return
......@@ -843,7 +844,7 @@ class criu:
@staticmethod
def check(feature):
return criu.__criu("check", ["-v0", "--feature", feature]) == 0
return criu_cli.run("check", ["-v0", "--feature", feature]) == 0
@staticmethod
def available():
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment