[Freeipa-devel] [PATCH] 0210 frontend: fix output validation for multiple type choices

Alexander Bokovoy abokovoy at redhat.com
Tue Jul 19 11:13:50 UTC 2016


On Mon, 18 Jul 2016, Martin Babinsky wrote:
> On 07/18/2016 12:29 PM, Martin Babinsky wrote:
> > On 07/18/2016 10:01 AM, Jan Cholasta wrote:
> > > Hi,
> > > 
> > > On 16.7.2016 12:46, Alexander Bokovoy wrote:
> > > > Hi,
> > > > 
> > > > I had some time and was blocked by these bugs to do my tickets so I
> > > > actually fixed these three problems that are assigned to Martin
> > > > Babinsky. Hopefully, Martin wouldn't be offended by that. :)
> > > > 
> > > > ------
> > > > 
> > > > Output entry elements may have multiple types allowed. We need to check
> > > > all of them to properly validate the output. Right now, thin client
> > > > receives type specifications for elements as tuples of types, so
> > > > what is seen as 'None' on the server side becomes (type(None),) tuple
> > > > on the thin client side.
> > > > 
> > > > Change validation to account this by processing each separate type
> > > > of the element and account for both None and type(None). Raise type
> > > > error only if all of the type checks failed.
> > > > 
> > > > https://fedorahosted.org/freeipa/ticket/6061
> > > 
> > > NACK, this only hides the real issue, which is that trustconfig-show
> > > (and automember-set-default in #6037) claims to return the primary key
> > > of the object in the 'value' output field, but the object does not have
> > > a primary key, so the client rightfully expects None.
> > > 
> > > A proper fix would be to set "has_output = output.simple_value" for
> > > these commands (all of automember_default_group_{set,remove,show},
> > > trustconfig_{mod,show}).
> > > 
> > > Honza
> > > 
> > 
> > The problem is that these commands do not return a simple boolean in
> > 'result' but a full entry dict, so 'simple_value' won't do the trick in
> > this case.
> > 
> > But I agree, we should rather fix misbehaving commands rather than bend
> > the framework to accomodate their idiosyncracies, we have enough of that
> > already.
> > 
> I am attaching a patch that adds a custom shim for misbehaving commands so 
> that they work as before. There is also a big fat warning added to 
> discourage implementation of such commands.
Let's go by this patch. I originally thought changing trust.py to simply
not supply 'value' field at all but this fix is simpler.

-- 
/ Alexander Bokovoy




More information about the Freeipa-devel mailing list