aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/s3iam/s3iam_filer_store.go29
-rw-r--r--weed/s3iam/s3iam_filer_store_test.go7
2 files changed, 13 insertions, 23 deletions
diff --git a/weed/s3iam/s3iam_filer_store.go b/weed/s3iam/s3iam_filer_store.go
index 22bce2bc4..045681a99 100644
--- a/weed/s3iam/s3iam_filer_store.go
+++ b/weed/s3iam/s3iam_filer_store.go
@@ -33,7 +33,7 @@ func (ifs *IAMFilerStore) LoadIAMConfig(config *iam_pb.S3ApiConfiguration) error
if err != nil {
return err
}
- err = ifs.loadIAMConfigFromEntryExtended(&resp.Entry.Extended, config)
+ err = ifs.loadIAMConfigFromEntry(resp.Entry.Content, config)
if err != nil {
return err
}
@@ -51,14 +51,12 @@ func (ifs *IAMFilerStore) SaveIAMConfig(config *iam_pb.S3ApiConfiguration) error
Collection: "",
Replication: "",
},
- Extended: make(map[string][]byte),
+ Content: []byte{},
}
-
- err := ifs.saveIAMConfigToEntryExtended(&entry.Extended, config)
+ err := ifs.saveIAMConfigToEntry(entry.Content, config)
if err != nil {
return err
}
-
_, err = filer_pb.LookupEntry(*ifs.client, ifs.getIAMConfigRequest())
if err == filer_pb.ErrNotFound {
err = filer_pb.CreateEntry(*ifs.client, &filer_pb.CreateEntryRequest{
@@ -81,24 +79,17 @@ func (ifs *IAMFilerStore) SaveIAMConfig(config *iam_pb.S3ApiConfiguration) error
return nil
}
-func (ifs *IAMFilerStore) loadIAMConfigFromEntryExtended(extended *map[string][]byte, config *iam_pb.S3ApiConfiguration) error {
- for _, ident := range *extended {
- identity := &iam_pb.Identity{}
- if err := proto.Unmarshal(ident, identity); err != nil {
- return err
- }
- config.Identities = append(config.Identities, identity)
+func (ifs *IAMFilerStore) loadIAMConfigFromEntry(content []byte, config *iam_pb.S3ApiConfiguration) error {
+ if err := proto.Unmarshal(content, config); err != nil {
+ return err
}
return nil
}
-func (ifs *IAMFilerStore) saveIAMConfigToEntryExtended(extended *map[string][]byte, config *iam_pb.S3ApiConfiguration) error {
- for _, identity := range config.Identities {
- ident, err := proto.Marshal(identity)
- if err != nil {
- return err
- }
- (*extended)[identity.Name] = ident
+func (ifs *IAMFilerStore) saveIAMConfigToEntry(content []byte, config *iam_pb.S3ApiConfiguration) error {
+ content, err := proto.Marshal(config)
+ if err != nil {
+ return err
}
return nil
}
diff --git a/weed/s3iam/s3iam_filer_store_test.go b/weed/s3iam/s3iam_filer_store_test.go
index b87dd4f17..fca83ee92 100644
--- a/weed/s3iam/s3iam_filer_store_test.go
+++ b/weed/s3iam/s3iam_filer_store_test.go
@@ -50,14 +50,13 @@ func TestS3Conf(t *testing.T) {
},
},
}
+ content := []byte{}
+ _ = ifs.saveIAMConfigToEntry(content, s3Conf)
s3ConfSaved := &iam_pb.S3ApiConfiguration{}
- extended := make(map[string][]byte)
- _ = ifs.saveIAMConfigToEntryExtended(&extended, s3Conf)
- _ = ifs.loadIAMConfigFromEntryExtended(&extended, s3ConfSaved)
+ _ = ifs.loadIAMConfigFromEntry(content, s3ConfSaved)
assert.Equal(t, "some_name", s3ConfSaved.Identities[0].Name)
assert.Equal(t, "some_read_only_user", s3ConfSaved.Identities[1].Name)
assert.Equal(t, "some_access_key1", s3ConfSaved.Identities[0].Credentials[0].AccessKey)
assert.Equal(t, "some_secret_key2", s3ConfSaved.Identities[1].Credentials[0].SecretKey)
-
}