Project

General

Profile

Actions

Bug #41368

closed

Feature #39478: mgr/dashboard: new RGW workflows & RGW enhancements

Feature #39477: mgr/dashboard: add/edit missing RGW bucket info

Bug #41180: mgr/dashboard: fix bucket operations with tenant after new bucket utilities implementation

mgr/dashboard: RGW bucket list is not displayed if there is a bucket whose owner is a user in tenant

Added by Kiefer Chang over 4 years ago. Updated about 3 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
Component - RGW
Target version:
% Done:

100%

Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

Steps to reproduce:

  1. Create a user with a tenant.
    1. Navigate to page Object Gateway >> Users >> Create.
    2. Fill in all required fields. But for the Username field, we need to input content like <tenant>$<user>.
    3. A user named <user> will be created within tenant <tenant>. Maybe we can refine the user creation form to allow specifying tenant more explicitly.
    4. Another way is to create user via radosgw-admin. See https://docs.ceph.com/docs/master/radosgw/multitenancy/#examples
  2. Create a bucket and change bucket owner to the user just created
    1. Navigate to page Object Gateway >> Buckets >> Create.
    2. Create a bucket and select the user we just created as owner (user names appears in the form <tenant>$<user>)
    3. After submitting the request, Object Gateway >> Buckets page fails to load the bucket list table.
Following are some findings:
  • If we create a bucket and set its owner to a user within a tenant, listing the bucket via admin OPs API or radosgw-admin command returns bucket name prefixed with tenant name. Here are some information get from CLI.
    # bin/radosgw-admin user list
    2019-08-21T07:42:33.555+0000 7f76026d68c0 -1 WARNING: all dangerous and experimental features are enabled.
    2019-08-21T07:42:33.555+0000 7f76026d68c0 -1 WARNING: all dangerous and experimental features are enabled.
    2019-08-21T07:42:33.555+0000 7f76026d68c0 -1 WARNING: all dangerous and experimental features are enabled.
    [
        "56789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234",
        "testx$9876543210abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
        "foo$bar",
        "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
        "test",
        "testid",
        "dev" 
    ]
    
    # bin/radosgw-admin bucket list
    [
        "foo/test-bucket" 
    ]
    
  • When navigating to Object Gateway >> Buckets, frontend retrieves bucket list first and retrieves information for every bucket.
  • The bucket's name we created is foo/test-bucket, which makes frontend issues GET requests to api/rgw/bucket/foo/test-bucket, which is an unknown path in cherrypy.
  • This should be fixed by escaping bucket name in frontend.

Files

rgw-bucket-list-error.png (85.8 KB) rgw-bucket-list-error.png Kiefer Chang, 08/21/2019 07:51 AM
create-user-within-tenant.png (89.6 KB) create-user-within-tenant.png Kiefer Chang, 08/21/2019 07:53 AM
create-bucket-with-owner-form.png (78.6 KB) create-bucket-with-owner-form.png Kiefer Chang, 08/21/2019 07:54 AM
Actions

Also available in: Atom PDF