[libvirt] [PATCH v5 5/5] Adjust 'ceph' authentication secret usage for rbd pool.

Ján Tomko jtomko at redhat.com
Tue Jul 23 14:18:48 UTC 2013


On 07/22/2013 10:31 PM, John Ferlan wrote:
> Update virStorageBackendRBDOpenRADOSConn() to use the internal API to the
> secret driver in order to get the secret value instead of the external
> virSecretGetValue() path. Without the flag VIR_SECRET_GET_VALUE_INTERNAL_CALL
> there is no way to get the value of private secret.
> 
> This also requires ensuring there is a connection which wasn't true for
> for the refreshPool() path calls from storageDriverAutostart() prior to
> adding support for the connection to a qemu driver. It seems calls to
> virSecretLookupByUUIDString() and virSecretLookupByUsage() from the
> refreshPool() path would have failed with no way to find the secret - that is
> theoretically speaking since the 'conn' was NULL the failure would have been
> "failed to find the secret".
> ---
>  src/storage/storage_backend_rbd.c | 21 +++++++++++++++++++--
>  1 file changed, 19 insertions(+), 2 deletions(-)
> 
> diff --git a/src/storage/storage_backend_rbd.c b/src/storage/storage_backend_rbd.c
> index badbdac..70121bf 100644
> --- a/src/storage/storage_backend_rbd.c
> +++ b/src/storage/storage_backend_rbd.c
> @@ -23,6 +23,7 @@
>  
>  #include <config.h>
>  
> +#include "datatypes.h"
>  #include "virerror.h"
>  #include "storage_backend_rbd.h"
>  #include "storage_conf.h"
> @@ -71,6 +72,12 @@ static int virStorageBackendRBDOpenRADOSConn(virStorageBackendRBDStatePtr *ptr,
>              goto cleanup;
>          }
>  
> +        if (!conn) {
> +            virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +                           _("'ceph' authentication requires connection"));

ACK if you change the error to mention autostart, as Paolo suggested in his
reply to 4/5.

Jan




More information about the libvir-list mailing list