Skip to content

Commit ab58e53

Browse files
authored
mounter rclone uts (#218)
* publish dev tag Signed-off-by: Ashima-Ashima1 <[email protected]> * unit tests of controller server Signed-off-by: Ashima-Ashima1 <[email protected]> * mounter rclone uts Signed-off-by: Ashima-Ashima1 <[email protected]> * mounter rclone uts Signed-off-by: Ashima-Ashima1 <[email protected]> --------- Signed-off-by: Ashima-Ashima1 <[email protected]>
1 parent c75e900 commit ab58e53

File tree

8 files changed

+205
-338
lines changed

8 files changed

+205
-338
lines changed

.secrets.baseline

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"files": "go.sum|^.secrets.baseline$",
44
"lines": null
55
},
6-
"generated_at": "2025-06-16T06:40:07Z",
6+
"generated_at": "2025-06-19T04:22:57Z",
77
"plugins_used": [
88
{
99
"name": "AWSKeyDetector"
@@ -182,7 +182,7 @@
182182
"hashed_secret": "39f69c278f46165447f30d10acf54277aaa3d5fc",
183183
"is_secret": false,
184184
"is_verified": false,
185-
"line_number": 92,
185+
"line_number": 100,
186186
"type": "Secret Keyword",
187187
"verified_result": null
188188
},
@@ -199,7 +199,7 @@
199199
{
200200
"hashed_secret": "2e7a7ee14caebf378fc32d6cf6f557f347c96773",
201201
"is_verified": false,
202-
"line_number": 362,
202+
"line_number": 78,
203203
"type": "Secret Keyword",
204204
"verified_result": null
205205
}

go.mod

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ require (
2020
github.com/stretchr/testify v1.10.0
2121
go.uber.org/zap v1.27.0
2222
golang.org/x/net v0.41.0
23-
google.golang.org/grpc v1.72.0
23+
google.golang.org/grpc v1.73.0
2424
google.golang.org/protobuf v1.36.6
2525
k8s.io/api v0.33.1
2626
k8s.io/apimachinery v0.33.1
@@ -31,7 +31,7 @@ require (
3131
)
3232

3333
require (
34-
cel.dev/expr v0.20.0 // indirect
34+
cel.dev/expr v0.23.0 // indirect
3535
github.com/BurntSushi/toml v1.0.0 // indirect
3636
github.com/IBM/secret-utils-lib v1.1.13 // indirect
3737
github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab // indirect
@@ -132,26 +132,26 @@ require (
132132
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
133133
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 // indirect
134134
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 // indirect
135-
go.opentelemetry.io/otel v1.34.0 // indirect
135+
go.opentelemetry.io/otel v1.35.0 // indirect
136136
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 // indirect
137137
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 // indirect
138-
go.opentelemetry.io/otel/metric v1.34.0 // indirect
139-
go.opentelemetry.io/otel/sdk v1.34.0 // indirect
140-
go.opentelemetry.io/otel/trace v1.34.0 // indirect
138+
go.opentelemetry.io/otel/metric v1.35.0 // indirect
139+
go.opentelemetry.io/otel/sdk v1.35.0 // indirect
140+
go.opentelemetry.io/otel/trace v1.35.0 // indirect
141141
go.opentelemetry.io/proto/otlp v1.4.0 // indirect
142142
go.uber.org/multierr v1.11.0 // indirect
143143
golang.org/x/arch v0.8.0 // indirect
144144
golang.org/x/crypto v0.39.0 // indirect
145145
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect
146-
golang.org/x/oauth2 v0.27.0 // indirect
146+
golang.org/x/oauth2 v0.28.0 // indirect
147147
golang.org/x/sync v0.15.0 // indirect
148148
golang.org/x/sys v0.33.0 // indirect
149149
golang.org/x/term v0.32.0 // indirect
150150
golang.org/x/text v0.26.0 // indirect
151151
golang.org/x/time v0.9.0 // indirect
152152
golang.org/x/tools v0.33.0 // indirect
153-
google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a // indirect
154-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a // indirect
153+
google.golang.org/genproto/googleapis/api v0.0.0-20250324211829-b45e905df463 // indirect
154+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463 // indirect
155155
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
156156
gopkg.in/inf.v0 v0.9.1 // indirect
157157
gopkg.in/yaml.v2 v2.4.0 // indirect

go.sum

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
cel.dev/expr v0.20.0 h1:OunBvVCfvpWlt4dN7zg3FM6TDkzOePe1+foGJ9AXeeI=
2-
cel.dev/expr v0.20.0/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw=
1+
cel.dev/expr v0.23.0 h1:wUb94w6OYQS4uXraxo9U+wUAs9jT47Xvl4iPgAwM2ss=
2+
cel.dev/expr v0.23.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw=
33
github.com/BurntSushi/toml v1.0.0 h1:dtDWrepsVPfW9H/4y7dDgFc2MBUSeJhlaDtK13CxFlU=
44
github.com/BurntSushi/toml v1.0.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
55
github.com/IBM/go-sdk-core/v5 v5.20.1 h1:dzeyifh1kfRLw8VfAIIS5okZYuqLTqplPZP/Kcsgdlo=
@@ -299,20 +299,20 @@ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.5
299299
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0/go.mod h1:HDBUsEjOuRC0EzKZ1bSaRGZWUBAzo+MhAcUUORSr4D0=
300300
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU=
301301
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q=
302-
go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY=
303-
go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI=
302+
go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ=
303+
go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y=
304304
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 h1:Vh5HayB/0HHfOQA7Ctx69E/Y/DcQSMPpKANYVMQ7fBA=
305305
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0/go.mod h1:cpgtDBaqD/6ok/UG0jT15/uKjAY8mRA53diogHBg3UI=
306306
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 h1:5pojmb1U1AogINhN3SurB+zm/nIcusopeBNp42f45QM=
307307
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0/go.mod h1:57gTHJSE5S1tqg+EKsLPlTWhpHMsWlVmer+LA926XiA=
308-
go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ=
309-
go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE=
310-
go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A=
311-
go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU=
312-
go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk=
313-
go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w=
314-
go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k=
315-
go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE=
308+
go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M=
309+
go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE=
310+
go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY=
311+
go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg=
312+
go.opentelemetry.io/otel/sdk/metric v1.35.0 h1:1RriWBmCKgkeHEhM7a2uMjMUfP7MsOF5JpUCaEqEI9o=
313+
go.opentelemetry.io/otel/sdk/metric v1.35.0/go.mod h1:is6XYCUMpcKi+ZsOvfluY5YstFnhW0BidkR+gL+qN+w=
314+
go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs=
315+
go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc=
316316
go.opentelemetry.io/proto/otlp v1.4.0 h1:TA9WRvW6zMwP+Ssb6fLoUIuirti1gGbP28GcKG1jgeg=
317317
go.opentelemetry.io/proto/otlp v1.4.0/go.mod h1:PPBWZIP98o2ElSqI35IHfu7hIhSwvc5N38Jw8pXuGFY=
318318
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
@@ -341,8 +341,8 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY
341341
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
342342
golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw=
343343
golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA=
344-
golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M=
345-
golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
344+
golang.org/x/oauth2 v0.28.0 h1:CrgCKl8PPAVtLnU3c+EDw6x11699EWlsDeWNWKdIOkc=
345+
golang.org/x/oauth2 v0.28.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
346346
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
347347
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
348348
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -380,12 +380,12 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T
380380
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
381381
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
382382
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
383-
google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a h1:nwKuGPlUAt+aR+pcrkfFRrTU1BVrSmYyYMxYbUIVHr0=
384-
google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a/go.mod h1:3kWAYMk1I75K4vykHtKt2ycnOgpA6974V7bREqbsenU=
385-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a h1:51aaUVRocpvUOSQKM6Q7VuoaktNIaMCLuhZB6DKksq4=
386-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a/go.mod h1:uRxBH1mhmO8PGhU89cMcHaXKZqO+OfakD8QQO0oYwlQ=
387-
google.golang.org/grpc v1.72.0 h1:S7UkcVa60b5AAQTaO6ZKamFp1zMZSU0fGDK2WZLbBnM=
388-
google.golang.org/grpc v1.72.0/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM=
383+
google.golang.org/genproto/googleapis/api v0.0.0-20250324211829-b45e905df463 h1:hE3bRWtU6uceqlh4fhrSnUyjKHMKB9KrTLLG+bc0ddM=
384+
google.golang.org/genproto/googleapis/api v0.0.0-20250324211829-b45e905df463/go.mod h1:U90ffi8eUL9MwPcrJylN5+Mk2v3vuPDptd5yyNUiRR8=
385+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463 h1:e0AIkUUhxyBKh6ssZNrAMeqhA7RKUj42346d1y02i2g=
386+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
387+
google.golang.org/grpc v1.73.0 h1:VIWSmpI2MegBtTuFt5/JWy2oXxtjJ/e89Z70ImfD2ok=
388+
google.golang.org/grpc v1.73.0/go.mod h1:50sbHOUqWoCQGI8V2HQLJM0B+LMlIUjNSZmow7EVBQc=
389389
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
390390
google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
391391
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

pkg/mounter/mounter-rclone.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,14 @@ const (
4949
envAuth = "true"
5050
)
5151

52+
var (
53+
MakeDir = os.MkdirAll
54+
CreateFile = os.Create
55+
Chmod = os.Chmod
56+
57+
createConfigWrap = createConfig
58+
)
59+
5260
func NewRcloneMounter(secretMap map[string]string, mountOptions []string, mounterUtils utils.MounterUtils) Mounter {
5361
klog.Info("-newRcloneMounter-")
5462

@@ -204,7 +212,7 @@ func (rclone *RcloneMounter) Mount(source string, target string) error {
204212

205213
payload := fmt.Sprintf(`{"path":"%s","bucket":"%s","mounter":"%s","args":%s}`, target, bucketName, constants.RClone, jsonData)
206214

207-
response, err := createCOSCSIMounterRequest(payload, "http://unix/api/cos/mount")
215+
response, err := mounterRequest(payload, "http://unix/api/cos/mount")
208216
klog.Info("Worker Mounting...", response)
209217
if err != nil {
210218
return err
@@ -223,7 +231,7 @@ func (rclone *RcloneMounter) Unmount(target string) error {
223231

224232
payload := fmt.Sprintf(`{"path":"%s"}`, target)
225233

226-
response, err := createCOSCSIMounterRequest(payload, "http://unix/api/cos/unmount")
234+
response, err := mounterRequest(payload, "http://unix/api/cos/unmount")
227235
klog.Info("Worker Unmounting...", response)
228236
if err != nil {
229237
return err
@@ -234,16 +242,8 @@ func (rclone *RcloneMounter) Unmount(target string) error {
234242
return rclone.MounterUtils.FuseUnmount(target)
235243
}
236244

237-
var createConfigFunc = createConfig
238-
239-
// Function that wraps writePass
240-
var createConfigWrap = func(configPathWithVolID string, rclone *RcloneMounter) error {
241-
return createConfigFunc(configPathWithVolID, rclone)
242-
}
243-
244245
func createConfig(configPathWithVolID string, rclone *RcloneMounter) error {
245-
var accessKey string
246-
var secretKey string
246+
var accessKey, secretKey string
247247
keys := strings.Split(rclone.AccessKeys, ":")
248248
if len(keys) == 2 {
249249
accessKey = keys[0]
@@ -265,14 +265,14 @@ func createConfig(configPathWithVolID string, rclone *RcloneMounter) error {
265265

266266
configParams = append(configParams, rclone.MountOptions...)
267267

268-
if err := os.MkdirAll(configPathWithVolID, 0755); // #nosec G301: used for rclone
268+
if err := MakeDir(configPathWithVolID, 0755); // #nosec G301: used for rclone
269269
err != nil {
270270
klog.Errorf("RcloneMounter Mount: Cannot create directory %s: %v", configPathWithVolID, err)
271271
return err
272272
}
273273

274274
configFile := path.Join(configPathWithVolID, configFileName)
275-
file, err := os.Create(configFile) // #nosec G304 used for rclone
275+
file, err := CreateFile(configFile) // #nosec G304 used for rclone
276276
if err != nil {
277277
klog.Errorf("RcloneMounter Mount: Cannot create file %s: %v", configFileName, err)
278278
return err
@@ -283,7 +283,7 @@ func createConfig(configPathWithVolID string, rclone *RcloneMounter) error {
283283
}
284284
}()
285285

286-
err = os.Chmod(configFile, 0644) // #nosec G302: used for rclone
286+
err = Chmod(configFile, 0644) // #nosec G302: used for rclone
287287
if err != nil {
288288
klog.Errorf("RcloneMounter Mount: Cannot change permissions on file %s: %v", configFileName, err)
289289
return err

0 commit comments

Comments
 (0)