Skip to content

Commit 3d4482c

Browse files
committed
fix: remove hashDir if no files updated
1 parent 7313ee8 commit 3d4482c

File tree

6 files changed

+70
-74
lines changed

6 files changed

+70
-74
lines changed

pkg/mounter/oss/ossfs.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -128,10 +128,9 @@ func (f *fuseOssfs) MakeAuthConfig(o *Options, m metadata.MetadataProvider) (*ut
128128
authCfg.RoleName = o.RoleName
129129
default:
130130
// fixed AKSK
131-
passwdFile := utils.GetPasswdFileName(f.Name())
132131
if o.AkID != "" && o.AkSecret != "" {
133132
authCfg.Secrets = map[string]string{
134-
passwdFile: fmt.Sprintf("%s:%s:%s", o.Bucket, o.AkID, o.AkSecret),
133+
utils.GetPasswdFileName(f.Name()): fmt.Sprintf("%s:%s:%s", o.Bucket, o.AkID, o.AkSecret),
135134
}
136135
return authCfg, nil
137136
}
@@ -142,10 +141,10 @@ func (f *fuseOssfs) MakeAuthConfig(o *Options, m metadata.MetadataProvider) (*ut
142141
}
143142
// token secret for RunD
144143
authCfg.Secrets = map[string]string{
145-
filepath.Join(passwdFile, KeyAccessKeyId): o.AccessKeyId,
146-
filepath.Join(passwdFile, KeyAccessKeySecret): o.AccessKeySecret,
147-
filepath.Join(passwdFile, KeySecurityToken): o.SecurityToken,
148-
filepath.Join(passwdFile, KeyExpiration): o.Expiration,
144+
KeyAccessKeyId: o.AccessKeyId,
145+
KeyAccessKeySecret: o.AccessKeySecret,
146+
KeySecurityToken: o.SecurityToken,
147+
KeyExpiration: o.Expiration,
149148
}
150149

151150
}

pkg/mounter/oss/ossfs2.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,6 @@ func (f *fuseOssfs2) MakeAuthConfig(o *Options, m metadata.MetadataProvider) (au
105105
authCfg.RoleName = o.RoleName
106106
case "":
107107
// fixed AKSK
108-
passwdFile := utils.GetPasswdFileName(f.Name())
109108
if o.AkID != "" && o.AkSecret != "" {
110109
authCfg.Secrets = map[string]string{
111110
utils.GetPasswdFileName(f.Name()): fmt.Sprintf("--oss_access_key_id=%s\n--oss_access_key_secret=%s", o.AkID, o.AkSecret),
@@ -119,9 +118,9 @@ func (f *fuseOssfs2) MakeAuthConfig(o *Options, m metadata.MetadataProvider) (au
119118
}
120119
// token secret for RunD
121120
authCfg.Secrets = map[string]string{
122-
filepath.Join(passwdFile, KeyAccessKeyId): o.AccessKeyId,
123-
filepath.Join(passwdFile, KeyAccessKeySecret): o.AccessKeySecret,
124-
filepath.Join(passwdFile, KeySecurityToken): o.SecurityToken,
121+
KeyAccessKeyId: o.AccessKeyId,
122+
KeyAccessKeySecret: o.AccessKeySecret,
123+
KeySecurityToken: o.SecurityToken,
125124
}
126125

127126
default:

pkg/mounter/proxy/server/ossfs/utils.go

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ func rotateTokenFiles(dir string, secrets map[string]string) (rotated bool, err
2020
var fileUpdate bool
2121
tokenKey := []string{oss.KeyAccessKeyId, oss.KeyAccessKeySecret, oss.KeySecurityToken, oss.KeyExpiration}
2222
for _, key := range tokenKey {
23-
val := secrets[filepath.Join(utils.GetPasswdFileName("ossfs"), key)]
23+
val := secrets[key]
2424
if val == "" {
2525
err = fmt.Errorf("invalid authorization. %s is empty", key)
2626
klog.Error(err)
@@ -44,13 +44,13 @@ func rotateTokenFiles(dir string, secrets map[string]string) (rotated bool, err
4444
func prepareCredentialFiles(target string, secrets map[string]string) (file, dir string, options []string, err error) {
4545
// fixed AKSK
4646
hashDir := utils.GetPasswdHashDir(target)
47-
err = os.MkdirAll(hashDir, 0o644)
48-
if err != nil {
49-
klog.Errorf("mkdirall hashdir failed %v", err)
50-
return
51-
}
5247

5348
if passwd := secrets[utils.GetPasswdFileName("ossfs")]; passwd != "" {
49+
err = os.MkdirAll(hashDir, 0o644)
50+
if err != nil {
51+
klog.Errorf("mkdirall hashdir failed %v", err)
52+
return
53+
}
5454
_, err = utils.WriteFileWithLock(filepath.Join(hashDir, utils.GetPasswdFileName("ossfs")), []byte(passwd), 0o600)
5555
if err != nil {
5656
return
@@ -61,21 +61,20 @@ func prepareCredentialFiles(target string, secrets map[string]string) (file, dir
6161
}
6262

6363
// token
64-
var token bool
65-
token, err = rotateTokenFiles(hashDir, secrets)
66-
if err != nil {
67-
return
68-
}
69-
if token {
70-
dir = hashDir
64+
if token := secrets[oss.KeySecurityToken]; token != "" {
65+
tokenDir := filepath.Join(hashDir, utils.GetPasswdFileName("ossfs"))
66+
err = os.MkdirAll(tokenDir, 0o644)
67+
if err != nil {
68+
klog.Errorf("mkdirall tokenDir failed %v", err)
69+
return
70+
}
71+
_, err = rotateTokenFiles(tokenDir, secrets)
72+
if err != nil {
73+
return
74+
}
75+
dir = tokenDir
7176
options = append(options, "passwd_file="+dir)
7277
return
7378
}
74-
75-
// other authorizarion methods
76-
err = os.Remove(hashDir)
77-
if err != nil {
78-
klog.Errorf("removeall hashdir failed %v", err)
79-
}
8079
return
8180
}

pkg/mounter/proxy/server/ossfs/utils_test.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ func TestPrepareCredentialFiles(t *testing.T) {
3939
{
4040
name: "TokenSecretsExists",
4141
secrets: map[string]string{
42-
filepath.Join(OssfsPasswdFile, oss.KeyAccessKeyId): "testAKID",
43-
filepath.Join(OssfsPasswdFile, oss.KeyAccessKeySecret): "testAKSecret",
44-
filepath.Join(OssfsPasswdFile, oss.KeyExpiration): "testExpiration",
45-
filepath.Join(OssfsPasswdFile, oss.KeySecurityToken): "testSecurityToken",
42+
oss.KeyAccessKeyId: "testAKID",
43+
oss.KeyAccessKeySecret: "testAKSecret",
44+
oss.KeyExpiration: "testExpiration",
45+
oss.KeySecurityToken: "testSecurityToken",
4646
},
4747
wantFile: false,
4848
wantDir: true,
@@ -73,10 +73,10 @@ func TestRotateTokenFiles(t *testing.T) {
7373
assert.NoError(t, err)
7474
// case 2: initialize token
7575
secrets = map[string]string{
76-
filepath.Join(OssfsPasswdFile, oss.KeyAccessKeyId): "testAKID",
77-
filepath.Join(OssfsPasswdFile, oss.KeyAccessKeySecret): "testAKSecret",
78-
filepath.Join(OssfsPasswdFile, oss.KeyExpiration): "testExpiration",
79-
filepath.Join(OssfsPasswdFile, oss.KeySecurityToken): "testSecurityToken",
76+
oss.KeyAccessKeyId: "testAKID",
77+
oss.KeyAccessKeySecret: "testAKSecret",
78+
oss.KeyExpiration: "testExpiration",
79+
oss.KeySecurityToken: "testSecurityToken",
8080
}
8181
rotated, err = rotateTokenFiles("/tmp/token-files", secrets)
8282
assert.Equal(t, true, rotated)
@@ -91,10 +91,10 @@ func TestRotateTokenFiles(t *testing.T) {
9191
assert.Equal(t, "testSecurityToken", string(st))
9292
// case 3: rotate token
9393
secrets = map[string]string{
94-
filepath.Join(OssfsPasswdFile, oss.KeyAccessKeyId): "newAKID",
95-
filepath.Join(OssfsPasswdFile, oss.KeyAccessKeySecret): "newAKSecret",
96-
filepath.Join(OssfsPasswdFile, oss.KeyExpiration): "newExpiration",
97-
filepath.Join(OssfsPasswdFile, oss.KeySecurityToken): "newSecurityToken",
94+
oss.KeyAccessKeyId: "newAKID",
95+
oss.KeyAccessKeySecret: "newAKSecret",
96+
oss.KeyExpiration: "newExpiration",
97+
oss.KeySecurityToken: "newSecurityToken",
9898
}
9999
rotated, err = rotateTokenFiles("/tmp/token-files", secrets)
100100
assert.Equal(t, true, rotated)

pkg/mounter/proxy/server/ossfs2/utils.go

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ func rotateTokenFiles(dir string, secrets map[string]string) (rotated bool, err
2020
var fileUpdate bool
2121
tokenKey := []string{oss.KeyAccessKeyId, oss.KeyAccessKeySecret, oss.KeySecurityToken}
2222
for _, key := range tokenKey {
23-
val := secrets[filepath.Join(utils.GetPasswdFileName("ossfs2"), key)]
23+
val := secrets[key]
2424
if val == "" {
2525
err = fmt.Errorf("invalid authorization. %s is empty", key)
2626
klog.Error(err)
@@ -44,13 +44,13 @@ func rotateTokenFiles(dir string, secrets map[string]string) (rotated bool, err
4444
func prepareCredentialFiles(target string, secrets map[string]string) (file, dir string, options []string, err error) {
4545
// fixed AKSK
4646
hashDir := utils.GetPasswdHashDir(target)
47-
err = os.MkdirAll(hashDir, 0o644)
48-
if err != nil {
49-
klog.Errorf("mkdirall hashdir failed %v", err)
50-
return
51-
}
5247

5348
if passwd := secrets[utils.GetPasswdFileName("ossfs2")]; passwd != "" {
49+
err = os.MkdirAll(hashDir, 0o644)
50+
if err != nil {
51+
klog.Errorf("mkdirall hashdir failed %v", err)
52+
return
53+
}
5454
_, err = utils.WriteFileWithLock(filepath.Join(hashDir, utils.GetPasswdFileName("ossfs2")), []byte(passwd), 0o600)
5555
if err != nil {
5656
return
@@ -60,25 +60,24 @@ func prepareCredentialFiles(target string, secrets map[string]string) (file, dir
6060
}
6161

6262
// token
63-
token, err := rotateTokenFiles(hashDir, secrets)
64-
if err != nil {
65-
return
66-
}
67-
if token {
68-
dir = hashDir
63+
if token := secrets[oss.KeySecurityToken]; token != "" {
64+
tokenDir := filepath.Join(hashDir, utils.GetPasswdFileName("ossfs2"))
65+
err = os.MkdirAll(tokenDir, 0o644)
66+
if err != nil {
67+
klog.Errorf("mkdirall tokenDir failed %v", err)
68+
return
69+
}
70+
_, err = rotateTokenFiles(tokenDir, secrets)
71+
if err != nil {
72+
return
73+
}
74+
dir = tokenDir
6975
options = append(options,
70-
fmt.Sprintf("oss_sts_multi_conf_ak_file=%s", filepath.Join(hashDir, oss.KeyAccessKeyId)),
71-
fmt.Sprintf("oss_sts_multi_conf_sk_file=%s", filepath.Join(hashDir, oss.KeyAccessKeySecret)),
72-
fmt.Sprintf("oss_sts_multi_conf_token_file=%s", filepath.Join(hashDir, oss.KeySecurityToken)),
76+
fmt.Sprintf("oss_sts_multi_conf_ak_file=%s", filepath.Join(dir, oss.KeyAccessKeyId)),
77+
fmt.Sprintf("oss_sts_multi_conf_sk_file=%s", filepath.Join(dir, oss.KeyAccessKeySecret)),
78+
fmt.Sprintf("oss_sts_multi_conf_token_file=%s", filepath.Join(dir, oss.KeySecurityToken)),
7379
)
7480
return
7581
}
76-
77-
// other authorizarion methods
78-
err = os.Remove(hashDir)
79-
if err != nil {
80-
klog.Errorf("removeall hashdir failed %v", err)
81-
return
82-
}
8382
return
8483
}

pkg/mounter/proxy/server/ossfs2/utils_test.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ func TestPrepareCredentialFiles(t *testing.T) {
3939
{
4040
name: "TokenSecretsExists",
4141
secrets: map[string]string{
42-
filepath.Join(OssfsPasswdFile, oss.KeyAccessKeyId): "testAKID",
43-
filepath.Join(OssfsPasswdFile, oss.KeyAccessKeySecret): "testAKSecret",
44-
filepath.Join(OssfsPasswdFile, oss.KeySecurityToken): "testSecurityToken",
42+
oss.KeyAccessKeyId: "testAKID",
43+
oss.KeyAccessKeySecret: "testAKSecret",
44+
oss.KeySecurityToken: "testSecurityToken",
4545
},
4646
wantFile: false,
4747
wantDir: true,
@@ -75,10 +75,10 @@ func TestRotateTokenFiles(t *testing.T) {
7575

7676
// case 2: initialize token
7777
secrets = map[string]string{
78-
filepath.Join(OssfsPasswdFile, oss.KeyAccessKeyId): "testAKID",
79-
filepath.Join(OssfsPasswdFile, oss.KeyAccessKeySecret): "testAKSecret",
80-
filepath.Join(OssfsPasswdFile, oss.KeyExpiration): "testExpiration",
81-
filepath.Join(OssfsPasswdFile, oss.KeySecurityToken): "testSecurityToken",
78+
oss.KeyAccessKeyId: "testAKID",
79+
oss.KeyAccessKeySecret: "testAKSecret",
80+
oss.KeyExpiration: "testExpiration",
81+
oss.KeySecurityToken: "testSecurityToken",
8282
}
8383
rotated, err = rotateTokenFiles("/tmp/token-files", secrets)
8484
assert.True(t, true)
@@ -94,10 +94,10 @@ func TestRotateTokenFiles(t *testing.T) {
9494

9595
// case 3: rotate token
9696
secrets = map[string]string{
97-
filepath.Join(OssfsPasswdFile, oss.KeyAccessKeyId): "newAKID",
98-
filepath.Join(OssfsPasswdFile, oss.KeyAccessKeySecret): "newAKSecret",
99-
filepath.Join(OssfsPasswdFile, oss.KeyExpiration): "newExpiration",
100-
filepath.Join(OssfsPasswdFile, oss.KeySecurityToken): "newSecurityToken",
97+
oss.KeyAccessKeyId: "newAKID",
98+
oss.KeyAccessKeySecret: "newAKSecret",
99+
oss.KeyExpiration: "newExpiration",
100+
oss.KeySecurityToken: "newSecurityToken",
101101
}
102102
rotated, err = rotateTokenFiles("/tmp/token-files", secrets)
103103
assert.True(t, rotated)

0 commit comments

Comments
 (0)