In attempt to fix https://bugzilla.redhat.com/show_bug.cgi?id=1270696 this code was introduced but it removes the path for all channel devices. We need to limit it only to the devices that have auto-generated source path. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1591670 Signed-off-by: Pavel Hrdina <phrdina@xxxxxxxxxx> --- tests/clone-xml/channel-source-in.xml | 35 ++++++++++++++++++++++++++ tests/clone-xml/channel-source-out.xml | 35 ++++++++++++++++++++++++++ tests/clonetest.py | 3 +++ virtinst/cloner.py | 4 ++- 4 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 tests/clone-xml/channel-source-in.xml create mode 100644 tests/clone-xml/channel-source-out.xml diff --git a/tests/clone-xml/channel-source-in.xml b/tests/clone-xml/channel-source-in.xml new file mode 100644 index 00000000..f69054c4 --- /dev/null +++ b/tests/clone-xml/channel-source-in.xml @@ -0,0 +1,35 @@ +<domain type='kvm'> + <name>clone-orig</name> + <uuid>aaa3ae22-fed2-bfbd-ac02-3bea3bcfad82</uuid> + <memory>262144</memory> + <currentMemory>262144</currentMemory> + <vcpu>1</vcpu> + <os> + <type arch='i686' machine='pc'>hvm</type> + <boot dev='cdrom'/> + </os> + <features> + <acpi/> + </features> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu-kvm</emulator> + <channel type='unix'> + <source mode='bind' path='/tmp/guestfwd'/> + <target type='guestfwd' address='10.0.0.1' port='1234'/> + </channel> + <channel type='unix'> + <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-2-generic/org.qemu.guest_agent.0'/> + <target type='virtio' name='org.qemu.guest_agent.0'/> + </channel> + <channel type='unix'> + <target type='virtio' name='org.qemu.guest_agent.0'/> + </channel> + <channel type='unix'> + <target type='virtio'/> + </channel> + </devices> +</domain> diff --git a/tests/clone-xml/channel-source-out.xml b/tests/clone-xml/channel-source-out.xml new file mode 100644 index 00000000..210e7a7b --- /dev/null +++ b/tests/clone-xml/channel-source-out.xml @@ -0,0 +1,35 @@ +<domain type="kvm"> + <name>clone-new</name> + <uuid>12345678-1234-1234-1234-123456789012</uuid> + <memory>262144</memory> + <currentMemory>262144</currentMemory> + <vcpu>1</vcpu> + <os> + <type arch="i686" machine="pc">hvm</type> + <boot dev="cdrom"/> + </os> + <features> + <acpi/> + </features> + <clock offset="utc"/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu-kvm</emulator> + <channel type="unix"> + <source mode="bind" path="/tmp/guestfwd"/> + <target type="guestfwd" address="10.0.0.1" port="1234"/> + </channel> + <channel type="unix"> + <source mode="bind"/> + <target type="virtio" name="org.qemu.guest_agent.0"/> + </channel> + <channel type="unix"> + <target type="virtio" name="org.qemu.guest_agent.0"/> + </channel> + <channel type="unix"> + <target type="virtio"/> + </channel> + </devices> +</domain> diff --git a/tests/clonetest.py b/tests/clonetest.py index f2170429..c5dc3020 100644 --- a/tests/clonetest.py +++ b/tests/clonetest.py @@ -164,3 +164,6 @@ class TestClone(unittest.TestCase): def testCloneGraphicsPassword(self): self._clone("graphics-password") + + def testCloneChannelSource(self): + self._clone("channel-source") diff --git a/virtinst/cloner.py b/virtinst/cloner.py index c510c6e3..3ece3073 100644 --- a/virtinst/cloner.py +++ b/virtinst/cloner.py @@ -427,7 +427,9 @@ class Cloner(object): # For guest agent channel, remove a path to generate a new one with # new guest name for channel in self._guest.devices.channel: - if channel.type == DeviceChannel.TYPE_UNIX: + if (channel.type == DeviceChannel.TYPE_UNIX and + channel.target_name and channel.source_path and + channel.target_name in channel.source_path): channel.source_path = None if self._guest.os.nvram: -- 2.17.1 _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list