@@ -22,16 +22,18 @@ import (
22
22
"fmt"
23
23
"os"
24
24
"path/filepath"
25
+ "strings"
25
26
26
- diskv1alpha1 "github.com/kubernetes-csi/csi-proxy/client/api/disk/v1alpha1 "
27
- diskclientv1alpha1 "github.com/kubernetes-csi/csi-proxy/client/groups/disk/v1alpha1 "
27
+ diskv1beta1 "github.com/kubernetes-csi/csi-proxy/client/api/disk/v1beta1 "
28
+ diskclientv1beta1 "github.com/kubernetes-csi/csi-proxy/client/groups/disk/v1beta1 "
28
29
29
30
fsv1alpha1 "github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1alpha1"
30
31
fsclientv1alpha1 "github.com/kubernetes-csi/csi-proxy/client/groups/filesystem/v1alpha1"
31
32
32
- volumev1alpha1 "github.com/kubernetes-csi/csi-proxy/client/api/volume/v1alpha1 "
33
- volumeclientv1alpha1 "github.com/kubernetes-csi/csi-proxy/client/groups/volume/v1alpha1 "
33
+ volumev1beta1 "github.com/kubernetes-csi/csi-proxy/client/api/volume/v1beta1 "
34
+ volumeclientv1beta1 "github.com/kubernetes-csi/csi-proxy/client/groups/volume/v1beta1 "
34
35
36
+ "k8s.io/klog"
35
37
utilexec "k8s.io/utils/exec"
36
38
"k8s.io/utils/mount"
37
39
)
@@ -40,20 +42,20 @@ var _ mount.Interface = &CSIProxyMounter{}
40
42
41
43
type CSIProxyMounter struct {
42
44
FsClient * fsclientv1alpha1.Client
43
- DiskClient * diskclientv1alpha1 .Client
44
- VolumeClient * volumeclientv1alpha1 .Client
45
+ DiskClient * diskclientv1beta1 .Client
46
+ VolumeClient * volumeclientv1beta1 .Client
45
47
}
46
48
47
49
func NewCSIProxyMounter () (* CSIProxyMounter , error ) {
48
50
fsClient , err := fsclientv1alpha1 .NewClient ()
49
51
if err != nil {
50
52
return nil , err
51
53
}
52
- diskClient , err := diskclientv1alpha1 .NewClient ()
54
+ diskClient , err := diskclientv1beta1 .NewClient ()
53
55
if err != nil {
54
56
return nil , err
55
57
}
56
- volumeClient , err := volumeclientv1alpha1 .NewClient ()
58
+ volumeClient , err := volumeclientv1beta1 .NewClient ()
57
59
if err != nil {
58
60
return nil , err
59
61
}
@@ -142,30 +144,37 @@ func (mounter *CSIProxyMounter) Unmount(target string) error {
142
144
}
143
145
144
146
func (mounter * CSIProxyMounter ) GetDevicePath (deviceName string , partition string , volumeKey string ) (string , error ) {
145
- getDiskNumberRequest := & diskv1alpha1.GetDiskNumberByNameRequest {
146
- DiskName : deviceName ,
147
- }
148
- getDiskNumberResponse , err := mounter .DiskClient .GetDiskNumberByName (context .Background (), getDiskNumberRequest )
147
+ id := "page83"
148
+ listRequest := & diskv1beta1.ListDiskIDsRequest {}
149
+ diskIDsResponse , err := mounter .DiskClient .ListDiskIDs (context .Background (), listRequest )
149
150
if err != nil {
150
151
return "" , err
151
152
}
152
- return getDiskNumberResponse .DiskNumber , nil
153
+ diskIDsMap := diskIDsResponse .GetDiskIDs ()
154
+ for diskNum , diskInfo := range diskIDsMap {
155
+ klog .V (4 ).Infof ("found disknum %s, diskInfo %v" , diskNum , diskInfo )
156
+ idValue , found := diskInfo .Identifiers [id ]
157
+ if found && strings .Contains (idValue , deviceName ) {
158
+ return diskNum , nil
159
+ }
160
+ }
161
+ return "" , fmt .Errorf ("could not find disk number for device %s" , deviceName )
153
162
154
163
}
155
164
156
165
// FormatAndMount accepts the source disk number, target path to mount, the fstype to format with and options to be used.
157
166
// After formatting, it will mount the disk to target path on the host
158
167
func (mounter * CSIProxyMounter ) FormatAndMount (source string , target string , fstype string , options []string ) error {
159
168
// Call PartitionDisk CSI proxy call to partition the disk and return the volume id
160
- partionDiskRequest := & diskv1alpha1 .PartitionDiskRequest {
169
+ partionDiskRequest := & diskv1beta1 .PartitionDiskRequest {
161
170
DiskID : source ,
162
171
}
163
172
164
173
_ , err := mounter .DiskClient .PartitionDisk (context .Background (), partionDiskRequest )
165
174
if err != nil {
166
175
return err
167
176
}
168
- volumeIDsRequest := & volumev1alpha1 .ListVolumesOnDiskRequest {
177
+ volumeIDsRequest := & volumev1beta1 .ListVolumesOnDiskRequest {
169
178
DiskId : source ,
170
179
}
171
180
volumeIdResponse , err := mounter .VolumeClient .ListVolumesOnDisk (context .Background (), volumeIDsRequest )
@@ -174,15 +183,15 @@ func (mounter *CSIProxyMounter) FormatAndMount(source string, target string, fst
174
183
}
175
184
// TODO: consider partitions and choose the right partition.
176
185
volumeID := volumeIdResponse .VolumeIds [0 ]
177
- isVolumeFormattedRequest := & volumev1alpha1 .IsVolumeFormattedRequest {
186
+ isVolumeFormattedRequest := & volumev1beta1 .IsVolumeFormattedRequest {
178
187
VolumeId : volumeID ,
179
188
}
180
189
isVolumeFormattedResponse , err := mounter .VolumeClient .IsVolumeFormatted (context .Background (), isVolumeFormattedRequest )
181
190
if err != nil {
182
191
return err
183
192
}
184
193
if ! isVolumeFormattedResponse .Formatted {
185
- formatVolumeRequest := & volumev1alpha1 .FormatVolumeRequest {
194
+ formatVolumeRequest := & volumev1beta1 .FormatVolumeRequest {
186
195
VolumeId : volumeID ,
187
196
// TODO (jingxu97): Accept the filesystem and other options
188
197
}
@@ -192,7 +201,7 @@ func (mounter *CSIProxyMounter) FormatAndMount(source string, target string, fst
192
201
}
193
202
}
194
203
// Mount the volume by calling the CSI proxy call.
195
- mountVolumeRequest := & volumev1alpha1 .MountVolumeRequest {
204
+ mountVolumeRequest := & volumev1beta1 .MountVolumeRequest {
196
205
VolumeId : volumeID ,
197
206
Path : target ,
198
207
}
0 commit comments