[virt-tools-list] [PATCH virt-manager] cli: add codec support
Anya Harter
aharter at redhat.com
Mon Jun 11 15:48:30 UTC 2018
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 \
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")
class DeviceSound(Device):
@@ -25,3 +35,5 @@ class DeviceSound(Device):
model = XMLProperty("./@model",
default_cb=lambda s: "es1370",
default_name=MODEL_DEFAULT)
+
+ codecs = XMLChildProperty(_Codec)
--
2.17.1
More information about the virt-tools-list
mailing list