[virt-tools-list] [PATCH virt-manager] cli: add codec support
Cole Robinson
crobinso at redhat.com
Mon Jun 11 16:34:58 UTC 2018
Thanks, I pushed with the following changes:
- Add --sound to the title to make it more clear
On 06/11/2018 11:48 AM, Anya Harter wrote:
> Add codec support to virt-install so that it can accommodate
> multiple instances of codec configuration.
>
> The commandline argument:
>
> --sound codec0.type=micro,codec1.type=duplex,codec2.type=output
>
> maps to the sound XML below:
>
> <sound model="es1370">
> <codec type="micro"/>
> <codec type="duplex"/>
> <codec type="output"/>
> </sound>
>
> Signed-off-by: Anya Harter <aharter at redhat.com>
> ---
> .../compare/virt-install-singleton-config-2.xml | 10 ++++++++++
> tests/clitest.py | 1 +
> virtinst/cli.py | 9 +++++++++
> virtinst/devices/sound.py | 14 +++++++++++++-
> 4 files changed, 33 insertions(+), 1 deletion(-)
>
> diff --git a/tests/cli-test-xml/compare/virt-install-singleton-config-2.xml b/tests/cli-test-xml/compare/virt-install-singleton-config-2.xml
> index ec36f215..f4cd21ab 100644
> --- a/tests/cli-test-xml/compare/virt-install-singleton-config-2.xml
> +++ b/tests/cli-test-xml/compare/virt-install-singleton-config-2.xml
> @@ -144,6 +144,11 @@
> </backend>
> </tpm>
> <graphics type="vnc" port="-1"/>
> + <sound model="ich6">
> + <codec type="micro"/>
> + <codec type="duplex"/>
> + <codec type="output"/>
> + </sound>
> <watchdog model="ib700" action="pause"/>
> <memballoon model="virtio"/>
> <rng model="virtio">
> @@ -313,6 +318,11 @@
> </backend>
> </tpm>
> <graphics type="vnc" port="-1"/>
> + <sound model="ich6">
> + <codec type="micro"/>
> + <codec type="duplex"/>
> + <codec type="output"/>
> + </sound>
> <watchdog model="ib700" action="pause"/>
> <memballoon model="virtio"/>
> <rng model="virtio">
> diff --git a/tests/clitest.py b/tests/clitest.py
> index c84156f9..1985c32d 100644
> --- a/tests/clitest.py
> +++ b/tests/clitest.py
> @@ -445,6 +445,7 @@ cache.mode=emulate,cache.level=3 \
> --controller usb3 \
> --controller virtio-scsi \
> --graphics vnc \
> +--sound codec0.type=micro,codec1.type=duplex,codec2.type=output \
> --filesystem /foo/source,/bar/target \
> --memballoon virtio \
> --watchdog ib700,action=pause \
I moved this to the test-many-devices test case, it's better suited for
these option strings.
> diff --git a/virtinst/cli.py b/virtinst/cli.py
> index 0bee94a9..00c4f1b4 100644
> --- a/virtinst/cli.py
> +++ b/virtinst/cli.py
> @@ -2754,9 +2754,18 @@ class ParserSound(VirtCLIParser):
> return
> return VirtCLIParser._parse(self, inst)
>
> + def codec_find_inst_cb(self, *args, **kwargs):
> + cliarg = "codec" # codec[0-9]*
> + objpropname = "codecs"
> + cb = self._make_find_inst_cb(cliarg, objpropname)
> + return cb(*args, **kwargs)
> +
> _register_virt_parser(ParserSound)
> _add_device_address_args(ParserSound)
> ParserSound.add_arg("model", "model", ignore_default=True)
> +# Options for sound.codecs config
> +ParserSound.add_arg("type", "codec[0-9]*.type",
> + find_inst_cb=ParserSound.codec_find_inst_cb)
>
>
> #####################
> diff --git a/virtinst/devices/sound.py b/virtinst/devices/sound.py
> index e0f710a8..7ac50914 100644
> --- a/virtinst/devices/sound.py
> +++ b/virtinst/devices/sound.py
> @@ -6,7 +6,17 @@
> # See the COPYING file in the top-level directory.
>
> from .device import Device
> -from ..xmlbuilder import XMLProperty
> +from ..xmlbuilder import XMLBuilder, XMLProperty, XMLChildProperty
> +
> +
> +class _Codec(XMLBuilder):
> + """
> + Class for generating <sound> child <codec> XML
> + """
> + XML_NAME = "codec"
> + _XML_PROP_ORDER = ["type"]
> +
> + type = XMLProperty("./@type")
>
_XML_PROP_ORDER isn't adding anything here with just one property
defined, so I dropped it.
Thanks,
Cole
More information about the virt-tools-list
mailing list