From 0dd60b3abf22aac2adfd5584fdd679beeb00ab4c Mon Sep 17 00:00:00 2001 From: Lars Karlitski Date: Sun, 6 Oct 2019 00:11:26 +0200 Subject: [PATCH] remoteloop: pass filename to create_device This makes LoopClient simpler to use in the common case. --- assemblers/org.osbuild.qemu | 4 +--- osbuild/remoteloop.py | 4 +++- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/assemblers/org.osbuild.qemu b/assemblers/org.osbuild.qemu index 52ebca17..c754bb25 100755 --- a/assemblers/org.osbuild.qemu +++ b/assemblers/org.osbuild.qemu @@ -20,9 +20,7 @@ def mount(source, dest, *options): @contextlib.contextmanager def loop_device(loop_client, image, size, offset=0): - fd = os.open(image, os.O_RDWR | os.O_DIRECT) - devname = loop_client.create_device(fd, offset=offset, sizelimit=size) - os.close(fd) + devname = loop_client.create_device(image, offset=offset, sizelimit=size) path = f"/dev/{devname}" try: yield path diff --git a/osbuild/remoteloop.py b/osbuild/remoteloop.py index 2626bb7a..b57396ce 100644 --- a/osbuild/remoteloop.py +++ b/osbuild/remoteloop.py @@ -112,9 +112,10 @@ class LoopClient: def __init__(self, sock): self.sock = sock - def create_device(self, fd, offset=None, sizelimit=None): + def create_device(self, filename, offset=None, sizelimit=None): req = {} fds = array.array("i") + fd = os.open(filename, os.O_RDWR | os.O_DIRECT) dir_fd = os.open("/dev", os.O_DIRECTORY) fds.append(fd) @@ -129,6 +130,7 @@ class LoopClient: dump_fds(self.sock, req, fds) os.close(dir_fd) + os.close(fd) ret = json.loads(self.sock.recv(1024))