[libvirt] [PATCH 0/3] Tiny cleanups

John suggested I clean up some things, so here they are. 2 out of 3 are trivial, but the first patch would look really really ugly if I wquashed them together (feel free to try). Martin Kletzander (3): qemu: Unify automatic coredump filenames qemu: Follow coding style convention qemu: Remove useless block in processWatchdogEvent src/qemu/qemu_driver.c | 117 +++++++++++++++++++++++++------------------------ 1 file changed, 60 insertions(+), 57 deletions(-) -- 2.9.0

Just create a helper for it and use it. Signed-off-by: Martin Kletzander <mkletzan@redhat.com> --- src/qemu/qemu_driver.c | 63 ++++++++++++++++++++++++++------------------------ 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index f289a831bb53..31ab732d8baa 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -3902,37 +3902,56 @@ qemuDomainScreenshot(virDomainPtr dom, return ret; } +static char * +getAutoDumpPath(virQEMUDriverPtr driver, + virDomainObjPtr vm) +{ + char *dumpfile = NULL; + char *domname = virDomainObjGetShortName(vm); + char timestr[100]; + struct tm time_info; + time_t curtime = time(NULL); + virQEMUDriverConfigPtr cfg = NULL; + + if (!domname) + return NULL; + + cfg = virQEMUDriverGetConfig(driver); + + localtime_r(&curtime, &time_info); + strftime(timestr, sizeof(timestr), "%Y-%m-%d-%H:%M:%S", &time_info); + + ignore_value(virAsprintf(&dumpfile, "%s/%s-%s", + cfg->autoDumpPath, + domname, + timestr)); + + virObjectUnref(cfg); + return domname; +} + static void processWatchdogEvent(virQEMUDriverPtr driver, virDomainObjPtr vm, int action) { int ret; virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver); - char *domname = virDomainObjGetShortName(vm); + char *dumpfile = getAutoDumpPath(driver, vm); - if (!domname) + if (!dumpfile) goto cleanup; switch (action) { case VIR_DOMAIN_WATCHDOG_ACTION_DUMP: { - char *dumpfile; unsigned int flags = VIR_DUMP_MEMORY_ONLY; - if (virAsprintf(&dumpfile, "%s/%s-%u", - cfg->autoDumpPath, - domname, - (unsigned int)time(NULL)) < 0) - goto cleanup; - if (qemuDomainObjBeginAsyncJob(driver, vm, QEMU_ASYNC_JOB_DUMP) < 0) { - VIR_FREE(dumpfile); goto cleanup; } if (!virDomainObjIsActive(vm)) { virReportError(VIR_ERR_OPERATION_INVALID, "%s", _("domain is not running")); - VIR_FREE(dumpfile); goto endjob; } @@ -3951,8 +3970,6 @@ static void processWatchdogEvent(virQEMUDriverPtr driver, virDomainObjPtr vm, in if (ret < 0) virReportError(VIR_ERR_OPERATION_FAILED, "%s", _("Resuming after dump failed")); - - VIR_FREE(dumpfile); } break; default: @@ -3963,7 +3980,7 @@ static void processWatchdogEvent(virQEMUDriverPtr driver, virDomainObjPtr vm, in qemuDomainObjEndAsyncJob(driver, vm); cleanup: - VIR_FREE(domname); + VIR_FREE(dumpfile); virObjectUnref(cfg); } @@ -3973,23 +3990,10 @@ doCoreDumpToAutoDumpPath(virQEMUDriverPtr driver, unsigned int flags) { int ret = -1; - char *dumpfile = NULL; - time_t curtime = time(NULL); - char timestr[100]; - struct tm time_info; virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver); - char *domname = virDomainObjGetShortName(vm); - - if (!domname) - goto cleanup; - - localtime_r(&curtime, &time_info); - strftime(timestr, sizeof(timestr), "%Y-%m-%d-%H:%M:%S", &time_info); + char *dumpfile = getAutoDumpPath(driver, vm); - if (virAsprintf(&dumpfile, "%s/%s-%s", - cfg->autoDumpPath, - domname, - timestr) < 0) + if (!dumpfile) goto cleanup; flags |= cfg->autoDumpBypassCache ? VIR_DUMP_BYPASS_CACHE: 0; @@ -4001,7 +4005,6 @@ doCoreDumpToAutoDumpPath(virQEMUDriverPtr driver, "%s", _("Dump failed")); cleanup: VIR_FREE(dumpfile); - VIR_FREE(domname); virObjectUnref(cfg); return ret; } -- 2.9.0

Signed-off-by: Martin Kletzander <mkletzan@redhat.com> --- src/qemu/qemu_driver.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 31ab732d8baa..8a3e61c96f11 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -3930,7 +3930,10 @@ getAutoDumpPath(virQEMUDriverPtr driver, return domname; } -static void processWatchdogEvent(virQEMUDriverPtr driver, virDomainObjPtr vm, int action) +static void +processWatchdogEvent(virQEMUDriverPtr driver, + virDomainObjPtr vm, + int action) { int ret; virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver); -- 2.9.0

Best viewed with -w since this is mostly just an indentation patch. Signed-off-by: Martin Kletzander <mkletzan@redhat.com> --- src/qemu/qemu_driver.c | 49 +++++++++++++++++++++++-------------------------- 1 file changed, 23 insertions(+), 26 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 8a3e61c96f11..28859366ee32 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -3938,42 +3938,39 @@ processWatchdogEvent(virQEMUDriverPtr driver, int ret; virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver); char *dumpfile = getAutoDumpPath(driver, vm); + unsigned int flags = VIR_DUMP_MEMORY_ONLY; if (!dumpfile) goto cleanup; switch (action) { case VIR_DOMAIN_WATCHDOG_ACTION_DUMP: - { - unsigned int flags = VIR_DUMP_MEMORY_ONLY; - - if (qemuDomainObjBeginAsyncJob(driver, vm, - QEMU_ASYNC_JOB_DUMP) < 0) { - goto cleanup; - } + if (qemuDomainObjBeginAsyncJob(driver, vm, + QEMU_ASYNC_JOB_DUMP) < 0) { + goto cleanup; + } - if (!virDomainObjIsActive(vm)) { - virReportError(VIR_ERR_OPERATION_INVALID, - "%s", _("domain is not running")); - goto endjob; - } + if (!virDomainObjIsActive(vm)) { + virReportError(VIR_ERR_OPERATION_INVALID, + "%s", _("domain is not running")); + goto endjob; + } - flags |= cfg->autoDumpBypassCache ? VIR_DUMP_BYPASS_CACHE: 0; - ret = doCoreDump(driver, vm, dumpfile, - getCompressionType(driver), flags, - VIR_DOMAIN_CORE_DUMP_FORMAT_RAW); - if (ret < 0) - virReportError(VIR_ERR_OPERATION_FAILED, - "%s", _("Dump failed")); + flags |= cfg->autoDumpBypassCache ? VIR_DUMP_BYPASS_CACHE: 0; + ret = doCoreDump(driver, vm, dumpfile, + getCompressionType(driver), flags, + VIR_DOMAIN_CORE_DUMP_FORMAT_RAW); + if (ret < 0) + virReportError(VIR_ERR_OPERATION_FAILED, + "%s", _("Dump failed")); - ret = qemuProcessStartCPUs(driver, vm, NULL, - VIR_DOMAIN_RUNNING_UNPAUSED, - QEMU_ASYNC_JOB_DUMP); + ret = qemuProcessStartCPUs(driver, vm, NULL, + VIR_DOMAIN_RUNNING_UNPAUSED, + QEMU_ASYNC_JOB_DUMP); - if (ret < 0) - virReportError(VIR_ERR_OPERATION_FAILED, - "%s", _("Resuming after dump failed")); - } + if (ret < 0) + virReportError(VIR_ERR_OPERATION_FAILED, + "%s", _("Resuming after dump failed")); break; default: goto cleanup; -- 2.9.0

On 06/16/2016 11:17 AM, Martin Kletzander wrote:
John suggested I clean up some things, so here they are. 2 out of 3 are trivial, but the first patch would look really really ugly if I wquashed them together (feel free to try).
I create enough ugly patches - no need to see more ;-)
Martin Kletzander (3): qemu: Unify automatic coredump filenames qemu: Follow coding style convention qemu: Remove useless block in processWatchdogEvent
src/qemu/qemu_driver.c | 117 +++++++++++++++++++++++++------------------------ 1 file changed, 60 insertions(+), 57 deletions(-)
-- 2.9.0
-- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
ACK series John
participants (2)
-
John Ferlan
-
Martin Kletzander