RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1866294 - dsidm fails to delete an organizationalUnit entry.
Summary: dsidm fails to delete an organizationalUnit entry.
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: 389-ds-base
Version: 8.2
Hardware: x86_64
OS: Linux
unspecified
medium
Target Milestone: rc
: 8.0
Assignee: mreynolds
QA Contact: RHDS QE
URL:
Whiteboard: sync-to-jira
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-08-05 10:35 UTC by Têko Mihinto
Modified: 2023-12-15 18:43 UTC (History)
8 users (show)

Fixed In Version: 389-ds-devel-1.4-8040020201105165416.866effaa
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-05-18 15:45:26 UTC
Type: Bug
Target Upstream Version:
Embargoed:
pm-rhel: mirror+


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github 389ds 389-ds-base issues 4284 0 None closed dsidm fails to delete an organizationalUnit entry. 2021-02-01 15:26:28 UTC
Red Hat Knowledge Base (Solution) 5795011 0 None None None 2021-02-10 21:42:13 UTC

Description Têko Mihinto 2020-08-05 10:35:10 UTC
Description of problem:
Trying to delete an organizationalUnit entry fails with this message:
Error: object of type 'Namespace' has no len()

Version-Release number of selected component (if applicable):
# cat /etc/redhat-release 
Red Hat Enterprise Linux release 8.2 (Ootpa)
# rpm -qa | grep 389-ds-base
389-ds-base-1.4.2.12-2.module+el8dsrv+6428+6e54c518.x86_64
389-ds-base-libs-1.4.2.12-2.module+el8dsrv+6428+6e54c518.x86_64
#

How reproducible:
Always.

Steps to Reproduce:
1. Create the entry:
# dsidm -D "cn=Directory Manager" -b dc=example,dc=com ldap://localhost:389 organizationalunit create
Enter password for cn=Directory Manager on ldap://localhost:389:
Enter value for ou : toDelete
Successfully created toDelete
#

2. Get the entry details:
# dsidm -D "cn=Directory Manager" -b dc=example,dc=com ldap://localhost:389 organizationalunit get toDelete
Enter password for cn=Directory Manager on ldap://localhost:389:
dn: ou=toDelete,dc=example,dc=com
objectClass: top
objectClass: organizationalunit
ou: toDelete

#

3. Try to delete the entry:
# dsidm -D "cn=Directory Manager" -b dc=example,dc=com ldap://localhost:389 organizationalunit delete "ou=toDelete,dc=example,dc=com"
Enter password for cn=Directory Manager on ldap://localhost:389:
Error: object of type 'Namespace' has no len()
#
# dsidm -D "cn=Directory Manager" -b dc=example,dc=com ldap://localhost:389 organizationalunit delete ou=toDelete,dc=example,dc=com
Enter password for cn=Directory Manager on ldap://localhost:389:
Error: object of type 'Namespace' has no len()
#

Actual results:
The command fails.

Expected results:
The command should work.

Additional info:

Comment 1 mreynolds 2020-08-05 13:54:12 UTC
Upstream ticket:
https://pagure.io/389-ds-base/issue/51231

Comment 2 mreynolds 2020-08-31 18:56:00 UTC
I can not reproduce this with the latest version for 1.4.2 and up.  This must have been fixed in a different bug/ticket.  I will try and find out which one, but it would be useful if the customer can add "-v" to the dsidm command so we can see where it's failing in the code.  Then I verify where and when it got fixed.

Comment 4 Têko Mihinto 2020-09-07 07:29:11 UTC
# dsidm -v -D "cn=Directory Manager" -b dc=example,dc=com ldap://localhost:1389 organizationalunit delete ou=toDelete,dc=example,dc=com
DEBUG: The 389 Directory Server Identity Manager
DEBUG: Inspired by works of: ITS, The University of Adelaide
DEBUG: dsrc path: /root/.dsrc
DEBUG: dsrc container path: /data/config/container.inf
DEBUG: dsrc instances: []
DEBUG: dsrc no such section: slapd-ldap://localhost:1389
DEBUG: Called with: Namespace(basedn='dc=example,dc=com', binddn='cn=Directory Manager', bindpw=None, dn='ou=toDelete,dc=example,dc=com', func=<function delete at 0x7f52003876a8>, instance='ldap://localhost:1389', json=False, prompt=False, pwdfile=None, starttls=False, verbose=True)
DEBUG: Instance details: {'uri': 'ldap://localhost:1389', 'basedn': 'dc=example,dc=com', 'binddn': 'cn=Directory Manager', 'bindpw': None, 'saslmech': None, 'tls_cacertdir': None, 'tls_cert': None, 'tls_key': None, 'tls_reqcert': 1, 'starttls': False, 'prompt': False, 'pwdfile': None, 'args': {'ldapurl': 'ldap://localhost:1389', 'root-dn': 'cn=Directory Manager'}}
DEBUG: SER_SERVERID_PROP not provided, assuming non-local instance
DEBUG: Allocate <class 'lib389.DirSrv'> with ldap://localhost:1389
DEBUG: Allocate <class 'lib389.DirSrv'> with <HOSTNAME>.localdomain:389
DEBUG: Allocate <class 'lib389.DirSrv'> with <HOSTNAME>.localdomain:389
Enter password for cn=Directory Manager on ldap://localhost:1389:
DEBUG: SER_SERVERID_PROP not provided, assuming non-local instance
DEBUG: Allocate <class 'lib389.DirSrv'> with ldap://localhost:1389
DEBUG: Allocate <class 'lib389.DirSrv'> with <HOSTNAME>.localdomain:389
DEBUG: Allocate <class 'lib389.DirSrv'> with <HOSTNAME>.localdomain:389
DEBUG: open(): Connecting to uri ldap://localhost:1389
DEBUG: open(): bound as cn=Directory Manager
DEBUG: object of type 'Namespace' has no len()
Traceback (most recent call last):
  File "/usr/sbin/dsidm", line 130, in <module>
    result = args.func(inst, dsrc_inst['basedn'], log, args)
  File "/usr/lib/python3.6/site-packages/lib389/cli_idm/organizationalunit.py", line 46, in delete
    dn = _get_arg( args, msg="Enter dn to delete")
  File "/usr/lib/python3.6/site-packages/lib389/cli_idm/__init__.py", line 14, in _get_arg
    if args is not None and len(args) > 0:
TypeError: object of type 'Namespace' has no len()
ERROR: Error: object of type 'Namespace' has no len()

Comment 6 mreynolds 2020-11-01 16:05:23 UTC
Was fixed in https://github.com/389ds/389-ds-base/issues/4212

Comment 10 bsmejkal 2020-11-25 18:43:36 UTC
==================================================================================== test session starts =====================================================================================
platform linux -- Python 3.6.8, pytest-6.1.2, py-1.9.0, pluggy-0.13.1 -- /usr/bin/python3.6
cachedir: .pytest_cache
metadata: {'Python': '3.6.8', 'Platform': 'Linux-4.18.0-252.el8.x86_64-x86_64-with-redhat-8.4-Ootpa', 'Packages': {'pytest': '6.1.2', 'py': '1.9.0', 'pluggy': '0.13.1'}, 'Plugins': {'metadata': '1.10.0', 'html': '3.0.0', 'libfaketime': '0.1.2'}}
389-ds-base: 1.4.3.16-2.module+el8.4.0+8803+fd0f8fe3
nss: 3.53.1-11.el8_2
nspr: 4.25.0-2.el8_2
openldap: 2.4.46-16.el8
cyrus-sasl: 2.1.27-5.el8
FIPS: disabled
rootdir: /mnt/tests/rhds/tests/upstream/ds/dirsrvtests, configfile: pytest.ini
plugins: metadata-1.10.0, html-3.0.0, libfaketime-0.1.2
collected 1 item                                                                                                                                                                             

dirsrvtests/tests/suites/clu/dsidm_organizational_unit_test.py::test_dsidm_organizational_unit_delete PASSED                                                                           [100%]

===================================================================================== 1 passed in 8.46s =====================================================================================

Marking as Verified:Tested.

Comment 13 sgouvern 2020-11-30 19:37:54 UTC
Verified:tested in 389-ds-base: 1.4.3.16-2.module+el8.4.0+8803+fd0f8fe3 (see comment 10)
-> marking as VERIFIED

Comment 15 errata-xmlrpc 2021-05-18 15:45:26 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 (389-ds:1.4 bug fix and enhancement update), 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-2021:1835


Note You need to log in before you can comment on or make changes to this bug.