From b0d1a7dcdb4a8a5a9dca85ce9f2e2b3204f07eb9 Mon Sep 17 00:00:00 2001 Message-Id: From: John Ferlan Date: Thu, 22 Aug 2013 16:56:25 -0400 Subject: [PATCH] Report secret usage error message similarly https://bugzilla.redhat.com/show_bug.cgi?id=1000168 Each of the modules handled reporting error messages from the secret fetching slightly differently with respect to the error. Provide a similar message for each error case and provide as much data as possible. (cherry picked from commit 1fa7946fbacedfa9f0caa83036816c46a617fb82) --- src/qemu/qemu_command.c | 26 ++++++++++++++++++++------ src/storage/storage_backend_iscsi.c | 26 ++++++++++++++++++++------ src/storage/storage_backend_rbd.c | 28 ++++++++++++++++++++++------ 3 files changed, 62 insertions(+), 18 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index b811e1d..43934f1 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -3043,18 +3043,32 @@ qemuGetSecretString(virConnectPtr conn, } if (!sec) { - virReportError(VIR_ERR_INTERNAL_ERROR, - _("%s username '%s' specified but secret not found"), - scheme, username); + if (diskSecretType == VIR_DOMAIN_DISK_SECRET_TYPE_UUID) { + virReportError(VIR_ERR_NO_SECRET, + _("%s no secret matches uuid '%s'"), + scheme, uuid); + } else { + virReportError(VIR_ERR_NO_SECRET, + _("%s no secret matches usage value '%s'"), + scheme, usage); + } goto cleanup; } secret = (char *)conn->secretDriver->secretGetValue(sec, &secret_size, 0, VIR_SECRET_GET_VALUE_INTERNAL_CALL); if (!secret) { - virReportError(VIR_ERR_INTERNAL_ERROR, - _("could not get value of the secret for username %s"), - username); + if (diskSecretType == VIR_DOMAIN_DISK_SECRET_TYPE_UUID) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("could not get value of the secret for " + "username '%s' using uuid '%s'"), + username, uuid); + } else { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("could not get value of the secret for " + "username '%s' using usage value '%s'"), + username, usage); + } goto cleanup; } diff --git a/src/storage/storage_backend_iscsi.c b/src/storage/storage_backend_iscsi.c index ee8dd2e..e71ea46 100644 --- a/src/storage/storage_backend_iscsi.c +++ b/src/storage/storage_backend_iscsi.c @@ -732,15 +732,29 @@ virStorageBackendISCSISetAuth(const char *portal, conn->secretDriver->secretGetValue(secret, &secret_size, 0, VIR_SECRET_GET_VALUE_INTERNAL_CALL); if (!secret_value) { - virReportError(VIR_ERR_INTERNAL_ERROR, - _("could not get the value of the secret " - "for username %s"), chap.username); + if (chap.secret.uuidUsable) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("could not get the value of the secret " + "for username %s using uuid '%s'"), + chap.username, chap.secret.uuid); + } else { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("could not get the value of the secret " + "for username %s using usage value '%s'"), + chap.username, chap.secret.usage); + } goto cleanup; } } else { - virReportError(VIR_ERR_INTERNAL_ERROR, - _("username '%s' specified but secret not found"), - chap.username); + if (chap.secret.uuidUsable) { + virReportError(VIR_ERR_NO_SECRET, + _("no secret matches uuid '%s'"), + chap.secret.uuid); + } else { + virReportError(VIR_ERR_NO_SECRET, + _("no secret matches usage value '%s'"), + chap.secret.usage); + } goto cleanup; } diff --git a/src/storage/storage_backend_rbd.c b/src/storage/storage_backend_rbd.c index e3340f6..d9e1789 100644 --- a/src/storage/storage_backend_rbd.c +++ b/src/storage/storage_backend_rbd.c @@ -91,8 +91,15 @@ static int virStorageBackendRBDOpenRADOSConn(virStorageBackendRBDStatePtr *ptr, } if (secret == NULL) { - virReportError(VIR_ERR_NO_SECRET, "%s", - _("failed to find the secret")); + if (pool->def->source.auth.cephx.secret.uuidUsable) { + virReportError(VIR_ERR_NO_SECRET, + _("no secret matches uuid '%s'"), + pool->def->source.auth.cephx.secret.uuid); + } else { + virReportError(VIR_ERR_NO_SECRET, + _("no secret matches usage value '%s'"), + pool->def->source.auth.cephx.secret.usage); + } goto cleanup; } @@ -100,10 +107,19 @@ static int virStorageBackendRBDOpenRADOSConn(virStorageBackendRBDStatePtr *ptr, VIR_SECRET_GET_VALUE_INTERNAL_CALL); if (!secret_value) { - virReportError(VIR_ERR_INTERNAL_ERROR, - _("could not get the value of the secret " - "for username %s"), - pool->def->source.auth.cephx.username); + if (pool->def->source.auth.cephx.secret.uuidUsable) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("could not get the value of the secret " + "for username '%s' using uuid '%s'"), + pool->def->source.auth.cephx.username, + pool->def->source.auth.cephx.secret.uuid); + } else { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("could not get the value of the secret " + "for username '%s' using usage value '%s'"), + pool->def->source.auth.cephx.username, + pool->def->source.auth.cephx.secret.usage); + } goto cleanup; } -- 1.8.3.2