[et-mgmt-tools] [patch] virt-convert add disk signature into virt-image format export

Cole Robinson crobinso at redhat.com
Tue Sep 30 17:50:51 UTC 2008


Joey Boggs wrote:
> Adds disk signatures into virt-convert for virt-image format virtual 
> machines
> 
>

Comments inline.

> 
> diff -r 58a909b4f71c virtconv/parsers/virtimage.py
> --- a/virtconv/parsers/virtimage.py	Mon Sep 22 11:32:11 2008 -0400
> +++ b/virtconv/parsers/virtimage.py	Fri Sep 26 15:58:29 2008 -0400
> @@ -22,7 +22,7 @@
>  import virtconv.vmcfg as vmcfg
>  import virtconv.diskcfg as diskcfg
>  import virtinst.FullVirtGuest as fv
> -
> +import sha

Please keep the preceeding newline. Generally imports are 
grouped in some attempt at a logical manner for the sake
of readability.

>  from xml.sax.saxutils import escape
>  from string import ascii_letters
>  import re
> @@ -171,9 +171,11 @@
>          type = "raw"
>          if disk.type == diskcfg.DISK_TYPE_ISO:
>              type = "iso"
> +        diskfile=open(path,'r').read()
> +        checksum=sha.new(diskfile).hexdigest()

Please try to be consistent with surrounding code
format. 

The code above is using: var = val
You've added:            var=val

It helps code readability if spacing is reasonably
consistent throughout.

Hmm, so I just tried the above. What that is essentially
trying to do is read the entire disk into memory, then
pass it off as a giant string to the sha function. Clearly
this is not a workable solution. This also applies to
the virt-image hash changes as well. Haven't looked into
the correct way to do it though.

This is also a rather large performance drain. So at the
very least it should not be the default. That said, I
don't know the optimal way to expose this option, or
even if we should.

Is there a way that vmx files can store checksums?

>          storage.append(
> -            """<disk file="%s" use="system" format="%s"/>\n""" %
> -                (path, type))
> +            """<disk file="%s" use="system" format="%s">\n"""
> +            """   <checksum type="sha1">%s</checksum>\n  </disk>\n""" % (path, type,checksum))
>  
>      return storage, diskout


Thanks,
Cole





More information about the et-mgmt-tools mailing list