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) - }