[lxc-devel] [PATCH] python: Update add_device_node to use the new API
Serge Hallyn
serge.hallyn at canonical.com
Mon Dec 10 05:13:26 UTC 2012
Quoting Stéphane Graber (stgraber at ubuntu.com):
> Update add_device_node to use the new set_cgroup_item call instead
> of having to figure out the cgroup paths and update the entries manually.
>
> Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn at ubuntu.com>
> ---
> src/python-lxc/lxc/__init__.py.in | 40 ++++++++++-----------------------------
> 1 file changed, 10 insertions(+), 30 deletions(-)
>
> diff --git a/src/python-lxc/lxc/__init__.py.in b/src/python-lxc/lxc/__init__.py.in
> index 91a59ed..07c956b 100644
> --- a/src/python-lxc/lxc/__init__.py.in
> +++ b/src/python-lxc/lxc/__init__.py.in
> @@ -172,37 +172,17 @@ class Container(_lxc.Container):
> path_stat = os.stat(path)
> mode = stat.S_IMODE(path_stat.st_mode)
>
> - # Lookup the cgroup
> - cgroup_path = None
> - with open("/proc/%s/cgroup" % self.init_pid, "r") as fd:
> - for line in fd:
> - if ":devices:" in line:
> - cgroup_path = line.split(":")[-1].strip()
> - break
> - else:
> - return False
> -
> - # Lookup the cgroup mount point
> - cgroup = None
> - with open("/proc/mounts", "r") as fd:
> - for line in fd:
> - mount = line.split()
> - if (mount[2] == "cgroup" and "devices" in mount[3]
> - and os.path.exists("%s/%s" % (mount[1], cgroup_path))):
> - cgroup = "%s/%s" % (mount[1], cgroup_path)
> - break
> -
> - if not os.path.exists(cgroup):
> - return False
> -
> # Allow the target
> - with open("%s/devices.allow" % cgroup, "a") as fd:
> - if stat.S_ISBLK(path_stat.st_mode):
> - fd.write("b %s:%s rwm" % (int(path_stat.st_rdev / 256),
> - int(path_stat.st_rdev % 256)))
> - elif stat.S_ISCHR(path_stat.st_mode):
> - fd.write("c %s:%s rwm" % (int(path_stat.st_rdev / 256),
> - int(path_stat.st_rdev % 256)))
> + if stat.S_ISBLK(path_stat.st_mode):
> + self.set_cgroup_item("devices.allow",
> + "b %s:%s rwm" %
> + (int(path_stat.st_rdev / 256),
> + int(path_stat.st_rdev % 256)))
> + elif stat.S_ISCHR(path_stat.st_mode):
> + self.set_cgroup_item("devices.allow",
> + "c %s:%s rwm" %
> + (int(path_stat.st_rdev / 256),
> + int(path_stat.st_rdev % 256)))
>
> # Create the target
> rootfs = "/proc/%s/root/" % self.init_pid
> --
> 1.8.0
>
>
> ------------------------------------------------------------------------------
> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
> Remotely access PCs and mobile devices and provide instant support
> Improve your efficiency, and focus on delivering more value-add services
> Discover what IT Professionals Know. Rescue delivers
> http://p.sf.net/sfu/logmein_12329d2d
> _______________________________________________
> Lxc-devel mailing list
> Lxc-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/lxc-devel
More information about the lxc-devel
mailing list