[PATCH v2] replace rbd option auth_supported with auth_*_required
As stated in Yusuke Fujimaki's patch, Ceph recently removed the deprecated auth_supported option that is still used by libvirt, causing errors when attempting to start a storage pool on a newer Ceph server: https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/RELDV... https://github.com/ceph/ceph/commit/350cc71d7d9e9cd6239d24080082de7ac9bf8b70 This patch addresses the issue by replacing the deprecated option with auth_client_required. While all three replacement options (auth_cluster_required, auth_service_required and auth_client_required) were previously set by Ceph, it really only makes sense to keep the last in libvirt as the other options are only relevant on the server side. See the discussion here: https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/3TVM5... Resolves: https://gitlab.com/libvirt/libvirt/-/work_items/918 Signed-off-by: Janis Heims <janis.heims@undertheprinter.com> --- Changes since v1: - Removed auth_cluster_required and auth_service_required src/libxl/libxl_conf.c | 7 +++---- src/libxl/xen_xl.c | 2 +- src/storage/storage_backend_rbd.c | 6 ++++-- tests/xlconfigdata/test-rbd-multihost-noauth.cfg | 2 +- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index 3bb5c1e591..9050caf400 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -1087,11 +1087,10 @@ libxlMakeNetworkDiskSrcStr(virStorageSource *src, if (username) { virBufferEscape(&buf, '\\', ":", ":id=%s", username); - virBufferEscape(&buf, '\\', ":", - ":key=%s:auth_supported=cephx\\;none", - secret); + virBufferEscape(&buf, '\\', ":", ":key=%s", secret); + virBufferAddLit(&buf, ":auth_client_required=cephx\\;none"); } else { - virBufferAddLit(&buf, ":auth_supported=none"); + virBufferAddLit(&buf, ":auth_client_required=none"); } if (src->nhosts > 0) { diff --git a/src/libxl/xen_xl.c b/src/libxl/xen_xl.c index d05972af5b..5a31fc6939 100644 --- a/src/libxl/xen_xl.c +++ b/src/libxl/xen_xl.c @@ -1478,7 +1478,7 @@ xenFormatXLDiskSrcNet(virStorageSource *src) virBufferStrcat(&buf, "rbd:", src->path, NULL); - virBufferAddLit(&buf, ":auth_supported=none"); + virBufferAddLit(&buf, ":auth_client_required=none"); if (src->nhosts > 0) { virBufferAddLit(&buf, ":mon_host="); diff --git a/src/storage/storage_backend_rbd.c b/src/storage/storage_backend_rbd.c index 25cad4a28d..64ea11a7f5 100644 --- a/src/storage/storage_backend_rbd.c +++ b/src/storage/storage_backend_rbd.c @@ -241,17 +241,19 @@ virStorageBackendRBDOpenRADOSConn(virStorageBackendRBDState *ptr, goto cleanup; if (virStorageBackendRBDRADOSConfSet(ptr->cluster, - "auth_supported", "cephx") < 0) + "auth_client_required", "cephx") < 0) goto cleanup; } else { VIR_DEBUG("Not using cephx authorization"); if (rados_create(&ptr->cluster, NULL) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("failed to create the RADOS cluster")); goto cleanup; } + if (virStorageBackendRBDRADOSConfSet(ptr->cluster, - "auth_supported", "none") < 0) + "auth_client_required", "none") < 0) goto cleanup; } diff --git a/tests/xlconfigdata/test-rbd-multihost-noauth.cfg b/tests/xlconfigdata/test-rbd-multihost-noauth.cfg index 5906865047..8ff1878885 100644 --- a/tests/xlconfigdata/test-rbd-multihost-noauth.cfg +++ b/tests/xlconfigdata/test-rbd-multihost-noauth.cfg @@ -22,4 +22,4 @@ parallel = "none" serial = "none" builder = "hvm" boot = "d" -disk = [ "format=raw,vdev=hda,access=rw,backendtype=phy,target=/dev/HostVG/XenGuest2", "format=raw,vdev=hdb,access=rw,backendtype=qdisk,target=rbd:pool/image:auth_supported=none:mon_host=mon1.example.org\\:6321\\;mon2.example.org\\:6322\\;mon3.example.org\\:6322" ] +disk = [ "format=raw,vdev=hda,access=rw,backendtype=phy,target=/dev/HostVG/XenGuest2", "format=raw,vdev=hdb,access=rw,backendtype=qdisk,target=rbd:pool/image:auth_client_required=none:mon_host=mon1.example.org\\:6321\\;mon2.example.org\\:6322\\;mon3.example.org\\:6322" ] base-commit: 215fab8ab1d912f6b25e60ab4d2ad59000f2eaff -- 2.54.0
participants (1)
-
Janis Heims