cli: Allow embedding comma in kernel_args

And fix can_comma for aliases
This commit is contained in:
Cole Robinson 2014-09-23 14:14:21 -04:00
parent 30db9ece22
commit 4c4bdbb8b8
3 changed files with 11 additions and 6 deletions

View File

@ -8,7 +8,7 @@
<type arch="armv7l" machine="vexpress-a15">hvm</type> <type arch="armv7l" machine="vexpress-a15">hvm</type>
<kernel>/f19-arm.kernel</kernel> <kernel>/f19-arm.kernel</kernel>
<initrd>/f19-arm.initrd</initrd> <initrd>/f19-arm.initrd</initrd>
<cmdline>console=ttyAMA0 rw root=/dev/vda3</cmdline> <cmdline>console=ttyAMA0,1234 rw root=/dev/vda3</cmdline>
<dtb>/f19-arm.dtb</dtb> <dtb>/f19-arm.dtb</dtb>
</os> </os>
<features> <features>

View File

@ -520,7 +520,7 @@ c.add_compare("--os-variant fedora20 --nodisks --boot network --nographics --arc
c.add_compare("--os-variant fedora20 --boot fd --graphics spice --machine pc --cpu none --disk %(EXISTIMG1)s,bus=scsi --controller virtio-scsi", "kvm-machine") # kvm machine type 'pc' c.add_compare("--os-variant fedora20 --boot fd --graphics spice --machine pc --cpu none --disk %(EXISTIMG1)s,bus=scsi --controller virtio-scsi", "kvm-machine") # kvm machine type 'pc'
c.add_compare("--os-variant fedora20 --nodisks --boot fd --graphics sdl --arch sparc --machine SS-20", "qemu-sparc") # exotic arch + machine type c.add_compare("--os-variant fedora20 --nodisks --boot fd --graphics sdl --arch sparc --machine SS-20", "qemu-sparc") # exotic arch + machine type
c.add_compare("--arch armv7l --machine vexpress-a9 --boot kernel=/f19-arm.kernel,initrd=/f19-arm.initrd,dtb=/f19-arm.dtb,extra_args=\"console=ttyAMA0 rw root=/dev/mmcblk0p3\" --disk %(EXISTIMG1)s --nographics", "arm-vexpress-plain", skip_check=support.SUPPORT_CONN_DISK_SD) c.add_compare("--arch armv7l --machine vexpress-a9 --boot kernel=/f19-arm.kernel,initrd=/f19-arm.initrd,dtb=/f19-arm.dtb,extra_args=\"console=ttyAMA0 rw root=/dev/mmcblk0p3\" --disk %(EXISTIMG1)s --nographics", "arm-vexpress-plain", skip_check=support.SUPPORT_CONN_DISK_SD)
c.add_compare("--arch armv7l --machine vexpress-a15 --boot kernel=/f19-arm.kernel,initrd=/f19-arm.initrd,dtb=/f19-arm.dtb,kernel_args=\"console=ttyAMA0 rw root=/dev/vda3\",extra_args=foo --disk %(EXISTIMG1)s --nographics --os-variant fedora19", "arm-vexpress-f19", skip_check=support.SUPPORT_CONN_VIRTIO_MMIO) c.add_compare("--arch armv7l --machine vexpress-a15 --boot kernel=/f19-arm.kernel,initrd=/f19-arm.initrd,dtb=/f19-arm.dtb,kernel_args=\"console=ttyAMA0,1234 rw root=/dev/vda3\",extra_args=foo --disk %(EXISTIMG1)s --nographics --os-variant fedora19", "arm-vexpress-f19", skip_check=support.SUPPORT_CONN_VIRTIO_MMIO)
c.add_compare("--arch ppc64 --machine pseries --boot network --disk %(EXISTIMG1)s --os-variant fedora20 --network none", "ppc64-pseries-f20") c.add_compare("--arch ppc64 --machine pseries --boot network --disk %(EXISTIMG1)s --os-variant fedora20 --network none", "ppc64-pseries-f20")
c.add_compare("--disk none --location /tmp/fake.iso --nonetworks", "location-iso") # Using --location iso mounting c.add_compare("--disk none --location /tmp/fake.iso --nonetworks", "location-iso") # Using --location iso mounting
c.add_compare("--disk %(EXISTIMG1)s --pxe --os-variant rhel6.4", "kvm-rhel6") # RHEL6 defaults c.add_compare("--disk %(EXISTIMG1)s --pxe --os-variant rhel6.4", "kvm-rhel6") # RHEL6 defaults
@ -752,7 +752,7 @@ c.add_valid("--paravirt --location %(TREEDIR)s") # Paravirt location
c.add_valid("--paravirt --location %(TREEDIR)s --os-variant none") # Paravirt location with --os-variant none c.add_valid("--paravirt --location %(TREEDIR)s --os-variant none") # Paravirt location with --os-variant none
c.add_valid("--hvm --location %(TREEDIR)s --os-variant fedora12") # URL install with manual os-variant c.add_valid("--hvm --location %(TREEDIR)s --os-variant fedora12") # URL install with manual os-variant
c.add_valid("--hvm --pxe --boot menu=on") # Boot menu c.add_valid("--hvm --pxe --boot menu=on") # Boot menu
c.add_valid("--hvm --pxe --boot kernel=/tmp/foo1.img,initrd=/tmp/foo2.img,dtb=/tmp/foo2.dtb,kernel_args='ro quiet console=/dev/ttyS0'") # Kernel params c.add_valid("--hvm --pxe --boot kernel=/tmp/foo1.img,initrd=/tmp/foo2.img,dtb=/tmp/foo2.dtb,extra_args='ro quiet console=/dev/ttyS0,456'") # Kernel params
c.add_valid("--hvm --pxe --boot cdrom,fd,hd,network,menu=off") # Boot order c.add_valid("--hvm --pxe --boot cdrom,fd,hd,network,menu=off") # Boot order
c.add_valid("--hvm --boot network,hd,menu=on") # Boot w/o other install option c.add_valid("--hvm --boot network,hd,menu=on") # Boot w/o other install option
c.add_invalid("--hvm --pxe --virt-type bogus") # Bogus virt-type c.add_invalid("--hvm --pxe --virt-type bogus") # Bogus virt-type
@ -763,7 +763,7 @@ c.add_invalid("--livecd") # LiveCD with no media
c.add_invalid("--hvm --pxe --os-variant farrrrrrrge") # Bogus --os-variant c.add_invalid("--hvm --pxe --os-variant farrrrrrrge") # Bogus --os-variant
c.add_invalid("--hvm --pxe --boot menu=foobar") c.add_invalid("--hvm --pxe --boot menu=foobar")
c.add_invalid("--hvm --cdrom %(EXISTIMG1)s --extra-args console=ttyS0") # cdrom fail w/ extra-args c.add_invalid("--hvm --cdrom %(EXISTIMG1)s --extra-args console=ttyS0") # cdrom fail w/ extra-args
c.add_invalid("--hvm --boot kernel=%(TREEDIR)s/pxeboot/vmlinuz,initrd=%(TREEDIR)s/pxeboot/initrd.img --initrd-inject virt-install") # initrd-inject with manual kernel/initrd c.add_invalid("--hvm --boot kernel=%(TREEDIR)s/pxeboot/vmlinuz,initrd=%(TREEDIR)s/pxeboot/initrd.img,kernel_args='foo bar' --initrd-inject virt-install") # initrd-inject with manual kernel/initrd

View File

@ -797,7 +797,11 @@ class VirtOptionString(object):
""" """
self.fullopts = optstr self.fullopts = optstr
virtargmap = dict((arg.cliname, arg) for arg in virtargs) virtargmap = {}
for arg in virtargs:
virtargmap[arg.cliname] = arg
for alias in arg.aliases:
virtargmap[alias] = arg
# @opts: A dictionary of the mapping {cliname: val} # @opts: A dictionary of the mapping {cliname: val}
# @orderedopts: A list of tuples (cliname: val), in the order # @orderedopts: A list of tuples (cliname: val), in the order
@ -1290,7 +1294,8 @@ class ParserBoot(VirtCLIParser):
self.set_param("os.loader_type", "loader_type") self.set_param("os.loader_type", "loader_type")
self.set_param("os.nvram", "nvram") self.set_param("os.nvram", "nvram")
self.set_param("os.nvram_template", "nvram_template") self.set_param("os.nvram_template", "nvram_template")
self.set_param("os.kernel_args", "kernel_args", aliases=["extra_args"]) self.set_param("os.kernel_args", "kernel_args",
aliases=["extra_args"], can_comma=True)
self.set_param("os.init", "init") self.set_param("os.init", "init")
self.set_param("os.arch", "arch") self.set_param("os.arch", "arch")
self.set_param("type", "domain_type") self.set_param("type", "domain_type")