Hi Everybody:
Here is a python approach that I am experimenting with based on reading the source code. It seems to work but it is re-entrant? Does this make sense? Is there a better way (like ldapmodify)? #!/usr/bin/env python # # Emulate the ipa command line interface in a script so that # to batch some updates. # import sys import shlex from ipalib import api, cli # ================================================================ # bootstrap # ================================================================ def bootstrap(): """ Bootstrap the script. I hope that all of this stuff is re-entrant. Also, api is defined in __init__.py. """ api.bootstrap_with_global_options(context='cli') for klass in cli.cli_plugins: api.register(klass) api.load_plugins() api.finalize() if not 'config_loaded' in api.env: raise NotConfiguredError() # ================================================================ # cmd # ================================================================ def cmd(cmd): """ Execute an IPA command. The command is entered as a string. I use shlex.split to break it into an args list. @param cmd The command to execute (as a string). """ print print '# %s' % ('='*64) print '# CMD: %s' % (cmd) print '# %s' % ('='*64) args=shlex.split(cmd) api.Backend.cli.run(args) if __name__ == '__main__': bootstrap() # Some test calls. cmd('help') cmd('help user') cmd('help user-mod') # Update the fields. users=['bob', 'carol', 'ted', 'alice'] mod='--street="123 Main Street" --city="Anytown" --state="AK" --postalcode="12345"' for user in users: cmd('user-mod %s %s' % (user, mod)) Regards, Joe From: Joe Linoff Sent: Tuesday, June 26, 2012 3:04 PM To: freeipa-users@redhat.com Cc: Joe Linoff Subject: What is the best way to make batch changes to the LDAP? Hi Everybody: I need to change the mailing address information for a group of employees in the FreeIPA LDAP and would like to do it in a script. I know that I can do it using "ipa user-mod" in a shell script but I was wondering whether I could use python. Does using python make sense? If so, are there any examples that I can look at? It seems that I could import ipalib and go from there but I am not sure if there is a simple interface for doing user modifications. Any help would be greatly appreciated. Thanks, Joe
_______________________________________________ Freeipa-users mailing list Freeipa-users@redhat.com https://www.redhat.com/mailman/listinfo/freeipa-users