From 1fa7946fbacedfa9f0caa83036816c46a617fb82 Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Tue, 6 Aug 2013 07:52:46 -0400 Subject: [PATCH] Report secret usage error message similarly 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. --- 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 71c220f19d..f151173241 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 ee8dd2e727..e71ea46aaa 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 e3340f63f4..d9e1789041 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; }