[Freeipa-devel] [PATCH] 0056 Framework for admin/install tools, with ipa-ldap-updater

Petr Viktorin pviktori at redhat.com
Mon Jun 18 14:18:20 UTC 2012


On 06/04/2012 04:56 PM, Petr Viktorin wrote:
> Currently, FreeIPA's install/admin scripts are long pieces of code
> that aren't very reusable, importable, or testable.
> They have been extended over time with features such as logging and
> error handling, but since each tool was extended individually, there
> is much inconsistency and code duplication.
> This patch starts a framework which the admin tools can use, and
> converts ipa-ldap-updater to use the framework.
>
> In an earlier patch I found that improving a particular functionality in
> all the commands is not workable, so I want to tackle this one tool at a
> time.
> I'm starting with ipa-ldap-updater, because it's pretty small, doesn't
> use DNs (I don't want conflicts with John's work), and has the
> interesting --upgrade option.
>
>
> The framework does these tasks:
> - Parse options
> - Select tool to run (see below)
> - Validate options
> - Set up logging
> - Run the tool code
> - Handle any errors
> - Log success/failure
>
> The base class has some defaults for these that the tools can
> extend/override.
>
>
> To handle the case where one script does two different things
> (ipa-ldap-updater with/without --upgrade, or ipa-server-install
> with/without --uninstall), I want to split the tool in two classes
> rather than have repeated ifs in the code.
> This meant that option parsing (and initializing the parser) has to be
> done before creating an instance of the tool. I use a factory classmethod.
>
>
> I put the admintool base class in ipapython/ as it should be useful for
> ipa-client-install as well.
>
>
>
> First part of the work for:
> https://fedorahosted.org/freeipa/ticket/2652
>
>

Attaching rebased patch.


-- 
Petr³
-------------- next part --------------
A non-text attachment was scrubbed...
Name: freeipa-pviktori-0056-02-Framework-for-admin-install-tools-with-ipa-ldap-upda.patch
Type: text/x-patch
Size: 29951 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/freeipa-devel/attachments/20120618/aba0d74e/attachment.bin>


More information about the Freeipa-devel mailing list