[virt-tools-list] [virt-manager PATCH 1/7] Add perform_floppy_injections()
Fabiano Fidêncio
fidencio at redhat.com
Thu Mar 28 21:44:42 UTC 2019
Similar to perform_initrd_injections(), which is used by Linux(es)
unattended installations, perform_floppy_injections() is going to be
used by Windows(es) unattended installations.
Signed-off-by: Fabiano Fidêncio <fidencio at redhat.com>
---
virt-manager.spec.in | 5 +++++
virtinst/floppyinject.py | 34 ++++++++++++++++++++++++++++++++++
2 files changed, 39 insertions(+)
create mode 100644 virtinst/floppyinject.py
diff --git a/virt-manager.spec.in b/virt-manager.spec.in
index 7e581833..37ea7a52 100644
--- a/virt-manager.spec.in
+++ b/virt-manager.spec.in
@@ -48,6 +48,11 @@ Requires: dconf
# no ambiguity.
Requires: vte291
+# Those two dependencies are needed in order to support unattended
+# installation for Windows guests.
+Requires: dosfstools
+Requires: mtools
+
# Weak dependencies for the common virt-manager usecase
Recommends: (libvirt-daemon-kvm or libvirt-daemon-qemu)
Recommends: libvirt-daemon-config-network
diff --git a/virtinst/floppyinject.py b/virtinst/floppyinject.py
new file mode 100644
index 00000000..2edf2f43
--- /dev/null
+++ b/virtinst/floppyinject.py
@@ -0,0 +1,34 @@
+#
+# Copyright 2019 Red Hat, Inc.
+#
+# This work is licensed under the GNU GPLv2 or later.
+# See the COPYING file in the top-level directory.
+
+import logging
+import os
+import subprocess
+import tempfile
+
+
+def perform_floppy_injections(injections, scratchdir):
+ """
+ Insert files into the root directory of a floppy
+ """
+ if not injections:
+ return
+
+ tempdir = tempfile.mkdtemp(dir=scratchdir)
+ os.chmod(tempdir, 0o775)
+
+ img = os.path.join(tempdir, "unattended.img")
+
+ cmd = ["mkfs.msdos", "-C", img, "1440"]
+ logging.debug("Running mkisofs: %s", cmd)
+ output = subprocess.check_output(cmd)
+
+ for filename in injections:
+ logging.debug("Copying %s to the floppy.", filename)
+ cmd = ["mcopy", "-i", img, filename, "::"]
+ output = subprocess.check_output(cmd)
+
+ return img
--
2.20.1
More information about the virt-tools-list
mailing list