From 0cc1e06beb6d7a01c8b6ebd1897a0947495a6c4b Mon Sep 17 00:00:00 2001 From: gman Date: Tue, 12 Jun 2018 17:08:14 +0200 Subject: [PATCH] cephfs: createCephUser needs admin credentials --- pkg/cephfs/nodeserver.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/pkg/cephfs/nodeserver.go b/pkg/cephfs/nodeserver.go index 06b546dff..d66b6a89a 100644 --- a/pkg/cephfs/nodeserver.go +++ b/pkg/cephfs/nodeserver.go @@ -71,7 +71,20 @@ func handleUser(volOptions *volumeOptions, volUuid string, req *csi.NodePublishV if volOptions.ProvisionVolume { // The volume is provisioned dynamically, create a dedicated user - if ent, err := createCephUser(volOptions, volUuid, req.GetReadonly()); err != nil { + // First, store admin credentials - those are needed for creating a user + + adminCr, err := getAdminCredentials(req.GetNodePublishSecrets()) + if err != nil { + return nil, err + } + + if err = storeCephAdminCredentials(volUuid, adminCr); err != nil { + return nil, err + } + + // Then create the user + + if ent, err := createCephUser(volOptions, adminCr, volUuid); err != nil { return nil, err } else { cr.id = ent.Entity[len(cephEntityClientPrefix):]