[libvirt] [PATCH 3/3] qemu: Generate channel target paths on hotplug as well
John Ferlan
jferlan at redhat.com
Thu Mar 31 12:35:43 UTC 2016
On 03/30/2016 11:14 AM, Martin Kletzander wrote:
> Since commit 714080791778e3dfbd484ccb3953bffd820b8ba9, qemu agent
> channel cannot be plugged in because we won't generate its path
> automatically. Let's not only fix that, but also add tests for it so
> next time it's checked for.
>
Save some electrons, shorten the commit id
> Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1322210
>
> Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
> ---
> src/qemu/qemu_hotplug.c | 3 ++
> tests/qemuhotplugtest.c | 15 ++++++
> .../qemuhotplug-hotplug-base+qemu-agent-detach.xml | 58 ++++++++++++++++++++++
> .../qemuhotplug-hotplug-base+qemu-agent.xml | 58 ++++++++++++++++++++++
> .../qemuhotplug-qemu-agent-detach.xml | 5 ++
> .../qemuhotplugtestdata/qemuhotplug-qemu-agent.xml | 5 ++
> 6 files changed, 144 insertions(+)
> create mode 100644 tests/qemuhotplugtestdata/qemuhotplug-hotplug-base+qemu-agent-detach.xml
> create mode 100644 tests/qemuhotplugtestdata/qemuhotplug-hotplug-base+qemu-agent.xml
> create mode 100644 tests/qemuhotplugtestdata/qemuhotplug-qemu-agent-detach.xml
> create mode 100644 tests/qemuhotplugtestdata/qemuhotplug-qemu-agent.xml
>
> diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
> index e82dbf5448dc..b7741e15d445 100644
> --- a/src/qemu/qemu_hotplug.c
> +++ b/src/qemu/qemu_hotplug.c
> @@ -1565,6 +1565,9 @@ int qemuDomainAttachChrDevice(virQEMUDriverPtr driver,
> goto cleanup;
> }
>
> + if (qemuDomainPrepareChannel(chr, priv->channelTargetDir) < 0)
> + goto cleanup;
> +
> if (qemuAssignDeviceChrAlias(vmdef, chr, -1) < 0)
> goto cleanup;
>
> diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c
> index 2b0de94fb4a6..384b7b9592b9 100644
> --- a/tests/qemuhotplugtest.c
> +++ b/tests/qemuhotplugtest.c
> @@ -98,6 +98,14 @@ qemuHotplugCreateObjects(virDomainXMLOptionPtr xmlopt,
>
> (*vm)->def->id = QEMU_HOTPLUG_TEST_DOMAIN_ID;
>
> + if (qemuDomainSetPrivatePaths(&priv->libDir,
> + &priv->channelTargetDir,
> + "/var/lib/libvirt",
> + "/var/lib/libvirt/qemu/channel/target",
> + (*vm)->def->name,
> + (*vm)->def->id) < 0)
I believe this overwrites qemuTestDriverInit - since it's a test I'm not
concerned about the memory leak, just the processing consistency since
you're not really starting a guest, why change the paths?
While it's fresh in my mind (still) using /tmp/* in *DriverInit when I
was generating patches the domain master secret key file caused problems
if I actually tried to check for the existence, especially since
qemuProcessPrepareHost is where the qemuProcessMakeDir calls were made
to create the directory structure. Perhaps if the tests driver created
"tmp/*" paths rather than "/tmp/*" paths that'd work, but is more or
less unrelated.
I'll wait for your thoughts on this before an official ACK -
John
> + goto cleanup;
> +
> ret = 0;
> cleanup:
> return ret;
> @@ -495,6 +503,13 @@ mymain(void)
> "device_del", QMP_DEVICE_DELETED("scsi0-0-0-5") QMP_OK,
> "human-monitor-command", HMP(""));
>
> + DO_TEST_ATTACH_LIVE("hotplug-base", "qemu-agent", false, true,
> + "chardev-add", QMP_OK,
> + "device_add", QMP_OK);
> + DO_TEST_DETACH("hotplug-base", "qemu-agent-detach", false, false,
> + "device_del", QMP_OK,
> + "chardev-remove", QMP_OK);
> +
> qemuTestDriverFree(&driver);
> return (ret == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
> }
[...]
More information about the libvir-list
mailing list