[Freeipa-users] CSV support in IPA administration tools - to be, or not to be?

John Dennis jdennis at redhat.com
Thu Jan 10 16:00:20 UTC 2013


On 01/10/2013 08:15 AM, Petr Spacek wrote:
> Hello,
>
> is there any user of CSV support built-in to IPA administration tools ("ipa"
> command)? Do you consider it sane or even useful? Please reply.

I've always disliked our use of CSV values on both the command line and 
internally. They're just weird, nothing else in Unix works like this and 
as you point out below there are easier better alternatives. Plus with 
the use of CSV's there is a lot of awkward quoting in a variety of places.

On the command line I always thought multiple values should be specified 
multiple times and internally they should be encapsulated in lists 
rather than parsing a CSV string (if it's logically a list then why 
isn't it a list?)

However at this juncture I'm not sure we can make such a change, we have 
a published API that we would be violating. But perhaps we're not so far 
down the road we can't make such a change and we're better off doing it 
now while there is even a chance. It's not clear to me how much the 
command line is being used and specifically with CSV values.

Do I think CSV's are sane and useful? No. Can we change that? That's a 
whole other story.


> I wanted to add single TXT record with double quotation marks (") inside the
> TXT data.
>
> I spent some time figuring out how it is supposed to work ... and with help of
> Petr^3 I managed to write the command.
>
> The resulting command (for BASH) is absolutely crazy:
> ipa dnsrecord-add example.test. newrec --txt-rec='"""created on 13:01:23"""'
>
> Do we really need support for this piece of insanity? Shells can do the same
> thing with much less pain :-)
>
> IPA with CSV support can add multiple attributes at once, e.g.
> ipa dnsrecord-add example.test. newrec --txt-rec=1,2,3,4,5,6,7,8,9
> will add TXT records with value 1, 2, 3 etc.
>
> BASH can do the same thing (without the escaping hell):
> ipa dnsrecord-add example.test. newrec --txt-rec={1,2,3,4,5,6,7,8,9}
> and
> ipa dnsrecord-add example.test. newrec --txt-rec={1..9}
> BASH would expand to
> ipa dnsrecord-add example.test. newrec --txt-rec=1 --txt-rec=2 --txt-rec=3
> --txt-rec=4 --txt-rec=5 --txt-rec=6 --txt-rec=7 --txt-rec=8 --txt-rec=9
>


-- 
John Dennis <jdennis at redhat.com>

Looking to carve out IT costs?
www.redhat.com/carveoutcosts/




More information about the Freeipa-users mailing list