Skip to content

Commit a435b1b

Browse files
committed
[manila-csi-plugin] support muilple share rules
Signed-off-by: moonek <[email protected]>
1 parent b5965eb commit a435b1b

File tree

2 files changed

+17
-24
lines changed

2 files changed

+17
-24
lines changed

pkg/csi/manila/shareadapters/cephfs.go

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,12 @@ func (Cephfs) GetOrGrantAccesses(args *GrantAccessArgs) ([]shares.AccessRight, e
4242
}
4343
}
4444

45-
var accessToList []string
46-
if args.Options.CephfsClientID == "" {
47-
accessToList = []string{args.Share.Name}
48-
} else {
45+
accessToList := []string{args.Share.Name}
46+
if args.Options.CephfsClientID != "" {
4947
accessToList = strings.Split(args.Options.CephfsClientID, ",")
5048
}
5149

52-
modified := false
50+
created := false
5351
for _, at := range accessToList {
5452
// Try to find the access right
5553
found := false
@@ -81,31 +79,26 @@ func (Cephfs) GetOrGrantAccesses(args *GrantAccessArgs) ([]shares.AccessRight, e
8179
wait.ExponentialBackoff(backoff, func() (bool, error) {
8280
rights, err := args.ManilaClient.GetAccessRights(args.Share.ID)
8381
if err != nil {
84-
return false, err
82+
return false, fmt.Errorf("error get access rights for share %s: %v", args.Share.ID, err)
8583
}
86-
87-
var accessRight *shares.AccessRight
88-
89-
for i := range rights {
90-
if rights[i].AccessTo == at {
91-
accessRight = &rights[i]
92-
break
93-
}
94-
}
95-
96-
if accessRight == nil {
84+
if len(rights) == 0 {
9785
return false, fmt.Errorf("cannot find the access right we've just created")
9886
}
99-
100-
return accessRight.AccessKey != "", nil
87+
for _, r := range rights {
88+
if r.AccessTo == at && r.AccessKey != "" {
89+
return true, nil
90+
}
91+
}
92+
klog.V(4).Infof("Access key for %s is not set yet, retrying...", at)
93+
return false, nil
10194
})
10295
}
103-
modified = true
96+
created = true
10497
}
10598
}
10699

107100
// Search again because access rights have changed
108-
if modified {
101+
if created {
109102
rights, err = args.ManilaClient.GetAccessRights(args.Share.ID)
110103
if err != nil {
111104
if _, ok := err.(gophercloud.ErrResourceNotFound); !ok {

pkg/csi/manila/shareadapters/nfs.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ func (NFS) GetOrGrantAccesses(args *GrantAccessArgs) ([]shares.AccessRight, erro
4444

4545
accessToList := strings.Split(args.Options.NFSShareClient, ",")
4646

47-
modified := false
47+
created := false
4848
for _, at := range accessToList {
4949
// Try to find the access right
5050
found := false
@@ -65,12 +65,12 @@ func (NFS) GetOrGrantAccesses(args *GrantAccessArgs) ([]shares.AccessRight, erro
6565
if err != nil {
6666
return nil, fmt.Errorf("failed to grant access right: %v", err)
6767
}
68-
modified = true
68+
created = true
6969
}
7070
}
7171

7272
// Search again because access rights have changed
73-
if modified {
73+
if created {
7474
rights, err = args.ManilaClient.GetAccessRights(args.Share.ID)
7575
if err != nil {
7676
if _, ok := err.(gophercloud.ErrResourceNotFound); !ok {

0 commit comments

Comments
 (0)