Alexander Bokovoy wrote:
> On to, 25 loka 2018, Callum Smith wrote:
>> Dear Alexander,
>>
>> The issue is not with the library (it does no validation of syntax) the
>> error I have provided is verbose directly from the FreeIPA API
>> response.
> 
> It seems the library puts some defaults that aren't accepted by the
> FreeIPA API, unlike a client code we provide. Or may be that's your use
> of it. More below.
> 
>> How would you suggest I re-factor this code so that the error is
>> acceptable?
> 
> Looking at the definition of 'uidnumber' parameter to user object, we
> can see it has minimal value of '1' and it is optional (? at the end of
> the name):
> 
>        Int('uidnumber?',
>            cli_name='uid',
>            label=_('UID'),
>            doc=_('User ID Number (system will assign one if not
> provided)'),
>            minvalue=1,
>        ),
> 
> This means that if you wouldn't provide it in your request, it will be
> automatically generated.

Right, I suggested -1 to see if it would help (it didn't and IPA
rejected it in input validation).

> So a simple approach would be replace explicit addition of named
> arguments by a dict and then adding that dict:
> 
> opts = {}
> if options.uid:
>    opts['uidnumber'] = options.uid
> opts['gidnumber'] = options.primary_gid
> opts['mail'] = options.mail
> opts['home_directory'] = options.home_directory
> opts['user_password'] = options.password
> ...
> 
> client.user_add(...., **opts)
> 
> 
>> (client is initialised and logged in - tested and working with other
>> calls such as user_show etc)
>>
>> client.user_add(
>>    options.username,
>>    options.first_name,
>>    options.last_name,
>>    options.name,
>>    mail=options.mail,
>>    home_directory=options.home_directory,
>>    uidnumber=options.uid if options.uid else -1,
>>    gidnumber=options.primary_gid,
>>    user_password=options.password,
>> )
>> Sorry, this is not an API provided by the FreeIPA project. Please
>> contact authors of python-freeipa (I think it was created by OpenNode
>> people) and report them bugs you see there.
>>
>> https://pypi.org/project/python-freeipa/
>>
>>
>> -- 
>> / Alexander Bokovoy
>> Sr. Principal Software Engineer
>> Security / Identity Management Engineering
>> Red Hat Limited, Finland
>>
> 
_______________________________________________
FreeIPA-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedorahosted.org/archives/list/[email protected]

Reply via email to