-
Notifications
You must be signed in to change notification settings - Fork 669
ldap_group_links.list() not usable #2738
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Sorry, the output was stripped, it looks like this:
|
The create cli method is also not usable, as it does not accept a cn or filter parameter, one of those is required. The delete cli method expects a cn parameter, but no provider. This api is deprecated. The current one also requires a provider and either cn or filter. Shall I create separate issues for that or broaden the scope of this one? |
Thanks @zapp42, I'll admit the maintainers here never had a use case for this and the new methods were just a port of the old deprecated ones. I'd be happy to review a PR or look at this at a later stage since it's a Premium features and thus not really on our radar so much. |
|
Setting Since |
Description of the problem, including code/CLI snippet
The current implementation of the list() method for the ldap_group_links api is not usable. The cli throws an exceptions and the api returns unusable data, because an id is missing.
$ gitlab group-ldap-group-link list --group-id xxxxxx
[, , , , , , ]
Traceback (most recent call last):
File "/home/rof/.local/bin/gitlab", line 8, in
sys.exit(main())
^^^^^^
File "/home/rof/.local/lib/python3.12/site-packages/gitlab/cli.py", line 389, in main
gitlab.v4.cli.run(
File "/home/rof/.local/lib/python3.12/site-packages/gitlab/v4/cli.py", line 556, in run
printer.display_list(data, fields, verbose=verbose)
File "/home/rof/.local/lib/python3.12/site-packages/gitlab/v4/cli.py", line 518, in display_list
self.display(get_dict(obj, fields), verbose=verbose, obj=obj)
File "/home/rof/.local/lib/python3.12/site-packages/gitlab/v4/cli.py", line 487, in display
id = getattr(obj, obj._id_attr)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/rof/.local/lib/python3.12/site-packages/gitlab/base.py", line 134, in getattr
raise AttributeError(message)
AttributeError: 'GroupLDAPGroupLink' object has no attribute 'id'
I think the problem is, that the ldap_group_links api has two possible (exclusive) id fields: cn and filter. I did not find a way to reflect this in python-gitlab. As we do not use ldap filters in our Gitlab instance, my "fix" was to add
_id_attr = "cn"
to the GroupLDAPGroupLink class.
Expected Behavior
The data returned shall contain either a cn or filter field.
Actual Behavior
Returned data only has the provider attribute, which is useless without the other field(s).
Specifications
The text was updated successfully, but these errors were encountered: