diff options
Diffstat (limited to 'nova/virt/disk/api.py')
-rw-r--r-- | nova/virt/disk/api.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/nova/virt/disk/api.py b/nova/virt/disk/api.py index fd0eec79d..f1f60414b 100644 --- a/nova/virt/disk/api.py +++ b/nova/virt/disk/api.py @@ -106,6 +106,26 @@ def extend(image, size): utils.execute('resize2fs', image, check_exit_code=False) +def bind(src, target, instance_name): + """Bind device to a filesytem""" + if src: + utils.execute('touch', target, run_as_root=True) + utils.execute('mount', '-o', 'bind', src, target, + run_as_root=True) + s = os.stat(src) + cgroup_info = "c %s:%s rwm" % (os.major(s.st_rdev), + os.minor(s.st_rdev)) + cgroups_path = \ + "/sys/fs/cgroup/devices/sysdefault/libvirt/lxc/%s/devices.allow" \ + % instance_name + utils.execute('echo', '>', cgroup_info, cgroups_path, run_as_root=True) + + +def unbind(target): + if target: + utils.execute('umount', target, run_as_root=True) + + class _DiskImage(object): """Provide operations on a disk image file.""" |