Simple tool that wraps the functionality in virt_utils_disk.py that
creates virtual disk images for floppy, cdrom, etc.

Signed-off-by: Cleber Rosa <[email protected]>
---
 client/tools/virt_disk.py | 90 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 90 insertions(+)
 create mode 100755 client/tools/virt_disk.py

diff --git a/client/tools/virt_disk.py b/client/tools/virt_disk.py
new file mode 100755
index 0000000..7606a62
--- /dev/null
+++ b/client/tools/virt_disk.py
@@ -0,0 +1,90 @@
+#!/usr/bin/env python
+
+'''
+This is a tool for that makes it easy to create virtual disks, optionally
+with content ready for unattended installations.
+
+The main use case for this tool is debugging guest installations with an
+disks just like they're created by the virt unattended test installation.
+'''
+
+import sys, optparse
+import common
+from autotest.client.virt import virt_utils, virt_utils_disk
+
+
+class OptionParser(optparse.OptionParser):
+    '''
+    App option parser
+    '''
+    def __init__(self):
+        optparse.OptionParser.__init__(self,
+                                       usage=('Usage: %prog [options] '
+                                              '<image_file_name> '
+                                              '[file 1][file 2]..[file N]'))
+
+        media = optparse.OptionGroup(self, 'MEDIA SELECTION')
+        media.set_description('Choose only one of the media formats supported')
+        media.add_option('-c', '--cdrom', dest='cdrom', default=False,
+                         action='store_true',
+                         help=('create a basic cdrom image'))
+        media.add_option('-f', '--floppy', dest='floppy', default=False,
+                         action='store_true',
+                         help=('create a basic floppy image'))
+        self.add_option_group(media)
+
+        path = optparse.OptionGroup(self, 'PATH SELECTION')
+        path.add_option('-q', '--qemu-img', dest='qemu_img',
+                        default='/usr/bin/qemu-img',
+                        help=('qemu-img binary path. defaults to '
+                              '"/usr/bin/qemu-img"'))
+        path.add_option('-t', '--temp', dest='temp', default='/tmp',
+                        help='qemu-img binary path. defaults to "/tmp"')
+        self.add_option_group(path)
+
+
+class App:
+    '''
+    KojiPkgSpec app
+    '''
+    def __init__(self):
+        self.opt_parser = OptionParser()
+
+
+    def usage(self):
+        self.opt_parser.print_help()
+        sys.exit(1)
+
+
+    def parse_cmdline(self):
+        self.options, self.args = self.opt_parser.parse_args()
+        if not (self.options.cdrom or self.options.floppy):
+            self.usage()
+        if (self.options.cdrom and self.options.floppy):
+            self.usage()
+
+        if not len(self.args) >= 1:
+            self.usage()
+        else:
+            self.image = self.args[0]
+            self.files = self.args[1:]
+
+
+    def main(self):
+        self.parse_cmdline()
+        if self.options.floppy:
+            self.disk = virt_utils_disk.FloppyDisk(self.image,
+                                                   self.options.qemu_img,
+                                                   self.options.temp)
+        elif self.options.cdrom:
+            self.disk = virt_utils_disk.CdromDisk(self.image,
+                                                  self.options.temp)
+
+        for f in self.files:
+            self.disk.copy_to(f)
+        self.disk.close()
+
+
+if __name__ == '__main__':
+    app = App()
+    app.main()
-- 
1.7.11.2

_______________________________________________
Autotest-kernel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/autotest-kernel

Reply via email to