[CRIU] [PATCH 5/5] Process Migration using Sockets

rbruno at gsd.inesc-id.pt rbruno at gsd.inesc-id.pt
Fri Feb 10 19:34:45 PST 2017


 test/zdtm.py | 30 +++++++++++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

    Add support for image-proxy/image-cache in zdtm test suite.

    Signed-off-by: Rodrigo Bruno <rbruno at gsd.inesc-id.pt>
    Signed-off-by: Katerina Koukiou <k.koukiou at gmail.com>

diff --git a/test/zdtm.py b/test/zdtm.py
index 7cd9dc4..8d389a3 100755
--- a/test/zdtm.py
+++ b/test/zdtm.py
@@ -777,6 +777,7 @@ class criu:
 		self.__mdedup = (opts['noauto_dedup'] and True or False)
 		self.__user = (opts['user'] and True or False)
 		self.__leave_stopped = (opts['stop'] and True or False)
+		self.__remote = (opts['remote'] and True or False)
 		self.__criu = (opts['rpc'] and criu_rpc or criu_cli)

 	def logs(self):
@@ -884,6 +885,29 @@ class criu:

 		a_opts += self.__test.getdopts()

+		if self.__remote:
+			from subprocess import check_output
+
+			logdir = os.getcwd() + "/" + self.__dump_path + "/" + str(self.__iter)
+			print "Adding image cache"
+
+			cache_opts = [criu_bin, "image-cache", "--port", "12345", "-v4", "-o",
+				      logdir + "/image-cache.log", "-D", logdir]
+
+			cpid = subprocess.Popen(cache_opts).pid
+			time.sleep(1)
+
+			print "Adding image proxy"
+
+			proxy_opts = [criu_bin, "image-proxy", "--port", "12345", "--address",
+				      "localhost", "-v4", "-o", logdir + "/image-proxy.log",
+                                      "-D", logdir]
+
+			ppid = subprocess.Popen(proxy_opts).pid
+			time.sleep(1)
+
+			a_opts += ["--remote"]
+
 		if self.__dedup:
 			a_opts += ["--auto-dedup"]

@@ -923,6 +947,9 @@ class criu:
 			r_opts += ['--empty-ns', 'net']
 			r_opts += ['--action-script', os.getcwd() + '/empty-netns-prep.sh']

+		if self.__remote:
+			r_opts += ["--remote"]
+
 		self.__prev_dump_iter = None
 		criu_dir = os.path.dirname(os.getcwd())
 		if os.getenv("GCOV"):
@@ -1362,7 +1389,7 @@ class launcher:

 		nd = ('nocr', 'norst', 'pre', 'iters', 'page_server', 'sibling',
'stop', 'empty_ns',
 				'fault', 'keep_img', 'report', 'snaps', 'sat', 'script', 'rpc',
-				'join_ns', 'dedup', 'sbs', 'freezecg', 'user', 'dry_run',
'noauto_dedup')
+				'join_ns', 'dedup', 'sbs', 'freezecg', 'user', 'dry_run',
'noauto_dedup', 'remote')
 		arg = repr((name, desc, flavor, {d: self.__opts[d] for d in nd}))

 		if self.__use_log:
@@ -1834,6 +1861,7 @@ rp.add_argument("--user", help = "Run CRIU as
regular user", action = 'store_tru
 rp.add_argument("--rpc", help = "Run CRIU via RPC rather than CLI",
action = 'store_true')

 rp.add_argument("--page-server", help = "Use page server dump", action =
'store_true')
+rp.add_argument("--remote", help = "Use remote option for diskless C/R",
action = 'store_true')
 rp.add_argument("-p", "--parallel", help = "Run test in parallel")
 rp.add_argument("--dry-run", help="Don't run tests, just pretend to",
action='store_true')
 rp.add_argument("--script", help="Add script to get notified by criu")



More information about the CRIU mailing list