[Freeipa-users] Backend & UI plugin update for 4.4.x

Alexander Bokovoy abokovoy at redhat.com
Thu Jan 19 16:16:35 UTC 2017


Steve,

On to, 19 tammi 2017, Steve Huston wrote:
>I'm running a RHEL derivative (Springdale Linux) and discovered that
>between 7.2 and 7.3 there were quite a few changes, one of which was
>the version of FreeIPA installed.  Fortunately my server is still in
>the testing phase, and I hadn't finished things for deployment yet.  I
>discovered that plugins changed drastically some time in 4.4.x, and
>seemed to have found how to modify the plugin I wrote to function
>again:
>
>   http://www.astro.princeton.edu/~huston/astrocustom/
>
>The basics are that we add puppetvar and owner to hosts, and the
>majority of changes are rebranding existing attributes to fit our
>environment better for the AAs that will have access to add stage
>users.  So far, that is all working fine - on the add stage user
>pop-up, everything looks as expected, and on the mod stageuser page
>everything works there as well.  However, I am trying to copy some of
>these changes to the regular user page, and finding they're not
>working at all; for example, the "manager" field works fine on the
>adduser pop-up, but on the moduser page it is blank and errors for not
>having a proper value set when trying to save changes.  Interestingly
>the "employee type" (renamed "User tier") shows up fine, and it too
>was basically a copy from the mod stageuser section so I'm not sure
>why one works and one doesn't.
>
>It also seems most of the documentation I'd found previously to talk
>about writing plugins hasn't been updated for the new systems - I did
>find the pages at https://github.com/abbra/freeipa-desktop-profile/
>but I wasn't able to follow them well or figure out how/if they
>applied to my case.

In short, FreeIPA 4.2 -> 4.4 change was by splitting server and client
side plugins into different paths (ipaserver/plugins and
ipaclient/plugins instead of being common in ipalib/plugins). The client
code was also changed to always read metadata about API from the server
side. This means the client can adopt to any server version that
supports API metadata.

In my sample external plugin you referenced above you can see that I
have client-side change that replaces an input string by a file
reference so that a file can supplied instead of typing the content of
the file on the command line. This is one of most used patterns for
client side plugins.

We haven't yet qualified FreeIPA Python API for plugins as supported
one. One of reasons is that we continue shaping it up and we still lack
proper documentation for them.

-- 
/ Alexander Bokovoy




More information about the Freeipa-users mailing list