Bug 1489391

Summary: RGW User creation inconsistency when given the same 'access_key' name
Product: [Red Hat Storage] Red Hat Ceph Storage Reporter: shilpa <smanjara>
Component: RGWAssignee: Casey Bodley <cbodley>
Status: CLOSED ERRATA QA Contact: Manohar Murthy <mmurthy>
Severity: medium Docs Contact:
Priority: medium    
Version: 3.0CC: anharris, cbodley, ceph-eng-bugs, hnallurv, kbader, kdreyer, mbenjamin, owasserm, sweil, vimishra
Target Milestone: rc   
Target Release: 3.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: RHEL: ceph-12.2.1-14.el7cp Ubuntu: ceph_12.2.1-16redhat1xenial Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-12-05 23:42:05 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description shilpa 2017-09-07 10:43:54 UTC
Description of problem:


Version-Release number of selected component (if applicable):
ceph-radosgw-12.2.0-1.el7cp.x86_64


Steps to Reproduce:
1. Create a user 'testx$tester' in a tenant 
2. Create another user 'testx$testabc' in the same tenant with the same 'access_key' name but different 'secret_key'

Actual results:
The command succeeds, but there is no user by name u2 created. Instead, it replaces the existing u1's access-key and secret-key 

Additional info:
Users before creating 'testx$testabc'


    "testy$test",
    "testx$test1",
    "testuser",
    "testy$tester",
    "testx$tester",
    "synchronization-user"

Existing user:

# radosgw-admin user info --tenant testx --uid tester --cluster ceph1

{
    "user_id": "testx$tester",
    "display_name": "Test User",
    "email": "",
    "suspended": 0,
    "max_buckets": 1000,
    "auid": 0,
    "subusers": [],
    "keys": [
        {
            "user": "testx$tester",
            "access_key": "TESTER",
            "secret_key": "test123"


Create new user 'testabc' with same access_key:

# radosgw-admin --tenant testx --uid testabc --display-name "Test User" --access_key TESTER --secret testabc user create --cluster ceph1

{
    "user_id": "testx$tester", -------> created with a wrong user id 'tester'
    "display_name": "Test User",
    "email": "",
    "suspended": 0,
    "max_buckets": 1000,
    "auid": 0,
    "subusers": [],
    "keys": [
        {
            "user": "testx$tester",
            "access_key": "TESTER",
            "secret_key": "testabc"
        }

The output shows that a user is created. But it is actually replacing the existing user 'testx$tester' secret_key with the the new user's secret_key

# radosgw-admin user info --tenant testx --uid testabc --cluster ceph1
could not fetch user info: no user info saved

# radosgw-admin user info --tenant testx --uid tester --cluster ceph1

{
    "user_id": "testx$tester",
    "display_name": "Test User",
    "email": "",
    "suspended": 0,
    "max_buckets": 1000,
    "auid": 0,
    "subusers": [],
    "keys": [
        {
            "user": "testx$tester",
            "access_key": "TESTER",
            "secret_key": "testabc" --------> the secret_key is replaced 
        }


Expected result:
The user create command should have failed and not replace the secret_key of another user.

Comment 10 errata-xmlrpc 2017-12-05 23:42:05 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2017:3387