https://pulp.plan.io/https://pulp.plan.io/favicon.ico2019-02-15T15:56:45ZPulpPulp - Issue #4425: It's possible to create a duplicate login if name is differenthttps://pulp.plan.io/issues/4425?journal_id=339732019-02-15T15:56:45Zdaviddavis
<ul></ul><p>Thanks for the bug report. Do you have steps on how to produce this error? I tried to create duplicate users but wasn't able to:</p>
<pre><code>$ pulp-admin auth user create --login admin --password tester
A resource with the ID "admin" already exists.
(pulp) [vagrant@pulp2 testrepo]$ pulp-admin -vvvv auth user create --login admin --password tester
2019-02-15 15:49:53,109 - DEBUG - sending POST request to /pulp/api/v2/users/
2019-02-15 15:49:53,243 - INFO - POST request to /pulp/api/v2/users/ with parameters {"login": "admin", "password": "tester", "name": "admin"}
2019-02-15 15:49:53,243 - INFO - Response status : 409
2019-02-15 15:49:53,244 - INFO - Response body :
{
"exception": null,
"traceback": null,
"_href": "/pulp/api/v2/users/",
"resource_id": "admin",
"error_message": "Duplicate resource: admin",
"http_request_method": "POST",
"http_status": 409,
"error": {
"code": "PLP0018",
"data": {
"resource_id": "admin"
},
"description": "Duplicate resource: admin",
"sub_errors": []
}
}
2019-02-15 15:49:53,244 - ERROR - Exception occurred:
href: /pulp/api/v2/users/
method: POST
status: 409
error: Duplicate resource: admin
traceback: None
data: {u'resource_id': u'admin', u'error': {u'code': u'PLP0018', u'data': {u'resource_id': u'admin'}, u'description': u'Duplicate resource: admin', u'sub_errors': []}}
A resource with the ID "admin" already exists.
</code></pre> Pulp - Issue #4425: It's possible to create a duplicate login if name is differenthttps://pulp.plan.io/issues/4425?journal_id=340532019-02-19T15:34:25Zdaviddavis
<ul></ul><p>Also, are you using katello or just straight pulp?</p> Pulp - Issue #4425: It's possible to create a duplicate login if name is differenthttps://pulp.plan.io/issues/4425?journal_id=340602019-02-19T16:07:04Zflamarion
<ul></ul><p>I will update this shortly, I'm on PTO and without access to the environment now.<br>
Some preliminary information:</p>
<p>I'm using Pulp, straight Pulp.</p>
<p>Both users have been added via command pulp-admin, the only difference was the --name parameter.</p>
<p>The first one I've performed the command standalone, to test, the second one was part of a batch where the --login and --name was the same value.</p> Pulp - Issue #4425: It's possible to create a duplicate login if name is differenthttps://pulp.plan.io/issues/4425?journal_id=341632019-02-22T15:27:26Zipanova@redhat.comipanova@redhat.com
<ul></ul><pre><code>$ pulp-admin auth user create --login ina --name ina
Warning: path should have mode 0700 because it may contain sensitive information: /home/ipanova/.pulp/
Enter password for user [ina] :
Re-enter password for user [ina]:
Password cannot be empty
Enter password for user [ina] :
Re-enter password for user [ina]:
Passwords do not match
Enter password for user [ina] :
Re-enter password for user [ina]:
User [ina] successfully created
[ipanova@ina pulp_rpm]$ pulp-admin auth user create --login ina --name lala
Warning: path should have mode 0700 because it may contain sensitive information: /home/ipanova/.pulp/
Enter password for user [ina] :
Re-enter password for user [ina]:
User [ina] successfully created
> use pulp_database
switched to db pulp_database
> db.users.find({'login':'ina'})
{ "_id" : ObjectId("5c7014b845ef4860c90098d3"), "login" : "ina", "name" : "lala", "password" : "3sDJdy2Nl9E=,zq95pmfDLDprsLnhpPvRetbRvKc407SiYtj98baRlDY=", "roles" : [ ], "_ns" : "users" }
{ "_id" : ObjectId("5c7014ac45ef4860ca413414"), "login" : "ina", "name" : "ina", "password" : "DQgL9rCTLxQ=,DYFZltiC79LfORURspfA4cwK8xQB0MXLfl5n2BTvCe8=", "roles" : [ ], "_ns" : "users" }
>
[ipanova@ina pulp_rpm]$ pulp-admin auth user delete --login ina
Warning: path should have mode 0700 because it may contain sensitive information: /home/ipanova/.pulp/
An internal error occurred on the Pulp server:
RequestException: DELETE request
on /pulp/api/v2/users/ina/ failed with 500 - 2 items returned, instead of 1
</code></pre> Pulp - Issue #4425: It's possible to create a duplicate login if name is differenthttps://pulp.plan.io/issues/4425?journal_id=341712019-02-22T15:47:57Zttereshcttereshc@redhat.com
<ul><li><strong>Subject</strong> changed from <i>Not possible delete duplicate login</i> to <i>pulp-admin allows to create a duplicate login if name is different</i></li><li><strong>Description</strong> updated (<a title="View differences" href="/journals/34171/diff?detail_id=34884">diff</a>)</li><li><strong>Triaged</strong> changed from <i>No</i> to <i>Yes</i></li></ul> Pulp - Issue #4425: It's possible to create a duplicate login if name is differenthttps://pulp.plan.io/issues/4425?journal_id=341732019-02-22T15:49:19Zttereshcttereshc@redhat.com
<ul><li><strong>Subject</strong> changed from <i>pulp-admin allows to create a duplicate login if name is different</i> to <i>It's possible to create a duplicate login if name is different</i></li></ul> Pulp - Issue #4425: It's possible to create a duplicate login if name is differenthttps://pulp.plan.io/issues/4425?journal_id=341822019-02-22T15:57:18Zttereshcttereshc@redhat.com
<ul></ul><p>A source of the problem <a href="https://github.com/pulp/pulp/blob/2-master/server/pulp/server/db/model/__init__.py#L1184" class="external">https://github.com/pulp/pulp/blob/2-master/server/pulp/server/db/model/__init__.py#L1184</a></p> Pulp - Issue #4425: It's possible to create a duplicate login if name is differenthttps://pulp.plan.io/issues/4425?journal_id=342172019-02-25T10:18:36Zttereshcttereshc@redhat.com
<ul><li><strong>Status</strong> changed from <i>NEW</i> to <i>POST</i></li><li><strong>Sprint</strong> set to <i>Sprint 49</i></li></ul><p><a href="https://github.com/pulp/pulp/pull/3893" class="external">https://github.com/pulp/pulp/pull/3893</a></p> Pulp - Issue #4425: It's possible to create a duplicate login if name is differenthttps://pulp.plan.io/issues/4425?journal_id=342182019-02-25T10:31:05Zttereshcttereshc@redhat.com
<ul></ul><p>@flamarion,<br>
The PR in the comment above fixes indexes in the DB, so you can remove a duplicate user manually (see below) and then apply the patch to create a new index.</p>
<p>To remove a duplicated user:<br>
1. Go to the machine where MongoDB is running (or see options for mongo client to connect to a remote host)<br>
2. Find all the duplicated users for your login</p>
<pre><code>$ mongo --eval 'db.users.find({login: "your_login_of_interest"})' pulp_database
</code></pre>
<p>3. Remove a user with a specific name</p>
<pre><code>$ mongo --eval 'db.users.remove({login: "your_login_of_interest", name: "name_of_user_to_remove"})' pulp_database
</code></pre>
<p>4. On the machine where Pulp is installed and running apply a patch from the PR from the comment above, stop pulp services and run <code>sudo -u apache pulp-manage-db</code>.<br>
If there are no duplicates left, this command will run successfully and the new index will be created.</p>
<p>Alternatively, if you don't want to apply patches, you can create the index manually. On the machine with MongoDB run</p>
<pre><code>$ mongo --eval 'db.users.createIndex({login: 1}, {unique: true, background: false})' pulp_database
</code></pre> Pulp - Issue #4425: It's possible to create a duplicate login if name is differenthttps://pulp.plan.io/issues/4425?journal_id=342202019-02-25T10:42:09Zipanova@redhat.comipanova@redhat.com
<ul><li><strong>Assignee</strong> set to <i>ttereshc</i></li></ul> Pulp - Issue #4425: It's possible to create a duplicate login if name is differenthttps://pulp.plan.io/issues/4425?journal_id=342352019-02-25T13:41:49Zflamarion
<ul></ul><p><a class="user active" href="https://pulp.plan.io/users/281">ttereshc</a></p>
<p>First of all, thank you.</p>
<p>I've applied the index manually and I did manage to remove the duplicated user as well.</p>
<pre><code class="python syntaxhl" data-language="python"><span class="n">mongo</span> <span class="o">--</span><span class="nb">eval</span> <span class="s">'db.users.find({login: "fjorg1"})'</span> <span class="n">pulp_database</span>
<span class="n">MongoDB</span> <span class="n">shell</span> <span class="n">version</span> <span class="n">v4</span><span class="p">.</span><span class="mf">0.5</span>
<span class="n">connecting</span> <span class="n">to</span><span class="p">:</span> <span class="n">mongodb</span><span class="p">:</span><span class="o">//</span><span class="mf">127.0</span><span class="p">.</span><span class="mf">0.1</span><span class="p">:</span><span class="mi">27017</span><span class="o">/</span><span class="n">pulp_database</span><span class="err">?</span><span class="n">gssapiServiceName</span><span class="o">=</span><span class="n">mongodb</span>
<span class="n">Implicit</span> <span class="n">session</span><span class="p">:</span> <span class="n">session</span> <span class="p">{</span> <span class="s">"id"</span> <span class="p">:</span> <span class="n">UUID</span><span class="p">(</span><span class="s">"83aa4e1f-5d19-411f-a845-aa3f327c684d"</span><span class="p">)</span> <span class="p">}</span>
<span class="n">MongoDB</span> <span class="n">server</span> <span class="n">version</span><span class="p">:</span> <span class="mf">4.0</span><span class="p">.</span><span class="mi">5</span>
<span class="p">{</span> <span class="s">"_id"</span> <span class="p">:</span> <span class="n">ObjectId</span><span class="p">(</span><span class="s">"5c655d678204e1263792fa0d"</span><span class="p">),</span> <span class="s">"login"</span> <span class="p">:</span> <span class="s">"fjorg1"</span><span class="p">,</span> <span class="s">"name"</span> <span class="p">:</span> <span class="s">"fjorg1"</span><span class="p">,</span> <span class="s">"password"</span> <span class="p">:</span> <span class="s">"BiRAu2DtSYc=,XSDRI7AN0WUi45RPCcXXiWvSmPpv8IBFuOMTcU/h8SU="</span><span class="p">,</span> <span class="s">"roles"</span> <span class="p">:</span> <span class="p">[</span> <span class="s">"super-users"</span> <span class="p">],</span> <span class="s">"_ns"</span> <span class="p">:</span> <span class="s">"users"</span> <span class="p">}</span>
<span class="p">{</span> <span class="s">"_id"</span> <span class="p">:</span> <span class="n">ObjectId</span><span class="p">(</span><span class="s">"5c655af78204e12638d9854b"</span><span class="p">),</span> <span class="s">"login"</span> <span class="p">:</span> <span class="s">"fjorg1"</span><span class="p">,</span> <span class="s">"name"</span> <span class="p">:</span> <span class="s">"Flamarion Jorge"</span><span class="p">,</span> <span class="s">"password"</span> <span class="p">:</span> <span class="s">"YSwVIg7qJu0=,1GCrJOo3NBOQu37rNfw4uvWYYUdI4p7KGsL3kSjg3Jw="</span><span class="p">,</span> <span class="s">"roles"</span> <span class="p">:</span> <span class="p">[</span> <span class="s">"super-users"</span> <span class="p">],</span> <span class="s">"_ns"</span> <span class="p">:</span> <span class="s">"users"</span> <span class="p">}</span>
<span class="n">mongo</span> <span class="o">--</span><span class="nb">eval</span> <span class="s">'db.users.remove({login: "fjorg1", name: "fjorg1"})'</span> <span class="n">pulp_database</span>
<span class="n">MongoDB</span> <span class="n">shell</span> <span class="n">version</span> <span class="n">v4</span><span class="p">.</span><span class="mf">0.5</span>
<span class="n">connecting</span> <span class="n">to</span><span class="p">:</span> <span class="n">mongodb</span><span class="p">:</span><span class="o">//</span><span class="mf">127.0</span><span class="p">.</span><span class="mf">0.1</span><span class="p">:</span><span class="mi">27017</span><span class="o">/</span><span class="n">pulp_database</span><span class="err">?</span><span class="n">gssapiServiceName</span><span class="o">=</span><span class="n">mongodb</span>
<span class="n">Implicit</span> <span class="n">session</span><span class="p">:</span> <span class="n">session</span> <span class="p">{</span> <span class="s">"id"</span> <span class="p">:</span> <span class="n">UUID</span><span class="p">(</span><span class="s">"71219f1d-3886-48d3-9672-14d597748210"</span><span class="p">)</span> <span class="p">}</span>
<span class="n">MongoDB</span> <span class="n">server</span> <span class="n">version</span><span class="p">:</span> <span class="mf">4.0</span><span class="p">.</span><span class="mi">5</span>
<span class="n">WriteResult</span><span class="p">({</span> <span class="s">"nRemoved"</span> <span class="p">:</span> <span class="mi">1</span> <span class="p">})</span>
<span class="n">mongo</span> <span class="o">--</span><span class="nb">eval</span> <span class="s">'db.users.createIndex({login: 1}, {unique: true, background: false})'</span> <span class="n">pulp_database</span>
<span class="n">MongoDB</span> <span class="n">shell</span> <span class="n">version</span> <span class="n">v4</span><span class="p">.</span><span class="mf">0.5</span>
<span class="n">connecting</span> <span class="n">to</span><span class="p">:</span> <span class="n">mongodb</span><span class="p">:</span><span class="o">//</span><span class="mf">127.0</span><span class="p">.</span><span class="mf">0.1</span><span class="p">:</span><span class="mi">27017</span><span class="o">/</span><span class="n">pulp_database</span><span class="err">?</span><span class="n">gssapiServiceName</span><span class="o">=</span><span class="n">mongodb</span>
<span class="n">Implicit</span> <span class="n">session</span><span class="p">:</span> <span class="n">session</span> <span class="p">{</span> <span class="s">"id"</span> <span class="p">:</span> <span class="n">UUID</span><span class="p">(</span><span class="s">"ea9583d4-c1d6-49a9-a462-c9f96486e75b"</span><span class="p">)</span> <span class="p">}</span>
<span class="n">MongoDB</span> <span class="n">server</span> <span class="n">version</span><span class="p">:</span> <span class="mf">4.0</span><span class="p">.</span><span class="mi">5</span>
<span class="p">{</span>
<span class="s">"createdCollectionAutomatically"</span> <span class="p">:</span> <span class="n">false</span><span class="p">,</span>
<span class="s">"numIndexesBefore"</span> <span class="p">:</span> <span class="mi">3</span><span class="p">,</span>
<span class="s">"numIndexesAfter"</span> <span class="p">:</span> <span class="mi">4</span><span class="p">,</span>
<span class="s">"ok"</span> <span class="p">:</span> <span class="mi">1</span>
<span class="p">}</span>
<span class="n">mongo</span> <span class="o">--</span><span class="nb">eval</span> <span class="s">'db.users.find({login: "fjorg1"})'</span> <span class="n">pulp_database</span>
<span class="n">MongoDB</span> <span class="n">shell</span> <span class="n">version</span> <span class="n">v4</span><span class="p">.</span><span class="mf">0.5</span>
<span class="n">connecting</span> <span class="n">to</span><span class="p">:</span> <span class="n">mongodb</span><span class="p">:</span><span class="o">//</span><span class="mf">127.0</span><span class="p">.</span><span class="mf">0.1</span><span class="p">:</span><span class="mi">27017</span><span class="o">/</span><span class="n">pulp_database</span><span class="err">?</span><span class="n">gssapiServiceName</span><span class="o">=</span><span class="n">mongodb</span>
<span class="n">Implicit</span> <span class="n">session</span><span class="p">:</span> <span class="n">session</span> <span class="p">{</span> <span class="s">"id"</span> <span class="p">:</span> <span class="n">UUID</span><span class="p">(</span><span class="s">"856d5cb3-cd9a-494f-8e84-7f51c9f60527"</span><span class="p">)</span> <span class="p">}</span>
<span class="n">MongoDB</span> <span class="n">server</span> <span class="n">version</span><span class="p">:</span> <span class="mf">4.0</span><span class="p">.</span><span class="mi">5</span>
<span class="p">{</span> <span class="s">"_id"</span> <span class="p">:</span> <span class="n">ObjectId</span><span class="p">(</span><span class="s">"5c655af78204e12638d9854b"</span><span class="p">),</span> <span class="s">"login"</span> <span class="p">:</span> <span class="s">"fjorg1"</span><span class="p">,</span> <span class="s">"name"</span> <span class="p">:</span> <span class="s">"Flamarion Jorge"</span><span class="p">,</span> <span class="s">"password"</span> <span class="p">:</span> <span class="s">"YSwVIg7qJu0=,1GCrJOo3NBOQu37rNfw4uvWYYUdI4p7KGsL3kSjg3Jw="</span><span class="p">,</span> <span class="s">"roles"</span> <span class="p">:</span> <span class="p">[</span> <span class="s">"super-users"</span> <span class="p">],</span> <span class="s">"_ns"</span> <span class="p">:</span> <span class="s">"users"</span> <span class="p">}</span>
</code></pre> Pulp - Issue #4425: It's possible to create a duplicate login if name is differenthttps://pulp.plan.io/issues/4425?journal_id=342742019-02-25T20:10:03Zttereshcttereshc@redhat.com
<ul><li><strong>Status</strong> changed from <i>POST</i> to <i>MODIFIED</i></li></ul><p>Applied in changeset <a class="changeset" title="Add unique index for login closes #4425 https://pulp.plan.io/issues/4425" href="https://pulp.plan.io/projects/pulp/repository/pulp/revisions/0afb65cc165172f6ae7d42e88a994b7346c7e3d6">pulp|0afb65cc165172f6ae7d42e88a994b7346c7e3d6</a>.</p> Pulp - Issue #4425: It's possible to create a duplicate login if name is differenthttps://pulp.plan.io/issues/4425?journal_id=348122019-03-14T16:16:12Zttereshcttereshc@redhat.com
<ul><li><strong>Platform Release</strong> set to <i>2.19.0</i></li></ul> Pulp - Issue #4425: It's possible to create a duplicate login if name is differenthttps://pulp.plan.io/issues/4425?journal_id=348302019-03-14T16:23:13Zttereshcttereshc@redhat.com
<ul><li><strong>Sprint/Milestone</strong> changed from <i>2.18.0</i> to <i>2.19.0</i></li></ul> Pulp - Issue #4425: It's possible to create a duplicate login if name is differenthttps://pulp.plan.io/issues/4425?journal_id=349832019-03-20T09:03:11Zttereshcttereshc@redhat.com
<ul><li><strong>Status</strong> changed from <i>MODIFIED</i> to <i>5</i></li></ul> Pulp - Issue #4425: It's possible to create a duplicate login if name is differenthttps://pulp.plan.io/issues/4425?journal_id=354042019-04-02T20:52:23Zttereshcttereshc@redhat.com
<ul><li><strong>Status</strong> changed from <i>5</i> to <i>CLOSED - CURRENTRELEASE</i></li></ul> Pulp - Issue #4425: It's possible to create a duplicate login if name is differenthttps://pulp.plan.io/issues/4425?journal_id=376242019-04-15T20:02:16Zbmbouterbmbouter@redhat.com
<ul><li><strong>Tags</strong> <i>Pulp 2</i> added</li></ul>