Description of problem: Register two accounts(wsun+mem1 and xtian+t2) and create a domain with wsun+mem1,and then try to add xtian+t2 to domain,but it failed,it shows "The requested cloud user was not found." Version-Release number of selected component (if applicable): fork_ami_membership_origin_ui_73_754 How reproducible: Always Steps to Reproduce: 1.Register two accounts wsun+mem1 and xtian+t2) 2.Create a domain with wsun+mem1 3.Add xtian+t2 to domain Actual results: [wsun@dhcp-8-229 ~]$ curl -k -H 'Accept: application/xml' -u wsun+mem1:change https://ec2-50-17-73-69.compute-1.amazonaws.com/broker/rest/domains/wsunmemfor754/members -d role=view -d login="xtian+t2" -X POST <?xml version="1.0" encoding="UTF-8"?> <response> <status>not_found</status> <type nil="true"></type> <data> <datum nil="true"></datum> </data> <messages> <message> <severity>error</severity> <text>The requested cloud user was not found.</text> <exit-code>1</exit-code> <field nil="true"></field> </message> </messages> <version>1.6</version> <api-version>1.6</api-version> <supported-api-versions> <supported-api-version>1.0</supported-api-version> <supported-api-version>1.1</supported-api-version> <supported-api-version>1.2</supported-api-version> <supported-api-version>1.3</supported-api-version> <supported-api-version>1.4</supported-api-version> <supported-api-version>1.5</supported-api-version> <supported-api-version>1.6</supported-api-version> </supported-api-versions> </response> [wsun@dhcp-8-229 ~]$ curl -k -H 'Accept: application/xml' -u wsun+mem1:change https://ec2-50-17-73-69.compute-1.amazonaws.com/broker/rest/domains/wsunmemfor754/members -d role=view -d id=520484f6bfa134aadf000018 -X POST <?xml version="1.0" encoding="UTF-8"?> <response> <status>not_found</status> <type nil="true"></type> <data> <datum nil="true"></datum> </data> <messages> <message> <severity>error</severity> <text>The requested cloud user was not found.</text> <exit-code>1</exit-code> <field nil="true"></field> </message> </messages> <version>1.6</version> <api-version>1.6</api-version> <supported-api-versions> <supported-api-version>1.0</supported-api-version> <supported-api-version>1.1</supported-api-version> <supported-api-version>1.2</supported-api-version> <supported-api-version>1.3</supported-api-version> <supported-api-version>1.4</supported-api-version> <supported-api-version>1.5</supported-api-version> <supported-api-version>1.6</supported-api-version> </supported-api-versions> </response> Expected results: Could add memeber to domain successfully Additional info: <link> <rel>Add one or more members to this domain</rel> <method>POST</method> <href>https://ec2-50-17-73-69.compute-1.amazonaws.com/broker/rest/domains/wsunmemfor754/members</href> <required-params> <param> <name>role</name> <type>string</type> <description>The role the user should have on the domain</description> <valid-options> <valid-option>view</valid-option> <valid-option>edit</valid-option> <valid-option>admin</valid-option> </valid-options> <invalid-options/> </param> </required-params> <optional-params> <optional-param> <name>id</name> <type>string</type> <description>Unique identifier of the user</description> <valid-options/> <default-value nil="true"></default-value> </optional-param> <optional-param> <name>login</name> <type>string</type> <description>The user's login attribute</description> <valid-options/> <default-value nil="true"></default-value> </optional-param> </optional-params> </link>
Fixed in https://github.com/smarterclayton/origin-server/commit/2248cb9544d00dfa5cf740288297506f180e754b, will have a new fork ami today.
Will check this bug after having a new fork ami.
Check this bug on fork_ami_membership_origin_ui_73_765,can add member to domain with id parameter,but can not add member to domain with login parameter. Result: 1.Can not add member to domain with login parameter [wsun@dhcp-8-229 ~]$ curl -k -H 'Accept: application/xml' -u wsun+mem1:changeme https://ec2-54-234-254-66.compute-1.amazonaws.com/broker/rest/domains/wsunmemfork765/members -d role=view -d login="wsun+mem3" -X POST <?xml version="1.0" encoding="UTF-8"?> <response> <status>not_found</status> <type nil="true"></type> <data> <datum nil="true"></datum> </data> <messages> <message> <severity>error</severity> <text>The requested cloud user was not found.</text> <exit-code>1</exit-code> <field nil="true"></field> </message> </messages> </response> 2.Can add member to domain with id parameter [wsun@dhcp-8-229 ~]$ curl -k -H 'Accept: application/xml' -u wsun+mem1:changeme https://ec2-54-234-254-66.compute-1.amazonaws.com/broker/rest/domains/wsunmemfork765/members -d role=admin -d id=520aea2e421286619b000002 -X POST <?xml version="1.0" encoding="UTF-8"?> <response> <status>ok</status> <type>members</type> <data> <member> <type>user</type> <name>wsun+mem1</name> <id>520ae338421286ef7e000001</id> <role>admin</role> <explicit-role nil="true"></explicit-role> <from> <from> <type>owner</type> <role>admin</role> </from> </from> <owner>true</owner> </member> <member> <type>user</type> <name>wsun+mem3</name> <id>520aea2e421286619b000002</id> <role>admin</role> <explicit-role>admin</explicit-role> <owner>false</owner> </member> </data> <messages> <message> <severity>info</severity> <text>Added 1 member.</text> <exit-code>0</exit-code> <field nil="true"></field> </message> </messages> <version>1.6</version> </response>
Tested this bug on devenv_3659,the bug still can be reproduced.
Try this with a user without '+' in the login attribute. Probably a different bug if so.
Check this bug on devenv_3671. Could add member successfully with a user without '+' in the login attribute,but could not add member with a user with '+' in the login attribute. Result: [wsun@dhcp-8-229 ~]$ curl -k -H 'Accept: application/xml' -u wsun:changeme https://ec2-67-202-24-81.compute-1.amazonaws.com/broker/rest/domains/wsun3671/members -d role=view -d login=yujzhang -X POST <?xml version="1.0" encoding="UTF-8"?> <response> <status>ok</status> <type>members</type> <data> <member> <type>user</type> <name>wsun</name> <id>521186ad183b46471100003a</id> <role>admin</role> <explicit-role nil="true"></explicit-role> <from> <from> <type>owner</type> <role>admin</role> </from> </from> <owner>true</owner> </member> <member> <type>user</type> <name>yujzhang</name> <id>521186be183b46471100003c</id> <role>view</role> <explicit-role>view</explicit-role> <owner>false</owner> </member> </data> <messages> <message> <severity>info</severity> <text>Added 1 member.</text> <exit-code>0</exit-code> <field nil="true"></field> </message> </messages> <version>1.6</version> <api-version>1.6</api-version> <supported-api-versions> <supported-api-version>1.0</supported-api-version> <supported-api-version>1.1</supported-api-version> <supported-api-version>1.2</supported-api-version> <supported-api-version>1.3</supported-api-version> <supported-api-version>1.4</supported-api-version> <supported-api-version>1.5</supported-api-version> <supported-api-version>1.6</supported-api-version> </supported-api-versions> </response> [wsun@dhcp-8-229 ~]$ [wsun@dhcp-8-229 ~]$ curl -k -H 'Accept: application/xml' -u wsun:changeme https://ec2-67-202-24-81.compute-1.amazonaws.com/broker/rest/domains/wsun3671/members -d role=edit -d login=wsun+t1@redhat.com -X POST <?xml version="1.0" encoding="UTF-8"?> <response> <status>not_found</status> <type nil="true"></type> <data> <datum nil="true"></datum> </data> <messages> <message> <severity>error</severity> <text>The requested cloud user was not found.</text> <exit-code>1</exit-code> <field nil="true"></field> </message> </messages> <version>1.6</version> <api-version>1.6</api-version> <supported-api-versions> <supported-api-version>1.0</supported-api-version> <supported-api-version>1.1</supported-api-version> <supported-api-version>1.2</supported-api-version> <supported-api-version>1.3</supported-api-version> <supported-api-version>1.4</supported-api-version> <supported-api-version>1.5</supported-api-version> <supported-api-version>1.6</supported-api-version> </supported-api-versions> </response>
The "+" is being encoded using URL encoding rules, which means it is turned into a space. Use "%2B" from curl instead of "+" to try and submit those.
Commit pushed to master at https://github.com/openshift/origin-server https://github.com/openshift/origin-server/commit/68f5ddf96b74a03175db3852e6405e8e8a92a9a5 Bug 995371 - Direct parameters to members were ignored Members controller now accepts: :members => [{:id, :role, :login}] as array of members :member => {:id, :role, :login} as single member :id, :role, :login => single member