Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions rgw/admin/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ type User struct {
Caps []UserCapSpec `json:"caps"`
OpMask string `json:"op_mask" url:"op-mask"`
DefaultPlacement string `json:"default_placement" url:"default-placement"`
DefaultStorageClass string `json:"default_storage_class"`
DefaultStorageClass string `json:"default_storage_class" url:"default-storage-class"`
PlacementTags []interface{} `json:"placement_tags"`
BucketQuota QuotaSpec `json:"bucket_quota"`
UserQuota QuotaSpec `json:"user_quota"`
Expand Down Expand Up @@ -162,7 +162,7 @@ func (api *API) CreateUser(ctx context.Context, user User) (User, error) {
}

// valid parameters not supported by go-ceph: system, exclusive, placement-tags
body, err := api.call(ctx, http.MethodPut, "/user", valueToURLParams(user, []string{"uid", "display-name", "default-placement", "email", "key-type", "access-key", "secret-key", "user-caps", "tenant", "generate-key", "max-buckets", "suspended", "op-mask", "account-id", "account-root"}))
body, err := api.call(ctx, http.MethodPut, "/user", valueToURLParams(user, []string{"uid", "display-name", "default-placement", "default-storage-class", "email", "key-type", "access-key", "secret-key", "user-caps", "tenant", "generate-key", "max-buckets", "suspended", "op-mask", "account-id", "account-root"}))
if err != nil {
return User{}, err
}
Expand Down Expand Up @@ -198,7 +198,7 @@ func (api *API) ModifyUser(ctx context.Context, user User) (User, error) {
}

// valid parameters not supported by go-ceph: system, placement-tags
body, err := api.call(ctx, http.MethodPost, "/user", valueToURLParams(user, []string{"uid", "display-name", "default-placement", "email", "generate-key", "access-key", "secret-key", "key-type", "max-buckets", "suspended", "op-mask", "account-id", "account-root"}))
body, err := api.call(ctx, http.MethodPost, "/user", valueToURLParams(user, []string{"uid", "display-name", "default-placement", "default-storage-class", "email", "generate-key", "access-key", "secret-key", "key-type", "max-buckets", "suspended", "op-mask", "account-id", "account-root"}))
if err != nil {
return User{}, err
}
Expand Down
15 changes: 10 additions & 5 deletions rgw/admin/user_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,7 @@ type mockDoType func(req *http.Request) (*http.Response, error)
// Do is the mock client's `Do` func
func (m *mockClient) Do(req *http.Request) (*http.Response, error) { return m.mockDo(req) }

var (
fakeUserResponse = []byte(`
var fakeUserResponse = []byte(`
Comment thread
anoopcs9 marked this conversation as resolved.
{
"tenant": "",
"user_id": "dashboard-admin",
Expand Down Expand Up @@ -61,7 +60,7 @@ var (
"system": "true",
"admin": "false",
"default_placement": "ssd",
"default_storage_class": "",
"default_storage_class": "ONEZONE_IA",
"placement_tags": [],
"bucket_quota": {
"enabled": false,
Expand All @@ -81,7 +80,6 @@ var (
"type": "rgw",
"mfa_ids": []
}`)
)

func TestUnmarshal(t *testing.T) {
u := &User{}
Expand All @@ -108,7 +106,7 @@ func (suite *RadosGWTestSuite) TestUser() {

suite.T().Run("user creation success", func(_ *testing.T) {
usercaps := "users=read"
user, err := co.CreateUser(context.Background(), User{ID: "leseb", DisplayName: "This is leseb", Email: "leseb@example.com", UserCaps: usercaps, OpMask: "delete", DefaultPlacement: "default-placement"})
user, err := co.CreateUser(context.Background(), User{ID: "leseb", DisplayName: "This is leseb", Email: "leseb@example.com", UserCaps: usercaps, OpMask: "delete", DefaultPlacement: "default-placement", DefaultStorageClass: "STANDARD"})
assert.NoError(suite.T(), err)
assert.Equal(suite.T(), "leseb@example.com", user.Email)
})
Expand Down Expand Up @@ -254,6 +252,13 @@ func TestGetUserMockAPI(t *testing.T) {
assert.NoError(t, err)
assert.Equal(t, "ssd", u.DefaultPlacement, u)
})
t.Run("test get user default storage class", func(t *testing.T) {
api, err := New("127.0.0.1", "accessKey", "secretKey", returnMockClient())
assert.NoError(t, err)
u, err := api.GetUser(context.TODO(), User{ID: "dashboard-admin"})
assert.NoError(t, err)
assert.Equal(t, "ONEZONE_IA", u.DefaultStorageClass, u)
})
t.Run("test get user with access key", func(t *testing.T) {
api, err := New("127.0.0.1", "accessKey", "secretKey", returnMockClient())
assert.NoError(t, err)
Expand Down