[Freeipa-devel] [PATCH] 34 Create FreeIPA CLI Plugin for the 389 Auto Membership plugin
Rob Crittenden
rcritten at redhat.com
Tue Aug 2 17:26:54 UTC 2011
JR Aquino wrote:
> On Aug 1, 2011, at 11:28 PM, "Martin Kosek"<mkosek at redhat.com> wrote:
>
> I made all of the small adjustments and then nearly literally stared frustrated at the code for 6 hours today.
>
> I see no way of accomplishing the feat of replicating the ldapmodmember treatment of failed attributes, without overriding LDAPUpdate's exec
>
> LDAPUpdate is simply looking to return entrys_attrs as the result, and only a dn for the callbacks... I can't set or send anything back to track the faileds in a callback.
>
> You can see it's been bothering me, as it is midnight my time and I'm thinking about it still. :/
Overriding execute is ok, we just didn't like duplicating all the code.
If you want to override the return value do something like:
def my_function(LDAPUpdate):
has_output = (
output.Entry('result'),
output.Output('failed',
type=dict,
doc=_('Members that could not be added'),
),
)
def execute(self, *keys, **options):
failed = dict('inclusive': [], 'exclusive', [])
/* calculate failed */
/* Make options consist of the values you want updated */
result = super(my_function, self).execute(*keys, **options)
return(result=result, failed=failed, value=keys[-1])
You may have to tweak failed so it looks ok on Output. The add/remove
member methods in baseldap.py may provide some additional guidance.
rob
More information about the Freeipa-devel
mailing list