[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [et-mgmt-tools] [PATCH] virtinst adding in disk signature support



Just to make sure, if I move that logic for "either sha1/md5 and not None" into ImageParser right when I pull in the checksum data that would that be sufficient?

Working on changing the other items

+            </attribute>
+            <text/>
+          </element>
+        </optional>
       </element>
     </oneOrMore>
   </define>
diff -r 58a909b4f71c virt-image
--- a/virt-image	Mon Sep 22 11:32:11 2008 -0400
+++ b/virt-image	Wed Sep 24 13:56:34 2008 -0400
@@ -97,6 +97,8 @@
                       help=_("Number of vcpus to configure for your guest"))
     parser.add_option("", "--check-cpu", action="store_true", dest="check_cpu",
                       help=_("Check that vcpus do not exceed physical CPUs and warn if they do."))
+    parser.add_option("", "--checksum-ignore", action="store_true", dest="checksum_ignore",
+                      help=_("Ignore unmatching checksum values for disk signatures."))
# network options
     parser.add_option("-m", "--mac", type="string",
@@ -188,6 +190,10 @@
     # now let's get some of the common questions out of the way
     get_name(options.name, image.name, guest)
     get_memory(options.memory, image.domain.memory, guest)
+
+    if not options.checksum_ignore:
+        cli.check_disk_signature(image,guest)
+
     cli.get_uuid(options.uuid, guest)
     get_vcpus(options.vcpus, image.domain.vcpu, options.check_cpu,
               guest, conn)
diff -r 58a909b4f71c virtinst/ImageParser.py
--- a/virtinst/ImageParser.py	Mon Sep 22 11:32:11 2008 -0400
+++ b/virtinst/ImageParser.py	Wed Sep 24 13:56:34 2008 -0400
@@ -213,7 +213,8 @@
         self.format = xpathString(node, "@format", Disk.FORMAT_RAW)
         self.size = xpathString(node, "@size")
         self.use = xpathString(node, "@use", Disk.USE_SYSTEM)
-
+ self.checksum = xpathString(node, "checksum") + self.checksumtype = xpathString(node, "checksum/@type")
         formats = [Disk.FORMAT_RAW, Disk.FORMAT_QCOW, Disk.FORMAT_QCOW2, Disk.FORMAT_VMDK, Disk.FORMAT_ISO]
         validate (formats.count(self.format) > 0,
                   _("The format for disk %s must be one of %s") %
diff -r 58a909b4f71c virtinst/cli.py
--- a/virtinst/cli.py	Mon Sep 22 11:32:11 2008 -0400
+++ b/virtinst/cli.py	Wed Sep 24 13:56:34 2008 -0400
@@ -352,6 +352,27 @@
     if sound:
         guest.sound_devs.append(VirtualAudio(model="es1370"))
+def check_disk_signature(image,guest):
+    i = 0
+    disks = {}
+    for k in image.storage.keys():
+        disks[i] = image.storage[k]
+        if disks[i].checksumtype == "sha1" or disks[i].checksumtype == "md5" and not None:

I'd rather not silently ignore any values that aren't in the
white list of supported hash types. Probably at the image
parser level, when we set checksumtype, we can raise an
exception if the type is not supported.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]