[et-mgmt-tools] [PATCH] Check the number of vbd for PV

S.Sakamoto fj0588di at aa.jp.fujitsu.com
Wed Apr 25 00:58:53 UTC 2007


Hi

Would you give me a comment on this patch?
If not, please apply it.

Thanks,
Shigeki Sakamoto.


> Hi,
> 
> I create a patch to check the number of vbd for PV domain.
> 
> In HVM domain, the virt-install command checks the number of vbd to
> avoid mis-input.  During HVM domain installation, user cannot specify
> 4vbd using the virt-install command.  However, in PV domain, the
> virt-install command does not check the number of vbd.  During PV
> domain installation, user can specify more than 16vbd and the
> following error message is displayed.
> 
>    xend.err 'Invalid configuration invalid character: code 208'
> 
> I think there are two problems.  One is that this error message should
> be more plain.  The other is that the virt-install command should
> check the vbd number in PV domain installation.
> 
> 
> Thanks,
> Shigeki Sakamoto.
> 
> 
> ===========================================================
> diff -r 31a333a9a5ba virtinst/FullVirtGuest.py
> --- a/virtinst/FullVirtGuest.py Tue Apr 17 10:45:06 2007 -0400
> +++ b/virtinst/FullVirtGuest.py Thu Apr 19 14:18:41 2007 +0900
> @@ -281,3 +281,23 @@ class FullVirtGuest(Guest.XenGuest):
>          # This should always work, because it'll lookup a config file
>          # for inactive guest, or get the still running install..
>          return self.conn.lookupByName(self.name)
> +
> +    def _get_disk_xml(self, install = True):
> +        """Get the disk config in the libvirt XML format"""
> +        ret = ""
> +        count = 0
> +        for d in self.disks:
> +            if d.transient and not install:
> +                continue
> +            if count > 4:
> +                raise ValueError, "Can't use more than 4 disks on HVM guest"
> +            if d.device == Guest.VirtualDisk.DEVICE_CDROM and count != 2:
> +                disknode = "%(disknode)s%(dev)c" % { "disknode": self.disknode, "dev": ord('a') + 2 }
> +            else:
> +               if count == 2 and d.device != Guest.VirtualDisk.DEVICE_CDROM:
> +                   # skip "hdc"
> +                   count += 1
> +               disknode = "%(disknode)s%(dev)c" % { "disknode": self.disknode, "dev": ord('a') + count }
> +            ret += d.get_xml_config(disknode)
> +            count += 1
> +        return ret
> diff -r 31a333a9a5ba virtinst/Guest.py
> --- a/virtinst/Guest.py Tue Apr 17 10:45:06 2007 -0400
> +++ b/virtinst/Guest.py Thu Apr 19 14:05:25 2007 +0900
> @@ -557,26 +557,6 @@ class Guest(object):
>          for nic in self.nics:
>              nic.setup(self.conn)
> 
> -    def _get_disk_xml(self, install = True):
> -        """Get the disk config in the libvirt XML format"""
> -        ret = ""
> -        count = 0
> -        for d in self.disks:
> -            if d.transient and not install:
> -                continue
> -            if count > 4 and self.disknode == "hd":
> -                raise ValueError, "Can't use more than 4 disks on HVM guest"
> -            if d.device == VirtualDisk.DEVICE_CDROM and count != 2:
> -                disknode = "%(disknode)s%(dev)c" % { "disknode": self.disknode, "dev": ord('a') + 2 }
> -            else:
> -               if count == 2 and d.device != VirtualDisk.DEVICE_CDROM and self.disknode == "hd":
> -                   # skip "hdc"
> -                   count += 1
> -               disknode = "%(disknode)s%(dev)c" % { "disknode": self.disknode, "dev": ord('a') + count }
> -            ret += d.get_xml_config(disknode)
> -            count += 1
> -        return ret
> -
>      def _get_network_xml(self, install = True):
>          """Get the network config in the libvirt XML format"""
>          ret = ""
> diff -r 31a333a9a5ba virtinst/ParaVirtGuest.py
> --- a/virtinst/ParaVirtGuest.py Tue Apr 17 10:45:06 2007 -0400
> +++ b/virtinst/ParaVirtGuest.py Thu Apr 19 14:06:32 2007 +0900
> @@ -78,3 +78,16 @@ class ParaVirtGuest(Guest.XenGuest):
>              self.disks.append(Guest.VirtualDisk(self.location, readOnly=True, transient=True))
> 
>          return tmpfiles
> +
> +    def _get_disk_xml(self, install = True):
> +        """Get the disk config in the libvirt XML format"""
> +        ret = ""
> +        count = 0
> +        for d in self.disks:
> +            if d.transient and not install:
> +                continue
> +            if count > 15:
> +                raise ValueError, "Can't use more than 16 disks on PV guest"
> +            ret += d.get_xml_config("%(disknode)s%(dev)c" % { "disknode": self.disknode, "dev": ord('a') + count })
> +            count += 1
> +        return ret
> 
> _______________________________________________
> et-mgmt-tools mailing list
> et-mgmt-tools at redhat.com
> https://www.redhat.com/mailman/listinfo/et-mgmt-tools
> 




More information about the et-mgmt-tools mailing list