[lxc-devel] [PATCH] c/r: use criu option instead of lxc-restore-net

Serge Hallyn serge.hallyn at ubuntu.com
Wed Apr 15 15:49:33 UTC 2015


Quoting Tycho Andersen (tycho.andersen at canonical.com):
> As of criu 1.5, the --veth-pair argument supports an additional parameter that
> is the bridge name to attach to. This enables us to get rid of the goofy
> action-script hack that passed bridge names as environment variables.
> 
> This patch is on top of the systemd/lxcfs mount rework patch, as we probably
> want to wait to use 1.5 options until it has been out for a while and is in
> distros.
> 
> Signed-off-by: Tycho Andersen <tycho.andersen at canonical.com>

Acked-by: Serge E. Hallyn <serge.hallyn at ubuntu.com>

Again, need minversion check, and again, need github cronjob :)

> ---
>  src/lxc/Makefile.am     |  4 ----
>  src/lxc/lxc-restore-net | 26 --------------------------
>  src/lxc/lxccontainer.c  | 37 +------------------------------------
>  3 files changed, 1 insertion(+), 66 deletions(-)
>  delete mode 100755 src/lxc/lxc-restore-net
> 
> diff --git a/src/lxc/Makefile.am b/src/lxc/Makefile.am
> index 8b79c40..a56d504 100644
> --- a/src/lxc/Makefile.am
> +++ b/src/lxc/Makefile.am
> @@ -164,7 +164,6 @@ bin_SCRIPTS = lxc-checkconfig
>  
>  EXTRA_DIST = \
>  	lxc-ls \
> -	lxc-restore-net \
>  	lxc-top.lua
>  
>  if ENABLE_PYTHON
> @@ -262,8 +261,5 @@ install-exec-local: install-soPROGRAMS
>  install-exec-hook:
>  	chmod u+s $(DESTDIR)$(libexecdir)/lxc/lxc-user-nic
>  
> -install-data-local:
> -	install -c -m 755 lxc-restore-net $(DESTDIR)$(datadir)/lxc
> -
>  uninstall-local:
>  	$(RM) $(DESTDIR)$(libdir)/liblxc.so*
> diff --git a/src/lxc/lxc-restore-net b/src/lxc/lxc-restore-net
> deleted file mode 100755
> index 6ae3c19..0000000
> --- a/src/lxc/lxc-restore-net
> +++ /dev/null
> @@ -1,26 +0,0 @@
> -#!/bin/sh
> -
> -set -e
> -
> -i=0
> -while true; do
> -	eval "bridge=\$LXC_CRIU_BRIDGE$i"
> -	eval "veth=\$LXC_CRIU_VETH$i"
> -
> -	if [ -z "$bridge" ] || [ -z "$veth" ]; then
> -		exit 0
> -	fi
> -
> -	if [ "$CRTOOLS_SCRIPT_ACTION" = "network-lock" ]; then
> -		brctl delif $bridge $veth
> -	fi
> -
> -	if [ "$CRTOOLS_SCRIPT_ACTION" = "network-unlock" ]; then
> -		brctl addif $bridge $veth
> -		ip link set dev $veth up
> -	fi
> -
> -	i=$((i+1))
> -done
> -
> -exit 1
> diff --git a/src/lxc/lxccontainer.c b/src/lxc/lxccontainer.c
> index d759703..3f50fa6 100644
> --- a/src/lxc/lxccontainer.c
> +++ b/src/lxc/lxccontainer.c
> @@ -3779,8 +3779,6 @@ static void exec_criu(struct criu_opts *opts)
>  	DECLARE_ARG("auto");
>  	DECLARE_ARG("--enable-external-sharing");
>  	DECLARE_ARG("--enable-external-masters");
> -	DECLARE_ARG("--action-script");
> -	DECLARE_ARG(DATADIR "/lxc/lxc-restore-net");
>  	DECLARE_ARG("-D");
>  	DECLARE_ARG(opts->directory);
>  	DECLARE_ARG("-o");
> @@ -3832,7 +3830,7 @@ static void exec_criu(struct criu_opts *opts)
>  
>  			veth = n->priv.veth_attr.pair;
>  
> -			ret = snprintf(buf, sizeof(buf), "%s=%s", eth, veth);
> +			ret = snprintf(buf, sizeof(buf), "%s=%s@%s", eth, veth, n->link);
>  			if (ret < 0 || ret >= sizeof(buf))
>  				goto err;
>  
> @@ -3844,39 +3842,6 @@ static void exec_criu(struct criu_opts *opts)
>  
>  	argv[argc] = NULL;
>  
> -	netnr = 0;
> -	lxc_list_for_each(it, &opts->c->lxc_conf->network) {
> -		struct lxc_netdev *n = it->elem;
> -		char veth[128];
> -
> -		/*
> -		 * Here, we set some parameters that lxc-restore-net
> -		 * will examine to figure out the right network to
> -		 * restore.
> -		 */
> -		snprintf(buf, sizeof(buf), "LXC_CRIU_BRIDGE%d", netnr);
> -		if (setenv(buf, n->link, 1))
> -			goto err;
> -
> -		if (strcmp("restore", opts->action) == 0)
> -			strncpy(veth, n->priv.veth_attr.pair, sizeof(veth));
> -		else {
> -			char *tmp;
> -			ret = snprintf(buf, sizeof(buf), "lxc.network.%d.veth.pair", netnr);
> -			if (ret < 0 || ret >= sizeof(buf))
> -				goto err;
> -			tmp = lxcapi_get_running_config_item(opts->c, buf);
> -			strncpy(veth, tmp, sizeof(veth));
> -			free(tmp);
> -		}
> -
> -		snprintf(buf, sizeof(buf), "LXC_CRIU_VETH%d", netnr);
> -		if (setenv(buf, veth, 1))
> -			goto err;
> -
> -		netnr++;
> -	}
> -
>  #undef DECLARE_ARG
>  #undef RESIZE_ARGS
>  	execv(argv[0], argv);
> -- 
> 2.1.4
> 
> _______________________________________________
> lxc-devel mailing list
> lxc-devel at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-devel


More information about the lxc-devel mailing list